@nakedobjects/gemini
Version:
Single Page Application client for a Naked Objects application.
82 lines • 11 kB
JavaScript
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=