@nakedobjects/gemini
Version:
Single Page Application client for a Naked Objects application.
88 lines • 11.8 kB
JavaScript
import { Component, EventEmitter, Input, ViewChild } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "../time-picker/time-picker.component";
export class TimePickerFacadeComponent {
constructor() {
this.inputEvents = new EventEmitter();
}
control;
form;
model;
timepicker;
inputEvents;
get id() {
return this.model.paneArgId;
}
setValueIfChanged(time) {
const oldValue = this.control.value;
const newValue = time ? time : '';
if (newValue !== oldValue) {
this.model.resetMessage();
this.model.clientValid = true;
this.control.setValue(newValue);
}
}
handleTimeChangedEvent(time) {
if (this.control) {
this.setValueIfChanged(time);
}
}
handleTimeClearedEvent() {
if (this.control) {
this.model.resetMessage();
this.model.clientValid = true;
this.control.setValue('');
}
}
handleInvalidTimeEvent() {
if (this.control) {
this.control.setValue('');
this.model.setInvalidTime();
this.model.clientValid = false;
this.control.setErrors({ [this.model.getMessage()]: true });
}
}
handleEvents(e) {
switch (e.type) {
case ('timeChanged'):
this.handleTimeChangedEvent(e.data);
break;
case ('timeInvalid'):
this.handleInvalidTimeEvent();
break;
case ('timeCleared'):
this.handleTimeClearedEvent();
break;
default: // ignore
}
}
ngAfterViewInit() {
const existingValue = this.control && this.control.value;
if (existingValue && (existingValue instanceof String || typeof existingValue === 'string')) {
setTimeout(() => this.inputEvents.emit({ type: 'setTime', data: existingValue }));
}
}
focus() {
return this.timepicker && this.timepicker.focus();
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TimePickerFacadeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: TimePickerFacadeComponent, selector: "nof-time-picker-facade", inputs: { control: "control", form: "form", model: "model" }, viewQueries: [{ propertyName: "timepicker", first: true, predicate: ["tp"], descendants: true }], ngImport: i0, template: "<div [formGroup]=\"form\">\n <nof-time-picker #tp [id]=\"id\" [inputEvents]=\"inputEvents\" (outputEvents)=\"handleEvents($event)\" ></nof-time-picker >\n</div> \n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.TimePickerComponent, selector: "nof-time-picker", inputs: ["inputEvents", "id"], outputs: ["outputEvents"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TimePickerFacadeComponent, decorators: [{
type: Component,
args: [{ selector: 'nof-time-picker-facade', template: "<div [formGroup]=\"form\">\n <nof-time-picker #tp [id]=\"id\" [inputEvents]=\"inputEvents\" (outputEvents)=\"handleEvents($event)\" ></nof-time-picker >\n</div> \n" }]
}], ctorParameters: () => [], propDecorators: { control: [{
type: Input,
args: [{ required: true }]
}], form: [{
type: Input,
args: [{ required: true }]
}], model: [{
type: Input,
args: [{ required: true }]
}], timepicker: [{
type: ViewChild,
args: ['tp', { static: false }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItZmFjYWRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2dlbWluaS9zcmMvdGltZS1waWNrZXItZmFjYWRlL3RpbWUtcGlja2VyLWZhY2FkZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL3RpbWUtcGlja2VyLWZhY2FkZS90aW1lLXBpY2tlci1mYWNhZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFXekYsTUFBTSxPQUFPLHlCQUF5QjtJQUVsQztRQUNJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFDakUsQ0FBQztJQUdELE9BQU8sQ0FBbUI7SUFHMUIsSUFBSSxDQUFhO0lBR2pCLEtBQUssQ0FBa0I7SUFHdkIsVUFBVSxDQUF1QjtJQUVqQyxXQUFXLENBQXNDO0lBRWpELElBQUksRUFBRTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVk7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVsQyxJQUFJLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVk7UUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxDQUF5QjtRQUNsQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU07WUFDVixLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUNoQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDOUIsTUFBTTtZQUNWLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUM5QixNQUFNO1lBQ1YsUUFBUSxDQUFDLFNBQVM7UUFDdEIsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLGFBQWEsSUFBSSxDQUFDLGFBQWEsWUFBWSxNQUFNLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMxRixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxhQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7dUdBbEZRLHlCQUF5QjsyRkFBekIseUJBQXlCLDhOQ1h0Qyw4S0FHQTs7MkZEUWEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHdCQUF3Qjt3REFXbEMsT0FBTztzQkFETixLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFHLElBQUksRUFBQztnQkFJeEIsSUFBSTtzQkFESCxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFHLElBQUksRUFBQztnQkFJeEIsS0FBSztzQkFESixLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFHLElBQUksRUFBQztnQkFJeEIsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLElBQUksRUFBRSxFQUFDLE1BQU0sRUFBRyxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZFZpZXdNb2RlbCB9IGZyb20gJ0BuYWtlZG9iamVjdHMvdmlldy1tb2RlbHMnO1xuaW1wb3J0IHsgVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJVGltZVBpY2tlcklucHV0RXZlbnQsIElUaW1lUGlja2VyT3V0cHV0RXZlbnQgfSBmcm9tICcuLi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25vZi10aW1lLXBpY2tlci1mYWNhZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAndGltZS1waWNrZXItZmFjYWRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsndGltZS1waWNrZXItZmFjYWRlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyRmFjYWRlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbnB1dEV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8SVRpbWVQaWNrZXJJbnB1dEV2ZW50PigpO1xuICAgIH1cblxuICAgIEBJbnB1dCh7cmVxdWlyZWQgOiB0cnVlfSlcbiAgICBjb250cm9sITogQWJzdHJhY3RDb250cm9sO1xuXG4gICAgQElucHV0KHtyZXF1aXJlZCA6IHRydWV9KVxuICAgIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgICBASW5wdXQoe3JlcXVpcmVkIDogdHJ1ZX0pXG4gICAgbW9kZWwhOiBGaWVsZFZpZXdNb2RlbDtcblxuICAgIEBWaWV3Q2hpbGQoJ3RwJywge3N0YXRpYyA6IGZhbHNlfSlcbiAgICB0aW1lcGlja2VyPzogVGltZVBpY2tlckNvbXBvbmVudDtcblxuICAgIGlucHV0RXZlbnRzOiBFdmVudEVtaXR0ZXI8SVRpbWVQaWNrZXJJbnB1dEV2ZW50PjtcblxuICAgIGdldCBpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwucGFuZUFyZ0lkO1xuICAgIH1cblxuICAgIHNldFZhbHVlSWZDaGFuZ2VkKHRpbWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuY29udHJvbC52YWx1ZTtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aW1lID8gdGltZSA6ICcnO1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwucmVzZXRNZXNzYWdlKCk7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmNsaWVudFZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVUaW1lQ2hhbmdlZEV2ZW50KHRpbWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlSWZDaGFuZ2VkKHRpbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlVGltZUNsZWFyZWRFdmVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5yZXNldE1lc3NhZ2UoKTtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuY2xpZW50VmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUludmFsaWRUaW1lRXZlbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNldEludmFsaWRUaW1lKCk7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmNsaWVudFZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHsgW3RoaXMubW9kZWwuZ2V0TWVzc2FnZSgpXTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUV2ZW50cyhlOiBJVGltZVBpY2tlck91dHB1dEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICgndGltZUNoYW5nZWQnKTpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVRpbWVDaGFuZ2VkRXZlbnQoZS5kYXRhKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKCd0aW1lSW52YWxpZCcpOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW52YWxpZFRpbWVFdmVudCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAoJ3RpbWVDbGVhcmVkJyk6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVUaW1lQ2xlYXJlZEV2ZW50KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OiAvLyBpZ25vcmVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IHRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmIChleGlzdGluZ1ZhbHVlICYmIChleGlzdGluZ1ZhbHVlIGluc3RhbmNlb2YgU3RyaW5nIHx8IHR5cGVvZiBleGlzdGluZ1ZhbHVlID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnB1dEV2ZW50cy5lbWl0KHsgdHlwZTogJ3NldFRpbWUnLCBkYXRhOiBleGlzdGluZ1ZhbHVlIGFzIHN0cmluZyB9KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZXBpY2tlciAmJiB0aGlzLnRpbWVwaWNrZXIuZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgIDxub2YtdGltZS1waWNrZXIgI3RwIFtpZF09XCJpZFwiIFtpbnB1dEV2ZW50c109XCJpbnB1dEV2ZW50c1wiIChvdXRwdXRFdmVudHMpPVwiaGFuZGxlRXZlbnRzKCRldmVudClcIiAgPjwvbm9mLXRpbWUtcGlja2VyID5cbjwvZGl2PiAgICAgIFxuIl19