@eo-sdk/client 11.14.14 → 11.14.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/app/eo-client/dashboard/dashboard.component.d.ts +1 -0
  2. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +45 -3
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  5. package/app/eo-client/settings/settings.component.d.ts +1 -0
  6. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  7. package/app/eo-framework/accordion/simple-accordion/simple-accordion.component.d.ts +5 -3
  8. package/app/eo-framework/accordion/simple-accordion/simple-accordion.component.d.ts.map +1 -1
  9. package/assets/_default/i18n/de.json +3 -0
  10. package/assets/_default/i18n/en.json +3 -0
  11. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  12. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +35 -23
  13. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +63 -8
  14. package/esm2022/app/eo-client/settings/settings.component.mjs +29 -3
  15. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +11 -5
  16. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +1 -1
  17. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +2 -2
  18. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +4 -3
  19. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +1 -1
  20. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +6 -5
  21. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +1 -1
  22. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +1 -1
  23. package/esm2022/app/eo-framework-core/api/grid.service.mjs +2 -2
  24. package/fesm2022/eo-sdk-client.mjs +145 -46
  25. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  26. package/package.json +3 -3
@@ -2335,7 +2335,7 @@ class CellRenderer {
2335
2335
  `<path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 ` +
2336
2336
  `13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path>` +
2337
2337
  `</svg></a>`) +
2338
- !iconUrl ? '' : `<img class="type-icon" src="${iconUrl}" title="${type.label}">` +
2338
+ (!iconUrl ? '' : `<img class="type-icon" src="${iconUrl}" title="${type.label}">`) +
2339
2339
  `<span>${GridService.escapeHtml(title || type.label)}</span></div>`;
2340
2340
  });
2341
2341
  }
@@ -6745,7 +6745,7 @@ class StringComponent {
6745
6745
  _validate() {
6746
6746
  let err;
6747
6747
  // validate regular expression
6748
- if (this.value && this.regex) {
6748
+ if (this.value && this.regex && this.situation !== 'SEARCH') {
6749
6749
  if (this.multiselect) {
6750
6750
  if (this.value.length > 0 && !!this.value.find(v => !RegExp(this.regex).test(v))) {
6751
6751
  err = {};
@@ -7873,11 +7873,17 @@ class SimpleAccordionComponent {
7873
7873
  }
7874
7874
  set selected(val) {
7875
7875
  this._selected = val;
7876
- this.link = `object/${this.item?.contextFolder?.id}?type=${this.item?.contextFolder?.typeName}`;
7877
7876
  }
7878
7877
  get selected() {
7879
7878
  return this._selected;
7880
7879
  }
7880
+ set item(item) {
7881
+ this._item = item;
7882
+ this.link = `object/${this._item?.contextFolder?.id}?type=${this._item?.contextFolder?.typeName}`;
7883
+ }
7884
+ get item() {
7885
+ return this._item;
7886
+ }
7881
7887
  toggleOpen() {
7882
7888
  this.selected = !this.selected;
7883
7889
  this.selectChange.emit(this.selected);
@@ -7886,7 +7892,7 @@ class SimpleAccordionComponent {
7886
7892
  event.stopPropagation();
7887
7893
  }
7888
7894
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SimpleAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7889
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: { header: "header", item: "item", styles: "styles", headerClass: "headerClass", iconObjectType: "iconObjectType", itemAmount: "itemAmount", resultListLink: "resultListLink", selected: "selected" }, outputs: { selectChange: "selectChange" }, host: { properties: { "attr.role": "this.role", "class.selected": "this.selected" } }, ngImport: i0, template: "<button class=\"accordion-btn\" (click)=\"toggleOpen()\">\n <div class=\"flex-row\">\n @if (iconObjectType) {\n <eo-icon class=\"icon\" [objectType]=\"iconObjectType\" [iconTitle]=\"iconObjectType.label\"></eo-icon>\n }\n {{header}}\n <a class=\"link router-link\" (click)=\"onLinkClick($event)\" [href]=\"link\">{{ this.item?.contextFolder?.title ||\n this.item?.contextFolder?.id }}</a>\n </div>\n @if (itemAmount) {\n <span class=\"amount\">({{itemAmount}})</span>\n }\n @if (resultListLink) {\n <a [href]=\"resultListLink\" class=\"result-list-link\">\n <eo-icon class=\"icon\"\n [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n [iconTitle]=\"('eo.references.open.resultlist' | translate)\"></eo-icon>\n </a>\n }\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\">\n <path d=\"M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z\"></path>\n </svg>\n</button>\n<section *ngIf=\"selected\"><ng-content></ng-content></section>\n", styles: [":host{display:flex;flex-flow:column}:host.selected>button svg{transform:rotate(180deg)}:host>button{display:flex;align-items:center;justify-content:space-between}:host>button div{align-items:center}:host>button .amount{padding-right:var(--app-pane-padding)}:host>button .result-list-link{text-decoration:none;color:inherit}:host>button .result-list-link:hover{color:var(--color-accent)}:host>button svg{width:18px;height:18px;fill:var(--text-color-caption)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
7895
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: { header: "header", styles: "styles", headerClass: "headerClass", iconObjectType: "iconObjectType", itemAmount: "itemAmount", resultListLink: "resultListLink", selected: "selected", item: "item" }, outputs: { selectChange: "selectChange" }, host: { properties: { "attr.role": "this.role", "class.selected": "this.selected" } }, ngImport: i0, template: "<button class=\"accordion-btn\" (click)=\"toggleOpen()\">\n <div class=\"flex-row\">\n @if (iconObjectType) {\n <eo-icon class=\"icon\" [objectType]=\"iconObjectType\" [iconTitle]=\"iconObjectType.label\"></eo-icon>\n }\n {{header}}\n <a class=\"link router-link\" (click)=\"onLinkClick($event)\" [href]=\"link\">{{ this.item?.contextFolder?.title ||\n this.item?.contextFolder?.id }}</a>\n </div>\n @if (itemAmount) {\n <span class=\"amount\">({{itemAmount}})</span>\n }\n @if (resultListLink) {\n <a [href]=\"resultListLink\" class=\"result-list-link\">\n <eo-icon class=\"icon\"\n [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n [iconTitle]=\"('eo.references.open.resultlist' | translate)\"></eo-icon>\n </a>\n }\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\">\n <path d=\"M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z\"></path>\n </svg>\n</button>\n<section *ngIf=\"selected\"><ng-content></ng-content></section>\n", styles: [":host{display:flex;flex-flow:column}:host.selected>button svg{transform:rotate(180deg)}:host>button{display:flex;align-items:center;justify-content:space-between}:host>button div{align-items:center}:host>button .amount{padding-right:var(--app-pane-padding)}:host>button .result-list-link{text-decoration:none;color:inherit}:host>button .result-list-link:hover{color:var(--color-accent)}:host>button svg{width:18px;height:18px;fill:var(--text-color-caption)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
7890
7896
  }
7891
7897
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SimpleAccordionComponent, decorators: [{
7892
7898
  type: Component,
@@ -7896,8 +7902,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
7896
7902
  args: ['attr.role']
7897
7903
  }], header: [{
7898
7904
  type: Input
7899
- }], item: [{
7900
- type: Input
7901
7905
  }], styles: [{
7902
7906
  type: Input
7903
7907
  }], headerClass: [{
@@ -7913,6 +7917,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
7913
7917
  args: ['class.selected']
7914
7918
  }, {
7915
7919
  type: Input
7920
+ }], item: [{
7921
+ type: Input
7916
7922
  }], selectChange: [{
7917
7923
  type: Output
7918
7924
  }] } });
@@ -8156,7 +8162,7 @@ class ReferenceFinderComponent {
8156
8162
  this.searchInput.nativeElement.focus();
8157
8163
  }
8158
8164
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ReferenceFinderComponent, deps: [{ token: ReferenceFinderService }], target: i0.ɵɵFactoryTarget.Component }); }
8159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ReferenceFinderComponent, selector: "eo-reference-finder", inputs: { isDisabled: "isDisabled", types: "types", multiselect: "multiselect", contextId: "contextId", exceptionIDs: "exceptionIDs", queryFilters: "queryFilters", currentSelection: "currentSelection", clipboard: "clipboard" }, outputs: { addDmsObjects: "addDmsObjects" }, host: { listeners: { "keydown": "onKey($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "entries", predicate: ["entry"], descendants: true, read: ElementRef }], ngImport: i0, template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"true\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [selected]=\"true\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect && !searchOnly\" [disabled]=\"isDisabled\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:contents;align-self:center;justify-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{overflow:auto;height:100%;margin:calc(var(--app-pane-padding) / 2);overflow-x:hidden}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;align-items:center;justify-content:space-between;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.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}.loader-overlay__mask .reference__loader{margin:auto}\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: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected"], outputs: ["selectChange"] }, { kind: "component", type: ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: ["list", "multiselect", "marked"], outputs: ["selectReference"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [fadeInOut] }); }
8165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: ReferenceFinderComponent, selector: "eo-reference-finder", inputs: { isDisabled: "isDisabled", types: "types", multiselect: "multiselect", contextId: "contextId", exceptionIDs: "exceptionIDs", queryFilters: "queryFilters", currentSelection: "currentSelection", clipboard: "clipboard" }, outputs: { addDmsObjects: "addDmsObjects" }, host: { listeners: { "keydown": "onKey($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "entries", predicate: ["entry"], descendants: true, read: ElementRef }], ngImport: i0, template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"true\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [selected]=\"true\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect && !searchOnly\" [disabled]=\"isDisabled\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:contents;align-self:center;justify-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{overflow:auto;height:100%;margin:calc(var(--app-pane-padding) / 2);overflow-x:hidden}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;align-items:center;justify-content:space-between;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.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}.loader-overlay__mask .reference__loader{margin:auto}\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: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected", "item"], outputs: ["selectChange"] }, { kind: "component", type: ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: ["list", "multiselect", "marked"], outputs: ["selectReference"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [fadeInOut] }); }
8160
8166
  }
