tolga-ng2
Version:
Angular 2/4 components and directives
80 lines • 10.9 kB
JavaScript
import { Component, forwardRef, Input } from '@angular/core';
import { NG_VALUE_ACCESSOR } from "@angular/forms";
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/forms";
export class NgsmTimepickerComponent {
constructor() {
this.propagateChange = (_) => { };
}
getClassNames() {
if (this.config.required && !this.innerValue)
return "invalid";
else if (this.config.required && this.innerValue)
return "valid";
return "";
}
init() {
//this.ngsmService.log("ngsmTimepicker", "init");
let self = this;
setTimeout(function () {
$(`#${self.config.id}`).calendar({
type: 'time',
onChange: jQuery.proxy(function (value) {
let formatedTime = moment(value).format("HH:mm A");
//self.ngsmService.log("ngsmTimepicker", formatedTime);
self.propagateChange(formatedTime);
}, self)
});
}, 250);
}
ngOnInit() {
//this.ngsmService.log("ngsmTimepicker", "ngOnInit");
}
ngOnChanges() {
//this.ngsmService.log("ngsmTimepicker", "ngOnChanges");
if (this.config && this.config.id) {
this.init();
}
}
get value() {
return this.innerValue;
}
;
writeValue(value) {
if (value !== undefined) {
//this.ngsmService.log("ngsm-timepicker writeValue", value);
var dateValue = moment(value);
if (moment(dateValue).isValid())
this.innerValue = `${dateValue.format("HH:mm A")}`;
else
this.innerValue = value;
}
}
onTouchedCallback() { }
registerOnTouched() { }
registerOnChange(fn) {
this.propagateChange = fn;
}
}
NgsmTimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgsmTimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
NgsmTimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgsmTimepickerComponent, selector: "ngsm-timepicker", inputs: { config: "config" }, providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => NgsmTimepickerComponent),
multi: true
}
], usesOnChanges: true, ngImport: i0, template: "<div id=\"{{config.id}}\"\r\n class=\"ui calendar\">\r\n <div class=\"ui input left icon\">\r\n <i class=\"time icon\"></i>\r\n <input [(ngModel)]=\"innerValue\"\r\n [ngClass]=\"getClassNames()\"\r\n placeholder=\"{{config.placeholder}}\">\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgsmTimepickerComponent, decorators: [{
type: Component,
args: [{ selector: 'ngsm-timepicker', providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => NgsmTimepickerComponent),
multi: true
}
], template: "<div id=\"{{config.id}}\"\r\n class=\"ui calendar\">\r\n <div class=\"ui input left icon\">\r\n <i class=\"time icon\"></i>\r\n <input [(ngModel)]=\"innerValue\"\r\n [ngClass]=\"getClassNames()\"\r\n placeholder=\"{{config.placeholder}}\">\r\n </div>\r\n</div>" }]
}], ctorParameters: function () { return []; }, propDecorators: { config: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzbS10aW1lcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbmdzbS9jb21wb25lbnRzL25nc20tdGltZXBpY2tlci9uZ3NtLXRpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9uZ3NtL2NvbXBvbmVudHMvbmdzbS10aW1lcGlja2VyL25nc20tdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBa0J6RSxNQUFNLE9BQU8sdUJBQXVCO0lBT2xDO1FBcURBLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQXJEbEIsQ0FBQztJQUVqQixhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQzFDLE9BQU8sU0FBUyxDQUFDO2FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUM5QyxPQUFPLE9BQU8sQ0FBQztRQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFJO1FBQ0YsaURBQWlEO1FBQ2pELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixVQUFVLENBQUM7WUFDSCxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQUMsUUFBUSxDQUFDO2dCQUN0QyxJQUFJLEVBQUUsTUFBTTtnQkFDWixRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUs7b0JBQ3BDLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ25ELHVEQUF1RDtvQkFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDckMsQ0FBQyxFQUFFLElBQUksQ0FBQzthQUNULENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxRQUFRO1FBQ04scURBQXFEO0lBQ3ZELENBQUM7SUFFRCxXQUFXO1FBQ1Qsd0RBQXdEO1FBQ3hELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUFBLENBQUM7SUFFRixVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsNERBQTREO1lBQzVELElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7O2dCQUVuRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxpQkFBaUIsS0FBSyxDQUFDO0lBQ3ZCLGlCQUFpQixLQUFLLENBQUM7SUFHdkIsZ0JBQWdCLENBQUMsRUFBRTtRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDOztvSEFoRVUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsd0VBUnZCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFDdEQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLCtDQ2pCSCx5UkFRTTsyRkRXTyx1QkFBdUI7a0JBWm5DLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFLRCxNQUFNO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE5nc21EYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25nc21EYXRlcGlja2VyQ29uZmlnJztcclxuXHJcblxyXG5kZWNsYXJlIHZhciBtb21lbnQ6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmdzbS10aW1lcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmdzbS10aW1lcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZ3NtLXRpbWVwaWNrZXIuY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmdzbVRpbWVwaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5nc21UaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29uZmlnOiBOZ3NtRGF0ZXBpY2tlckNvbmZpZztcclxuXHJcbiAgaW5uZXJWYWx1ZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBnZXRDbGFzc05hbWVzKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLnJlcXVpcmVkICYmICF0aGlzLmlubmVyVmFsdWUpXHJcbiAgICAgIHJldHVybiBcImludmFsaWRcIjtcclxuICAgIGVsc2UgaWYgKHRoaXMuY29uZmlnLnJlcXVpcmVkICYmIHRoaXMuaW5uZXJWYWx1ZSlcclxuICAgICAgcmV0dXJuIFwidmFsaWRcIjtcclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIC8vdGhpcy5uZ3NtU2VydmljZS5sb2coXCJuZ3NtVGltZXBpY2tlclwiLCBcImluaXRcIik7XHJcbiAgICBsZXQgc2VsZiA9IHRoaXM7XHJcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgKDxhbnk+JChgIyR7c2VsZi5jb25maWcuaWR9YCkpLmNhbGVuZGFyKHtcclxuICAgICAgICB0eXBlOiAndGltZScsXHJcbiAgICAgICAgb25DaGFuZ2U6IGpRdWVyeS5wcm94eShmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgIGxldCBmb3JtYXRlZFRpbWUgPSBtb21lbnQodmFsdWUpLmZvcm1hdChcIkhIOm1tIEFcIik7XHJcbiAgICAgICAgICAvL3NlbGYubmdzbVNlcnZpY2UubG9nKFwibmdzbVRpbWVwaWNrZXJcIiwgZm9ybWF0ZWRUaW1lKTtcclxuICAgICAgICAgIHNlbGYucHJvcGFnYXRlQ2hhbmdlKGZvcm1hdGVkVGltZSk7XHJcbiAgICAgICAgfSwgc2VsZilcclxuICAgICAgfSk7XHJcbiAgICB9LCAyNTApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvL3RoaXMubmdzbVNlcnZpY2UubG9nKFwibmdzbVRpbWVwaWNrZXJcIiwgXCJuZ09uSW5pdFwiKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgLy90aGlzLm5nc21TZXJ2aWNlLmxvZyhcIm5nc21UaW1lcGlja2VyXCIsIFwibmdPbkNoYW5nZXNcIik7XHJcbiAgICBpZiAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuaWQpIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAvL3RoaXMubmdzbVNlcnZpY2UubG9nKFwibmdzbS10aW1lcGlja2VyIHdyaXRlVmFsdWVcIiwgdmFsdWUpO1xyXG4gICAgICB2YXIgZGF0ZVZhbHVlID0gbW9tZW50KHZhbHVlKTtcclxuICAgICAgaWYgKG1vbWVudChkYXRlVmFsdWUpLmlzVmFsaWQoKSlcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBgJHtkYXRlVmFsdWUuZm9ybWF0KFwiSEg6bW0gQVwiKX1gO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRvdWNoZWRDYWxsYmFjaygpIHsgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCkgeyB9XHJcbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ7e2NvbmZpZy5pZH19XCJcclxuICBjbGFzcz1cInVpIGNhbGVuZGFyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInVpIGlucHV0IGxlZnQgaWNvblwiPlxyXG4gICAgPGkgY2xhc3M9XCJ0aW1lIGljb25cIj48L2k+XHJcbiAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJpbm5lclZhbHVlXCJcclxuICAgICAgW25nQ2xhc3NdPVwiZ2V0Q2xhc3NOYW1lcygpXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJ7e2NvbmZpZy5wbGFjZWhvbGRlcn19XCI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==