ngx-jalali-date-picker
Version:
This is a configurable date-picker build for Angular applications. Supports latest (Angular 18) version. This date-picker is based on ng2-date-piker and ngx-jalali-date-picker date pickers.
51 lines • 7.34 kB
JavaScript
import { Injectable } from '@angular/core';
import moment from 'jalali-moment';
import * as i0 from "@angular/core";
import * as i1 from "../common/services/utils/utils.service";
import * as i2 from "../day-calendar/day-calendar.service";
import * as i3 from "../time-select/time-select.service";
const DAY_FORMAT = 'YYYYMMDD';
const TIME_FORMAT = 'HH:mm:ss';
const COMBINED_FORMAT = DAY_FORMAT + TIME_FORMAT;
export class DayTimeCalendarService {
constructor(utilsService, dayCalendarService, timeSelectService) {
this.utilsService = utilsService;
this.dayCalendarService = dayCalendarService;
this.timeSelectService = timeSelectService;
this.DEFAULT_CONFIG = {
locale: moment.locale()
};
}
getConfig(config) {
const _config = {
...this.DEFAULT_CONFIG,
...this.timeSelectService.getConfig(config),
...this.dayCalendarService.getConfig(config)
};
moment.locale(config.locale);
return _config;
}
updateDay(current, day, config) {
const time = current ? current : moment();
let updated = moment(day.format(DAY_FORMAT) + time.format(TIME_FORMAT), COMBINED_FORMAT);
if (config.min) {
const min = config.min;
updated = min.isAfter(updated) ? min : updated;
}
if (config.max) {
const max = config.max;
updated = max.isBefore(updated) ? max : updated;
}
return updated;
}
updateTime(current, time) {
const day = current ? current : moment();
return moment(day.format(DAY_FORMAT) + time.format(TIME_FORMAT), COMBINED_FORMAT);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayTimeCalendarService, deps: [{ token: i1.UtilsService }, { token: i2.DayCalendarService }, { token: i3.TimeSelectService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayTimeCalendarService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayTimeCalendarService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.UtilsService }, { type: i2.DayCalendarService }, { type: i3.TimeSelectService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXRpbWUtY2FsZW5kYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1qYWxhbGktZGF0ZS1waWNrZXIvc3JjL2xpYi9kYXktdGltZS1jYWxlbmRhci9kYXktdGltZS1jYWxlbmRhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxNQUFnQixNQUFLLGVBQWUsQ0FBQzs7Ozs7QUFPNUMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDO0FBQzlCLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQztBQUMvQixNQUFNLGVBQWUsR0FBRyxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBR2pELE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsWUFBb0IsWUFBMEIsRUFDMUIsa0JBQXNDLEVBQ3RDLGlCQUFvQztRQUZwQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFOL0MsbUJBQWMsR0FBMkI7WUFDaEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUU7U0FDeEIsQ0FBQztJQUtGLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBOEI7UUFDdEMsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLElBQUksQ0FBQyxjQUFjO1lBQ3RCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDM0MsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUM3QyxDQUFDO1FBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFlLEVBQUUsR0FBVyxFQUFFLE1BQThCO1FBQ3BFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRXpGLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2YsTUFBTSxHQUFHLEdBQVcsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUMvQixPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDakQsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2YsTUFBTSxHQUFHLEdBQVcsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUMvQixPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbEQsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZSxFQUFFLElBQVk7UUFDdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXpDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNwRixDQUFDOytHQTNDVSxzQkFBc0I7bUhBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50LCB7TW9tZW50fSBmcm9tJ2phbGFsaS1tb21lbnQnO1xuXG5pbXBvcnQge1V0aWxzU2VydmljZX0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL3V0aWxzL3V0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHtEYXlDYWxlbmRhclNlcnZpY2V9IGZyb20gJy4uL2RheS1jYWxlbmRhci9kYXktY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQge1RpbWVTZWxlY3RTZXJ2aWNlfSBmcm9tICcuLi90aW1lLXNlbGVjdC90aW1lLXNlbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7SURheVRpbWVDYWxlbmRhckNvbmZpZ30gZnJvbSAnLi9kYXktdGltZS1jYWxlbmRhci1jb25maWcubW9kZWwnO1xuXG5jb25zdCBEQVlfRk9STUFUID0gJ1lZWVlNTUREJztcbmNvbnN0IFRJTUVfRk9STUFUID0gJ0hIOm1tOnNzJztcbmNvbnN0IENPTUJJTkVEX0ZPUk1BVCA9IERBWV9GT1JNQVQgKyBUSU1FX0ZPUk1BVDtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERheVRpbWVDYWxlbmRhclNlcnZpY2Uge1xuICByZWFkb25seSBERUZBVUxUX0NPTkZJRzogSURheVRpbWVDYWxlbmRhckNvbmZpZyA9IHtcbiAgICBsb2NhbGU6IG1vbWVudC5sb2NhbGUoKVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXRpbHNTZXJ2aWNlOiBVdGlsc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZGF5Q2FsZW5kYXJTZXJ2aWNlOiBEYXlDYWxlbmRhclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdGltZVNlbGVjdFNlcnZpY2U6IFRpbWVTZWxlY3RTZXJ2aWNlKSB7XG4gIH1cblxuICBnZXRDb25maWcoY29uZmlnOiBJRGF5VGltZUNhbGVuZGFyQ29uZmlnKTogSURheVRpbWVDYWxlbmRhckNvbmZpZyB7XG4gICAgY29uc3QgX2NvbmZpZyA9IHtcbiAgICAgIC4uLnRoaXMuREVGQVVMVF9DT05GSUcsXG4gICAgICAuLi50aGlzLnRpbWVTZWxlY3RTZXJ2aWNlLmdldENvbmZpZyhjb25maWcpLFxuICAgICAgLi4udGhpcy5kYXlDYWxlbmRhclNlcnZpY2UuZ2V0Q29uZmlnKGNvbmZpZylcbiAgICB9O1xuXG4gICAgbW9tZW50LmxvY2FsZShjb25maWcubG9jYWxlKTtcblxuICAgIHJldHVybiBfY29uZmlnO1xuICB9XG5cbiAgdXBkYXRlRGF5KGN1cnJlbnQ6IE1vbWVudCwgZGF5OiBNb21lbnQsIGNvbmZpZzogSURheVRpbWVDYWxlbmRhckNvbmZpZyk6IE1vbWVudCB7XG4gICAgY29uc3QgdGltZSA9IGN1cnJlbnQgPyBjdXJyZW50IDogbW9tZW50KCk7XG4gICAgbGV0IHVwZGF0ZWQgPSBtb21lbnQoZGF5LmZvcm1hdChEQVlfRk9STUFUKSArIHRpbWUuZm9ybWF0KFRJTUVfRk9STUFUKSwgQ09NQklORURfRk9STUFUKTtcblxuICAgIGlmIChjb25maWcubWluKSB7XG4gICAgICBjb25zdCBtaW4gPSA8TW9tZW50PmNvbmZpZy5taW47XG4gICAgICB1cGRhdGVkID0gbWluLmlzQWZ0ZXIodXBkYXRlZCkgPyBtaW4gOiB1cGRhdGVkO1xuICAgIH1cblxuICAgIGlmIChjb25maWcubWF4KSB7XG4gICAgICBjb25zdCBtYXggPSA8TW9tZW50PmNvbmZpZy5tYXg7XG4gICAgICB1cGRhdGVkID0gbWF4LmlzQmVmb3JlKHVwZGF0ZWQpID8gbWF4IDogdXBkYXRlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfVxuXG4gIHVwZGF0ZVRpbWUoY3VycmVudDogTW9tZW50LCB0aW1lOiBNb21lbnQpOiBNb21lbnQge1xuICAgIGNvbnN0IGRheSA9IGN1cnJlbnQgPyBjdXJyZW50IDogbW9tZW50KCk7XG5cbiAgICByZXR1cm4gbW9tZW50KGRheS5mb3JtYXQoREFZX0ZPUk1BVCkgKyB0aW1lLmZvcm1hdChUSU1FX0ZPUk1BVCksIENPTUJJTkVEX0ZPUk1BVCk7XG4gIH1cbn1cbiJdfQ==