8161
8167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ReferenceFinderComponent, decorators: [{
8162
8168
  type: Component,
@@ -11353,7 +11359,7 @@ let IndexdataSummaryComponent = class IndexdataSummaryComponent {
11353
11359
  this.getCachedAccordionState();
11354
11360
  }
11355
11361
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IndexdataSummaryComponent, deps: [{ token: i1.TranslateService }, { token: GridService }, { token: i1.DmsService }, { token: i1.UserService }, { token: i0.ChangeDetectorRef }, { token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
11356
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: { baseparams: "baseparams", enableVersions: "enableVersions", isChangesTab: "isChangesTab", indexdata: "indexdata", dmsObject: "dmsObject", diff: "diff" }, ngImport: i0, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n @if (item?.contextFolder && !diffActive) {\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\n [label]=\"item.label\" [value]=\"item.data\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </eo-simple-accordion>\n }\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\" [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.type' | translate\" \n [value]=\"this.item.type.label + ' (' + this.item.type.name + ')'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\n <div class=\"storageinfo\">\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\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: "component", type: IndexdataSummaryEntryComponent, selector: "eo-indexdata-summary-entry", inputs: ["label", "item", "value", "className"], outputs: ["onValueClicked"] }, { kind: "component", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected"], outputs: ["selectChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11362
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: { baseparams: "baseparams", enableVersions: "enableVersions", isChangesTab: "isChangesTab", indexdata: "indexdata", dmsObject: "dmsObject", diff: "diff" }, ngImport: i0, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n @if (item?.contextFolder && !diffActive) {\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\n [label]=\"item.label\" [value]=\"item.data\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </eo-simple-accordion>\n }\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\" [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.type' | translate\" \n [value]=\"this.item.type.label + ' (' + this.item.type.name + ')'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\n <div class=\"storageinfo\">\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\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: "component", type: IndexdataSummaryEntryComponent, selector: "eo-indexdata-summary-entry", inputs: ["label", "item", "value", "className"], outputs: ["onValueClicked"] }, { kind: "component", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected", "item"], outputs: ["selectChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11357
11363
  };
11358
11364
  IndexdataSummaryComponent = IndexdataSummaryComponent_1 = __decorate([
11359
11365
  UntilDestroy()
@@ -13616,11 +13622,11 @@ class PaginationComponent {
13616
13622
  ngOnInit() {
13617
13623
  }
13618
13624
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PaginationComponent, deps: [{ token: i1$3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
13619
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: PaginationComponent, selector: "eo-pagination", inputs: { settings: "settings" }, outputs: { pageChanged: "pageChanged" }, ngImport: i0, template: "<div class=\"controls flex-row\" *ngIf=\"pagination && pagination.pages > 1\">\n <button [disabled]=\"pagination.page === 1\" (click)=\"goToPage(1)\">\n <eo-icon class=\"first\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\n </button>\n <button [disabled]=\"pagination.page <= 1\" (click)=\"goToPage(pagination.page - 1)\">\n <eo-icon class=\"prev\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\n </button>\n\n <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\n <input type=\"number\" formControlName=\"page\" />\n <div>{{ pagination.pages }}{{ isGreater ? '+' : '' }}</div>\n </form>\n\n <button [disabled]=\"isGreater ? false : pagination.page >= pagination.pages\" (click)=\"goToPage(pagination.page + 1)\">\n <eo-icon class=\"next\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\n </button>\n <button [disabled]=\"isGreater ? true : pagination.page === pagination.pages\" (click)=\"goToPage(pagination.pages)\">\n <eo-icon class=\"last\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\n </button>\n</div>", styles: [":host .controls button{padding:0;background:none;border:none}:host .controls eo-icon.prev,:host .controls eo-icon.first{transform:rotate(180deg)}:host .controls form{display:flex;border:1px solid rgba(0,0,0,.2);margin:0 4px}:host .controls form>div{padding:4px;font-size:var(--font-caption);background-color:var(--panel-background-grey);-webkit-user-select:none;user-select:none}:host .controls form input{width:3em;padding:4px;line-height:1em;text-align:right;border:0;background-color:var(--main-background);color:var(--text-color-body);font-size:var(--font-caption);border-right:1px solid rgba(0,0,0,.2)}:host .controls form input.ng-invalid{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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"] }] }); }
13625
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: PaginationComponent, selector: "eo-pagination", inputs: { settings: "settings" }, outputs: { pageChanged: "pageChanged" }, ngImport: i0, template: "<div class=\"controls flex-row\" *ngIf=\"pagination && pagination.pages > 1\">\n <button [disabled]=\"pagination.page === 1\" (click)=\"goToPage(1)\">\n <eo-icon class=\"first\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\n </button>\n <button [disabled]=\"pagination.page <= 1\" (click)=\"goToPage(pagination.page - 1)\">\n <eo-icon class=\"prev\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\n </button>\n\n <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\n <input type=\"number\" formControlName=\"page\" />\n <div>{{ pagination.pages }}{{ isGreater ? '+' : '' }}</div>\n </form>\n\n <button [disabled]=\"isGreater ? false : pagination.page >= pagination.pages\" (click)=\"goToPage(pagination.page + 1)\">\n <eo-icon class=\"next\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\n </button>\n <button [disabled]=\"isGreater ? true : pagination.page === pagination.pages\" (click)=\"goToPage(pagination.pages)\" [title]=\"isGreater ? ('eo.resultlist.pagination.lastPage.disabled.title'| translate) : ''\">\n <eo-icon class=\"last\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\n </button>\n</div>\n", styles: [":host .controls button{padding:0;background:none;border:none}:host .controls eo-icon.prev,:host .controls eo-icon.first{transform:rotate(180deg)}:host .controls form{display:flex;border:1px solid rgba(0,0,0,.2);margin:0 4px}:host .controls form>div{padding:4px;font-size:var(--font-caption);background-color:var(--panel-background-grey);-webkit-user-select:none;user-select:none}:host .controls form input{width:3em;padding:4px;line-height:1em;text-align:right;border:0;background-color:var(--main-background);color:var(--text-color-body);font-size:var(--font-caption);border-right:1px solid rgba(0,0,0,.2)}:host .controls form input.ng-invalid{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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" }] }); }
13620
13626
  }
