UNPKG

@nakedobjects/gemini

Version:

Single Page Application client for a Naked Objects application.

60 lines 9.29 kB
import { Component, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@nakedobjects/services"; import * as i2 from "@angular/common"; import * as i3 from "../click.directive"; export class AttachmentPropertyComponent { error; urlManager; clickHandlerService; constructor(error, urlManager, clickHandlerService) { this.error = error; this.urlManager = urlManager; this.clickHandlerService = clickHandlerService; } attach = null; set attachment(avm) { this.attach = avm; this.setup(); } get attachment() { return this.attach; } title = 'Empty'; image; doAttachmentClick = (right) => { if (this.attachment.empty && !this.image) { return; } if (this.attachment.displayInline()) { this.urlManager.setAttachment(this.attachment.link, this.clickHandlerService.pane(this.attachment.onPaneId, right)); } else { this.attachment.downloadFile() .then(blob => { const burl = URL.createObjectURL(blob); window.open(burl); }) .catch((reject) => this.error.handleError(reject)); } }; setup() { if (this.attachment) { if (this.attachment.displayInline()) { this.attachment.setImage(this); } else { this.attachment.setTitle(this); } } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AttachmentPropertyComponent, deps: [{ token: i1.ErrorService }, { token: i1.UrlManagerService }, { token: i1.ClickHandlerService }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AttachmentPropertyComponent, selector: "nof-attachment-property", inputs: { attachment: "attachment" }, ngImport: i0, template: "<div *ngIf=\"attachment\" class=\"reference file-attachment\" nofClick (leftClick)=\"doAttachmentClick()\" (rightClick)=\"doAttachmentClick(true)\" tabindex=\"0\">\n <div *ngIf=\"!attachment.empty && !image\">{{title}}</div>\n <img *ngIf=\"!attachment.empty && image\" src=\"{{image}}\" alt=\"{{title}}\" />\n <div *ngIf=\"attachment.empty\">{{title}}</div>\n</div>", styles: [".reference{cursor:pointer}img{max-width:var(--field-value-width);max-height:100px}.value{display:block;float:left;width:var(--field-value-width);padding-left:var(--space-3);padding-right:var(--space-3);margin:var(--space-1)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ClickDirective, selector: "[nofClick]", outputs: ["leftClick", "rightClick"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AttachmentPropertyComponent, decorators: [{ type: Component, args: [{ selector: 'nof-attachment-property', template: "<div *ngIf=\"attachment\" class=\"reference file-attachment\" nofClick (leftClick)=\"doAttachmentClick()\" (rightClick)=\"doAttachmentClick(true)\" tabindex=\"0\">\n <div *ngIf=\"!attachment.empty && !image\">{{title}}</div>\n <img *ngIf=\"!attachment.empty && image\" src=\"{{image}}\" alt=\"{{title}}\" />\n <div *ngIf=\"attachment.empty\">{{title}}</div>\n</div>", styles: [".reference{cursor:pointer}img{max-width:var(--field-value-width);max-height:100px}.value{display:block;float:left;width:var(--field-value-width);padding-left:var(--space-3);padding-right:var(--space-3);margin:var(--space-1)}\n"] }] }], ctorParameters: () => [{ type: i1.ErrorService }, { type: i1.UrlManagerService }, { type: i1.ClickHandlerService }], propDecorators: { attachment: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1wcm9wZXJ0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL2F0dGFjaG1lbnQtcHJvcGVydHkvYXR0YWNobWVudC1wcm9wZXJ0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL2F0dGFjaG1lbnQtcHJvcGVydHkvYXR0YWNobWVudC1wcm9wZXJ0eS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTakQsTUFBTSxPQUFPLDJCQUEyQjtJQUdmO0lBQ0E7SUFDQTtJQUhyQixZQUNxQixLQUFtQixFQUNuQixVQUE2QixFQUM3QixtQkFBd0M7UUFGeEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQ3pELENBQUM7SUFFRyxNQUFNLEdBQStCLElBQUksQ0FBQztJQUVsRCxJQUNJLFVBQVUsQ0FBQyxHQUErQjtRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUNoQixLQUFLLENBQVU7SUFFZixpQkFBaUIsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFO1FBQ3BDLElBQUksSUFBSSxDQUFDLFVBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFXLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUgsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVyxDQUFDLFlBQVksRUFBRTtpQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNULE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLE1BQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVNLEtBQUs7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzt1R0FoRFEsMkJBQTJCOzJGQUEzQiwyQkFBMkIscUdDVHhDLHdYQUlNOzsyRkRLTywyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0kseUJBQXlCO21KQWUvQixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGlja0hhbmRsZXJTZXJ2aWNlLCBFcnJvclNlcnZpY2UsIEVycm9yV3JhcHBlciwgVXJsTWFuYWdlclNlcnZpY2UgfSBmcm9tICdAbmFrZWRvYmplY3RzL3NlcnZpY2VzJztcbmltcG9ydCB7IEF0dGFjaG1lbnRWaWV3TW9kZWwgfSBmcm9tICdAbmFrZWRvYmplY3RzL3ZpZXctbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdub2YtYXR0YWNobWVudC1wcm9wZXJ0eScsXG4gICAgdGVtcGxhdGVVcmw6ICdhdHRhY2htZW50LXByb3BlcnR5LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnYXR0YWNobWVudC1wcm9wZXJ0eS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudFByb3BlcnR5Q29tcG9uZW50IHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yOiBFcnJvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsTWFuYWdlcjogVXJsTWFuYWdlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2xpY2tIYW5kbGVyU2VydmljZTogQ2xpY2tIYW5kbGVyU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBwcml2YXRlIGF0dGFjaDogQXR0YWNobWVudFZpZXdNb2RlbCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgYXR0YWNobWVudChhdm06IEF0dGFjaG1lbnRWaWV3TW9kZWwgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuYXR0YWNoID0gYXZtO1xuICAgICAgICB0aGlzLnNldHVwKCk7XG4gICAgfVxuXG4gICAgZ2V0IGF0dGFjaG1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmF0dGFjaDtcbiAgICB9XG5cbiAgICB0aXRsZSA9ICdFbXB0eSc7XG4gICAgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgICBkb0F0dGFjaG1lbnRDbGljayA9IChyaWdodD86IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYXR0YWNobWVudCEuZW1wdHkgJiYgIXRoaXMuaW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmF0dGFjaG1lbnQhLmRpc3BsYXlJbmxpbmUoKSkge1xuICAgICAgICAgICAgdGhpcy51cmxNYW5hZ2VyLnNldEF0dGFjaG1lbnQodGhpcy5hdHRhY2htZW50IS5saW5rLCB0aGlzLmNsaWNrSGFuZGxlclNlcnZpY2UucGFuZSh0aGlzLmF0dGFjaG1lbnQhLm9uUGFuZUlkLCByaWdodCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hdHRhY2htZW50IS5kb3dubG9hZEZpbGUoKVxuICAgICAgICAgICAgICAgIC50aGVuKGJsb2IgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBidXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oYnVybCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKHJlamVjdDogRXJyb3JXcmFwcGVyKSA9PiB0aGlzLmVycm9yLmhhbmRsZUVycm9yKHJlamVjdCkpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgc2V0dXAoKSB7XG4gICAgICAgIGlmICh0aGlzLmF0dGFjaG1lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmF0dGFjaG1lbnQuZGlzcGxheUlubGluZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hdHRhY2htZW50LnNldEltYWdlKHRoaXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaG1lbnQuc2V0VGl0bGUodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiYXR0YWNobWVudFwiIGNsYXNzPVwicmVmZXJlbmNlIGZpbGUtYXR0YWNobWVudFwiIG5vZkNsaWNrIChsZWZ0Q2xpY2spPVwiZG9BdHRhY2htZW50Q2xpY2soKVwiIChyaWdodENsaWNrKT1cImRvQXR0YWNobWVudENsaWNrKHRydWUpXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgPGRpdiAqbmdJZj1cIiFhdHRhY2htZW50LmVtcHR5ICYmICFpbWFnZVwiPnt7dGl0bGV9fTwvZGl2PlxuICAgIDxpbWcgKm5nSWY9XCIhYXR0YWNobWVudC5lbXB0eSAmJiBpbWFnZVwiIHNyYz1cInt7aW1hZ2V9fVwiIGFsdD1cInt7dGl0bGV9fVwiIC8+XG4gICAgPGRpdiAqbmdJZj1cImF0dGFjaG1lbnQuZW1wdHlcIj57e3RpdGxlfX08L2Rpdj5cbjwvZGl2PiJdfQ==