@eo-sdk/client 11.0.2 → 11.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18136,11 +18136,11 @@ class UploadOverlayComponent {
18136
18136
  }
18137
18137
  }
18138
18138
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UploadOverlayComponent, deps: [{ token: i2$1.Router }, { token: i0.Renderer2 }, { token: i1.PrepareService }, { token: i1.TranslateService }, { token: i1.SystemService }, { token: i1.EventService }, { token: i1.UploadRegistryService }], target: i0.ɵɵFactoryTarget.Component }); }
18139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", 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]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, 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 <h1 translate>eo.upload.global.headline</h1>\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.upload.global.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" 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 <!-- list of available upload targets -->\n <div class=\"targets\">\n\n <div class=\"target-list\">\n\n <h2 translate>eo.upload.global.target</h2>\n\n <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\n (click)=\"proceedWithUpload(t)\"\n [ngSwitch]=\"t.type\">\n\n <!-- upload to root -->\n <ng-container *ngSwitchCase=\"'root'\" >\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document.svg'\"></eo-icon>\n <div class=\"upload-target-general\">\n <div class=\"name\" translate>eo.upload.global.root.title</div>\n <div class=\"description\" translate>eo.upload.global.root.description</div>\n </div>\n </ng-container>\n\n <!-- replace file of a specific dms object -->\n <ng-container *ngSwitchCase=\"'object'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_add_document_file_as_new_version.svg'\"></eo-icon>\n <div class=\"upload-target-replace\">\n <div class=\"name\" *ngIf=\"t.referenceObject.content;else nocontent\" translate>eo.upload.global.object.title</div>\n <ng-template #nocontent>\n <div class=\"name\" translate>eo.upload.global.object.title.nocontent</div>\n </ng-template>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder -->\n <ng-container *ngSwitchCase=\"'context'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-context\">\n <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder structure tree entry -->\n <ng-container *ngSwitchCase=\"'contexttree'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-contexttree\">\n <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\n </div>\n </ng-container>\n\n <!-- custom upload target (e.g. from plugin component) -->\n <ng-container *ngSwitchCase=\"'custom'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n <div class=\"upload-target-custom\">\n <div class=\"name\">{{t.name}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n\n </div>\n\n <!-- list of files dragged to the component -->\n <div class=\"files\">\n <div class=\"files-list\">\n <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\">&nbsp;{{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\n\n\n</div>\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:auto}:host #eo-upload-overlay h1{font-size:4em;font-weight:300;color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration)}: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;max-height:100%;margin:var(--app-pane-padding)}: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 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)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead)}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{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{order:0;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;flex-flow:row nowrap;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)}: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.hasFiles .uploady{display:none}:host #eo-upload-overlay.hasFiles .count{display:flex}:host #eo-upload-overlay.hasFiles .contents{display:flex}:host #eo-upload-overlay.singleFile .contents{flex-flow:column}:host #eo-upload-overlay.singleFile .contents .files{padding:0;order:1}:host #eo-upload-overlay.singleFile .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}@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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }] }); }
18139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", 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]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, 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 <h1 translate>eo.upload.global.headline</h1>\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.upload.global.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" 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 <!-- list of available upload targets -->\n <div class=\"targets\">\n\n <div class=\"target-list\">\n\n <h2 translate>eo.upload.global.target</h2>\n\n <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\n (click)=\"proceedWithUpload(t)\"\n [ngSwitch]=\"t.type\">\n\n <!-- upload to root -->\n <ng-container *ngSwitchCase=\"'root'\" >\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document.svg'\"></eo-icon>\n <div class=\"upload-target-general\">\n <div class=\"name\" translate>eo.upload.global.root.title</div>\n <div class=\"description\" translate>eo.upload.global.root.description</div>\n </div>\n </ng-container>\n\n <!-- replace file of a specific dms object -->\n <ng-container *ngSwitchCase=\"'object'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_add_document_file_as_new_version.svg'\"></eo-icon>\n <div class=\"upload-target-replace\">\n <div class=\"name\" translate>eo.upload.global.object.title</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder -->\n <ng-container *ngSwitchCase=\"'context'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-context\">\n <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder structure tree entry -->\n <ng-container *ngSwitchCase=\"'contexttree'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-contexttree\">\n <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\n </div>\n </ng-container>\n\n <!-- custom upload target (e.g. from plugin component) -->\n <ng-container *ngSwitchCase=\"'custom'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n <div class=\"upload-target-custom\">\n <div class=\"name\">{{t.name}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n\n </div>\n\n <!-- list of files dragged to the component -->\n <div class=\"files\">\n <div class=\"files-list\">\n <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\">&nbsp;{{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\n\n\n</div>\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:auto}:host #eo-upload-overlay h1{font-size:4em;font-weight:300;color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration)}: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;max-height:100%;margin:var(--app-pane-padding)}: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 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)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead)}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{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{order:0;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;flex-flow:row nowrap;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)}: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.hasFiles .uploady{display:none}:host #eo-upload-overlay.hasFiles .count{display:flex}:host #eo-upload-overlay.hasFiles .contents{display:flex}:host #eo-upload-overlay.singleFile .contents{flex-flow:column}:host #eo-upload-overlay.singleFile .contents .files{padding:0;order:1}:host #eo-upload-overlay.singleFile .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}@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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }] }); }
18140
18140
  }