13621
13627
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PaginationComponent, decorators: [{
13622
13628
  type: Component,
13623
- args: [{ selector: 'eo-pagination', template: "<div class=\"controls flex-row\" *ngIf=\"pagination && pagination.pages > 1\">\n <button [disabled]=\"pagination.page === 1\" (click)=\"goToPage(1)\">\n <eo-icon class=\"first\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\n </button>\n <button [disabled]=\"pagination.page <= 1\" (click)=\"goToPage(pagination.page - 1)\">\n <eo-icon class=\"prev\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\n </button>\n\n <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\n <input type=\"number\" formControlName=\"page\" />\n <div>{{ pagination.pages }}{{ isGreater ? '+' : '' }}</div>\n </form>\n\n <button [disabled]=\"isGreater ? false : pagination.page >= pagination.pages\" (click)=\"goToPage(pagination.page + 1)\">\n <eo-icon class=\"next\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\n </button>\n <button [disabled]=\"isGreater ? true : pagination.page === pagination.pages\" (click)=\"goToPage(pagination.pages)\">\n <eo-icon class=\"last\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\n </button>\n</div>", styles: [":host .controls button{padding:0;background:none;border:none}:host .controls eo-icon.prev,:host .controls eo-icon.first{transform:rotate(180deg)}:host .controls form{display:flex;border:1px solid rgba(0,0,0,.2);margin:0 4px}:host .controls form>div{padding:4px;font-size:var(--font-caption);background-color:var(--panel-background-grey);-webkit-user-select:none;user-select:none}:host .controls form input{width:3em;padding:4px;line-height:1em;text-align:right;border:0;background-color:var(--main-background);color:var(--text-color-body);font-size:var(--font-caption);border-right:1px solid rgba(0,0,0,.2)}:host .controls form input.ng-invalid{color:var(--color-error)}\n"] }]
13629
+ args: [{ selector: 'eo-pagination', template: "<div class=\"controls flex-row\" *ngIf=\"pagination && pagination.pages > 1\">\n <button [disabled]=\"pagination.page === 1\" (click)=\"goToPage(1)\">\n <eo-icon class=\"first\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\n </button>\n <button [disabled]=\"pagination.page <= 1\" (click)=\"goToPage(pagination.page - 1)\">\n <eo-icon class=\"prev\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\n </button>\n\n <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\n <input type=\"number\" formControlName=\"page\" />\n <div>{{ pagination.pages }}{{ isGreater ? '+' : '' }}</div>\n </form>\n\n <button [disabled]=\"isGreater ? false : pagination.page >= pagination.pages\" (click)=\"goToPage(pagination.page + 1)\">\n <eo-icon class=\"next\" [iconSrc]=\"'assets/_default/svg/ic_arrow_next.svg'\" ></eo-icon>\n </button>\n <button [disabled]=\"isGreater ? true : pagination.page === pagination.pages\" (click)=\"goToPage(pagination.pages)\" [title]=\"isGreater ? ('eo.resultlist.pagination.lastPage.disabled.title'| translate) : ''\">\n <eo-icon class=\"last\" [iconSrc]=\"'assets/_default/svg/ic_arrow_last.svg'\" ></eo-icon>\n </button>\n</div>\n", styles: [":host .controls button{padding:0;background:none;border:none}:host .controls eo-icon.prev,:host .controls eo-icon.first{transform:rotate(180deg)}:host .controls form{display:flex;border:1px solid rgba(0,0,0,.2);margin:0 4px}:host .controls form>div{padding:4px;font-size:var(--font-caption);background-color:var(--panel-background-grey);-webkit-user-select:none;user-select:none}:host .controls form input{width:3em;padding:4px;line-height:1em;text-align:right;border:0;background-color:var(--main-background);color:var(--text-color-body);font-size:var(--font-caption);border-right:1px solid rgba(0,0,0,.2)}:host .controls form input.ng-invalid{color:var(--color-error)}\n"] }]
13624
13630
  }], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }], propDecorators: { settings: [{
13625
13631
  type: Input
13626
13632
  }], pageChanged: [{
@@ -18991,7 +18997,7 @@ class UploadOverlayComponent {
18991
18997
  return Array.from(event.clipboardData.items || []).filter(i => i.kind === 'file').length;
18992
18998
  }
18993
18999
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UploadOverlayComponent, deps: [{ token: i2$1.Router }, { token: i0.Renderer2 }, { token: i1.PrepareService }, { token: i1.TranslateService }, { token: i1.UserService }, { token: AgentService }, { token: i1.SystemService }, { token: i1.EventService }, { token: i1.LocalStorageService }, { token: i1.UploadRegistryService }], target: i0.ɵɵFactoryTarget.Component }); }
18994
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: UploadOverlayComponent, selector: "eo-upload-overlay", viewQueries: [{ propertyName: "overlayEl", first: true, predicate: ["overlay"], descendants: true }], ngImport: i0, template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n\n <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"close()\"></eo-icon>\n\n <div class=\"count\">\n <div>{{queue.length}}</div>\n <div class=\"queueSize\">{{queueSize | fileSize}}</div>\n </div>\n\n <div class=\"headline\">\n <h1 translate>eo.upload.global.headline</h1>\n </div>\n \n <eo-icon class=\"uploady\" [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n\n <!-- batch upload dialog -->\n <div class=\"batch-dialog\" *ngIf=\"!invalidInput && selectedUploadTarget && !isUploading\">\n\n <h2 translate>eo.upload.global.choose.title</h2>\n <p translate>eo.upload.global.choose.message</p>\n <div class=\"actions\">\n <button (click)=\"resetSelectedUploadTarget()\" translate>eo.cta.button.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\"\n translate>eo.upload.global.choose.single</button>\n <button (click)=\"proceedWithSelectedTarget(true)\" class=\"primary\" translate>eo.upload.global.choose.multi</button>\n </div>\n </div>\n\n <!-- invalid input dialog -->\n <div class=\"batch-dialog\" *ngIf=\"hasValidUploadTargets && invalidInput\">\n\n <h2 translate>eo.upload.global.invalid.title</h2>\n <p translate>eo.upload.global.invalid.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <!-- no upload targets available -->\n <div class=\"batch-dialog\" *ngIf=\"!hasValidUploadTargets\">\n\n <h2 translate>eo.upload.global.notarget.title</h2>\n <p translate>eo.upload.global.notarget.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <div class=\"contents\" *ngIf=\"hasValidUploadTargets && !invalidInput && !selectedUploadTarget && !isUploading\">\n\n <div class=\"section\">\n <!-- list of available upload targets -->\n <div class=\"targets\">\n <div class=\"target-list\">\n @for (targetType of targetTypes; track targetType.type) {\n @for (t of validUploadTargets; track t.id) {\n @if (t.type === targetType.type) {\n <ng-container *ngTemplateOutlet=\"uploadTargetTemplate; context: {\n iconSrc: targetType.iconSrc,\n targetClass: targetType.targetClass,\n name: targetType.type === 'custom' ? t.name : targetType.type === 'contexttree' ? (targetType.name | translate : {folder: t.subFolder.name}) : targetType.type === 'context' ? (targetType.name | translate : {context: t.referenceObject.type.label}) : (targetType.name | translate),\n description: targetType.type === 'custom' || targetType.type === 'object' || targetType.type === 'context' ? t.description : (targetType.description | translate),\n targets: t\n }\">\n </ng-container>\n }\n }\n }\n </div>\n </div>\n\n <!-- upload to favorite -->\n @if (folderFavorites.length > 0) {\n <eo-simple-accordion [selected]=\"favoritesAccSelected\" [header]=\"'eo.upload.global.context.favorite' | translate\"\n (selectChange)=\"onFavoriteToggle($event)\">\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'favorite') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-favorite\">\n <div class=\"name\">{{t.title}}\n <div class=\"description\">{{t.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n\n @if(lastOpenedFolder.length > 0){\n <eo-simple-accordion [selected]=\"agentAccSelected\" [header]=\"'eo.upload.global.context.agent' | translate\"\n (selectChange)=\"onAgentToggle($event)\">\n <!-- upload to last opened folder -->\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'agent') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-agent\">\n <div class=\"name\">{{t?.title}}\n <div class=\"description\">{{t?.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n </div>\n <!-- list of files dragged to the component -->\n <div class=\"files\" [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n <div class=\"files-list\">\n @for (i of queue; track $index) {\n <div class=\"file-item\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span>\n <span class=\"desc-text\">&nbsp;{{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (isUploading) {\n <div class=\"loading\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </div>\n }\n</div>\n\n<ng-template #uploadTargetTemplate let-iconSrc=\"iconSrc\" let-targetClass=\"targetClass\" let-name=\"name\"\n let-description=\"description\" let-targets=\"targets\">\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(targets)\" (click)=\"proceedWithUpload(targets)\">\n <ng-container>\n <eo-icon [iconSrc]=\"iconSrc\"></eo-icon>\n <div [ngClass]=\"targetClass\">\n <div class=\"name\">{{ name }}</div>\n <div class=\"description\">{{ description }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host #eo-upload-overlay{position:absolute;inset:0;z-index:9900;background-color:rgba(var(--color-black-rgb),.85);animation:eoFadeIn var(--app-default-transition-duration);display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-white);overflow:hidden}:host #eo-upload-overlay .headline{display:flex;width:100%;min-width:200px;justify-content:center;overflow:hidden;align-content:center;flex-wrap:wrap}:host #eo-upload-overlay .headline h1{font-size:4em;font-weight:var(--font-weight-light);color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .uploady{animation:uploady 2s linear infinite;width:20vw;height:20vw;display:block}:host #eo-upload-overlay .close{position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host #eo-upload-overlay .count{position:absolute;display:none;right:calc(var(--app-pane-padding) * 3);top:calc(var(--app-pane-padding) * 3);font-size:10vh;flex-flow:column;align-items:flex-end;line-height:1em;animation:eoFadeInDown var(--app-default-transition-duration)}:host #eo-upload-overlay .count .queueSize{font-size:var(--font-caption);line-height:var(--font-caption);margin-top:calc(var(--app-pane-padding) / 2);border-radius:2px;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .batch-dialog{max-width:350px}:host #eo-upload-overlay .batch-dialog .actions{display:flex;padding-top:var(--app-pane-padding);justify-content:flex-end}:host #eo-upload-overlay .batch-dialog .actions button{margin:0 calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .contents{display:none;flex-flow:row wrap;margin:var(--app-pane-padding);max-width:100%;max-height:100%;width:100%;height:100%}:host #eo-upload-overlay .targets{order:1;margin:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;justify-content:center;position:relative}:host #eo-upload-overlay .targets .target-list{animation:eoFadeInRight var(--app-default-transition-duration);overflow-y:auto}:host #eo-upload-overlay .targets .target-list h2{font-size:var(--font-subhead);font-weight:400}:host #eo-upload-overlay .targets .target-list .upload-target{background:rgba(var(--color-accent),.6);border:1px solid rgba(var(--color-white-rgb),.4);margin:calc(var(--app-pane-padding) / 2) 0;padding:calc(var(--app-pane-padding) / 2);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;display:flex;cursor:pointer;flex-flow:row nowrap;align-items:center}:host #eo-upload-overlay .targets .target-list .upload-target:focus{background-color:var(--color-accent)}:host #eo-upload-overlay .targets .target-list .upload-target eo-icon{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div{flex:1 1 auto;margin:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-caption);opacity:.7}:host #eo-upload-overlay .targets .target-list .upload-target:hover{background-color:var(--color-accent)}:host #eo-upload-overlay .files{padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;max-width:150px;width:95%;min-width:25%;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%;width:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;align-items:center;cursor:default;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);margin-bottom:calc(var(--app-pane-padding) / 4);background-color:rgba(var(--color-white-rgb),.1);-webkit-user-select:none;user-select:none}:host #eo-upload-overlay .files .files-list .file-item>div{flex:1 1 auto;padding:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .desc{color:rgba(var(--color-white-rgb),.75);font-size:var(--font-hint);margin-top:calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .files .files-list .file-item>div .size{border-radius:2px;display:inline-block;padding:0 4px;background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .files .files-list .file-item eo-icon{flex:0 0 auto;width:18px;height:18px;padding:calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay.invalid>h1,:host #eo-upload-overlay.invalid .uploady{display:none}:host #eo-upload-overlay.file .uploady{display:none}:host #eo-upload-overlay.file .contents{flex-flow:row-reverse;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex:1 1;flex-direction:row-reverse}:host #eo-upload-overlay.file .contents .section{display:flow-root;width:25%;min-width:200px;flex:0 0 auto;max-height:fit-content;overflow:hidden;box-sizing:content-box}:host #eo-upload-overlay.file .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}:host ::ng-deep eo-simple-accordion{display:flex;flex-flow:column;flex:0 0 auto}:host ::ng-deep eo-simple-accordion:not(.selected){margin-bottom:var(--app-pane-padding)}:host ::ng-deep eo-simple-accordion>section{min-height:50px;max-height:190px;overflow-y:auto;overflow-x:hidden}@keyframes uploady{0%{transform:translateY(0);opacity:.1}50%{transform:translateY(-40px);opacity:.3}to{transform:translateY(0);opacity:.1}}\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: 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: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected"], outputs: ["selectChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }] }); }
19000
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: UploadOverlayComponent, selector: "eo-upload-overlay", viewQueries: [{ propertyName: "overlayEl", first: true, predicate: ["overlay"], descendants: true }], ngImport: i0, template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n\n <eo-icon class=\"button white close\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"close()\"></eo-icon>\n\n <div class=\"count\">\n <div>{{queue.length}}</div>\n <div class=\"queueSize\">{{queueSize | fileSize}}</div>\n </div>\n\n <div class=\"headline\">\n <h1 translate>eo.upload.global.headline</h1>\n </div>\n \n <eo-icon class=\"uploady\" [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n\n <!-- batch upload dialog -->\n <div class=\"batch-dialog\" *ngIf=\"!invalidInput && selectedUploadTarget && !isUploading\">\n\n <h2 translate>eo.upload.global.choose.title</h2>\n <p translate>eo.upload.global.choose.message</p>\n <div class=\"actions\">\n <button (click)=\"resetSelectedUploadTarget()\" translate>eo.cta.button.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\"\n translate>eo.upload.global.choose.single</button>\n <button (click)=\"proceedWithSelectedTarget(true)\" class=\"primary\" translate>eo.upload.global.choose.multi</button>\n </div>\n </div>\n\n <!-- invalid input dialog -->\n <div class=\"batch-dialog\" *ngIf=\"hasValidUploadTargets && invalidInput\">\n\n <h2 translate>eo.upload.global.invalid.title</h2>\n <p translate>eo.upload.global.invalid.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <!-- no upload targets available -->\n <div class=\"batch-dialog\" *ngIf=\"!hasValidUploadTargets\">\n\n <h2 translate>eo.upload.global.notarget.title</h2>\n <p translate>eo.upload.global.notarget.message</p>\n <div class=\"actions\">\n <button (click)=\"close()\" translate>eo.upload.global.close</button>\n </div>\n </div>\n\n <div class=\"contents\" *ngIf=\"hasValidUploadTargets && !invalidInput && !selectedUploadTarget && !isUploading\">\n\n <div class=\"section\">\n <!-- list of available upload targets -->\n <div class=\"targets\">\n <div class=\"target-list\">\n @for (targetType of targetTypes; track targetType.type) {\n @for (t of validUploadTargets; track t.id) {\n @if (t.type === targetType.type) {\n <ng-container *ngTemplateOutlet=\"uploadTargetTemplate; context: {\n iconSrc: targetType.iconSrc,\n targetClass: targetType.targetClass,\n name: targetType.type === 'custom' ? t.name : targetType.type === 'contexttree' ? (targetType.name | translate : {folder: t.subFolder.name}) : targetType.type === 'context' ? (targetType.name | translate : {context: t.referenceObject.type.label}) : (targetType.name | translate),\n description: targetType.type === 'custom' || targetType.type === 'object' || targetType.type === 'context' ? t.description : (targetType.description | translate),\n targets: t\n }\">\n </ng-container>\n }\n }\n }\n </div>\n </div>\n\n <!-- upload to favorite -->\n @if (folderFavorites.length > 0) {\n <eo-simple-accordion [selected]=\"favoritesAccSelected\" [header]=\"'eo.upload.global.context.favorite' | translate\"\n (selectChange)=\"onFavoriteToggle($event)\">\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'favorite') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-favorite\">\n <div class=\"name\">{{t.title}}\n <div class=\"description\">{{t.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n\n @if(lastOpenedFolder.length > 0){\n <eo-simple-accordion [selected]=\"agentAccSelected\" [header]=\"'eo.upload.global.context.agent' | translate\"\n (selectChange)=\"onAgentToggle($event)\">\n <!-- upload to last opened folder -->\n <div class=\"targets\" tabindex=\"-1\">\n <div class=\"target-list\" tabindex=\"-1\">\n @for (t of validUploadTargets; track $index) {\n @if (t.type === 'agent') {\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(t)\" (click)=\"proceedWithUpload(t)\">\n <ng-container>\n <eo-icon [iconId]=\"t.iconId\"></eo-icon>\n <div class=\"upload-target-agent\">\n <div class=\"name\">{{t?.title}}\n <div class=\"description\">{{t?.description}}</div>\n </div>\n </div>\n </ng-container>\n </div>\n }\n }\n </div>\n </div>\n </eo-simple-accordion>\n }\n </div>\n <!-- list of files dragged to the component -->\n <div class=\"files\" [ngClass]=\"{file: queue.length, invalid: invalidInput, uploading: isUploading}\">\n <div class=\"files-list\">\n @for (i of queue; track $index) {\n <div class=\"file-item\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span>\n <span class=\"desc-text\">&nbsp;{{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (isUploading) {\n <div class=\"loading\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </div>\n }\n</div>\n\n<ng-template #uploadTargetTemplate let-iconSrc=\"iconSrc\" let-targetClass=\"targetClass\" let-name=\"name\"\n let-description=\"description\" let-targets=\"targets\">\n <div class=\"upload-target\" tabindex=\"0\" (keydown.enter)=\"proceedWithUpload(targets)\" (click)=\"proceedWithUpload(targets)\">\n <ng-container>\n <eo-icon [iconSrc]=\"iconSrc\"></eo-icon>\n <div [ngClass]=\"targetClass\">\n <div class=\"name\">{{ name }}</div>\n <div class=\"description\">{{ description }}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host #eo-upload-overlay{position:absolute;inset:0;z-index:9900;background-color:rgba(var(--color-black-rgb),.85);animation:eoFadeIn var(--app-default-transition-duration);display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-white);overflow:hidden}:host #eo-upload-overlay .headline{display:flex;width:100%;min-width:200px;justify-content:center;overflow:hidden;align-content:center;flex-wrap:wrap}:host #eo-upload-overlay .headline h1{font-size:4em;font-weight:var(--font-weight-light);color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .uploady{animation:uploady 2s linear infinite;width:20vw;height:20vw;display:block}:host #eo-upload-overlay .close{position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host #eo-upload-overlay .count{position:absolute;display:none;right:calc(var(--app-pane-padding) * 3);top:calc(var(--app-pane-padding) * 3);font-size:10vh;flex-flow:column;align-items:flex-end;line-height:1em;animation:eoFadeInDown var(--app-default-transition-duration)}:host #eo-upload-overlay .count .queueSize{font-size:var(--font-caption);line-height:var(--font-caption);margin-top:calc(var(--app-pane-padding) / 2);border-radius:2px;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .batch-dialog{max-width:350px}:host #eo-upload-overlay .batch-dialog .actions{display:flex;padding-top:var(--app-pane-padding);justify-content:flex-end}:host #eo-upload-overlay .batch-dialog .actions button{margin:0 calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .contents{display:none;flex-flow:row wrap;margin:var(--app-pane-padding);max-width:100%;max-height:100%;width:100%;height:100%}:host #eo-upload-overlay .targets{order:1;margin:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;justify-content:center;position:relative}:host #eo-upload-overlay .targets .target-list{animation:eoFadeInRight var(--app-default-transition-duration);overflow-y:auto}:host #eo-upload-overlay .targets .target-list h2{font-size:var(--font-subhead);font-weight:400}:host #eo-upload-overlay .targets .target-list .upload-target{background:rgba(var(--color-accent),.6);border:1px solid rgba(var(--color-white-rgb),.4);margin:calc(var(--app-pane-padding) / 2) 0;padding:calc(var(--app-pane-padding) / 2);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;display:flex;cursor:pointer;flex-flow:row nowrap;align-items:center}:host #eo-upload-overlay .targets .target-list .upload-target:focus{background-color:var(--color-accent)}:host #eo-upload-overlay .targets .target-list .upload-target eo-icon{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div{flex:1 1 auto;margin:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{width:100%;max-width:250px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-caption);opacity:.7}:host #eo-upload-overlay .targets .target-list .upload-target:hover{background-color:var(--color-accent)}:host #eo-upload-overlay .files{padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;max-width:150px;width:95%;min-width:25%;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%;width:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;align-items:center;cursor:default;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);margin-bottom:calc(var(--app-pane-padding) / 4);background-color:rgba(var(--color-white-rgb),.1);-webkit-user-select:none;user-select:none}:host #eo-upload-overlay .files .files-list .file-item>div{flex:1 1 auto;padding:0 calc(var(--app-pane-padding) / 2);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .name{font-size:var(--font-subhead);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}:host #eo-upload-overlay .files .files-list .file-item>div .desc{color:rgba(var(--color-white-rgb),.75);font-size:var(--font-hint);margin-top:calc(var(--app-pane-padding) / 4)}:host #eo-upload-overlay .files .files-list .file-item>div .size{border-radius:2px;display:inline-block;padding:0 4px;background-color:rgba(var(--color-white-rgb),.2)}:host #eo-upload-overlay .files .files-list .file-item eo-icon{flex:0 0 auto;width:18px;height:18px;padding:calc(var(--app-pane-padding) / 2)}:host #eo-upload-overlay.invalid>h1,:host #eo-upload-overlay.invalid .uploady{display:none}:host #eo-upload-overlay.file .uploady{display:none}:host #eo-upload-overlay.file .contents{flex-flow:row-reverse;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex:1 1;flex-direction:row-reverse}:host #eo-upload-overlay.file .contents .section{display:flow-root;width:25%;min-width:200px;flex:0 0 auto;max-height:fit-content;overflow:hidden;box-sizing:content-box}:host #eo-upload-overlay.file .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}:host ::ng-deep eo-simple-accordion{display:flex;flex-flow:column;flex:0 0 auto}:host ::ng-deep eo-simple-accordion:not(.selected){margin-bottom:var(--app-pane-padding)}:host ::ng-deep eo-simple-accordion>section{min-height:50px;max-height:190px;overflow-y:auto;overflow-x:hidden}@keyframes uploady{0%{transform:translateY(0);opacity:.1}50%{transform:translateY(-40px);opacity:.3}to{transform:translateY(0);opacity:.1}}\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: 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: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected", "item"], outputs: ["selectChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }] }); }
18995
19001
  }
