ng-jalali-date-time
Version:
Jalali date / month / range picker for Angular with Material Design support
64 lines • 11.8 kB
JavaScript
import { Directive, ComponentFactoryResolver, ViewContainerRef, Input, Output, EventEmitter } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { JalaliLocale } from '../../shared/jalali.locale';
import { NgJalaliDateTimeComponent } from './ng-jalali-date-time.component';
import { NgJalaliDateTimeService } from '../../ng-jalali-date-time.service';
export class NgJalaliDateTimeDirective {
constructor(resolver, container, service) {
this.resolver = resolver;
this.container = container;
this.service = service;
this.jalaliLocale = new JalaliLocale();
this.changed = new EventEmitter();
}
ngOnInit() {
if (!this.form)
this.form = new FormGroup({});
if (!this.name)
this.name = 'jalali-date-time-' + Date.now().toString();
this.appearance = this.service.checkAppearance(this.appearance);
if (!this.config)
this.config = {};
this.config.required = this.config.required ? true : false;
this.config.min = this.service.checkDate(this.config.min) ? this.config.min : null;
this.config.max = this.service.checkDate(this.config.max) ? this.config.max : null;
this.config.reset = this.config.reset === false ? false : true;
this.config.error = this.config.error ? this.config.error : this.jalaliLocale.required;
this.config.time = this.config.time ? true : false;
this.config.second = this.config.second ? true : false;
this.css = this.service.checkCSS(this.css);
this.date = this.service.checkDate(this.date);
this.time = this.config.time ? this.service.checkTime(this.time) : '';
this.label = this.label ? this.label : this.jalaliLocale.date;
const factory = this.resolver.resolveComponentFactory(NgJalaliDateTimeComponent);
this.component = this.container.createComponent(factory);
this.component.instance.form = this.form;
this.component.instance.name = this.name;
this.component.instance.appearance = this.appearance;
this.component.instance.config = this.config;
this.component.instance.css = this.css;
this.component.instance.value = this.service.getDateTimeValue(this.date, this.time);
this.component.instance.label = this.label;
this.component.instance.changed = this.changed;
}
}
NgJalaliDateTimeDirective.decorators = [
{ type: Directive, args: [{ selector: '[jalali-date-time]' },] }
];
NgJalaliDateTimeDirective.ctorParameters = () => [
{ type: ComponentFactoryResolver },
{ type: ViewContainerRef },
{ type: NgJalaliDateTimeService }
];
NgJalaliDateTimeDirective.propDecorators = {
form: [{ type: Input }],
name: [{ type: Input }],
appearance: [{ type: Input }],
config: [{ type: Input }],
css: [{ type: Input }],
date: [{ type: Input }],
time: [{ type: Input }],
label: [{ type: Input }],
changed: [{ type: Output }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctamFsYWxpLWRhdGUtdGltZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1qYWxhbGktZGF0ZS10aW1lL3NyYy9saWIvY29tcG9uZW50L25nLWphbGFsaS1kYXRlLXRpbWUvbmctamFsYWxpLWRhdGUtdGltZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCx3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLEtBQUssRUFFTCxNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLNUUsTUFBTSxPQUFPLHlCQUF5QjtJQWlCbEMsWUFDcUIsUUFBa0MsRUFDbEMsU0FBMkIsRUFDM0IsT0FBZ0M7UUFGaEMsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFUOUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBa0MsQ0FBQztJQVFwRSxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDdkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUV2RCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1FBRTlELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXZDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTNDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ25ELENBQUM7OztZQXhESixTQUFTLFNBQUMsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7OztZQWZ6Qyx3QkFBd0I7WUFDeEIsZ0JBQWdCO1lBVVgsdUJBQXVCOzs7bUJBTTNCLEtBQUs7bUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3FCQUNMLEtBQUs7a0JBQ0wsS0FBSzttQkFFTCxLQUFLO21CQUNMLEtBQUs7b0JBQ0wsS0FBSztzQkFJTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgT25Jbml0LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIElucHV0LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBKYWxhbGlMb2NhbGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvamFsYWxpLmxvY2FsZSc7XG5pbXBvcnQgeyBOZ0phbGFsaURhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9uZy1qYWxhbGktZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0phbGFsaURhdGVUaW1lU2VydmljZSB9IGZyb20gJy4uLy4uL25nLWphbGFsaS1kYXRlLXRpbWUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ0phbGFsaURhdGVUaW1lVmFsdWVJbnRlcmZhY2UgfSBmcm9tICcuL25nLWphbGFsaS1kYXRlLXRpbWUuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5nSmFsYWxpRGF0ZVRpbWVDb25maWdJbnRlcmZhY2UsIE5nSmFsYWxpRGF0ZVRpbWVDc3NJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9uZy1qYWxhbGktZGF0ZS10aW1lLmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tqYWxhbGktZGF0ZS10aW1lXScgfSlcbmV4cG9ydCBjbGFzcyBOZ0phbGFsaURhdGVUaW1lRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFwcGVhcmFuY2U6IHN0cmluZztcbiAgICBASW5wdXQoKSBjb25maWc6IE5nSmFsYWxpRGF0ZVRpbWVDb25maWdJbnRlcmZhY2U7XG4gICAgQElucHV0KCkgY3NzOiBOZ0phbGFsaURhdGVUaW1lQ3NzSW50ZXJmYWNlO1xuXG4gICAgQElucHV0KCkgZGF0ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gICAgcHVibGljIGphbGFsaUxvY2FsZSA9IG5ldyBKYWxhbGlMb2NhbGUoKTtcblxuICAgIEBPdXRwdXQoKSBjaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxOZ0phbGFsaURhdGVUaW1lVmFsdWVJbnRlcmZhY2U+KCk7XG5cbiAgICBwcml2YXRlIGNvbXBvbmVudDogQ29tcG9uZW50UmVmPE5nSmFsYWxpRGF0ZVRpbWVDb21wb25lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogTmdKYWxhbGlEYXRlVGltZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0pIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICBpZiAoIXRoaXMubmFtZSkgdGhpcy5uYW1lID0gJ2phbGFsaS1kYXRlLXRpbWUtJyArIERhdGUubm93KCkudG9TdHJpbmcoKTtcbiAgICAgICAgdGhpcy5hcHBlYXJhbmNlID0gdGhpcy5zZXJ2aWNlLmNoZWNrQXBwZWFyYW5jZSh0aGlzLmFwcGVhcmFuY2UpO1xuXG4gICAgICAgIGlmICghdGhpcy5jb25maWcpIHRoaXMuY29uZmlnID0ge307XG4gICAgICAgIHRoaXMuY29uZmlnLnJlcXVpcmVkID0gdGhpcy5jb25maWcucmVxdWlyZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMuY29uZmlnLm1pbiA9IHRoaXMuc2VydmljZS5jaGVja0RhdGUodGhpcy5jb25maWcubWluKSA/IHRoaXMuY29uZmlnLm1pbiA6IG51bGw7XG4gICAgICAgIHRoaXMuY29uZmlnLm1heCA9IHRoaXMuc2VydmljZS5jaGVja0RhdGUodGhpcy5jb25maWcubWF4KSA/IHRoaXMuY29uZmlnLm1heCA6IG51bGw7XG4gICAgICAgIHRoaXMuY29uZmlnLnJlc2V0ID0gdGhpcy5jb25maWcucmVzZXQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICB0aGlzLmNvbmZpZy5lcnJvciA9IHRoaXMuY29uZmlnLmVycm9yID8gdGhpcy5jb25maWcuZXJyb3IgOiB0aGlzLmphbGFsaUxvY2FsZS5yZXF1aXJlZDtcbiAgICAgICAgdGhpcy5jb25maWcudGltZSA9IHRoaXMuY29uZmlnLnRpbWUgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMuY29uZmlnLnNlY29uZCA9IHRoaXMuY29uZmlnLnNlY29uZCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICB0aGlzLmNzcyA9IHRoaXMuc2VydmljZS5jaGVja0NTUyh0aGlzLmNzcyk7XG5cbiAgICAgICAgdGhpcy5kYXRlID0gdGhpcy5zZXJ2aWNlLmNoZWNrRGF0ZSh0aGlzLmRhdGUpO1xuICAgICAgICB0aGlzLnRpbWUgPSB0aGlzLmNvbmZpZy50aW1lID8gdGhpcy5zZXJ2aWNlLmNoZWNrVGltZSh0aGlzLnRpbWUpIDogJyc7XG4gICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmxhYmVsID8gdGhpcy5sYWJlbCA6IHRoaXMuamFsYWxpTG9jYWxlLmRhdGU7XG5cbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTmdKYWxhbGlEYXRlVGltZUNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5mb3JtID0gdGhpcy5mb3JtO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5hcHBlYXJhbmNlID0gdGhpcy5hcHBlYXJhbmNlO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuY3NzID0gdGhpcy5jc3M7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UudmFsdWUgPSB0aGlzLnNlcnZpY2UuZ2V0RGF0ZVRpbWVWYWx1ZSh0aGlzLmRhdGUsIHRoaXMudGltZSk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLmxhYmVsID0gdGhpcy5sYWJlbDtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5jaGFuZ2VkID0gdGhpcy5jaGFuZ2VkO1xuICAgIH1cbn1cbiJdfQ==