UNPKG

@nakedobjects/gemini

Version:

Single Page Application client for a Naked Objects application.

88 lines 11.8 kB
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