18996
19002
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UploadOverlayComponent, decorators: [{
18997
19003
  type: Component,
@@ -20237,7 +20243,7 @@ class ObjectLinksComponent {
20237
20243
  return `result?query=${encodeURIComponent(JSON.stringify(query))}`;
20238
20244
  }
20239
20245
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectLinksComponent, deps: [{ token: ReferenceService }, { token: i1.AppCacheService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
20240
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ObjectLinksComponent, selector: "eo-object-links", inputs: { dmsObject: "dmsObject" }, ngImport: i0, template: "<div class=\"eo-references\">\n <div class=\"object-not-found\" *ngIf=\"!inReferences?.length && !outReferences?.length; else refContainer\">\n <div>{{'eo.references.object.notfound' | translate}}</div>\n </div>\n\n <ng-template #refContainer>\n <div class=\"form-buttons\">\n <div class=\"gridlabels\">\n <div class=\"gridlabel\" [ngClass]=\"{'active': showInReferences}\" (click)=\"switchListVisibilityTo('in')\"\n title=\"{{'eo.references.to.label' | translate}}\">\n <span>{{'eo.references.to.label' | translate}}</span>\n </div>\n <div class=\"gridlabel\" [ngClass]=\"{'active': showOutReferences}\" (click)=\"switchListVisibilityTo('out')\"\n title=\"{{'eo.references.from.label' | translate}}\">\n <span>{{'eo.references.from.label' | translate}}</span>\n </div>\n </div>\n <a class=\"result-list-link\" [routerLink]=\"'/result'\" [queryParams]=\"superQueryParams\">\n <eo-icon class=\"icon\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\" [iconTitle]=\"('eo.references.open.resultlist' | translate)\"></eo-icon>\n </a>\n </div>\n\n <div class=\"eo-references-lists\">\n\n <!-- list of inReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showInReferences}\">\n @if (loading) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n } @else if (inReferences?.length) {\n <div class=\"referenceList\">\n @for (entry1Layer of inReferences; track entry1Layer) {\n <eo-simple-accordion\n [header]=\"entry1Layer.title\"\n [iconObjectType]=\"getObjectType(entry1Layer.type)\"\n [itemAmount]=\"entry1Layer.count\"\n [resultListLink]=\"getSearchLink(entry1Layer)\">\n @for (entry2Layer of entry1Layer.folder; track entry2Layer) {\n @for (entry3Layer of entry2Layer.folder; track entry3Layer) {\n <div class=\"content\" (click)=\"navigateToReference($event, entry3Layer)\">\n <div class=\"flex-row\">\n <div class=\"title\">\n {{entry3Layer?.title}}\n </div>\n </div>\n <div class=\"description\">\n {{entry3Layer?.description}}\n </div>\n <div class=\"remote-element\">\n {{'eo.references.field.label' | translate}} {{entry2Layer.title}}\n </div>\n </div>\n }\n }\n </eo-simple-accordion>\n }\n </div>\n } @else {\n <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\n }\n </div>\n\n <!-- list of outReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showOutReferences}\">\n @if (loading) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n } @else if (outReferences?.length) {\n <div class=\"referenceList\">\n @for (entry1Layer of outReferences; track entry1Layer) {\n <eo-simple-accordion\n [header]=\"entry1Layer.title\"\n [iconObjectType]=\"entry1Layer.objectType\"\n [itemAmount]=\"entry1Layer.folder.length\"\n [resultListLink]=\"getSearchLink(entry1Layer)\">\n @for (entry2Layer of entry1Layer.folder; track entry2Layer) {\n <div class=\"content\" (click)=\"navigateToReference($event, entry2Layer)\">\n <div class=\"flex-row\">\n <div class=\"title\">\n {{entry2Layer?.title}}\n </div>\n </div>\n <div class=\"description\">\n {{entry2Layer?.description}}\n </div>\n <div class=\"remote-element\">\n {{'eo.references.field.label' | translate}} {{entry2Layer.fieldLabel}}\n </div>\n </div>\n }\n </eo-simple-accordion>\n }\n </div>\n } @else {\n <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\n }\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".eo-references{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding);height:calc(100% - var(--app-pane-padding) * 2);box-sizing:border-box;display:flex;flex-flow:column}.eo-references .hidden{display:none!important}.eo-references .object-not-found{height:100%;display:flex;justify-content:center;align-items:center}.eo-references .object-not-found div{color:var(--text-color-caption)}.eo-references .form-buttons{width:100%;padding:calc(var(--app-pane-padding) / 2);height:44px;display:flex;justify-content:space-between;background:var(--color-white);box-sizing:border-box}.eo-references .form-buttons .result-list-link{text-decoration:none;color:inherit}.eo-references .form-buttons .result-list-link:hover{color:var(--color-accent)}.eo-references .form-buttons .gridlabels{display:flex;width:60%}.eo-references .form-buttons .gridlabel{border:1px solid var(--list-item-border-color);border-radius:4px;padding:0 calc(var(--app-pane-padding) / 2);display:flex;align-items:center;color:var(--text-color-caption);cursor:pointer;margin-right:calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;overflow:hidden}.eo-references .form-buttons .gridlabel span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .form-buttons .gridlabel:hover{color:var(--text-color-body);border-color:#0003}.eo-references .form-buttons .active{color:var(--text-color-body);border-color:#0003;background-color:var(--panel-background-grey)}.eo-references .form-buttons a.button{display:flex;align-items:center;overflow:hidden}.eo-references .form-buttons a.button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .eo-references-lists{flex:1;overflow:hidden;border-top:4px solid rgba(var(--color-black-rgb),.2)}.eo-references .eo-references-lists main{grid-area:main}.eo-references .eo-references-lists main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}.eo-references .eo-references-lists .resultlist-container{display:flex;flex-flow:column;height:100%;width:100%;overflow:auto}.eo-references .eo-references-lists .resultlist-container .notfound{color:var(--text-color-caption);display:flex;align-items:center;justify-content:center;height:100%}.eo-references .eo-references-lists .ag-result{position:absolute;inset:0}.eo-references .eo-references-lists .grid-wrapper{position:relative;flex:1}.referenceList{display:flex;flex-direction:column;border-radius:2px}.referenceList eo-simple-accordion{margin-top:var(--app-pane-padding);margin-left:calc(var(--app-pane-padding) / 2);margin-right:calc(var(--app-pane-padding) / 2)}.referenceList .content{cursor:pointer;margin-top:var(--app-pane-padding);margin-left:calc(var(--app-pane-padding) / 2);margin-bottom:calc(var(--app-pane-padding) / 2)}.referenceList .content:hover{background-color:var(--main-background-light)}.referenceList .title{padding-left:calc(var(--app-pane-padding) / 2);font-weight:var(--font-weight-bold)}.referenceList .description,.referenceList .remote-element{padding-left:calc(var(--app-pane-padding) / 2)}.referenceList .title,.referenceList .description,.referenceList .icon,.referenceList .remote-element{color:var(--text-color-caption)}\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: 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: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected"], outputs: ["selectChange"] }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
20246
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ObjectLinksComponent, selector: "eo-object-links", inputs: { dmsObject: "dmsObject" }, ngImport: i0, template: "<div class=\"eo-references\">\n <div class=\"object-not-found\" *ngIf=\"!inReferences?.length && !outReferences?.length; else refContainer\">\n <div>{{'eo.references.object.notfound' | translate}}</div>\n </div>\n\n <ng-template #refContainer>\n <div class=\"form-buttons\">\n <div class=\"gridlabels\">\n <div class=\"gridlabel\" [ngClass]=\"{'active': showInReferences}\" (click)=\"switchListVisibilityTo('in')\"\n title=\"{{'eo.references.to.label' | translate}}\">\n <span>{{'eo.references.to.label' | translate}}</span>\n </div>\n <div class=\"gridlabel\" [ngClass]=\"{'active': showOutReferences}\" (click)=\"switchListVisibilityTo('out')\"\n title=\"{{'eo.references.from.label' | translate}}\">\n <span>{{'eo.references.from.label' | translate}}</span>\n </div>\n </div>\n <a class=\"result-list-link\" [routerLink]=\"'/result'\" [queryParams]=\"superQueryParams\">\n <eo-icon class=\"icon\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\" [iconTitle]=\"('eo.references.open.resultlist' | translate)\"></eo-icon>\n </a>\n </div>\n\n <div class=\"eo-references-lists\">\n\n <!-- list of inReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showInReferences}\">\n @if (loading) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n } @else if (inReferences?.length) {\n <div class=\"referenceList\">\n @for (entry1Layer of inReferences; track entry1Layer) {\n <eo-simple-accordion\n [header]=\"entry1Layer.title\"\n [iconObjectType]=\"getObjectType(entry1Layer.type)\"\n [itemAmount]=\"entry1Layer.count\"\n [resultListLink]=\"getSearchLink(entry1Layer)\">\n @for (entry2Layer of entry1Layer.folder; track entry2Layer) {\n @for (entry3Layer of entry2Layer.folder; track entry3Layer) {\n <div class=\"content\" (click)=\"navigateToReference($event, entry3Layer)\">\n <div class=\"flex-row\">\n <div class=\"title\">\n {{entry3Layer?.title}}\n </div>\n </div>\n <div class=\"description\">\n {{entry3Layer?.description}}\n </div>\n <div class=\"remote-element\">\n {{'eo.references.field.label' | translate}} {{entry2Layer.title}}\n </div>\n </div>\n }\n }\n </eo-simple-accordion>\n }\n </div>\n } @else {\n <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\n }\n </div>\n\n <!-- list of outReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showOutReferences}\">\n @if (loading) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n } @else if (outReferences?.length) {\n <div class=\"referenceList\">\n @for (entry1Layer of outReferences; track entry1Layer) {\n <eo-simple-accordion\n [header]=\"entry1Layer.title\"\n [iconObjectType]=\"entry1Layer.objectType\"\n [itemAmount]=\"entry1Layer.folder.length\"\n [resultListLink]=\"getSearchLink(entry1Layer)\">\n @for (entry2Layer of entry1Layer.folder; track entry2Layer) {\n <div class=\"content\" (click)=\"navigateToReference($event, entry2Layer)\">\n <div class=\"flex-row\">\n <div class=\"title\">\n {{entry2Layer?.title}}\n </div>\n </div>\n <div class=\"description\">\n {{entry2Layer?.description}}\n </div>\n <div class=\"remote-element\">\n {{'eo.references.field.label' | translate}} {{entry2Layer.fieldLabel}}\n </div>\n </div>\n }\n </eo-simple-accordion>\n }\n </div>\n } @else {\n <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\n }\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".eo-references{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding);height:calc(100% - var(--app-pane-padding) * 2);box-sizing:border-box;display:flex;flex-flow:column}.eo-references .hidden{display:none!important}.eo-references .object-not-found{height:100%;display:flex;justify-content:center;align-items:center}.eo-references .object-not-found div{color:var(--text-color-caption)}.eo-references .form-buttons{width:100%;padding:calc(var(--app-pane-padding) / 2);height:44px;display:flex;justify-content:space-between;background:var(--color-white);box-sizing:border-box}.eo-references .form-buttons .result-list-link{text-decoration:none;color:inherit}.eo-references .form-buttons .result-list-link:hover{color:var(--color-accent)}.eo-references .form-buttons .gridlabels{display:flex;width:60%}.eo-references .form-buttons .gridlabel{border:1px solid var(--list-item-border-color);border-radius:4px;padding:0 calc(var(--app-pane-padding) / 2);display:flex;align-items:center;color:var(--text-color-caption);cursor:pointer;margin-right:calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;overflow:hidden}.eo-references .form-buttons .gridlabel span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .form-buttons .gridlabel:hover{color:var(--text-color-body);border-color:#0003}.eo-references .form-buttons .active{color:var(--text-color-body);border-color:#0003;background-color:var(--panel-background-grey)}.eo-references .form-buttons a.button{display:flex;align-items:center;overflow:hidden}.eo-references .form-buttons a.button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .eo-references-lists{flex:1;overflow:hidden;border-top:4px solid rgba(var(--color-black-rgb),.2)}.eo-references .eo-references-lists main{grid-area:main}.eo-references .eo-references-lists main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}.eo-references .eo-references-lists .resultlist-container{display:flex;flex-flow:column;height:100%;width:100%;overflow:auto}.eo-references .eo-references-lists .resultlist-container .notfound{color:var(--text-color-caption);display:flex;align-items:center;justify-content:center;height:100%}.eo-references .eo-references-lists .ag-result{position:absolute;inset:0}.eo-references .eo-references-lists .grid-wrapper{position:relative;flex:1}.referenceList{display:flex;flex-direction:column;border-radius:2px}.referenceList eo-simple-accordion{margin-top:var(--app-pane-padding);margin-left:calc(var(--app-pane-padding) / 2);margin-right:calc(var(--app-pane-padding) / 2)}.referenceList .content{cursor:pointer;margin-top:var(--app-pane-padding);margin-left:calc(var(--app-pane-padding) / 2);margin-bottom:calc(var(--app-pane-padding) / 2)}.referenceList .content:hover{background-color:var(--main-background-light)}.referenceList .title{padding-left:calc(var(--app-pane-padding) / 2);font-weight:var(--font-weight-bold)}.referenceList .description,.referenceList .remote-element{padding-left:calc(var(--app-pane-padding) / 2)}.referenceList .title,.referenceList .description,.referenceList .icon,.referenceList .remote-element{color:var(--text-color-caption)}\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: 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: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected", "item"], outputs: ["selectChange"] }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
20241
20247
  }
20242
20248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectLinksComponent, decorators: [{
20243
20249
  type: Component,
@@ -24080,14 +24086,14 @@ let ResultListComponent = class ResultListComponent {
24080
24086
  this.router.navigate(['/result'], uriParamQuery);
24081
24087
  }
24082
24088
  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 }); }
24083
- 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\" (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", "closeOnCancelOnly", "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" }] }); }
24089
+ 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 <eo-stored-query [query]=\"storedQuery\"\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\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\" (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", "closeOnCancelOnly", "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: StoredQueryComponent, selector: "eo-stored-query", inputs: ["query", "formOnly"], outputs: ["onQueryLoaded", "onQueryExecute"] }, { 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" }] }); }
24084
24090
  };
