UNPKG

ng-jalali-date-time

Version:

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

62 lines 10.9 kB
import { Directive, Input, ComponentFactoryResolver, ViewContainerRef, EventEmitter, Output } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { JalaliLocale } from '../../shared/jalali.locale'; import { NgJalaliRangeComponent } from './ng-jalali-range.component'; import { NgJalaliDateTimeService } from '../../ng-jalali-date-time.service'; export class NgJalaliRangeDirective { 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-range-' + 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.css = this.service.checkCSS(this.css); this.from = this.service.checkDate(this.from); this.to = this.service.checkDate(this.to); this.label = this.label ? this.label : this.jalaliLocale.range; const factory = this.resolver.resolveComponentFactory(NgJalaliRangeComponent); 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.getRangeValue(this.from, this.to); this.component.instance.label = this.label; this.component.instance.changed = this.changed; } } NgJalaliRangeDirective.decorators = [ { type: Directive, args: [{ selector: '[jalali-range]' },] } ]; NgJalaliRangeDirective.ctorParameters = () => [ { type: ComponentFactoryResolver }, { type: ViewContainerRef }, { type: NgJalaliDateTimeService } ]; NgJalaliRangeDirective.propDecorators = { form: [{ type: Input }], name: [{ type: Input }], appearance: [{ type: Input }], config: [{ type: Input }], css: [{ type: Input }], from: [{ type: Input }], to: [{ type: Input }], label: [{ type: Input }], changed: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctamFsYWxpLXJhbmdlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWphbGFsaS1kYXRlLXRpbWUvc3JjL2xpYi9jb21wb25lbnQvbmctamFsYWxpLXJhbmdlL25nLWphbGFsaS1yYW5nZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBRUwsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLNUUsTUFBTSxPQUFPLHNCQUFzQjtJQWlCL0IsWUFDcUIsUUFBa0MsRUFDbEMsU0FBMkIsRUFDM0IsT0FBZ0M7UUFGaEMsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFUOUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztJQVFqRSxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRXZGLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFFL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFFdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTNDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ25ELENBQUM7OztZQXRESixTQUFTLFNBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUU7OztZQWJyQyx3QkFBd0I7WUFDeEIsZ0JBQWdCO1lBUVgsdUJBQXVCOzs7bUJBTTNCLEtBQUs7bUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3FCQUNMLEtBQUs7a0JBQ0wsS0FBSzttQkFFTCxLQUFLO2lCQUNMLEtBQUs7b0JBQ0wsS0FBSztzQkFJTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgT25Jbml0LFxuICAgIElucHV0LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBKYWxhbGlMb2NhbGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvamFsYWxpLmxvY2FsZSc7XG5pbXBvcnQgeyBOZ0phbGFsaVJhbmdlQ29tcG9uZW50IH0gZnJvbSAnLi9uZy1qYWxhbGktcmFuZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IE5nSmFsYWxpRGF0ZVRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbmctamFsYWxpLWRhdGUtdGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5nSmFsYWxpUmFuZ2VWYWx1ZUludGVyZmFjZSB9IGZyb20gJy4vbmctamFsYWxpLXJhbmdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOZ0phbGFsaURhdGVUaW1lQ29uZmlnSW50ZXJmYWNlLCBOZ0phbGFsaURhdGVUaW1lQ3NzSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vbmctamFsYWxpLWRhdGUtdGltZS5pbnRlcmZhY2UnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbamFsYWxpLXJhbmdlXScgfSlcbmV4cG9ydCBjbGFzcyBOZ0phbGFsaVJhbmdlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFwcGVhcmFuY2U6IHN0cmluZztcbiAgICBASW5wdXQoKSBjb25maWc6IE5nSmFsYWxpRGF0ZVRpbWVDb25maWdJbnRlcmZhY2U7XG4gICAgQElucHV0KCkgY3NzOiBOZ0phbGFsaURhdGVUaW1lQ3NzSW50ZXJmYWNlO1xuXG4gICAgQElucHV0KCkgZnJvbTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRvOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAgIHB1YmxpYyBqYWxhbGlMb2NhbGUgPSBuZXcgSmFsYWxpTG9jYWxlKCk7XG5cbiAgICBAT3V0cHV0KCkgY2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TmdKYWxhbGlSYW5nZVZhbHVlSW50ZXJmYWNlPigpO1xuXG4gICAgcHJpdmF0ZSBjb21wb25lbnQ6IENvbXBvbmVudFJlZjxOZ0phbGFsaVJhbmdlQ29tcG9uZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IE5nSmFsYWxpRGF0ZVRpbWVTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtKSB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgaWYgKCF0aGlzLm5hbWUpIHRoaXMubmFtZSA9ICdqYWxhbGktcmFuZ2UtJyArIERhdGUubm93KCkudG9TdHJpbmcoKTtcbiAgICAgICAgdGhpcy5hcHBlYXJhbmNlID0gdGhpcy5zZXJ2aWNlLmNoZWNrQXBwZWFyYW5jZSh0aGlzLmFwcGVhcmFuY2UpO1xuXG4gICAgICAgIGlmICghdGhpcy5jb25maWcpIHRoaXMuY29uZmlnID0ge307XG4gICAgICAgIHRoaXMuY29uZmlnLnJlcXVpcmVkID0gdGhpcy5jb25maWcucmVxdWlyZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMuY29uZmlnLm1pbiA9IHRoaXMuc2VydmljZS5jaGVja0RhdGUodGhpcy5jb25maWcubWluKSA/IHRoaXMuY29uZmlnLm1pbiA6IG51bGw7XG4gICAgICAgIHRoaXMuY29uZmlnLm1heCA9IHRoaXMuc2VydmljZS5jaGVja0RhdGUodGhpcy5jb25maWcubWF4KSA/IHRoaXMuY29uZmlnLm1heCA6IG51bGw7XG4gICAgICAgIHRoaXMuY29uZmlnLnJlc2V0ID0gdGhpcy5jb25maWcucmVzZXQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICB0aGlzLmNvbmZpZy5lcnJvciA9IHRoaXMuY29uZmlnLmVycm9yID8gdGhpcy5jb25maWcuZXJyb3IgOiB0aGlzLmphbGFsaUxvY2FsZS5yZXF1aXJlZDtcblxuICAgICAgICB0aGlzLmNzcyA9IHRoaXMuc2VydmljZS5jaGVja0NTUyh0aGlzLmNzcyk7XG5cbiAgICAgICAgdGhpcy5mcm9tID0gdGhpcy5zZXJ2aWNlLmNoZWNrRGF0ZSh0aGlzLmZyb20pO1xuICAgICAgICB0aGlzLnRvID0gdGhpcy5zZXJ2aWNlLmNoZWNrRGF0ZSh0aGlzLnRvKTtcbiAgICAgICAgdGhpcy5sYWJlbCA9IHRoaXMubGFiZWwgPyB0aGlzLmxhYmVsIDogdGhpcy5qYWxhbGlMb2NhbGUucmFuZ2U7XG5cbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTmdKYWxhbGlSYW5nZUNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5mb3JtID0gdGhpcy5mb3JtO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5hcHBlYXJhbmNlID0gdGhpcy5hcHBlYXJhbmNlO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuY3NzID0gdGhpcy5jc3M7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UudmFsdWUgPSB0aGlzLnNlcnZpY2UuZ2V0UmFuZ2VWYWx1ZSh0aGlzLmZyb20sIHRoaXMudG8pO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5sYWJlbCA9IHRoaXMubGFiZWw7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuY2hhbmdlZCA9IHRoaXMuY2hhbmdlZDtcbiAgICB9XG59XG4iXX0=