18141
18141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UploadOverlayComponent, decorators: [{
18142
18142
  type: Component,
18143
- args: [{ selector: 'eo-upload-overlay', template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, 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 <h1 translate>eo.upload.global.headline</h1>\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.upload.global.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" 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 <!-- list of available upload targets -->\n <div class=\"targets\">\n\n <div class=\"target-list\">\n\n <h2 translate>eo.upload.global.target</h2>\n\n <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\n (click)=\"proceedWithUpload(t)\"\n [ngSwitch]=\"t.type\">\n\n <!-- upload to root -->\n <ng-container *ngSwitchCase=\"'root'\" >\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document.svg'\"></eo-icon>\n <div class=\"upload-target-general\">\n <div class=\"name\" translate>eo.upload.global.root.title</div>\n <div class=\"description\" translate>eo.upload.global.root.description</div>\n </div>\n </ng-container>\n\n <!-- replace file of a specific dms object -->\n <ng-container *ngSwitchCase=\"'object'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_add_document_file_as_new_version.svg'\"></eo-icon>\n <div class=\"upload-target-replace\">\n <div class=\"name\" *ngIf=\"t.referenceObject.content;else nocontent\" translate>eo.upload.global.object.title</div>\n <ng-template #nocontent>\n <div class=\"name\" translate>eo.upload.global.object.title.nocontent</div>\n </ng-template>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder -->\n <ng-container *ngSwitchCase=\"'context'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-context\">\n <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder structure tree entry -->\n <ng-container *ngSwitchCase=\"'contexttree'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-contexttree\">\n <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\n </div>\n </ng-container>\n\n <!-- custom upload target (e.g. from plugin component) -->\n <ng-container *ngSwitchCase=\"'custom'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n <div class=\"upload-target-custom\">\n <div class=\"name\">{{t.name}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n\n </div>\n\n <!-- list of files dragged to the component -->\n <div class=\"files\">\n <div class=\"files-list\">\n <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\">&nbsp;{{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\n\n\n</div>\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:auto}:host #eo-upload-overlay h1{font-size:4em;font-weight:300;color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration)}: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;max-height:100%;margin:var(--app-pane-padding)}: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 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)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead)}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{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{order:0;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;flex-flow:row nowrap;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)}: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.hasFiles .uploady{display:none}:host #eo-upload-overlay.hasFiles .count{display:flex}:host #eo-upload-overlay.hasFiles .contents{display:flex}:host #eo-upload-overlay.singleFile .contents{flex-flow:column}:host #eo-upload-overlay.singleFile .contents .files{padding:0;order:1}:host #eo-upload-overlay.singleFile .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}@keyframes uploady{0%{transform:translateY(0);opacity:.1}50%{transform:translateY(-40px);opacity:.3}to{transform:translateY(0);opacity:.1}}\n"] }]
18143
+ args: [{ selector: 'eo-upload-overlay', template: "<div id=\"eo-upload-overlay\" #overlay class=\"dark\" *ngIf=\"fileOver\" tabindex=\"1\"\n [ngClass]=\"{hasFiles: queue.length, invalid: invalidInput, singleFile: queue.length === 1, 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 <h1 translate>eo.upload.global.headline</h1>\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.upload.global.cancel</button>\n <button (click)=\"proceedWithSelectedTarget(false)\" class=\"primary\" 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 <!-- list of available upload targets -->\n <div class=\"targets\">\n\n <div class=\"target-list\">\n\n <h2 translate>eo.upload.global.target</h2>\n\n <div class=\"upload-target\" *ngFor=\"let t of validUploadTargets; trackBy: targetTrackByFn\"\n (click)=\"proceedWithUpload(t)\"\n [ngSwitch]=\"t.type\">\n\n <!-- upload to root -->\n <ng-container *ngSwitchCase=\"'root'\" >\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document.svg'\"></eo-icon>\n <div class=\"upload-target-general\">\n <div class=\"name\" translate>eo.upload.global.root.title</div>\n <div class=\"description\" translate>eo.upload.global.root.description</div>\n </div>\n </ng-container>\n\n <!-- replace file of a specific dms object -->\n <ng-container *ngSwitchCase=\"'object'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_add_document_file_as_new_version.svg'\"></eo-icon>\n <div class=\"upload-target-replace\">\n <div class=\"name\" translate>eo.upload.global.object.title</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder -->\n <ng-container *ngSwitchCase=\"'context'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-context\">\n <div class=\"name\">{{'eo.upload.global.context.title'|translate:({context:t.referenceObject.type.label})}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n\n <!-- add new files to a context folder structure tree entry -->\n <ng-container *ngSwitchCase=\"'contexttree'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_create_document_in_folder.svg'\"></eo-icon>\n <div class=\"upload-target-contexttree\">\n <div class=\"name\">{{'eo.add.title.location.subfolder'|translate: ({folder: t.subFolder.name})}}</div>\n </div>\n </ng-container>\n\n <!-- custom upload target (e.g. from plugin component) -->\n <ng-container *ngSwitchCase=\"'custom'\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_upload.svg'\"></eo-icon>\n <div class=\"upload-target-custom\">\n <div class=\"name\">{{t.name}}</div>\n <div class=\"description\">{{t.description}}</div>\n </div>\n </ng-container>\n </div>\n\n </div>\n\n </div>\n\n <!-- list of files dragged to the component -->\n <div class=\"files\">\n <div class=\"files-list\">\n <div class=\"file-item\" *ngFor=\"let i of queue; trackBy: trackByFn\">\n <div>\n <div class=\"name\">{{i.name}}</div>\n <div class=\"desc\"><span class=\"size\">{{i.size | fileSize}}</span><span class=\"desc-text\">&nbsp;{{i.type}}</span></div>\n </div>\n <eo-icon class=\"button white\" (click)=\"removeFileItem(i)\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class=\"loading\" *ngIf=\"isUploading\"><eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner></div>\n\n\n</div>\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:auto}:host #eo-upload-overlay h1{font-size:4em;font-weight:300;color:rgba(var(--color-white-rgb),.5);animation:eoFadeInDown var(--app-default-transition-duration)}: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;max-height:100%;margin:var(--app-pane-padding)}: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 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)}:host #eo-upload-overlay .targets .target-list .upload-target>div .name{font-size:var(--font-subhead)}:host #eo-upload-overlay .targets .target-list .upload-target>div .description{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{order:0;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 2);overflow-y:auto;border-radius:2px;animation:eoFadeInLeft var(--app-default-transition-duration);display:flex;flex-flow:column;justify-content:center}:host #eo-upload-overlay .files .files-list{height:100%}:host #eo-upload-overlay .files .files-list .file-item{display:flex;flex-flow:row nowrap;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)}: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.hasFiles .uploady{display:none}:host #eo-upload-overlay.hasFiles .count{display:flex}:host #eo-upload-overlay.hasFiles .contents{display:flex}:host #eo-upload-overlay.singleFile .contents{flex-flow:column}:host #eo-upload-overlay.singleFile .contents .files{padding:0;order:1}:host #eo-upload-overlay.singleFile .contents .targets{order:0;margin-bottom:var(--app-pane-padding)}:host #eo-upload-overlay.uploading h1,:host #eo-upload-overlay.uploading .close{display:none}@keyframes uploady{0%{transform:translateY(0);opacity:.1}50%{transform:translateY(-40px);opacity:.3}to{transform:translateY(0);opacity:.1}}\n"] }]
18144
18144
  }], ctorParameters: () => [{ type: i2$1.Router }, { type: i0.Renderer2 }, { type: i1.PrepareService }, { type: i1.TranslateService }, { type: i1.SystemService }, { type: i1.EventService }, { type: i1.UploadRegistryService }], propDecorators: { overlayEl: [{
18145
18145
  type: ViewChild,
18146
18146
  args: ['overlay']
@@ -20364,10 +20364,14 @@ let ObjectStateDetailsComponent = class ObjectStateDetailsComponent {
20364
20364
  this.frontPageData.lastModifications = this.frontPageData.lastModifications && this.frontPageData.lastModifications.filter(i => i.id !== item.id);
20365
20365
  }
20366
20366
  }
20367
- selectFrontPageDoc(doc) {
20368
- if (!this.pendingChanges.check()) {
20367
+ selectFrontPageDoc(doc, event) {
20368
+ if (!this.pendingChanges.check() && !event?.ctrlKey) {
20369
20369
  this.selection.focus(doc);
20370
20370
  }
20371
+ if (event?.ctrlKey) {
20372
+ const url = window.location.href.split('/object')[0] + '/object/' + doc.id + '?type=' + doc.type;
20373
+ window.open(url, '_blank');
20374
+ }
20371
20375
  }
20372
20376
  onContextMenuClicked(evt, doc) {
20373
20377
  evt.preventDefault();
@@ -20383,14 +20387,14 @@ let ObjectStateDetailsComponent = class ObjectStateDetailsComponent {
20383
20387
  ngAfterViewInit() {
20384
20388
  }
20385
20389
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectStateDetailsComponent, deps: [{ token: SelectionService }, { token: ActionService }, { token: i1.AppCacheService }, { token: i1.DmsService }, { token: i1.EventService }, { token: PendingChangesService }], target: i0.ɵɵFactoryTarget.Component }); }
20386
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: { plugins: "plugins", context: "context", selectedItem: "selectedItem", seenItems: "seenItems", frontPageData: "frontPageData", visible: "visible" }, outputs: { onTabChange: "onTabChange" }, host: { properties: { "class.visible": "this.visible", "attr.data-type": "this.dataType", "attr.data-id": "this.dataId", "style.height": "this.visibility" } }, viewQueries: [{ propertyName: "eoTabs", first: true, predicate: Tabs, descendants: true }], ngImport: i0, template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div> \n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n \n</yvc-tabs>", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!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: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PluginComponent, selector: "eo-plugin", inputs: ["type", "id", "parent"] }, { kind: "component", type: i12.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i12.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }] }); }
20390
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: { plugins: "plugins", context: "context", selectedItem: "selectedItem", seenItems: "seenItems", frontPageData: "frontPageData", visible: "visible" }, outputs: { onTabChange: "onTabChange" }, host: { properties: { "class.visible": "this.visible", "attr.data-type": "this.dataType", "attr.data-id": "this.dataId", "style.height": "this.visibility" } }, viewQueries: [{ propertyName: "eoTabs", first: true, predicate: Tabs, descendants: true }], ngImport: i0, template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n</yvc-tabs>\n", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!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: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PluginComponent, selector: "eo-plugin", inputs: ["type", "id", "parent"] }, { kind: "component", type: i12.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i12.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }] }); }
20387
20391
  };
20388
20392
  ObjectStateDetailsComponent = ObjectStateDetailsComponent_1 = __decorate([
20389
20393
  UntilDestroy()
20390
20394
  ], ObjectStateDetailsComponent);
20391
20395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectStateDetailsComponent, decorators: [{
20392
20396
  type: Component,
20393
- args: [{ selector: 'eo-object-state-details', template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div> \n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n \n</yvc-tabs>", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!important}\n"] }]
20397
+ args: [{ selector: 'eo-object-state-details', template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n</yvc-tabs>\n", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!important}\n"] }]
20394
20398
  }], ctorParameters: () => [{ type: SelectionService }, { type: ActionService }, { type: i1.AppCacheService }, { type: i1.DmsService }, { type: i1.EventService }, { type: PendingChangesService }], propDecorators: { eoTabs: [{
20395
20399
  type: ViewChild,
20396
20400
  args: [Tabs]
@@ -23021,10 +23025,10 @@ class AboutStateComponent {
23021
23025
  this.backend = backend;
23022
23026
  this.userService = userService;
23023
23027
  this.config = config;
23024
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/cdk", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/common", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/compiler", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/core", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/forms", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/router", "version": "17.1.2", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.14.0", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.0.1", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "17.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "2.0.2", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "2.0.5", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "18.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.2", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.4", "license": "MIT" }];
23028
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.0.3", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/cdk", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/common", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/compiler", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/core", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/forms", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "17.1.2", "license": "MIT" }, { "name": "@angular/router", "version": "17.1.2", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.14.0", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.0.0-rc.13", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "17.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "2.0.3", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "2.0.5", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "18.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.2", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.4", "license": "MIT" }];
23025
23029
  this.ctrl = {
23026
23030
  componentName: 'yuuvis® RAD client',
23027
- componentVersion: '11.0.2',
23031
+ componentVersion: '11.1.0-rc.1',
23028
23032
  productName: '',
23029
23033
  productVersion: ''
23030
23034
  };