24085
24091
  ResultListComponent = ResultListComponent_1 = __decorate([
24086
24092
  UntilDestroy()
24087
24093
  ], ResultListComponent);
24088
24094
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResultListComponent, decorators: [{
24089
24095
  type: Component,
24090
- 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\" (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"] }]
24096
+ 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 <eo-stored-query [query]=\"storedQuery\"\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\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\" (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"] }]
24091
24097
  }], 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: [{
24092
24098
  type: ViewChild,
24093
24099
  args: ['eoGrid']
@@ -24414,10 +24420,10 @@ class AboutStateComponent {
24414
24420
  this.config = config;
24415
24421
  this.titleService = titleService;
24416
24422
  this.translate = translate;
24417
- 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.14.13", "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.22", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "fast-xml-parser", "version": "4.5.3", "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" }];
24423
+ 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.14.15", "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.23", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "fast-xml-parser", "version": "4.5.3", "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" }];
24418
24424
  this.ctrl = {
24419
24425
  componentName: 'yuuvis® RAD client',
24420
- componentVersion: '11.14.14',
24426
+ componentVersion: '11.14.16',
24421
24427
  productName: '',
24422
24428
  productVersion: ''
24423
24429
  };
@@ -25412,11 +25418,12 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
25412
25418
  get widgetConfig() {
25413
25419
  return this._widgetConfig;
25414
25420
  }
25415
- constructor(router, searchService, appSearchService, storedQueriesService, systemService) {
25421
+ constructor(router, searchService, appSearchService, storedQueriesService, translate, systemService) {
25416
25422
  this.router = router;
25417
25423
  this.searchService = searchService;
25418
25424
  this.appSearchService = appSearchService;
25419
25425
  this.storedQueriesService = storedQueriesService;
25426
+ this.translate = translate;
25420
25427
  this.systemService = systemService;
25421
25428
  this.sharedOptions = {
25422
25429
  title: '',
@@ -25429,7 +25436,25 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
25429
25436
  'alignment': 'center'
25430
25437
  },
25431
25438
  toolbar: {
25432
- enabled: false,
25439
+ controls: [{
25440
+ type: 'Export as CSV'
25441
+ },
25442
+ {
25443
+ type: 'Export as PNG'
25444
+ },
25445
+ {
25446
+ type: 'Export as JPG'
25447
+ }],
25448
+ enabled: true,
25449
+ },
25450
+ locale: {
25451
+ translations: {
25452
+ toolbar: {
25453
+ exportAsCSV: this.translate.instant('eo.widget.toolbar.export.label', { format: 'CSV' }),
25454
+ exportAsJPG: this.translate.instant('eo.widget.toolbar.export.label', { format: 'JPG' }),
25455
+ exportAsPNG: this.translate.instant('eo.widget.toolbar.export.label', { format: 'PNG' })
25456
+ }
25457
+ }
25433
25458
  },
25434
25459
  height: '400px',
25435
25460
  curve: 'curveMonotoneX',
@@ -25489,6 +25514,34 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
25489
25514
  this.rangeValues = [];
25490
25515
  this.editMode = false;
25491
25516
  }
25517
+ exportCsvWithSemicolon() {
25518
+ const chart = this.chartCmp?.chart;
25519
+ if (!chart) {
25520
+ return;
25521
+ }
25522
+ const { model, services } = chart;
25523
+ const { files, events } = services;
25524
+ if (!model || !files?.downloadCSV || !events?.dispatchEvent) {
25525
+ return;
25526
+ }
25527
+ model.exportToCSV = () => {
25528
+ const rows = model.getTabularDataArray();
25529
+ const csv = rows
25530
+ .map(row => row.map(v => this.sanitize(String(v))).join(this.translate.currentLang === 'de' ? ';' : ','))
25531
+ .join('\r\n');
25532
+ const baseName = this.widgetConfig?.formValue?.storedQuery?.trim() || 'chart-data';
25533
+ const filename = `${baseName}.csv`;
25534
+ files.downloadCSV(csv, filename, 'text/csv;charset=utf-8');
25535
+ events.dispatchEvent('export-csv');
25536
+ };
25537
+ }
25538
+ sanitize(cell) {
25539
+ const t = cell.trim();
25540
+ if (/^[=+\-@\t\r]/.test(t)) {
25541
+ return `\u00A0${t}`;
25542
+ }
25543
+ return /[,"\n]/.test(t) ? `"${t.replace(/"/g, '""')}"` : t;
25544
+ }
25492
25545
  getStoredQuery(id) {
25493
25546
  return this.storedQueriesService.getStoredQuery(id).pipe(untilDestroyed(this), tap$1(storedQuery => {
25494
25547
  this.storedQuery = storedQuery;
@@ -25763,16 +25816,24 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
25763
25816
  const url = window.location.href.split('/dashboard')[0] + '/result?' + queryParams;
25764
25817
  window.open(url, event?.ctrlKey || this.editMode ? '_blank' : '_self');
25765
25818
  }
25766
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChartsWidgetComponent, deps: [{ token: i2$1.Router }, { token: i1.SearchService }, { token: AppSearchService }, { token: i1.StoredQueriesService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
25767
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ChartsWidgetComponent, selector: "eo-charts-widget", inputs: { editMode: "editMode", widgetConfig: "widgetConfig" }, ngImport: i0, template: "<header>\n <div class=\"header-title\">\n @if (widgetConfig?.formValue?.storedQuery) {\n <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\n <div class=\"icons-title\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n }\n </div>\n</header>\n\n@if (refreshingRequest) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n} @else if (chartData.length > 0 && !refreshingRequest) {\n <main class=\"chart\">\n <div class=\"item\">\n @switch (widgetConfig!.formValue.chartType) {\n @case ('bar') {\n <ibm-simple-bar-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\n }\n @case ('pie') {\n <ibm-pie-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\n }\n @case ('donut') {\n <ibm-donut-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\n }\n @case ('lineStraight') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\n }\n @case ('lineCurve') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\n }\n }\n </div>\n @if (widgetConfig?.aggregationType === \"NUMBER\" && widgetConfig?.formValue?.aggregation !== 'sysdocument.filesize') {\n <div class=\"minMax\" [translateParams]=\"{min: widgetConfig?.formValue?.minValue, max: widgetConfig?.formValue?.maxValue }\" translate>eo.workspace.widget.charts.minmax</div>\n }\n </main>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:hidden}:host main.chart .item{height:92%;padding:calc(var(--app-pane-padding) / 2)}:host main.chart .minMax{display:flex;justify-content:center;font-family:IBM Plex Sans Condensed,system-ui,-apple-system,BlinkMacSystemFont,\".SFNSText-Regular\",sans-serif}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--chart-holder{height:100%!important}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-title)}::ng-deep .cds--cc--axes g.axis .axis-title{font-size:var(--font-subhead)}::ng-deep eo-icon.error__icon{max-width:fit-content;max-height:fit-content}::ng-deep eo-error-message{overflow-y:auto}::ng-deep .error__message{display:contents;max-width:fit-content;max-height:fit-content}\n"], dependencies: [{ 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: i8$1.SimpleBarChartComponent, selector: "ibm-simple-bar-chart" }, { kind: "component", type: i8$1.DonutChartComponent, selector: "ibm-donut-chart" }, { kind: "component", type: i8$1.LineChartComponent, selector: "ibm-line-chart" }, { kind: "component", type: i8$1.PieChartComponent, selector: "ibm-pie-chart" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
25819
+ ngAfterViewInit() {
25820
+ setTimeout(() => {
25821
+ this.exportCsvWithSemicolon();
25822
+ }, 500);
25823
+ }
25824
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChartsWidgetComponent, deps: [{ token: i2$1.Router }, { token: i1.SearchService }, { token: AppSearchService }, { token: i1.StoredQueriesService }, { token: i1.TranslateService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
25825
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ChartsWidgetComponent, selector: "eo-charts-widget", inputs: { editMode: "editMode", widgetConfig: "widgetConfig" }, viewQueries: [{ propertyName: "chartCmp", first: true, predicate: ["chart"], descendants: true }], ngImport: i0, template: "<header>\n <div class=\"header-title\">\n @if (widgetConfig?.formValue?.storedQuery) {\n <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\n <div class=\"icons-title\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n }\n </div>\n</header>\n\n@if (refreshingRequest) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n} @else if (chartData.length > 0 && !refreshingRequest) {\n <main class=\"chart\">\n <div class=\"item\">\n @switch (widgetConfig!.formValue.chartType) {\n @case ('bar') {\n <ibm-simple-bar-chart #chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\n }\n @case ('pie') {\n <ibm-pie-chart #chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\n }\n @case ('donut') {\n <ibm-donut-chart #chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\n }\n @case ('lineStraight') {\n <ibm-line-chart #chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\n }\n @case ('lineCurve') {\n <ibm-line-chart #chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\n }\n }\n </div>\n @if (widgetConfig?.aggregationType === \"NUMBER\" && widgetConfig?.formValue?.aggregation !== 'sysdocument.filesize') {\n <div class=\"minMax\" [translateParams]=\"{min: widgetConfig?.formValue?.minValue, max: widgetConfig?.formValue?.maxValue }\" translate>eo.workspace.widget.charts.minmax</div>\n }\n </main>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:hidden}:host main.chart .item{height:92%;padding:calc(var(--app-pane-padding) / 2)}:host main.chart .minMax{display:flex;justify-content:center;font-family:IBM Plex Sans Condensed,system-ui,-apple-system,BlinkMacSystemFont,\".SFNSText-Regular\",sans-serif}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--chart-holder{height:100%!important}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-title)}::ng-deep .cds--cc--axes g.axis .axis-title{font-size:var(--font-subhead)}::ng-deep .cds--cc--tooltip{display:none}::ng-deep eo-icon.error__icon{max-width:fit-content;max-height:fit-content}::ng-deep eo-error-message{overflow-y:auto}::ng-deep .error__message{display:contents;max-width:fit-content;max-height:fit-content}\n"], dependencies: [{ 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: i8$1.SimpleBarChartComponent, selector: "ibm-simple-bar-chart" }, { kind: "component", type: i8$1.DonutChartComponent, selector: "ibm-donut-chart" }, { kind: "component", type: i8$1.LineChartComponent, selector: "ibm-line-chart" }, { kind: "component", type: i8$1.PieChartComponent, selector: "ibm-pie-chart" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
25768
25826
  };
25769
25827
  ChartsWidgetComponent = __decorate([
25770
25828
  UntilDestroy()
25771
25829
  ], ChartsWidgetComponent);
25772
25830
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChartsWidgetComponent, decorators: [{
25773
25831
  type: Component,
25774
- args: [{ selector: 'eo-charts-widget', template: "<header>\n <div class=\"header-title\">\n @if (widgetConfig?.formValue?.storedQuery) {\n <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\n <div class=\"icons-title\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n }\n </div>\n</header>\n\n@if (refreshingRequest) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n} @else if (chartData.length > 0 && !refreshingRequest) {\n <main class=\"chart\">\n <div class=\"item\">\n @switch (widgetConfig!.formValue.chartType) {\n @case ('bar') {\n <ibm-simple-bar-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\n }\n @case ('pie') {\n <ibm-pie-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\n }\n @case ('donut') {\n <ibm-donut-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\n }\n @case ('lineStraight') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\n }\n @case ('lineCurve') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\n }\n }\n </div>\n @if (widgetConfig?.aggregationType === \"NUMBER\" && widgetConfig?.formValue?.aggregation !== 'sysdocument.filesize') {\n <div class=\"minMax\" [translateParams]=\"{min: widgetConfig?.formValue?.minValue, max: widgetConfig?.formValue?.maxValue }\" translate>eo.workspace.widget.charts.minmax</div>\n }\n </main>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:hidden}:host main.chart .item{height:92%;padding:calc(var(--app-pane-padding) / 2)}:host main.chart .minMax{display:flex;justify-content:center;font-family:IBM Plex Sans Condensed,system-ui,-apple-system,BlinkMacSystemFont,\".SFNSText-Regular\",sans-serif}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--chart-holder{height:100%!important}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-title)}::ng-deep .cds--cc--axes g.axis .axis-title{font-size:var(--font-subhead)}::ng-deep eo-icon.error__icon{max-width:fit-content;max-height:fit-content}::ng-deep eo-error-message{overflow-y:auto}::ng-deep .error__message{display:contents;max-width:fit-content;max-height:fit-content}\n"] }]
25775
- }], ctorParameters: () => [{ type: i2$1.Router }, { type: i1.SearchService }, { type: AppSearchService }, { type: i1.StoredQueriesService }, { type: i1.SystemService }], propDecorators: { editMode: [{
25832
+ args: [{ selector: 'eo-charts-widget', template: "<header>\n <div class=\"header-title\">\n @if (widgetConfig?.formValue?.storedQuery) {\n <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\n <div class=\"icons-title\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n }\n </div>\n</header>\n\n@if (refreshingRequest) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n} @else if (chartData.length > 0 && !refreshingRequest) {\n <main class=\"chart\">\n <div class=\"item\">\n @switch (widgetConfig!.formValue.chartType) {\n @case ('bar') {\n <ibm-simple-bar-chart #chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\n }\n @case ('pie') {\n <ibm-pie-chart #chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\n }\n @case ('donut') {\n <ibm-donut-chart #chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\n }\n @case ('lineStraight') {\n <ibm-line-chart #chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\n }\n @case ('lineCurve') {\n <ibm-line-chart #chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\n }\n }\n </div>\n @if (widgetConfig?.aggregationType === \"NUMBER\" && widgetConfig?.formValue?.aggregation !== 'sysdocument.filesize') {\n <div class=\"minMax\" [translateParams]=\"{min: widgetConfig?.formValue?.minValue, max: widgetConfig?.formValue?.maxValue }\" translate>eo.workspace.widget.charts.minmax</div>\n }\n </main>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:hidden}:host main.chart .item{height:92%;padding:calc(var(--app-pane-padding) / 2)}:host main.chart .minMax{display:flex;justify-content:center;font-family:IBM Plex Sans Condensed,system-ui,-apple-system,BlinkMacSystemFont,\".SFNSText-Regular\",sans-serif}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--chart-holder{height:100%!important}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-title)}::ng-deep .cds--cc--axes g.axis .axis-title{font-size:var(--font-subhead)}::ng-deep .cds--cc--tooltip{display:none}::ng-deep eo-icon.error__icon{max-width:fit-content;max-height:fit-content}::ng-deep eo-error-message{overflow-y:auto}::ng-deep .error__message{display:contents;max-width:fit-content;max-height:fit-content}\n"] }]
25833
+ }], ctorParameters: () => [{ type: i2$1.Router }, { type: i1.SearchService }, { type: AppSearchService }, { type: i1.StoredQueriesService }, { type: i1.TranslateService }, { type: i1.SystemService }], propDecorators: { chartCmp: [{
25834
+ type: ViewChild,
25835
+ args: ['chart']
25836
+ }], editMode: [{
25776
25837
  type: Input
25777
25838
  }], widgetConfig: [{
25778
25839
  type: Input
@@ -27072,32 +27133,44 @@ let DashboardComponent = class DashboardComponent {
27072
27133
  }
27073
27134
  loadWorkspacesConfig() {
27074
27135
  const workspaceOptions = this.userService.getCurrentUser().userSettings.workspaceOptions;
27075
- if (!workspaceOptions || Object.keys(workspaceOptions).length === 0 || workspaceOptions.workspaces.length === 0) {
27076
- this.http.get('assets/dashboard.json').subscribe({
27077
- next: (res) => {
27136
+ this.http.get('assets/dashboard.json').subscribe({
27137
+ next: (res) => {
27138
+ if (!workspaceOptions || Object.keys(workspaceOptions).length === 0 || workspaceOptions.workspaces.length === 0) {
27078
27139
  this.workspaceConfig = res;
27079
- this.workspaceConfig.workspaces[0].label = this.translate.instant(this.workspaceConfig.workspaces[0].label);
27080
- this.workspaceConfig.workspaces[0].grid.forEach(grid => {
27081
- if (grid.widgetConfig) {
27082
- grid.widgetConfig.title = this.translate.instant(grid.widgetConfig.title);
27083
- }
27084
- });
27085
- },
27086
- error: () => {
27087
- // no config file found
27140
+ if (!res.workspaces[0].preventEdit) {
27141
+ this.setWorkspaceLabels();
27142
+ }
27088
27143
  }
27089
- });
27090
- }
27091
- else {
27092
- this.workspaceConfig = this.userService.getCurrentUser().userSettings.workspaceOptions;
27093
- const currentWorkspace = this.storageService.getItem(this.STORAGE_KEY);
27094
- if (currentWorkspace && this.workspaceConfig.workspaces.map((w) => w.id).includes(currentWorkspace)) {
27095
- this.workspaceConfig.currentWorkspace = currentWorkspace;
27144
+ else {
27145
+ this.workspaceConfig = this.userService.getCurrentUser().userSettings.workspaceOptions;
27146
+ const currentWorkspace = this.storageService.getItem(this.STORAGE_KEY);
27147
+ if (currentWorkspace && this.workspaceConfig.workspaces.map((w) => w.id).includes(currentWorkspace)) {
27148
+ this.workspaceConfig.currentWorkspace = currentWorkspace;
27149
+ }
27150
+ else if (!!this.workspaceConfig.workspaces.length) {
27151
+ this.workspaceConfig.currentWorkspace = this.workspaceConfig.workspaces[0].id;
27152
+ }
27153
+ }
27154
+ if (res.workspaces[0].preventEdit) {
27155
+ this.workspaceConfig.workspaces[0] = res.workspaces[0];
27156
+ this.setWorkspaceLabels();
27157
+ if (this.userService.hasPrivilege('SAVE_SETTINGS')) {
27158
+ this.workspaceConfig.workspaces[0].preventEdit = false;
27159
+ }
27160
+ }
27161
+ },
27162
+ error: () => {
27163
+ // no config file found
27096
27164
  }
27097
- else if (!!this.workspaceConfig.workspaces.length) {
27098
- this.workspaceConfig.currentWorkspace = this.workspaceConfig.workspaces[0].id;
27165
+ });
27166
+ }
27167
+ setWorkspaceLabels() {
27168
+ this.workspaceConfig.workspaces[0].label = this.translate.instant(this.workspaceConfig.workspaces[0].label);
27169
+ this.workspaceConfig.workspaces[0].grid.forEach(grid => {
27170
+ if (grid.widgetConfig && (grid.id === 'yuv.wdg.infoIntray' || grid.id === 'yuv.wdg.infoInbox')) {
27171
+ grid.widgetConfig.title = this.translate.instant(grid.widgetConfig.title);
27099
27172
  }
27100
- }
27173
+ });
27101
27174
  }
27102
27175
  saveWorkspacesConfig(c) {
27103
27176
  // the selected workspace is saved on the device while the workspaces themselves are stored on the user service
@@ -27391,19 +27464,45 @@ let SettingsComponent = class SettingsComponent {
27391
27464
  this.saveLocalSettings().then();
27392
27465
  });
27393
27466
  }
27467
+ exportDefaultDashboard() {
27468
+ const workspaceOptions = this.userService.getCurrentUser().userSettings.workspaceOptions;
27469
+ if (workspaceOptions && Object.keys(workspaceOptions).length > 0 && workspaceOptions.workspaces.length > 0) {
27470
+ const defaultConfig = {
27471
+ currentWorkspace: 'yuv.default.dashboard',
27472
+ workspaces: [workspaceOptions.workspaces[0]]
27473
+ };
27474
+ defaultConfig.workspaces[0].label = 'eo.workspace.widget.default.dashboard';
27475
+ const intrayGridItem = defaultConfig.workspaces[0].grid.find(g => g.id === 'yuv.wdg.infoIntray');
27476
+ if (intrayGridItem) {
27477
+ intrayGridItem.widgetConfig.title = 'eo.dashboard.info.intray.msg';
27478
+ }
27479
+ const inboxGridItem = defaultConfig.workspaces[0].grid.find(g => g.id === 'yuv.wdg.infoInbox');
27480
+ if (inboxGridItem) {
27481
+ inboxGridItem.widgetConfig.title = 'eo.dashboard.info.inbox.msg';
27482
+ }
27483
+ const jsonString = JSON.stringify(defaultConfig);
27484
+ const file = new Blob([jsonString], { type: 'application/json' });
27485
+ const url = window.URL.createObjectURL(file);
27486
+ const a = document.createElement('a');
27487
+ a.href = url;
27488
+ a.download = 'dashboard.json';
27489
+ a.click();
27490
+ window.URL.revokeObjectURL(url);
27491
+ }
27492
+ }
27394
27493
  resetImageTarget(event) {
27395
27494
  const element = event.target;
27396
27495
  element.value = null;
27397
27496
  }
27398
27497
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SettingsComponent, deps: [{ token: i0.Renderer2 }, { token: i1.UserService }, { token: i1.Config }, { token: i1.NotificationsService }, { token: i1.SystemService }, { token: i1.EventService }, { token: i1.CapabilitiesService }, { token: PageTitleService }, { token: AgentService }, { token: i1$3.UntypedFormBuilder }, { token: i1.AppCacheService }, { token: i1.LocalStorageService }, { token: i1.TranslateService }, { token: i0.ElementRef }, { token: i1.NotificationsService }, { token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
27399
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: SettingsComponent, selector: "eo-settings", viewQueries: [{ propertyName: "files", first: true, predicate: ["files"], descendants: true }, { propertyName: "headerBg", first: true, predicate: ["headerBg"], descendants: true }, { propertyName: "userAvatar", first: true, predicate: ["userAvatar"], descendants: true }, { propertyName: "confirmDeleteBtn", first: true, predicate: ["confirmDeleteBtn"], descendants: true }, { propertyName: "profileImageOverlay", first: true, predicate: ["profileImageOverlay"], descendants: true }, { propertyName: "deputiesForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"resetImageTarget($event)\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img loading=\"lazy\" [src]=\"preview\">\n </div>\n <div class=\"user-avatar\" *ngIf=\"preview\">\n <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry deputies\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section *ngIf=\"showChangePassword\" class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <yvc-dropdown class=\"clientLocale\" [(ngModel)]=\"clientOption\" (ngModelChange)=\"changeClientLocale($event)\"\n [disableClearButton]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"clientLocaleOptions\"></yvc-dropdown>\n </div>\n </div>\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <yvc-dropdown class=\"schemaLocale\" [ngModel]=\"schemaOption\" (ngModelChange)=\"changeSchemaLocale($event)\"\n [disableClearButton]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"schemaLocaleOptions\"></yvc-dropdown>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\" [ngClass]=\"{undisplay: !user?.roles}\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.localSettings</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\n <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\n <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\n </div>\n </div>\n </div>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\n translate>eo.state.settings.dashboard.button.reset</button>\n </div>\n</eo-dialog>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.cta.button.delete</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center}:host .cache{display:flex;flex-flow:row;margin:0 var(--app-pane-padding)}.eo-settings{margin:var(--app-pane-padding);box-sizing:border-box;width:800px;background:var(--color-white);display:flex;flex-flow:column;box-shadow:0 2px 5px #0003}@media screen and (max-width: 832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{min-height:200px;max-height:300px;position:relative;flex:1 1}@media screen and (max-width: 480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{margin:0;padding:0;font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em}.eo-settings .header .meta{margin:calc(var(--app-pane-padding) / 2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding) * 2)}.eo-settings .header .bg{position:absolute;inset:0;background-size:cover;background-position:center center;filter:grayscale(1)}.eo-settings .header .fill{position:absolute;inset:0;background:rgba(var(--color-primary-rgb),.85);color:var(--color-white);padding:var(--app-pane-padding)}.eo-settings .header .userImage{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);background-size:cover;width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .userImage{width:105px;height:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .overlay{width:105px;height:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus{border-color:var(--color-accent);opacity:2}.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:100}.eo-settings .header .overlay .updateMessage{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#c0bcbcf1;background-clip:border-box}.eo-settings .header .overlay .updateMessage eo-icon{color:var(--color-white);width:48px;height:48px;opacity:.5;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}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{padding:var(--app-pane-padding);box-sizing:border-box;position:absolute;inset:0;overflow-y:auto;overflow-x:hidden}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding) / 4)}.eo-settings .body .section.section-deputies form .actions button{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-radius:2px}.eo-settings .body .section.section-deputies form.dirty{padding:2px;background-color:rgba(var(--color-black-rgb),.06)}.eo-settings .body .section.section-deputies .entry.deputies .values{padding:0 2px;border:1px solid var(--eo-chips-border-color);border-radius:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{display:flex;align-items:center;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{width:calc(var(--app-pane-padding) * .75);height:calc(var(--app-pane-padding) * .6);border-radius:4px;border:0;color:var(--color-white)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;padding:0 0 2px 2px;min-height:27px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{opacity:1;border-color:transparent}.eo-settings .body .section.undisplay{display:none}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{margin:0;padding:0 0 0 150px;color:var(--text-color-caption);font-weight:var(--font-weight-normal);font-size:var(--font-subhead)}@media screen and (max-width: 480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{overflow:hidden;opacity:0;height:0;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{opacity:1;height:100%}@media screen and (max-width: 480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{flex:0 0 150px;color:var(--text-color-caption)}@media screen and (max-width: 480px){.eo-settings .body .section .entry .label{margin-bottom:calc(var(--app-pane-padding) / 2);flex:0 0 auto}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{margin:0 4px 4px 0;cursor:pointer}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{display:flex;align-items:center}.eo-settings .body .section .entry .use-agent .use-agent-label{margin:0 calc(var(--app-pane-padding) / 2);color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{display:flex;flex-flow:column;align-items:flex-start}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section .values.roles .role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}.eo-settings .body .toggle-btn{display:inline-block;padding:2px 5px;border-radius:2px;-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption);cursor:pointer;margin-right:3px;text-decoration:none}.eo-settings.rtl .header .userImage{right:auto;left:var(--app-pane-padding)}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{width:100%;height:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media screen and (max-width: 480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{width:100%;height:100%;display:flex;align-items:center;justify-content:space-around;margin:5px 60px 0}::ng-deep .view .contain .attachments .atta{position:relative;display:block;padding:0;margin-inline:10px;margin-top:10px}::ng-deep .view .contain .attachments .atta img{max-width:200px;max-height:200px;min-width:80px;min-height:80px;border:2px solid #5c5959;box-sizing:border-box}::ng-deep .view .contain .attachments .user-avatar{display:flex;margin-right:109px;align-items:center}::ng-deep .view .contain .attachments .user-avatar .preview-round{width:90px;height:90px;border-radius:50%;border:2px solid #5c5959}::ng-deep .view .button-block{display:flex;margin:8px;justify-content:right}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .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 .yvc-dropdown{min-width:16ch!important}\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$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.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: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], 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: "directive", type: RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "closeOnCancelOnly", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected"], outputs: ["selectChange"] }, { kind: "component", type: OrganizationComponent, selector: "eo-organization", inputs: ["removeCurrentUser", "situation", "formControlName", "multiselect", "readonly", "dataMeta", "placeholder", "exceptions", "filterObject", "formControl", "isTableElement"], outputs: ["onValueResolved", "onDataMetaChanged"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: ChangePasswordFormComponent, selector: "eo-change-password-form", inputs: ["userRegex"], outputs: ["onFormSumbit"] }, { kind: "component", type: PermissionsComponent, selector: "eo-permissions", inputs: ["roles"] }, { kind: "component", type: i8.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"], outputs: ["onDropdownOptionsClose"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
27498
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SettingsComponent, selector: "eo-settings", viewQueries: [{ propertyName: "files", first: true, predicate: ["files"], descendants: true }, { propertyName: "headerBg", first: true, predicate: ["headerBg"], descendants: true }, { propertyName: "userAvatar", first: true, predicate: ["userAvatar"], descendants: true }, { propertyName: "confirmDeleteBtn", first: true, predicate: ["confirmDeleteBtn"], descendants: true }, { propertyName: "profileImageOverlay", first: true, predicate: ["profileImageOverlay"], descendants: true }, { propertyName: "deputiesForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"resetImageTarget($event)\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img loading=\"lazy\" [src]=\"preview\">\n </div>\n <div class=\"user-avatar\" *ngIf=\"preview\">\n <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry deputies\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section *ngIf=\"showChangePassword\" class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <yvc-dropdown class=\"clientLocale\" [(ngModel)]=\"clientOption\" (ngModelChange)=\"changeClientLocale($event)\"\n [disableClearButton]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"clientLocaleOptions\"></yvc-dropdown>\n </div>\n </div>\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <yvc-dropdown class=\"schemaLocale\" [ngModel]=\"schemaOption\" (ngModelChange)=\"changeSchemaLocale($event)\"\n [disableClearButton]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"schemaLocaleOptions\"></yvc-dropdown>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\" [ngClass]=\"{undisplay: !user?.roles}\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.localSettings</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\n <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\n <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\n </div>\n </div>\n </div>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\n @if (hasPrivilege('SAVE_SETTINGS')) {\n <button translate (click)=\"exportDefaultDashboard()\">eo.state.settings.dashboard.button.export</button>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\n translate>eo.state.settings.dashboard.button.reset</button>\n </div>\n</eo-dialog>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.cta.button.delete</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center}:host .cache{display:flex;flex-flow:row;margin:0 var(--app-pane-padding)}.eo-settings{margin:var(--app-pane-padding);box-sizing:border-box;width:800px;background:var(--color-white);display:flex;flex-flow:column;box-shadow:0 2px 5px #0003}@media screen and (max-width: 832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{min-height:200px;max-height:300px;position:relative;flex:1 1}@media screen and (max-width: 480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{margin:0;padding:0;font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em}.eo-settings .header .meta{margin:calc(var(--app-pane-padding) / 2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding) * 2)}.eo-settings .header .bg{position:absolute;inset:0;background-size:cover;background-position:center center;filter:grayscale(1)}.eo-settings .header .fill{position:absolute;inset:0;background:rgba(var(--color-primary-rgb),.85);color:var(--color-white);padding:var(--app-pane-padding)}.eo-settings .header .userImage{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);background-size:cover;width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .userImage{width:105px;height:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .overlay{width:105px;height:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus{border-color:var(--color-accent);opacity:2}.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:100}.eo-settings .header .overlay .updateMessage{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#c0bcbcf1;background-clip:border-box}.eo-settings .header .overlay .updateMessage eo-icon{color:var(--color-white);width:48px;height:48px;opacity:.5;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}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{padding:var(--app-pane-padding);box-sizing:border-box;position:absolute;inset:0;overflow-y:auto;overflow-x:hidden}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding) / 4)}.eo-settings .body .section.section-deputies form .actions button{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-radius:2px}.eo-settings .body .section.section-deputies form.dirty{padding:2px;background-color:rgba(var(--color-black-rgb),.06)}.eo-settings .body .section.section-deputies .entry.deputies .values{padding:0 2px;border:1px solid var(--eo-chips-border-color);border-radius:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{display:flex;align-items:center;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{width:calc(var(--app-pane-padding) * .75);height:calc(var(--app-pane-padding) * .6);border-radius:4px;border:0;color:var(--color-white)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;padding:0 0 2px 2px;min-height:27px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{opacity:1;border-color:transparent}.eo-settings .body .section.undisplay{display:none}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{margin:0;padding:0 0 0 150px;color:var(--text-color-caption);font-weight:var(--font-weight-normal);font-size:var(--font-subhead)}@media screen and (max-width: 480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{overflow:hidden;opacity:0;height:0;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{opacity:1;height:100%}@media screen and (max-width: 480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{flex:0 0 150px;color:var(--text-color-caption)}@media screen and (max-width: 480px){.eo-settings .body .section .entry .label{margin-bottom:calc(var(--app-pane-padding) / 2);flex:0 0 auto}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{margin:0 4px 4px 0;cursor:pointer}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{display:flex;align-items:center}.eo-settings .body .section .entry .use-agent .use-agent-label{margin:0 calc(var(--app-pane-padding) / 2);color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{display:flex;flex-flow:column;align-items:flex-start}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section .values.roles .role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}.eo-settings .body .toggle-btn{display:inline-block;padding:2px 5px;border-radius:2px;-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption);cursor:pointer;margin-right:3px;text-decoration:none}.eo-settings.rtl .header .userImage{right:auto;left:var(--app-pane-padding)}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{width:100%;height:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media screen and (max-width: 480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{width:100%;height:100%;display:flex;align-items:center;justify-content:space-around;margin:5px 60px 0}::ng-deep .view .contain .attachments .atta{position:relative;display:block;padding:0;margin-inline:10px;margin-top:10px}::ng-deep .view .contain .attachments .atta img{max-width:200px;max-height:200px;min-width:80px;min-height:80px;border:2px solid #5c5959;box-sizing:border-box}::ng-deep .view .contain .attachments .user-avatar{display:flex;margin-right:109px;align-items:center}::ng-deep .view .contain .attachments .user-avatar .preview-round{width:90px;height:90px;border-radius:50%;border:2px solid #5c5959}::ng-deep .view .button-block{display:flex;margin:8px;justify-content:right}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .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 .yvc-dropdown{min-width:16ch!important}\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$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.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: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], 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: "directive", type: RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "component", type: EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "closeOnCancelOnly", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected", "item"], outputs: ["selectChange"] }, { kind: "component", type: OrganizationComponent, selector: "eo-organization", inputs: ["removeCurrentUser", "situation", "formControlName", "multiselect", "readonly", "dataMeta", "placeholder", "exceptions", "filterObject", "formControl", "isTableElement"], outputs: ["onValueResolved", "onDataMetaChanged"] }, { kind: "component", type: CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: ChangePasswordFormComponent, selector: "eo-change-password-form", inputs: ["userRegex"], outputs: ["onFormSumbit"] }, { kind: "component", type: PermissionsComponent, selector: "eo-permissions", inputs: ["roles"] }, { kind: "component", type: i8.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"], outputs: ["onDropdownOptionsClose"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
27400
27499
  };
27401
27500
  SettingsComponent = __decorate([
27402
27501
  UntilDestroy()
27403
27502
  ], SettingsComponent);
27404
27503
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SettingsComponent, decorators: [{
27405
27504
  type: Component,
27406
- args: [{ selector: 'eo-settings', template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"resetImageTarget($event)\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img loading=\"lazy\" [src]=\"preview\">\n </div>\n <div class=\"user-avatar\" *ngIf=\"preview\">\n <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry deputies\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section *ngIf=\"showChangePassword\" class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <yvc-dropdown class=\"clientLocale\" [(ngModel)]=\"clientOption\" (ngModelChange)=\"changeClientLocale($event)\"\n [disableClearButton]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"clientLocaleOptions\"></yvc-dropdown>\n </div>\n </div>\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <yvc-dropdown class=\"schemaLocale\" [ngModel]=\"schemaOption\" (ngModelChange)=\"changeSchemaLocale($event)\"\n [disableClearButton]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"schemaLocaleOptions\"></yvc-dropdown>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\" [ngClass]=\"{undisplay: !user?.roles}\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.localSettings</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\n <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\n <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\n </div>\n </div>\n </div>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\n translate>eo.state.settings.dashboard.button.reset</button>\n </div>\n</eo-dialog>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.cta.button.delete</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center}:host .cache{display:flex;flex-flow:row;margin:0 var(--app-pane-padding)}.eo-settings{margin:var(--app-pane-padding);box-sizing:border-box;width:800px;background:var(--color-white);display:flex;flex-flow:column;box-shadow:0 2px 5px #0003}@media screen and (max-width: 832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{min-height:200px;max-height:300px;position:relative;flex:1 1}@media screen and (max-width: 480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{margin:0;padding:0;font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em}.eo-settings .header .meta{margin:calc(var(--app-pane-padding) / 2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding) * 2)}.eo-settings .header .bg{position:absolute;inset:0;background-size:cover;background-position:center center;filter:grayscale(1)}.eo-settings .header .fill{position:absolute;inset:0;background:rgba(var(--color-primary-rgb),.85);color:var(--color-white);padding:var(--app-pane-padding)}.eo-settings .header .userImage{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);background-size:cover;width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .userImage{width:105px;height:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .overlay{width:105px;height:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus{border-color:var(--color-accent);opacity:2}.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:100}.eo-settings .header .overlay .updateMessage{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#c0bcbcf1;background-clip:border-box}.eo-settings .header .overlay .updateMessage eo-icon{color:var(--color-white);width:48px;height:48px;opacity:.5;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}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{padding:var(--app-pane-padding);box-sizing:border-box;position:absolute;inset:0;overflow-y:auto;overflow-x:hidden}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding) / 4)}.eo-settings .body .section.section-deputies form .actions button{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-radius:2px}.eo-settings .body .section.section-deputies form.dirty{padding:2px;background-color:rgba(var(--color-black-rgb),.06)}.eo-settings .body .section.section-deputies .entry.deputies .values{padding:0 2px;border:1px solid var(--eo-chips-border-color);border-radius:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{display:flex;align-items:center;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{width:calc(var(--app-pane-padding) * .75);height:calc(var(--app-pane-padding) * .6);border-radius:4px;border:0;color:var(--color-white)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;padding:0 0 2px 2px;min-height:27px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{opacity:1;border-color:transparent}.eo-settings .body .section.undisplay{display:none}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{margin:0;padding:0 0 0 150px;color:var(--text-color-caption);font-weight:var(--font-weight-normal);font-size:var(--font-subhead)}@media screen and (max-width: 480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{overflow:hidden;opacity:0;height:0;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{opacity:1;height:100%}@media screen and (max-width: 480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{flex:0 0 150px;color:var(--text-color-caption)}@media screen and (max-width: 480px){.eo-settings .body .section .entry .label{margin-bottom:calc(var(--app-pane-padding) / 2);flex:0 0 auto}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{margin:0 4px 4px 0;cursor:pointer}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{display:flex;align-items:center}.eo-settings .body .section .entry .use-agent .use-agent-label{margin:0 calc(var(--app-pane-padding) / 2);color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{display:flex;flex-flow:column;align-items:flex-start}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section .values.roles .role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}.eo-settings .body .toggle-btn{display:inline-block;padding:2px 5px;border-radius:2px;-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption);cursor:pointer;margin-right:3px;text-decoration:none}.eo-settings.rtl .header .userImage{right:auto;left:var(--app-pane-padding)}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{width:100%;height:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media screen and (max-width: 480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{width:100%;height:100%;display:flex;align-items:center;justify-content:space-around;margin:5px 60px 0}::ng-deep .view .contain .attachments .atta{position:relative;display:block;padding:0;margin-inline:10px;margin-top:10px}::ng-deep .view .contain .attachments .atta img{max-width:200px;max-height:200px;min-width:80px;min-height:80px;border:2px solid #5c5959;box-sizing:border-box}::ng-deep .view .contain .attachments .user-avatar{display:flex;margin-right:109px;align-items:center}::ng-deep .view .contain .attachments .user-avatar .preview-round{width:90px;height:90px;border-radius:50%;border:2px solid #5c5959}::ng-deep .view .button-block{display:flex;margin:8px;justify-content:right}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .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 .yvc-dropdown{min-width:16ch!important}\n"] }]
27505
+ args: [{ selector: 'eo-settings', template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"resetImageTarget($event)\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img loading=\"lazy\" [src]=\"preview\">\n </div>\n <div class=\"user-avatar\" *ngIf=\"preview\">\n <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry deputies\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.cta.button.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section *ngIf=\"showChangePassword\" class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <yvc-dropdown class=\"clientLocale\" [(ngModel)]=\"clientOption\" (ngModelChange)=\"changeClientLocale($event)\"\n [disableClearButton]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"clientLocaleOptions\"></yvc-dropdown>\n </div>\n </div>\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <yvc-dropdown class=\"schemaLocale\" [ngModel]=\"schemaOption\" (ngModelChange)=\"changeSchemaLocale($event)\"\n [disableClearButton]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n [options]=\"schemaLocaleOptions\"></yvc-dropdown>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\" [ngClass]=\"{undisplay: !user?.roles}\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.localSettings</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\n <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\n <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\n </div>\n </div>\n </div>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\n @if (hasPrivilege('SAVE_SETTINGS')) {\n <button translate (click)=\"exportDefaultDashboard()\">eo.state.settings.dashboard.button.export</button>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\n translate>eo.state.settings.dashboard.button.reset</button>\n </div>\n</eo-dialog>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.cta.button.delete</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center}:host .cache{display:flex;flex-flow:row;margin:0 var(--app-pane-padding)}.eo-settings{margin:var(--app-pane-padding);box-sizing:border-box;width:800px;background:var(--color-white);display:flex;flex-flow:column;box-shadow:0 2px 5px #0003}@media screen and (max-width: 832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{min-height:200px;max-height:300px;position:relative;flex:1 1}@media screen and (max-width: 480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{margin:0;padding:0;font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em}.eo-settings .header .meta{margin:calc(var(--app-pane-padding) / 2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding) * 2)}.eo-settings .header .bg{position:absolute;inset:0;background-size:cover;background-position:center center;filter:grayscale(1)}.eo-settings .header .fill{position:absolute;inset:0;background:rgba(var(--color-primary-rgb),.85);color:var(--color-white);padding:var(--app-pane-padding)}.eo-settings .header .userImage{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);background-size:cover;width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .userImage{width:105px;height:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .overlay{width:105px;height:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus{border-color:var(--color-accent);opacity:2}.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:100}.eo-settings .header .overlay .updateMessage{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#c0bcbcf1;background-clip:border-box}.eo-settings .header .overlay .updateMessage eo-icon{color:var(--color-white);width:48px;height:48px;opacity:.5;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}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{padding:var(--app-pane-padding);box-sizing:border-box;position:absolute;inset:0;overflow-y:auto;overflow-x:hidden}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding) / 4)}.eo-settings .body .section.section-deputies form .actions button{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-radius:2px}.eo-settings .body .section.section-deputies form.dirty{padding:2px;background-color:rgba(var(--color-black-rgb),.06)}.eo-settings .body .section.section-deputies .entry.deputies .values{padding:0 2px;border:1px solid var(--eo-chips-border-color);border-radius:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{display:flex;align-items:center;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{width:calc(var(--app-pane-padding) * .75);height:calc(var(--app-pane-padding) * .6);border-radius:4px;border:0;color:var(--color-white)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;padding:0 0 2px 2px;min-height:27px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{opacity:1;border-color:transparent}.eo-settings .body .section.undisplay{display:none}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{margin:0;padding:0 0 0 150px;color:var(--text-color-caption);font-weight:var(--font-weight-normal);font-size:var(--font-subhead)}@media screen and (max-width: 480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{overflow:hidden;opacity:0;height:0;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{opacity:1;height:100%}@media screen and (max-width: 480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{flex:0 0 150px;color:var(--text-color-caption)}@media screen and (max-width: 480px){.eo-settings .body .section .entry .label{margin-bottom:calc(var(--app-pane-padding) / 2);flex:0 0 auto}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{margin:0 4px 4px 0;cursor:pointer}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{display:flex;align-items:center}.eo-settings .body .section .entry .use-agent .use-agent-label{margin:0 calc(var(--app-pane-padding) / 2);color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{display:flex;flex-flow:column;align-items:flex-start}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section .values.roles .role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}.eo-settings .body .toggle-btn{display:inline-block;padding:2px 5px;border-radius:2px;-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption);cursor:pointer;margin-right:3px;text-decoration:none}.eo-settings.rtl .header .userImage{right:auto;left:var(--app-pane-padding)}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{width:100%;height:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media screen and (max-width: 480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{width:100%;height:100%;display:flex;align-items:center;justify-content:space-around;margin:5px 60px 0}::ng-deep .view .contain .attachments .atta{position:relative;display:block;padding:0;margin-inline:10px;margin-top:10px}::ng-deep .view .contain .attachments .atta img{max-width:200px;max-height:200px;min-width:80px;min-height:80px;border:2px solid #5c5959;box-sizing:border-box}::ng-deep .view .contain .attachments .user-avatar{display:flex;margin-right:109px;align-items:center}::ng-deep .view .contain .attachments .user-avatar .preview-round{width:90px;height:90px;border-radius:50%;border:2px solid #5c5959}::ng-deep .view .button-block{display:flex;margin:8px;justify-content:right}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .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 .yvc-dropdown{min-width:16ch!important}\n"] }]
27407
27506
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1.UserService }, { type: i1.Config }, { type: i1.NotificationsService }, { type: i1.SystemService }, { type: i1.EventService }, { type: i1.CapabilitiesService }, { type: PageTitleService }, { type: AgentService }, { type: i1$3.UntypedFormBuilder }, { type: i1.AppCacheService }, { type: i1.LocalStorageService }, { type: i1.TranslateService }, { type: i0.ElementRef }, { type: i1.NotificationsService }, { type: i1.AuthService }], propDecorators: { files: [{
27408
27507
  type: ViewChild,
27409
27508
  args: ['files']