UNPKG

@nakedobjects/gemini

Version:

Single Page Application client for a Naked Objects application.

82 lines 11 kB
import { Component, Input, ViewChildren } from '@angular/core'; import { focus } from '../helpers-components'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "../click.directive"; export function wrapAction(a) { return { value: a.title, doClick: () => a.doInvoke(), doRightClick: () => a.doInvoke(true), show: () => true, disabled: () => a.disabled() ? true : null, tempDisabled: () => a.tempDisabled(), title: () => a.description, accesskey: null, presentationHint: a.presentationHint, showDialog: () => a.showDialog() }; } export class ActionComponent { action; focusList; canClick() { return !(this.disabled() || this.tempDisabled()); } doClick() { if (this.canClick()) { this.action.doClick(); } } doRightClick() { if (this.canClick() && this.action.doRightClick) { this.action.doRightClick(); } } class() { return ({ tempdisabled: this.tempDisabled(), [this.dialogClass()]: true, }); } show() { return this.action.show(); } disabled() { return this.action.disabled(); } tempDisabled() { return this.action.tempDisabled(); } dialogClass() { return this.showDialog() ? 'has-params' : 'no-params'; } showDialog() { return this.action.showDialog(); } get value() { return this.action.value; } get title() { return this.action.title(); } focus() { if (this.disabled()) { return false; } return !!(this.focusList && this.focusList.first) && focus(this.focusList.first); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ActionComponent, selector: "nof-action", inputs: { action: "action" }, viewQueries: [{ propertyName: "focusList", predicate: ["focus"], descendants: true }], ngImport: i0, template: "<input #focus tabindex=\"0\" type=\"button\" nofClick (leftClick)=\"doClick()\" (rightClick)=\"doRightClick()\" [value]=\"value\" [disabled]=\"disabled()\" *ngIf=\"show()\" [title]=\"title\" [ngClass]=\"class()\">\n", styles: ["input{white-space:normal;text-align:left;cursor:pointer;background-color:transparent;outline:none;border:none;font-size:var(--font-size-2);color:var(--menu-text-color);padding:var(--space-3);font-weight:var(--font-weight-1)}input:focus,input:hover{outline-color:var(--contrast-outline-color);outline-style:solid;outline-width:1px}input:disabled{color:var(--disabled-color);outline:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClickDirective, selector: "[nofClick]", outputs: ["leftClick", "rightClick"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ActionComponent, decorators: [{ type: Component, args: [{ selector: 'nof-action', template: "<input #focus tabindex=\"0\" type=\"button\" nofClick (leftClick)=\"doClick()\" (rightClick)=\"doRightClick()\" [value]=\"value\" [disabled]=\"disabled()\" *ngIf=\"show()\" [title]=\"title\" [ngClass]=\"class()\">\n", styles: ["input{white-space:normal;text-align:left;cursor:pointer;background-color:transparent;outline:none;border:none;font-size:var(--font-size-2);color:var(--menu-text-color);padding:var(--space-3);font-weight:var(--font-weight-1)}input:focus,input:hover{outline-color:var(--contrast-outline-color);outline-style:solid;outline-width:1px}input:disabled{color:var(--disabled-color);outline:none}\n"] }] }], propDecorators: { action: [{ type: Input, args: [{ required: true }] }], focusList: [{ type: ViewChildren, args: ['focus'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2dlbWluaS9zcmMvYWN0aW9uL2FjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL2FjdGlvbi9hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQWU5QyxNQUFNLFVBQVUsVUFBVSxDQUFDLENBQWtCO0lBQ3pDLE9BQU87UUFDSCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDZCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUMzQixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDcEMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7UUFDaEIsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQzFDLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO1FBQ3BDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVztRQUMxQixTQUFTLEVBQUUsSUFBSTtRQUNmLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7UUFDcEMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUU7S0FDbkMsQ0FBQztBQUNOLENBQUM7QUFPRCxNQUFNLE9BQU8sZUFBZTtJQUd4QixNQUFNLENBQWlCO0lBR3ZCLFNBQVMsQ0FBeUI7SUFFMUIsUUFBUTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsT0FBTyxDQUFDO1lBQ0osWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJO1NBQzdCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJO1FBQ0EsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQzFELENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRixDQUFDO3VHQWhFUSxlQUFlOzJGQUFmLGVBQWUsdUtDckM1QiwwTkFDQTs7MkZEb0NhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0ksWUFBWTs4QkFPdEIsTUFBTTtzQkFETCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJekIsU0FBUztzQkFEUixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uVmlld01vZGVsIH0gZnJvbSAnQG5ha2Vkb2JqZWN0cy92aWV3LW1vZGVscyc7XG5pbXBvcnQgeyBmb2N1cyB9IGZyb20gJy4uL2hlbHBlcnMtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFjdGlvbkhvbGRlciB7XG4gICAgZG9DbGljazogKCkgPT4gdm9pZDtcbiAgICBkb1JpZ2h0Q2xpY2s/OiAoKSA9PiB2b2lkO1xuICAgIHNob3c6ICgpID0+IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ6ICgpID0+IGJvb2xlYW4gfCBudWxsO1xuICAgIHRlbXBEaXNhYmxlZDogKCkgPT4gYm9vbGVhbiB8IG51bGw7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICB0aXRsZTogKCkgPT4gc3RyaW5nO1xuICAgIGFjY2Vzc2tleTogc3RyaW5nIHwgbnVsbDtcbiAgICBwcmVzZW50YXRpb25IaW50OiBzdHJpbmc7XG4gICAgc2hvd0RpYWxvZzogKCkgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBBY3Rpb24oYTogQWN0aW9uVmlld01vZGVsKTogSUFjdGlvbkhvbGRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGEudGl0bGUsXG4gICAgICAgIGRvQ2xpY2s6ICgpID0+IGEuZG9JbnZva2UoKSxcbiAgICAgICAgZG9SaWdodENsaWNrOiAoKSA9PiBhLmRvSW52b2tlKHRydWUpLFxuICAgICAgICBzaG93OiAoKSA9PiB0cnVlLFxuICAgICAgICBkaXNhYmxlZDogKCkgPT4gYS5kaXNhYmxlZCgpID8gdHJ1ZSA6IG51bGwsXG4gICAgICAgIHRlbXBEaXNhYmxlZDogKCkgPT4gYS50ZW1wRGlzYWJsZWQoKSxcbiAgICAgICAgdGl0bGU6ICgpID0+IGEuZGVzY3JpcHRpb24sXG4gICAgICAgIGFjY2Vzc2tleTogbnVsbCxcbiAgICAgICAgcHJlc2VudGF0aW9uSGludDogYS5wcmVzZW50YXRpb25IaW50LFxuICAgICAgICBzaG93RGlhbG9nOiAoKSA9PiBhLnNob3dEaWFsb2coKVxuICAgIH07XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbm9mLWFjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICdhY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydhY3Rpb24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIGFjdGlvbiE6IElBY3Rpb25Ib2xkZXI7XG5cbiAgICBAVmlld0NoaWxkcmVuKCdmb2N1cycpXG4gICAgZm9jdXNMaXN0PzogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgcHJpdmF0ZSBjYW5DbGljaygpIHtcbiAgICAgICAgcmV0dXJuICEodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMudGVtcERpc2FibGVkKCkpO1xuICAgIH1cblxuICAgIGRvQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbkNsaWNrKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uLmRvQ2xpY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRvUmlnaHRDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuQ2xpY2soKSAmJiB0aGlzLmFjdGlvbi5kb1JpZ2h0Q2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uLmRvUmlnaHRDbGljaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3MoKSB7XG4gICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgdGVtcGRpc2FibGVkOiB0aGlzLnRlbXBEaXNhYmxlZCgpLFxuICAgICAgICAgICAgW3RoaXMuZGlhbG9nQ2xhc3MoKV06IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3coKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbi5zaG93KCk7XG4gICAgfVxuXG4gICAgZGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbi5kaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIHRlbXBEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uLnRlbXBEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIGRpYWxvZ0NsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93RGlhbG9nKCkgPyAnaGFzLXBhcmFtcycgOiAnbm8tcGFyYW1zJztcbiAgICB9XG5cbiAgICBzaG93RGlhbG9nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb24uc2hvd0RpYWxvZygpO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCB0aXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uLnRpdGxlKCk7XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gISEodGhpcy5mb2N1c0xpc3QgJiYgdGhpcy5mb2N1c0xpc3QuZmlyc3QpICYmIGZvY3VzKHRoaXMuZm9jdXNMaXN0LmZpcnN0KTtcbiAgICB9XG59XG4iLCI8aW5wdXQgI2ZvY3VzIHRhYmluZGV4PVwiMFwiIHR5cGU9XCJidXR0b25cIiBub2ZDbGljayAobGVmdENsaWNrKT1cImRvQ2xpY2soKVwiIChyaWdodENsaWNrKT1cImRvUmlnaHRDbGljaygpXCIgIFt2YWx1ZV09XCJ2YWx1ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCIgKm5nSWY9XCJzaG93KClcIiBbdGl0bGVdPVwidGl0bGVcIiBbbmdDbGFzc109XCJjbGFzcygpXCI+XG4iXX0=