ng-jalali-date-time
Version:
Jalali date / month / range picker for Angular with Material Design support
60 lines • 10.6 kB
JavaScript
import { Directive, Input, ComponentFactoryResolver, ViewContainerRef, Output, EventEmitter } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { JalaliLocale } from '../../shared/jalali.locale';
import { NgJalaliMonthComponent } from './ng-jalali-month.component';
import { NgJalaliDateTimeService } from '../../ng-jalali-date-time.service';
export class NgJalaliMonthDirective {
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-month-' + 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.checkMonth(this.config.min) ? this.config.min : null;
this.config.max = this.service.checkMonth(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.css = this.service.checkCSS(this.css);
this.month = this.service.checkMonth(this.month);
this.label = this.label ? this.label : this.jalaliLocale.month;
const factory = this.resolver.resolveComponentFactory(NgJalaliMonthComponent);
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.getMonthValue(this.month);
this.component.instance.label = this.label;
this.component.instance.changed = this.changed;
}
}
NgJalaliMonthDirective.decorators = [
{ type: Directive, args: [{ selector: '[jalali-month]' },] }
];
NgJalaliMonthDirective.ctorParameters = () => [
{ type: ComponentFactoryResolver },
{ type: ViewContainerRef },
{ type: NgJalaliDateTimeService }
];
NgJalaliMonthDirective.propDecorators = {
form: [{ type: Input }],
name: [{ type: Input }],
appearance: [{ type: Input }],
config: [{ type: Input }],
css: [{ type: Input }],
month: [{ type: Input }],
label: [{ type: Input }],
changed: [{ type: Output }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctamFsYWxpLW1vbnRoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWphbGFsaS1kYXRlLXRpbWUvc3JjL2xpYi9jb21wb25lbnQvbmctamFsYWxpLW1vbnRoL25nLWphbGFsaS1tb250aC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBRUwsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLNUUsTUFBTSxPQUFPLHNCQUFzQjtJQWdCL0IsWUFDcUIsUUFBa0MsRUFDbEMsU0FBMkIsRUFDM0IsT0FBZ0M7UUFGaEMsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFUOUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztJQVFqRSxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRXZGLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFFL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFFdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUzQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNuRCxDQUFDOzs7WUFwREosU0FBUyxTQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFOzs7WUFickMsd0JBQXdCO1lBQ3hCLGdCQUFnQjtZQVFYLHVCQUF1Qjs7O21CQU0zQixLQUFLO21CQUNMLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO2tCQUNMLEtBQUs7b0JBRUwsS0FBSztvQkFDTCxLQUFLO3NCQUlMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEphbGFsaUxvY2FsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9qYWxhbGkubG9jYWxlJztcbmltcG9ydCB7IE5nSmFsYWxpTW9udGhDb21wb25lbnQgfSBmcm9tICcuL25nLWphbGFsaS1tb250aC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdKYWxhbGlEYXRlVGltZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9uZy1qYWxhbGktZGF0ZS10aW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdKYWxhbGlNb250aFZhbHVlSW50ZXJmYWNlIH0gZnJvbSAnLi9uZy1qYWxhbGktbW9udGguaW50ZXJmYWNlJztcbmltcG9ydCB7IE5nSmFsYWxpRGF0ZVRpbWVDb25maWdJbnRlcmZhY2UsIE5nSmFsYWxpRGF0ZVRpbWVDc3NJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9uZy1qYWxhbGktZGF0ZS10aW1lLmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tqYWxhbGktbW9udGhdJyB9KVxuZXhwb3J0IGNsYXNzIE5nSmFsYWxpTW9udGhEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXBwZWFyYW5jZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbmZpZzogTmdKYWxhbGlEYXRlVGltZUNvbmZpZ0ludGVyZmFjZTtcbiAgICBASW5wdXQoKSBjc3M6IE5nSmFsYWxpRGF0ZVRpbWVDc3NJbnRlcmZhY2U7XG5cbiAgICBASW5wdXQoKSBtb250aDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgamFsYWxpTG9jYWxlID0gbmV3IEphbGFsaUxvY2FsZSgpO1xuXG4gICAgQE91dHB1dCgpIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5nSmFsYWxpTW9udGhWYWx1ZUludGVyZmFjZT4oKTtcblxuICAgIHByaXZhdGUgY29tcG9uZW50OiBDb21wb25lbnRSZWY8TmdKYWxhbGlNb250aENvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBOZ0phbGFsaURhdGVUaW1lU2VydmljZVxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybSkgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgIGlmICghdGhpcy5uYW1lKSB0aGlzLm5hbWUgPSAnamFsYWxpLW1vbnRoLScgKyBEYXRlLm5vdygpLnRvU3RyaW5nKCk7XG4gICAgICAgIHRoaXMuYXBwZWFyYW5jZSA9IHRoaXMuc2VydmljZS5jaGVja0FwcGVhcmFuY2UodGhpcy5hcHBlYXJhbmNlKTtcblxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnKSB0aGlzLmNvbmZpZyA9IHt9O1xuICAgICAgICB0aGlzLmNvbmZpZy5yZXF1aXJlZCA9IHRoaXMuY29uZmlnLnJlcXVpcmVkID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbmZpZy5taW4gPSB0aGlzLnNlcnZpY2UuY2hlY2tNb250aCh0aGlzLmNvbmZpZy5taW4pID8gdGhpcy5jb25maWcubWluIDogbnVsbDtcbiAgICAgICAgdGhpcy5jb25maWcubWF4ID0gdGhpcy5zZXJ2aWNlLmNoZWNrTW9udGgodGhpcy5jb25maWcubWF4KSA/IHRoaXMuY29uZmlnLm1heCA6IG51bGw7XG4gICAgICAgIHRoaXMuY29uZmlnLnJlc2V0ID0gdGhpcy5jb25maWcucmVzZXQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICB0aGlzLmNvbmZpZy5lcnJvciA9IHRoaXMuY29uZmlnLmVycm9yID8gdGhpcy5jb25maWcuZXJyb3IgOiB0aGlzLmphbGFsaUxvY2FsZS5yZXF1aXJlZDtcblxuICAgICAgICB0aGlzLmNzcyA9IHRoaXMuc2VydmljZS5jaGVja0NTUyh0aGlzLmNzcyk7XG5cbiAgICAgICAgdGhpcy5tb250aCA9IHRoaXMuc2VydmljZS5jaGVja01vbnRoKHRoaXMubW9udGgpO1xuICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5sYWJlbCA/IHRoaXMubGFiZWwgOiB0aGlzLmphbGFsaUxvY2FsZS5tb250aDtcblxuICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShOZ0phbGFsaU1vbnRoQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnQgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLmZvcm0gPSB0aGlzLmZvcm07XG4gICAgICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLmFwcGVhcmFuY2UgPSB0aGlzLmFwcGVhcmFuY2U7XG4gICAgICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLmNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5jc3MgPSB0aGlzLmNzcztcblxuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS52YWx1ZSA9IHRoaXMuc2VydmljZS5nZXRNb250aFZhbHVlKHRoaXMubW9udGgpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5sYWJlbCA9IHRoaXMubGFiZWw7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuY2hhbmdlZCA9IHRoaXMuY2hhbmdlZDtcbiAgICB9XG59XG4iXX0=