UNPKG

@nakedobjects/gemini

Version:

Single Page Application client for a Naked Objects application.

40 lines 12.3 kB
import { Component, ViewChildren, Input } from '@angular/core'; import { BaseDialogComponent } from '../base-dialog/base-dialog.component'; import some from 'lodash-es/some'; import { ParametersComponent } from '../parameters/parameters.component'; import * as i0 from "@angular/core"; import * as i1 from "@nakedobjects/view-models"; import * as i2 from "@nakedobjects/services"; import * as i3 from "@angular/forms"; import * as i4 from "@angular/common"; import * as i5 from "../parameters/parameters.component"; import * as i6 from "../click.directive"; export class DialogComponent extends BaseDialogComponent { constructor(viewModelFactory, error, context, formBuilder) { super(viewModelFactory, error, context, formBuilder); } set parentVM(parent) { this.parent = parent; } parmComponents; focus(parms) { if (parms && parms.length > 0) { some(parms.toArray(), p => p.focus()); } } ngAfterViewInit() { this.sub = this.parmComponents?.changes.subscribe(ql => this.focus(ql)); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DialogComponent, deps: [{ token: i1.ViewModelFactoryService }, { token: i2.ErrorService }, { token: i2.ContextService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DialogComponent, selector: "nof-dialog", inputs: { parentVM: "parentVM" }, viewQueries: [{ propertyName: "parmComponents", predicate: ParametersComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"dialog\" class=\"dialog\">\n\t<div class=\"title\">\n\t\t{{title}}\n\t</div>\n\t<form *ngIf=\"form\" (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\n\t\t<nof-parameters class=\"parameters\" [parameters]=\"parameters\" [parent]=\"dialog\" [form]=\"form\"></nof-parameters>\n <div class=\"co-validation\">{{message}}</div>\n\t\t<div class=\"form-row\">\n\t\t\t<input class=\"ok\" tabindex=\"0\" type=\"submit\" value=\"OK\" title=\"{{tooltip}}\" nofClick (leftClick)=\"onSubmit()\" (rightClick)=\"onSubmit(true)\" [disabled]=\"!form.valid\" />\n\t\t\t<input class=\"cancel\" tabindex=\"0\" type=\"button\" nofClick (leftClick)=\"close()\" value=\"Cancel\"/>\n\t\t</div>\n\t</form>\n</div>", styles: [":host{display:block;overflow:hidden;width:var(--field-width);background-color:var(--dialog-color);color:var(--dialog-text-color);font-size:var(--font-size-2);font-weight:var(--font-weight-3)}.dialog{display:block;overflow-y:auto;border-style:solid;border-color:#000;border-width:1px}form{padding:var(--space-3)}.dialog select{margin-bottom:var(--space-4);border-style:solid;border-color:gray;border-width:1px}input[type=text]{padding-right:var(--space-4);padding-left:var(--space-3);margin-bottom:var(--space-4);border-style:solid;border-color:gray;border-width:1px}input[type=button],input[type=reset],input[type=submit]{margin-left:var(--space-3);margin-top:var(--space-4);margin-right:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3) 1var(--space-1);text-align:center;vertical-align:middle;border:1px transparent solid;cursor:pointer;width:auto;float:right;outline:solid;outline-color:#d3d3d3;outline-width:1px;background-color:#fff}input[type=button]:focus,input[type=button]:hover,input[type=submit]:focus,input[type=submit]:hover{outline:solid;outline-width:1px;outline-color:#000}input.ok{color:var(--dialog-contrast-text-color);margin-bottom:var(--space-4)}input.ok:disabled{color:var(--disabled-color)}.title{display:block;font-size:var(--font-size-2);margin-bottom:var(--space-4);color:var(--dialog-contrast-text-color);background-color:var(--header-background-color);padding:var(--space-3);font-weight:var(--font-weight-4)}.parameter .name{width:var(--field-name-width)}.parameter{overflow:hidden;display:block}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.ParametersComponent, selector: "nof-parameters", inputs: ["parent", "form", "parameters"] }, { kind: "directive", type: i6.ClickDirective, selector: "[nofClick]", outputs: ["leftClick", "rightClick"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DialogComponent, decorators: [{ type: Component, args: [{ selector: 'nof-dialog', template: "<div *ngIf=\"dialog\" class=\"dialog\">\n\t<div class=\"title\">\n\t\t{{title}}\n\t</div>\n\t<form *ngIf=\"form\" (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\n\t\t<nof-parameters class=\"parameters\" [parameters]=\"parameters\" [parent]=\"dialog\" [form]=\"form\"></nof-parameters>\n <div class=\"co-validation\">{{message}}</div>\n\t\t<div class=\"form-row\">\n\t\t\t<input class=\"ok\" tabindex=\"0\" type=\"submit\" value=\"OK\" title=\"{{tooltip}}\" nofClick (leftClick)=\"onSubmit()\" (rightClick)=\"onSubmit(true)\" [disabled]=\"!form.valid\" />\n\t\t\t<input class=\"cancel\" tabindex=\"0\" type=\"button\" nofClick (leftClick)=\"close()\" value=\"Cancel\"/>\n\t\t</div>\n\t</form>\n</div>", styles: [":host{display:block;overflow:hidden;width:var(--field-width);background-color:var(--dialog-color);color:var(--dialog-text-color);font-size:var(--font-size-2);font-weight:var(--font-weight-3)}.dialog{display:block;overflow-y:auto;border-style:solid;border-color:#000;border-width:1px}form{padding:var(--space-3)}.dialog select{margin-bottom:var(--space-4);border-style:solid;border-color:gray;border-width:1px}input[type=text]{padding-right:var(--space-4);padding-left:var(--space-3);margin-bottom:var(--space-4);border-style:solid;border-color:gray;border-width:1px}input[type=button],input[type=reset],input[type=submit]{margin-left:var(--space-3);margin-top:var(--space-4);margin-right:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3) 1var(--space-1);text-align:center;vertical-align:middle;border:1px transparent solid;cursor:pointer;width:auto;float:right;outline:solid;outline-color:#d3d3d3;outline-width:1px;background-color:#fff}input[type=button]:focus,input[type=button]:hover,input[type=submit]:focus,input[type=submit]:hover{outline:solid;outline-width:1px;outline-color:#000}input.ok{color:var(--dialog-contrast-text-color);margin-bottom:var(--space-4)}input.ok:disabled{color:var(--disabled-color)}.title{display:block;font-size:var(--font-size-2);margin-bottom:var(--space-4);color:var(--dialog-contrast-text-color);background-color:var(--header-background-color);padding:var(--space-3);font-weight:var(--font-weight-4)}.parameter .name{width:var(--field-name-width)}.parameter{overflow:hidden;display:block}\n"] }] }], ctorParameters: () => [{ type: i1.ViewModelFactoryService }, { type: i2.ErrorService }, { type: i2.ContextService }, { type: i3.FormBuilder }], propDecorators: { parentVM: [{ type: Input }], parmComponents: [{ type: ViewChildren, args: [ParametersComponent] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2dlbWluaS9zcmMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQXdCLFlBQVksRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVL0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7O0FBT3pFLE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUVwRCxZQUNJLGdCQUF5QyxFQUN6QyxLQUFtQixFQUNuQixPQUF1QixFQUN2QixXQUF3QjtRQUNwQixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFDSSxRQUFRLENBQUMsTUFBb0Y7UUFDN0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUdELGNBQWMsQ0FBa0M7SUFFaEQsS0FBSyxDQUFDLEtBQXFDO1FBQ3ZDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7dUdBMUJRLGVBQWU7MkZBQWYsZUFBZSx1SEFlVixtQkFBbUIsdUVDbENyQywwdEJBWU07OzJGRE9PLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0ksWUFBWTs4S0FlbEIsUUFBUTtzQkFEWCxLQUFLO2dCQU1OLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIE9uQ2hhbmdlcywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIEVycm9yU2VydmljZSB9IGZyb20gJ0BuYWtlZG9iamVjdHMvc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uVmlld01vZGVsLFxuICAgIERvbWFpbk9iamVjdFZpZXdNb2RlbCxcbiAgICBMaXN0Vmlld01vZGVsLFxuICAgIE1lbnVWaWV3TW9kZWwsXG4gICAgVmlld01vZGVsRmFjdG9yeVNlcnZpY2Vcbn0gZnJvbSAnQG5ha2Vkb2JqZWN0cy92aWV3LW1vZGVscyc7XG5pbXBvcnQgeyBCYXNlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1kaWFsb2cvYmFzZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCBzb21lIGZyb20gJ2xvZGFzaC1lcy9zb21lJztcbmltcG9ydCB7IFBhcmFtZXRlcnNDb21wb25lbnQgfSBmcm9tICcuLi9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdub2YtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2RpYWxvZy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQmFzZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICB2aWV3TW9kZWxGYWN0b3J5OiBWaWV3TW9kZWxGYWN0b3J5U2VydmljZSxcbiAgICAgICAgZXJyb3I6IEVycm9yU2VydmljZSxcbiAgICAgICAgY29udGV4dDogQ29udGV4dFNlcnZpY2UsXG4gICAgICAgIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICAgICAgICAgICAgc3VwZXIodmlld01vZGVsRmFjdG9yeSwgZXJyb3IsIGNvbnRleHQsIGZvcm1CdWlsZGVyKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBwYXJlbnRWTShwYXJlbnQgOiBDb2xsZWN0aW9uVmlld01vZGVsIHwgTWVudVZpZXdNb2RlbCB8IExpc3RWaWV3TW9kZWwgfCBEb21haW5PYmplY3RWaWV3TW9kZWwpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZHJlbihQYXJhbWV0ZXJzQ29tcG9uZW50KVxuICAgIHBhcm1Db21wb25lbnRzPzogUXVlcnlMaXN0PFBhcmFtZXRlcnNDb21wb25lbnQ+O1xuXG4gICAgZm9jdXMocGFybXM6IFF1ZXJ5TGlzdDxQYXJhbWV0ZXJzQ29tcG9uZW50Pikge1xuICAgICAgICBpZiAocGFybXMgJiYgcGFybXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc29tZShwYXJtcy50b0FycmF5KCksIHAgPT4gcC5mb2N1cygpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWIgPSB0aGlzLnBhcm1Db21wb25lbnRzPy5jaGFuZ2VzLnN1YnNjcmliZShxbCA9PiB0aGlzLmZvY3VzKHFsKSk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRpYWxvZ1wiIGNsYXNzPVwiZGlhbG9nXCI+XG5cdDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdHt7dGl0bGV9fVxuXHQ8L2Rpdj5cblx0PGZvcm0gKm5nSWY9XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cblx0XHQ8bm9mLXBhcmFtZXRlcnMgY2xhc3M9XCJwYXJhbWV0ZXJzXCIgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVyc1wiIFtwYXJlbnRdPVwiZGlhbG9nXCIgW2Zvcm1dPVwiZm9ybVwiPjwvbm9mLXBhcmFtZXRlcnM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby12YWxpZGF0aW9uXCI+e3ttZXNzYWdlfX08L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cblx0XHRcdDxpbnB1dCBjbGFzcz1cIm9rXCIgdGFiaW5kZXg9XCIwXCIgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiT0tcIiB0aXRsZT1cInt7dG9vbHRpcH19XCIgbm9mQ2xpY2sgKGxlZnRDbGljayk9XCJvblN1Ym1pdCgpXCIgKHJpZ2h0Q2xpY2spPVwib25TdWJtaXQodHJ1ZSlcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIiAvPlxuXHRcdFx0PGlucHV0IGNsYXNzPVwiY2FuY2VsXCIgdGFiaW5kZXg9XCIwXCIgdHlwZT1cImJ1dHRvblwiIG5vZkNsaWNrIChsZWZ0Q2xpY2spPVwiY2xvc2UoKVwiIHZhbHVlPVwiQ2FuY2VsXCIvPlxuXHRcdDwvZGl2PlxuXHQ8L2Zvcm0+XG48L2Rpdj4iXX0=