@@ -24028,7 +24032,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
24028
24032
  },
24029
24033
  },
24030
24034
  };
24031
- this.lineStraightChartOption = {
24035
+ this.defaultLineStraightChartOption = {
24032
24036
  ...this.sharedOptions,
24033
24037
  curve: undefined,
24034
24038
  legend: {
@@ -24047,7 +24051,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
24047
24051
  },
24048
24052
  }
24049
24053
  };
24050
- this.lineCurveChartOption = {
24054
+ this.defaultLineCurveChartOption = {
24051
24055
  ...this.sharedOptions,
24052
24056
  legend: {
24053
24057
  enabled: false,
@@ -24090,84 +24094,55 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
24090
24094
  const queryName = this._query.name;
24091
24095
  delete this._query.name;
24092
24096
  this._query = this.searchService.buildQuery(this._query);
24097
+ this.lineCurveChartOption = JSON.parse(JSON.stringify(this.defaultLineCurveChartOption));
24098
+ this.lineStraightChartOption = JSON.parse(JSON.stringify(this.defaultLineStraightChartOption));
24093
24099
  if (type === 'DATETIME' && histogramType) {
24094
- const histogramConfig = {
24095
- 'yearly': { calendar_interval: 'year', format: 'yyyy' },
24096
- 'weekly': { calendar_interval: 'week', format: 'yyyy-ww' },
24097
- 'monthly': { calendar_interval: 'month', format: 'yyyy-MM' },
24098
- 'daily': { calendar_interval: 'day', format: 'yyyy-MM-dd' }
24099
- };
24100
- if (histogramConfig.hasOwnProperty(histogramType)) {
24101
- this.histogram = histogramConfig[histogramType];
24102
- this.histogram.size = this._widgetConfig?.formValue?.size ? this._widgetConfig?.formValue?.size : 10;
24103
- const query = {
24104
- aggs: {
24105
- [field.replace('sysobject.', '')]: {
24106
- histogram: this.histogram
24107
- }
24108
- },
24109
- ...this._query.getQueryJson()
24110
- };
24111
- this.searchService.executeQuery(query, true).subscribe((res) => {
24112
- this.refreshingRequest = false;
24113
- const aggregationKey = Object.keys(res.aggregations)[0];
24114
- this._query.name = queryName;
24115
- if (this.widgetConfig?.formValue?.chartType === 'lineCurve' || this.widgetConfig?.formValue?.chartType === 'lineStraight') {
24116
- this.chartData = res.aggregations[aggregationKey].buckets.map((e) => ({
24117
- group: 'dataset1',
24118
- value: e.doc_count,
24119
- date: new Date(e.key).toISOString(),
24120
- }));
24121
- }
24122
- else {
24123
- this.chartData = res.aggregations[aggregationKey].buckets.map((e) => ({
24124
- group: e.key_as_string,
24125
- value: e.doc_count,
24126
- }));
24127
- }
24128
- }, (error) => {
24129
- this.chartData = [];
24130
- this.refreshingRequest = false;
24131
- });
24132
- }
24133
- else {
24134
- this.refreshingRequest = false;
24135
- }
24100
+ this.chartWithHistogram(queryName, field, histogramType);
24136
24101
  }
24137
24102
  else if (attributMetric && metric) {
24138
- const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');
24139
- const attributMetricKey = attributMetric.replace('sysobject.', '').replace('sysdocument.', '');
24140
- let aggsQquery;
24141
- aggsQquery = {
24142
- [fieldKey]: {
24143
- size: this._widgetConfig?.formValue?.size || 10,
24144
- order: sort ? 'asc' : 'desc',
24145
- sort: attributMetricKey + '.value',
24146
- min_doc_count: minDocCount,
24147
- sub: {
24148
- [attributMetricKey]: {
24149
- metrics: this._widgetConfig?.formValue?.metric
24150
- }
24103
+ this.barChartMetric(queryName, field, sort, minDocCount, attributMetric, metric);
24104
+ }
24105
+ else if (type === 'NUMBER' && (this.widgetConfig?.formValue?.chartType === 'lineCurve' || this.widgetConfig?.formValue?.chartType === 'lineStraight')) {
24106
+ this.lineChartNumber(queryName, field, type, sort, minDocCount, rangeValues);
24107
+ }
24108
+ else {
24109
+ this.chartWithNoMetric(queryName, field, type, sort, minDocCount, rangeValues);
24110
+ }
24111
+ }
24112
+ chartWithHistogram(queryName, field, histogramType) {
24113
+ const histogramConfig = {
24114
+ 'yearly': { calendar_interval: 'year', format: 'yyyy' },
24115
+ 'weekly': { calendar_interval: 'week', format: 'yyyy-ww' },
24116
+ 'monthly': { calendar_interval: 'month', format: 'yyyy-MM' },
24117
+ 'daily': { calendar_interval: 'day', format: 'yyyy-MM-dd' }
24118
+ };
24119
+ if (histogramConfig.hasOwnProperty(histogramType)) {
24120
+ this.histogram = histogramConfig[histogramType];
24121
+ this.histogram.size = this._widgetConfig?.formValue?.size ? this._widgetConfig?.formValue?.size : 10;
24122
+ const query = {
24123
+ aggs: {
24124
+ [field.replace('sysobject.', '')]: {
24125
+ histogram: this.histogram
24151
24126
  }
24152
- }
24153
- };
24154
- this.searchService.executeQuery({
24155
- aggs: aggsQquery,
24127
+ },
24156
24128
  ...this._query.getQueryJson()
24157
- }, true).subscribe((res) => {
24129
+ };
24130
+ this.searchService.executeQuery(query, true).subscribe((res) => {
24158
24131
  this.refreshingRequest = false;
24132
+ const aggregationKey = Object.keys(res.aggregations)[0];
24159
24133
  this._query.name = queryName;
24160
- if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {
24161
- this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {
24162
- return {
24163
- group: e.key.replace('_', '-'),
24164
- value: e[metric + '#' + attributMetricKey].value,
24165
- };
24166
- });
24134
+ if (this.widgetConfig?.formValue?.chartType === 'lineCurve' || this.widgetConfig?.formValue?.chartType === 'lineStraight') {
24135
+ this.chartData = res.aggregations[aggregationKey].buckets.map((e) => ({
24136
+ group: 'dataset1',
24137
+ value: e.doc_count,
24138
+ date: new Date(e.key).toISOString(),
24139
+ }));
24167
24140
  }
24168
24141
  else {
24169
- this.chartData = [];
24170
- this.refreshingRequest = false;
24142
+ this.chartData = res.aggregations[aggregationKey].buckets.map((e) => ({
24143
+ group: e.key_as_string,
24144
+ value: e.doc_count,
24145
+ }));
24171
24146
  }
24172
24147
  }, (error) => {
24173
24148
  this.chartData = [];
@@ -24175,102 +24150,212 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
24175
24150
  });
24176
24151
  }
24177
24152
  else {
24178
- const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');
24179
- let aggsQquery;
24180
- if (Object.keys(rangeValues).length !== 0 && type === 'NUMBER') {
24181
- aggsQquery = {
24182
- [fieldKey]: {
24183
- size: this._widgetConfig?.formValue?.size || 10,
24184
- rg: rangeValues,
24185
- order: sort ? 'asc' : 'desc',
24186
- sort: '_count',
24187
- min_doc_count: minDocCount
24153
+ this.refreshingRequest = false;
24154
+ }
24155
+ }
24156
+ barChartMetric(queryName, field, sort, minDocCount, attributMetric, metric) {
24157
+ const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');
24158
+ const attributMetricKey = attributMetric.replace('sysobject.', '').replace('sysdocument.', '');
24159
+ let aggsQquery;
24160
+ aggsQquery = {
24161
+ [fieldKey]: {
24162
+ size: this._widgetConfig?.formValue?.size || 10,
24163
+ order: sort ? 'asc' : 'desc',
24164
+ sort: attributMetricKey + '.value',
24165
+ min_doc_count: minDocCount,
24166
+ sub: {
24167
+ [attributMetricKey]: {
24168
+ metrics: this._widgetConfig?.formValue?.metric
24188
24169
  }
24189
- };
24170
+ }
24190
24171
  }
24191
- else {
24192
- aggsQquery = {
24193
- [fieldKey]: {
24194
- order: sort ? 'asc' : 'desc',
24195
- histogram: { calendar_interval: 'month', format: 'yyyy-MM' },
24196
- sort: '_count',
24197
- min_doc_count: minDocCount,
24198
- size: this._widgetConfig?.formValue?.size || 10,
24199
- }
24200
- };
24172
+ };
24173
+ this.searchService.executeQuery({
24174
+ aggs: aggsQquery,
24175
+ ...this._query.getQueryJson()
24176
+ }, true).subscribe((res) => {
24177
+ this.refreshingRequest = false;
24178
+ this._query.name = queryName;
24179
+ if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {
24180
+ this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {
24181
+ return {
24182
+ group: e.key.replace('_', '-'),
24183
+ value: e[metric + '#' + attributMetricKey].value,
24184
+ };
24185
+ });
24201
24186
  }
24202
- this.searchService.executeQuery({
24203
- aggs: aggsQquery,
24204
- ...this._query.getQueryJson()
24205
- }, true)
24206
- .subscribe((res) => {
24187
+ else {
24188
+ this.chartData = [];
24207
24189
  this.refreshingRequest = false;
24208
- this._query.name = queryName;
24209
- if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {
24210
- this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {
24211
- if (type === 'BOOLEAN') {
24212
- return {
24213
- group: e.key === 0 ? '\u2610' : '\u2611',
24214
- value: e.doc_count,
24215
- };
24216
- }
24217
- else {
24218
- return {
24219
- group: typeof e.key === 'string' ? e.key.replace('_', '-') : e.key,
24220
- value: e.doc_count,
24221
- };
24222
- }
24223
- });
24190
+ }
24191
+ }, (error) => {
24192
+ this.chartData = [];
24193
+ this.refreshingRequest = false;
24194
+ });
24195
+ }
24196
+ lineChartNumber(queryName, field, type, sort, minDocCount, rangeValues) {
24197
+ const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');
24198
+ let aggsQquery;
24199
+ if (Object.keys(rangeValues).length !== 0 && type === 'NUMBER') {
24200
+ this.lineStraightChartOption.axes.bottom = {
24201
+ mapsTo: 'key',
24202
+ scaleType: 'labels',
24203
+ title: '',
24204
+ };
24205
+ this.lineCurveChartOption.axes.bottom = {
24206
+ mapsTo: 'key',
24207
+ scaleType: 'labels',
24208
+ title: '',
24209
+ };
24210
+ aggsQquery = {
24211
+ [fieldKey]: {
24212
+ size: this._widgetConfig?.formValue?.size || 10,
24213
+ rg: rangeValues,
24214
+ order: sort ? 'asc' : 'desc',
24215
+ sort: '_count',
24216
+ min_doc_count: minDocCount
24224
24217
  }
24225
- else {
24226
- this.chartData = [];
24227
- this.refreshingRequest = false;
24218
+ };
24219
+ }
24220
+ else {
24221
+ this.lineCurveChartOption = JSON.parse(JSON.stringify(this.defaultLineCurveChartOption));
24222
+ this.lineStraightChartOption = JSON.parse(JSON.stringify(this.defaultLineStraightChartOption));
24223
+ aggsQquery = {
24224
+ [fieldKey]: {
24225
+ order: sort ? 'asc' : 'desc',
24226
+ histogram: { calendar_interval: 'month', format: 'yyyy-MM' },
24227
+ sort: '_count',
24228
+ min_doc_count: minDocCount,
24229
+ size: this._widgetConfig?.formValue?.size || 10,
24228
24230
  }
24229
- if (this._widgetConfig?.formValue?.aggregation === 'sysobject.modified') {
24230
- this.chartData = res.aggregations.modified.buckets.map((e) => {
24231
+ };
24232
+ }
24233
+ ;
24234
+ this.searchService.executeQuery({
24235
+ aggs: aggsQquery,
24236
+ ...this._query.getQueryJson()
24237
+ }, true)
24238
+ .subscribe((res) => {
24239
+ this.refreshingRequest = false;
24240
+ this._query.name = queryName;
24241
+ if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {
24242
+ this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {
24243
+ if (type === 'BOOLEAN') {
24231
24244
  return {
24232
- group: e.key_as_string,
24245
+ group: e.key === 0 ? '\u2610' : '\u2611',
24233
24246
  value: e.doc_count,
24234
24247
  };
24235
- });
24236
- }
24237
- if (this._widgetConfig?.formValue?.aggregation === 'sysobject.created') {
24238
- this.chartData = res.aggregations.created.buckets.map((e) => {
24248
+ }
24249
+ else {
24239
24250
  return {
24240
- group: e.key_as_string,
24241
24251
  value: e.doc_count,
24252
+ key: typeof e.key === 'string' ? e.key.replace('_', '-') : e.key,
24242
24253
  };
24243
- });
24254
+ }
24255
+ });
24256
+ }
24257
+ else {
24258
+ this.chartData = [];
24259
+ this.refreshingRequest = false;
24260
+ }
24261
+ });
24262
+ }
24263
+ chartWithNoMetric(queryName, field, type, sort, minDocCount, rangeValues) {
24264
+ const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');
24265
+ let aggsQquery;
24266
+ if (Object.keys(rangeValues).length !== 0 && type === 'NUMBER') {
24267
+ aggsQquery = {
24268
+ [fieldKey]: {
24269
+ size: this._widgetConfig?.formValue?.size || 10,
24270
+ rg: rangeValues,
24271
+ order: sort ? 'asc' : 'desc',
24272
+ sort: '_count',
24273
+ min_doc_count: minDocCount
24244
24274
  }
24245
- if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.mimetypegroup') {
24246
- this.chartData = res.aggregations.mimetypegroup.buckets.map((e) => {
24247
- return {
24248
- group: e.key,
24249
- value: e.doc_count,
24250
- };
24251
- });
24275
+ };
24276
+ }
24277
+ else {
24278
+ aggsQquery = {
24279
+ [fieldKey]: {
24280
+ order: sort ? 'asc' : 'desc',
24281
+ histogram: { calendar_interval: 'month', format: 'yyyy-MM' },
24282
+ sort: '_count',
24283
+ min_doc_count: minDocCount,
24284
+ size: this._widgetConfig?.formValue?.size || 10,
24252
24285
  }
24253
- if (this._widgetConfig?.formValue?.aggregation === 'sysobject.type') {
24254
- this.chartData = res.aggregations.type.buckets.map((e) => {
24286
+ };
24287
+ }
24288
+ this.searchService.executeQuery({
24289
+ aggs: aggsQquery,
24290
+ ...this._query.getQueryJson()
24291
+ }, true)
24292
+ .subscribe((res) => {
24293
+ this.refreshingRequest = false;
24294
+ this._query.name = queryName;
24295
+ if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {
24296
+ this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {
24297
+ if (type === 'BOOLEAN') {
24255
24298
  return {
24256
- group: this.systemService.getObjectType(e.key).label,
24299
+ group: e.key === 0 ? '\u2610' : '\u2611',
24257
24300
  value: e.doc_count,
24258
24301
  };
24259
- });
24260
- }
24261
- if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.filesize') {
24262
- this.chartData = res.aggregations.filesize.buckets.map((e) => {
24302
+ }
24303
+ else {
24263
24304
  return {
24264
- group: e.key.replace('_', '-'),
24305
+ group: typeof e.key === 'string' ? e.key.replace('_', '-') : e.key,
24265
24306
  value: e.doc_count,
24266
24307
  };
24267
- });
24268
- }
24269
- }, (error) => {
24308
+ }
24309
+ });
24310
+ }
24311
+ else {
24270
24312
  this.chartData = [];
24271
24313
  this.refreshingRequest = false;
24272
- });
24273
- }
24314
+ }
24315
+ if (this._widgetConfig?.formValue?.aggregation === 'sysobject.modified') {
24316
+ this.chartData = res.aggregations.modified.buckets.map((e) => {
24317
+ return {
24318
+ group: e.key_as_string,
24319
+ value: e.doc_count,
24320
+ };
24321
+ });
24322
+ }
24323
+ if (this._widgetConfig?.formValue?.aggregation === 'sysobject.created') {
24324
+ this.chartData = res.aggregations.created.buckets.map((e) => {
24325
+ return {
24326
+ group: e.key_as_string,
24327
+ value: e.doc_count,
24328
+ };
24329
+ });
24330
+ }
24331
+ if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.mimetypegroup') {
24332
+ this.chartData = res.aggregations.mimetypegroup.buckets.map((e) => {
24333
+ return {
24334
+ group: e.key,
24335
+ value: e.doc_count,
24336
+ };
24337
+ });
24338
+ }
24339
+ if (this._widgetConfig?.formValue?.aggregation === 'sysobject.type') {
24340
+ this.chartData = res.aggregations.type.buckets.map((e) => {
24341
+ return {
24342
+ group: this.systemService.getObjectType(e.key).label,
24343
+ value: e.doc_count,
24344
+ };
24345
+ });
24346
+ }
24347
+ if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.filesize') {
24348
+ this.chartData = res.aggregations.filesize.buckets.map((e) => {
24349
+ return {
24350
+ group: e.key.replace('_', '-'),
24351
+ value: e.doc_count,
24352
+ };
24353
+ });
24354
+ }
24355
+ }, () => {
24356
+ this.chartData = [];
24357
+ this.refreshingRequest = false;
24358
+ });
24274
24359
  }
24275
24360
  setQueryToAppSearch() {
24276
24361
  this.appSearchService.setQuery(this.storedQuery);
@@ -24456,7 +24541,7 @@ let ChartsSetupComponent = class ChartsSetupComponent {
24456
24541
  }
24457
24542
  let filteredFields = definition.elements.filter(field => !exclude.has(field.hitname));
24458
24543
  if (this.widgetConfig?.formValue?.chartType === 'lineCurve' || this.widgetConfig?.formValue?.chartType === 'lineStraight') {
24459
- filteredFields = filteredFields.filter(field => field.type === 'DATETIME');
24544
+ filteredFields = filteredFields.filter(field => field.type === 'DATETIME' || field.type === 'NUMBER');
24460
24545
  }
24461
24546
  this.aggregationPicker.codesystem = {
24462
24547
  entries: filteredFields.map(field => {