UNPKG

ng-jalali-date-time

Version:

Jalali date / month / range picker for Angular with Material Design support

60 lines 10.6 kB
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=