@tiampersian/kendo-jalali-date-inputs
Version:
angular jalali ( persian ) date time picker base on kendo-angular-dateinputs
1 lines • 136 kB
Source Map (JSON)
{"version":3,"file":"tiampersian-kendo-jalali-date-inputs.mjs","sources":["../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/models/date-picker-type.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/date-time-number.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/jalali-cldr-intl.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/components/kendo-jalali-header-title-template/kendo-jalali-header-title-template.component.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/HeaderTitleTemplateFactory.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/kendo-util-overrides.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/kendo-services/decade-view.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/jalali-century-view.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/jalali-decade-view.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/kendo-services/month-view.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/jalali-month-view.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/jalali-week-names.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/kendo-services/year-view.services.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/services/jalali-year-view.service.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/providers.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/components/navigation.directive.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/utils/string-prototypes.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/kendo-jalali-date-inputs.module.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/lib/components/date-input.component.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/public-api.ts","../../../../projects/tiampersian/kendo-jalali-date-inputs/src/tiampersian-kendo-jalali-date-inputs.ts"],"sourcesContent":["export enum DatePickerType {\n jalali = 'jalali',\n gregory = 'gregory'\n}\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { IConfig } from '../models/config.model';\n\n\n@Injectable()\nexport class DateTimeNumberService {\n usePersianNumber: boolean;\n\n constructor(\n @Inject(LOCALE_ID) localeId: string,\n @Inject('CONFIGS') private configs: IConfig\n ) {\n this.setLocaleId(localeId);\n this.init();\n }\n\n setLocaleId(value: string) {\n this.usePersianNumber = value === 'fa' || value === 'fa-IR';\n }\n\n init() {\n if (this.configs?.usePersianNumber === false) {\n return;\n }\n const me = this;\n // dayjs.localeData().months();\n const te = dayjs.prototype.format;\n dayjs.prototype.format = function (format) {\n\n if (!me.usePersianNumber) {\n return te.call(this, format);\n }\n\n let result = te.call(this, format);\n result = result.toPerNumber().replace(/,/g, '،');\n return result;\n };\n }\n}\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { CldrIntlService, NumberFormatOptions } from '@progress/kendo-angular-intl';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { Subject } from 'rxjs';\nimport { DatePickerType } from '../models/date-picker-type';\nimport { DateTimeNumberService } from './date-time-number.service';\n\n@Injectable()\nexport class JalaliCldrIntlService extends CldrIntlService {\n isJalali: boolean;\n isGregorian: boolean;\n datePickerType: DatePickerType;\n localeIdByDatePickerType = '';\n get isLocaleIran(): boolean {\n return this.localeId === 'fa-IR' || this.localeId === 'fa';\n }\n get calendarType(): any {\n return this.localeIdByDatePickerType === 'fa' ? 'jalali' : 'gregory';\n }\n defaultTitleTemplate: any;\n $calendarType = new Subject();\n isFirst = true;\n\n constructor(\n @Inject(LOCALE_ID) private originalLocaleId: string,\n private momentNumberService: DateTimeNumberService\n ) {\n super(originalLocaleId);\n this.changeType();\n }\n\n firstDay(localeId?: string): number {\n return super.firstDay(this.localeIdByDatePickerType);\n }\n\n setTitleTemplate(template): void {\n this.defaultTitleTemplate = template;\n }\n changeType(value?: DatePickerType): void {\n\n this.datePickerType = this.getType(value);\n if (this.datePickerType === DatePickerType.jalali) {\n this.isJalali = true;\n this.isGregorian = false;\n this.localeIdByDatePickerType = 'fa';\n this.reload();\n return;\n }\n this.isJalali = false;\n this.isGregorian = true;\n this.localeIdByDatePickerType = 'en';\n this.reload();\n }\n\n reload(): void {\n const tem = super.localeId;\n this.changeLocaleId('en');\n this.changeLocaleId(tem);\n this.$calendarType.next(this.localeIdByDatePickerType);\n this.changes.next(super.localeId);\n }\n\n changeLocaleId(value): void {\n super.localeId = value;\n this.momentNumberService.setLocaleId(value);\n this.notify();\n }\n\n toggleType(): void {\n this.changeType(this.datePickerType === DatePickerType.jalali ? DatePickerType.gregory : DatePickerType.jalali);\n if (this.isFirst) {\n this.isFirst = false;\n // to fix old version of chrome\n // setTimeout(() => {\n // this.toggleType();\n // setTimeout(() => {\n // this.toggleType();\n // }, 0);\n // }, 0);\n }\n }\n\n private getType(value: DatePickerType): DatePickerType {\n if (value) { return value; }\n\n if (this.originalLocaleId === 'fa-IR' || this.originalLocaleId === 'fa') {\n return DatePickerType.jalali;\n }\n\n return DatePickerType.gregory;\n }\n\n formatNumber(value: number, format: string | NumberFormatOptions, localeId?: string): string {\n localeId = localeId || this.localeId;\n if (localeId === 'fa' || localeId === 'ar') {\n return super.formatNumber(value, format, localeId).toPerNumber();\n }\n return super.formatNumber(value, format, localeId);\n }\n\n getDayJsValue(value?: Date | string, localeId?: string): Dayjs {\n return dayjs(value).calendar(this.calendarType).locale(localeId || this.localeId);\n }\n}\n","import { AfterViewInit, Component, Inject, TemplateRef, ViewChild } from '@angular/core';\nimport '@angular/localize';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { IconWrapperComponent } from '@progress/kendo-angular-icons';\nimport { arrowsSwapIcon } from \"@progress/kendo-svg-icons\";\nimport { DatePickerType } from '../../models/date-picker-type';\nimport { JalaliCldrIntlService } from '../../services/jalali-cldr-intl.service';\n@Component({\n template: `\n <ng-template #template kendoCalendarHeaderTitleTemplate let-title>\n <span >{{title}}</span>\n <button i18n-title=\"@@changeCalendarType\" title=\"Change Calendar Type\" class=\"header-calendar-type k-button k-rounded-lg k-button-sm k-button-link-base k-button-link\" (click)=\"toggleCalendarType($event)\">\n {{calendarTypes[calendarType]}}\n <strong class=\"k-color-primary\">{{calendarTypesSymbol[calendarType]}}</strong>\n <kendo-icon-wrapper name=\"arrows-swap\" [svgIcon]=\"xIcon\" />\n </button>\n </ng-template>`,\n styleUrls: ['./kendo-jalali-header-title-template.component.scss'],\n imports: [\n IconWrapperComponent\n ]\n})\nexport class KendoJalaliHeaderTitleTemplateComponent implements AfterViewInit {\n @ViewChild('template', { read: TemplateRef }) templateRef = TemplateRef;\n calendarType: DatePickerType;\n calendarTypes = {\n [DatePickerType.gregory]: $localize`:@@jalali:Jalali`,\n [DatePickerType.jalali]: $localize`:@@gregorian:Gregorian`,\n };\n calendarTypesSymbol = {\n [DatePickerType.gregory]: '☼',\n [DatePickerType.jalali]: '†',\n };\n xIcon = arrowsSwapIcon;\n\n constructor(\n @Inject(IntlService) private localeService: JalaliCldrIntlService,\n ) {\n this.calendarType = this.localeService.datePickerType;\n }\n\n ngAfterViewInit() {\n this.localeService.setTitleTemplate(this);\n }\n\n toggleCalendarType(event: Event): void {\n this.localeService.toggleType();\n this.calendarType = this.localeService.datePickerType;\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n }\n}\n\n","import { createComponent, EnvironmentInjector } from '@angular/core';\nimport { KendoJalaliHeaderTitleTemplateComponent } from './components/kendo-jalali-header-title-template/kendo-jalali-header-title-template.component';\n\n\n\nexport function HeaderTitleTemplateFactory(\n environmentInjector: EnvironmentInjector\n): any {\n const temp = createComponent(KendoJalaliHeaderTitleTemplateComponent as any, { environmentInjector });\n temp.changeDetectorRef.detectChanges();\n return (temp.instance as KendoJalaliHeaderTitleTemplateComponent);\n}\n","import { getDate } from '@progress/kendo-date-math';\nimport dayjs from 'dayjs';\n\nexport const range = (start, end, step = 1) => {\n const result = [];\n for (let i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\n\nexport const EMPTY_SELECTIONRANGE = { start: null, end: null };\n\nexport const getToday = () => getDate(new Date());\n\nexport const isInSelectionRange = (value, selectionRange) => {\n const { start, end } = selectionRange || EMPTY_SELECTIONRANGE;\n if (!start || !end) {\n return false;\n }\n return start < value && value < end;\n}\n\nexport const isInRange = (dt, min, max) => {\n return dayjs(dt).isBetween(min, max);\n}\n\nexport const firstYearOfDecade = (dt, localeId?) => {\n return getDayJsValue(dt, localeId).add(-(getYear(dt, localeId) % 10), 'year').toDate();\n}\n\nexport const lastYearOfDecade = (dt, localeId?) => {\n return getDayJsValue(dt, localeId).add((9 - (getYear(dt, localeId) % 10)), 'year').toDate();\n}\n\nexport const firstDayOfMonth = (dt, localeId?) => {\n return getDayJsValue(dt, localeId).startOf('month').toDate();\n}\n\nexport const lastDayOfMonth = (dt, localeId?) => {\n return getDayJsValue(dt, localeId).endOf('month').toDate();\n}\n\nconst getCalendarType = (localeId: string) => {\n return (localeId === 'fa' || localeId === 'fa-IR') ? 'jalali' : 'gregory';\n}\nconst getDayJsValue = (dt: any, localeId: string) => {\n return dayjs(dt).calendar(getCalendarType(localeId))\n}\n\nexport const firstDecadeOfCentury = (dt, localeId?) => {\n return getDayJsValue(dt, localeId).add((-(getYear(dt, localeId) % 100)), 'year').toDate();\n}\n\nexport const lastDecadeOfCentury = (dt, localeId?) => {\n return getDayJsValue(dt, localeId).add((-(getYear(dt, localeId) % 100)) + 90, 'year').toDate();\n\n}\n\nexport const shiftWeekNames = (names, offset) => (names.slice(offset).concat(names.slice(0, offset)));\n\nexport var Action;\n(function (Action) {\n Action[Action[\"Left\"] = 0] = \"Left\";\n Action[Action[\"Right\"] = 1] = \"Right\";\n Action[Action[\"Up\"] = 2] = \"Up\";\n Action[Action[\"Down\"] = 3] = \"Down\";\n Action[Action[\"PrevView\"] = 4] = \"PrevView\";\n Action[Action[\"NextView\"] = 5] = \"NextView\";\n Action[Action[\"FirstInView\"] = 6] = \"FirstInView\";\n Action[Action[\"LastInView\"] = 7] = \"LastInView\";\n Action[Action[\"LowerView\"] = 8] = \"LowerView\";\n Action[Action[\"UpperView\"] = 9] = \"UpperView\";\n})(Action || (Action = {}));\n\nexport const isPresent = (value) => value !== undefined && value !== null;\n\nfunction getYear(dt: any, localeId: any) {\n return getDayJsValue(dt, localeId).year();\n}\n\n","export const EMPTY_DATA = [[]];\nexport const CELLS_LENGTH = 4;\nexport const ROWS_LENGTH = 3;\n\n\n","import { Inject, Injectable } from '@angular/core';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { addDecades } from '@progress/kendo-date-math';\nimport { JalaliCldrIntlService } from './jalali-cldr-intl.service';\nimport { firstDecadeOfCentury, firstYearOfDecade, getToday, isInRange, isInSelectionRange, lastDecadeOfCentury, range } from './kendo-util-overrides';\nimport { CenturyViewService } from '@progress/kendo-angular-dateinputs';\nimport { CELLS_LENGTH, EMPTY_DATA, ROWS_LENGTH } from './kendo-services/decade-view.service';\n\n@Injectable()\nexport class JalaliCenturyViewService extends CenturyViewService {\n\n constructor(\n @Inject(IntlService) private _intlService: JalaliCldrIntlService\n ) {\n super();\n }\n\n title(current) {\n if (!current) {\n return '';\n }\n\n const temp = this._intlService.getDayJsValue(lastDecadeOfCentury(current, this._intlService.localeIdByDatePickerType)).format('YYYY');\n return `${this._intlService.getDayJsValue(firstDecadeOfCentury(current, this._intlService.localeIdByDatePickerType)).format('YYYY')} - ${temp}`;\n }\n\n navigationTitle(value) {\n return `${this._intlService.getDayJsValue(firstDecadeOfCentury(value, this._intlService.localeIdByDatePickerType)).format('YYYY')}`;\n }\n\n\n data(options) {\n const { cellUID, focusedDate, isActiveView, max, min, selectedDate, selectionRange = {}, viewDate } = options;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n const cells = range(0, CELLS_LENGTH);\n const firstDate = firstDecadeOfCentury(viewDate, this._intlService.localeIdByDatePickerType);\n const lastDate = lastDecadeOfCentury(viewDate, this._intlService.localeIdByDatePickerType);\n const isSelectedDateInRange = isInRange(selectedDate, min, max);\n const today = getToday();\n const data = range(0, ROWS_LENGTH).map(rowOffset => {\n const baseDate = addDecades(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(cellOffset => {\n const cellDate = super['normalize'](addDecades(baseDate, cellOffset), min, max);\n if (!this.isInRange(cellDate, firstDate, lastDate)) {\n return null;\n }\n const isRangeStart = this.isEqual(cellDate, selectionRange.start);\n const isRangeEnd = this.isEqual(cellDate, selectionRange.end);\n const isInMiddle = !isRangeStart && !isRangeEnd;\n const isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n const title = this._intlService.getDayJsValue(cellDate).format('YYYY');\n\n return {\n formattedValue: title,\n id: `${cellUID}${cellDate.getTime()}`,\n isFocused: this.isEqual(cellDate, focusedDate),\n isSelected: isActiveView && isSelectedDateInRange && this.isEqual(cellDate, selectedDate),\n isWeekend: false,\n isRangeStart,\n isRangeMid,\n isRangeEnd,\n isRangeSplitEnd: isRangeMid && this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),\n isToday: this.isEqual(cellDate, today),\n title,\n value: cellDate\n };\n });\n });\n\n return data;\n }\n\n isInRange(candidate, min, max) {\n const year = firstYearOfDecade(candidate, this._intlService.localeIdByDatePickerType).getFullYear();\n const aboveMin = !min || firstYearOfDecade(min, this._intlService.localeIdByDatePickerType).getFullYear() <= year;\n const belowMax = !max || year <= firstYearOfDecade(max, this._intlService.localeIdByDatePickerType).getFullYear();\n return aboveMin && belowMax;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { addYears } from '@progress/kendo-date-math';\nimport dayjs from 'dayjs';\nimport { JalaliCldrIntlService } from './jalali-cldr-intl.service';\nimport { EMPTY_SELECTIONRANGE, firstYearOfDecade, getToday, isInSelectionRange, lastYearOfDecade, range } from './kendo-util-overrides';\nimport { EMPTY_DATA, CELLS_LENGTH, ROWS_LENGTH } from './kendo-services/decade-view.service';\nimport { DecadeViewService } from '@progress/kendo-angular-dateinputs';\n\n@Injectable()\nexport class JalaliDecadeViewService extends DecadeViewService {\n constructor(\n @Inject(IntlService) private _intlService: JalaliCldrIntlService\n ) {\n super();\n }\n\n\n title(value) {\n if (!value) {\n return '';\n }\n \n const firstYear = this._intlService.getDayJsValue(firstYearOfDecade(value, this._intlService.localeIdByDatePickerType)).format('YYYY');\n const lastYear = this._intlService.getDayJsValue(lastYearOfDecade(value, this._intlService.localeIdByDatePickerType)).format('YYYY');\n if (this._intlService.isLocaleIran) {\n return `${lastYear} - ${firstYear}`;\n }\n return `${firstYear} - ${lastYear}`;\n }\n\n navigationTitle(value) {\n if (!value) {\n return '';\n }\n return `${this._intlService.getDayJsValue(firstYearOfDecade(value, this._intlService.localeIdByDatePickerType)).format('YYYY')}`;\n }\n data(options) {\n const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n const cells = range(0, CELLS_LENGTH);\n const firstDate = firstYearOfDecade(viewDate, this._intlService.localeIdByDatePickerType);\n const lastDate = lastYearOfDecade(viewDate, this._intlService.localeIdByDatePickerType);\n const today = getToday();\n // isInRange(selectedDate, min, max)\n const data = range(0, ROWS_LENGTH).map(rowOffset => {\n const baseDate = addYears(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(cellOffset => {\n const cellDate = super['normalize'](addYears(baseDate, cellOffset), min, max);\n const nextDecade = cellDate.getFullYear() > lastDate.getFullYear();\n\n if (!this.isInRange(cellDate, min, max) || nextDecade) {\n return null;\n }\n const isRangeStart = this.isEqual(cellDate, selectionRange.start);\n const isRangeEnd = this.isEqual(cellDate, selectionRange.end);\n const isInMiddle = !isRangeStart && !isRangeEnd;\n const isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n const title = this._intlService.getDayJsValue(cellDate).format('YYYY');\n return {\n formattedValue: title,\n id: `${cellUID}${cellDate.getTime()}`,\n isFocused: this.isEqual(cellDate, focusedDate),\n isSelected: isActiveView && selectedDates.some(date => this.isEqual(cellDate, date)),\n isWeekend: false,\n isRangeStart,\n isRangeMid,\n isRangeEnd,\n isRangeSplitEnd: isRangeMid && this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),\n isToday: this.isEqual(cellDate, today),\n title,\n value: cellDate\n };\n });\n });\n return data;\n }\n}\n","export const EMPTY_DATA = [[]];\nexport const CELLS_LENGTH = 7;\nexport const ROWS_LENGTH = 6;\n\n","import { Inject, Injectable } from '@angular/core';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { addDays, addMonths, dayOfWeek, getDate } from '@progress/kendo-date-math';\nimport dayjs from 'dayjs';\nimport { firstDayOfMonth, getToday, isInSelectionRange, range, lastDayOfMonth } from './kendo-util-overrides';\nimport { JalaliCldrIntlService } from './jalali-cldr-intl.service';\nimport { CELLS_LENGTH, EMPTY_DATA, ROWS_LENGTH } from './kendo-services/month-view.service';\nimport { MonthViewService } from '@progress/kendo-angular-dateinputs';\n\n\n@Injectable()\nexport class JalaliMonthViewService extends MonthViewService {\n constructor(\n @Inject(IntlService) protected intl: JalaliCldrIntlService\n ) {\n super(intl);\n }\n\n value(current) {\n if (!current) {\n return '';\n }\n const res = this.intl.getDayJsValue(current).format('DD').toString();\n return res;\n }\n\n abbrMonthNames2() {\n if (this.intl.isJalali) \n return dayjs().locale(this.intl['locale'])['$locale']().jmonths;\n \n return this.intl.getDayJsValue().localeData().monthsShort();\n }\n\n navigationTitle(value) {\n if (!value) {\n return '';\n }\n\n if (this.isRangeStart(value)) {\n return this.intl.getDayJsValue(value).format('YYYY');\n }\n\n return this.abbrMonthNames2()[this.intl.getDayJsValue(value).month()];\n }\n\n isRangeStart(value) {\n if (!value) { return false; }\n return this.intl.getDayJsValue(value).month() === 0;\n }\n\n title(current) {\n return `${this.abbrMonthNames2()[this.intl.getDayJsValue(current).month()]} ${this.intl.getDayJsValue(current).format('YYYY')}`;\n }\n\n skip(value, min) {\n const diff = this.intl.getDayJsValue(value).endOf('month').diff(\n this.intl.getDayJsValue(min).startOf('month'), 'month'\n );\n return diff;\n }\n rowLength(options = {}) {\n return CELLS_LENGTH + (options['prependCell'] ? 1 : 0);\n }\n total(min, max) {\n return dayjs(max).diff(min, 'month') + 1;\n }\n beginningOfPeriod(date) {\n if (!date) {\n return date;\n }\n return this.intl.getDayJsValue(date).startOf('month').toDate();\n }\n datesList(start, count) {\n return range(0, count).map(i => addMonths(start, i));\n }\n data(options) {\n const { cellUID, focusedDate, isActiveView, max, min, selectedDate, selectionRange = [], viewDate, isDateDisabled = () => false } = options;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n const dateValue = this.intl.getDayJsValue(viewDate).toDate();\n const firstMonthDate = firstDayOfMonth(dateValue, this.intl.localeIdByDatePickerType);\n const firstMonthDay = getDate(firstMonthDate);\n const lastMonthDate = lastDayOfMonth(dateValue, this.intl.localeIdByDatePickerType);\n const lastMonthDay = getDate(lastMonthDate);\n const backward = -1;\n const isSelectedDateInRange = dayjs(selectedDate).isBetween(min, max);\n const date = dayOfWeek(firstMonthDate, this.intl.firstDay(), backward);\n const cells = range(0, CELLS_LENGTH);\n // console.log('console', this.intl.firstDay())\n const today = getToday();\n return range(0, ROWS_LENGTH).map(rowOffset => {\n const baseDate = addDays(date, rowOffset * CELLS_LENGTH);\n return cells.map(cellOffset => {\n const cellDate = this['normalize'](addDays(baseDate, cellOffset), min, max);\n const cellDay = getDate(cellDate);\n const otherMonth = cellDay < firstMonthDay || cellDay > lastMonthDay;\n const outOfRange = cellDate < min || cellDate > max;\n if (outOfRange) {\n return null;\n }\n const isRangeStart = this.isEqual(cellDate, selectionRange.start);\n const isRangeEnd = this.isEqual(cellDate, selectionRange.end);\n const isInMiddle = !isRangeStart && !isRangeEnd;\n const isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n return {\n formattedValue: this.value(cellDate),\n id: `${cellUID}${cellDate.getTime()}`,\n isFocused: this.isEqual(cellDate, focusedDate),\n isSelected: isActiveView && isSelectedDateInRange && this.isEqual(cellDate, selectedDate),\n isWeekend: this.isWeekend(cellDate),\n isRangeStart,\n isRangeMid,\n isRangeEnd,\n isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstMonthDate),\n isRangeSplitEnd: isRangeMid && this.isEqual(cellDate, lastMonthDate),\n isToday: this.isEqual(cellDate, today),\n title: this.cellTitle(cellDate),\n value: cellDate,\n isDisabled: isDateDisabled(cellDate),\n isOtherMonth: otherMonth\n };\n });\n });\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { WeekDaysFormat, WeekNamesService } from \"@progress/kendo-angular-dateinputs\";\nimport { IntlService } from \"@progress/kendo-angular-intl\";\n\n\n@Injectable()\nexport class JalaliWeekNamesService extends WeekNamesService {\n constructor(protected _intlService: IntlService) {\n super(_intlService);\n }\n\n getWeekNames(includeWeekNumber: boolean, nameType: WeekDaysFormat | 'wide'): string[] {\n return super.getWeekNames(includeWeekNumber, nameType);\n }\n}\n","\nexport const EMPTY_DATA = [[]];\nexport const CELLS_LENGTH = 4;\nexport const ROWS_LENGTH = 3;\n\n\n","import { Inject, Injectable } from '@angular/core';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport dayjs from 'dayjs';\nimport { JalaliCldrIntlService } from './jalali-cldr-intl.service';\nimport { EMPTY_SELECTIONRANGE, getToday, isInSelectionRange, range } from './kendo-util-overrides';\nimport { addMonths } from '@progress/kendo-date-math';\nimport { EMPTY_DATA, CELLS_LENGTH, ROWS_LENGTH } from './kendo-services/year-view.services';\nimport { YearViewService } from '@progress/kendo-angular-dateinputs';\n\n\n@Injectable()\nexport class JalaliYearViewService extends YearViewService {\n constructor(\n @Inject(IntlService) protected intl: JalaliCldrIntlService\n ) {\n super(intl);\n }\n\n abbrMonthNames2() {\n if (this.intl.isJalali) {\n return dayjs()['$locale']().jmonths;\n }\n\n return this.intl.getDayJsValue().localeData().monthsShort();\n }\n\n override data(options) {\n const { cellUID, focusedDate, isActiveView, max, min, selectedDate, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n\n const months = this.abbrMonthNames2();\n const isSelectedDateInRange = dayjs(selectedDate).isBetween(min, max);\n //firstMonthOfYear\n const firstDate = this.intl.getDayJsValue(viewDate).startOf('year').add(this.intl.getDayJsValue(viewDate).date() - 1, 'day').toDate();\n const lastDate = this.intl.getDayJsValue(viewDate).endOf('year').add(-1, 'month').add(this.intl.getDayJsValue(viewDate).date(), 'day').toDate();\n const currentYear = this.intl.getDayJsValue(firstDate).year()\n const cells = range(0, CELLS_LENGTH);\n const today = getToday();\n\n const xxx = range(0, ROWS_LENGTH).map(rowOffset => {\n const baseDate = addMonths(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(cellOffset => {\n const cellDate = this['normalize'](addMonths(baseDate, cellOffset), min, max);\n const changedYear = currentYear < this.intl.getDayJsValue(cellDate).year()\n if (!dayjs(cellDate).isBetween(min, max)) {\n return null;\n }\n if (changedYear) {\n return null;\n }\n const isRangeStart = this.isEqual(cellDate, selectionRange.start);\n const isRangeEnd = this.isEqual(cellDate, selectionRange.end);\n const isInMiddle = !isRangeStart && !isRangeEnd;\n const isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n return {\n formattedValue: months[this.intl.getDayJsValue(cellDate).month()],\n id: `${cellUID}${cellDate.getTime()}`,\n isFocused: this.isEqual(cellDate, focusedDate),\n isSelected: isActiveView && isSelectedDateInRange && this.isEqual(cellDate, selectedDate),\n isWeekend: false,\n isRangeStart,\n isRangeMid,\n isRangeEnd,\n isRangeSplitEnd: isRangeMid && this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),\n isToday: this.isEqual(cellDate, today),\n title: this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n\n return xxx;\n }\n override title(current: any) {\n return `${this.intl.getDayJsValue(current).format('YYYY')}`\n }\n override navigationTitle(value: any) {\n return `${this.intl.getDayJsValue(value).format('YYYY')}`\n\n }\n}\n","import { EnvironmentInjector } from '@angular/core';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { HeaderTitleTemplateFactory } from './HeaderTitleTemplateFactory';\nimport { JalaliCenturyViewService } from './services/jalali-century-view.service';\nimport { JalaliCldrIntlService } from './services/jalali-cldr-intl.service';\nimport { JalaliDecadeViewService } from './services/jalali-decade-view.service';\nimport { JalaliMonthViewService } from './services/jalali-month-view.service';\nimport { JalaliWeekNamesService } from './services/jalali-week-names.service';\nimport { JalaliYearViewService } from './services/jalali-year-view.service';\n\nexport const Providers = [\n JalaliCenturyViewService,\n JalaliDecadeViewService,\n JalaliYearViewService,\n JalaliMonthViewService,\n JalaliWeekNamesService,\n { provide: IntlService, useClass: JalaliCldrIntlService },\n // { provide: CldrIntlService, useClass: JalaliCldrIntlService },\n { provide: 'HeaderTitleTemplate', useFactory: HeaderTitleTemplateFactory, deps: [EnvironmentInjector] },\n];\nvar CalendarViewEnum;\n(function (CalendarViewEnum) {\n CalendarViewEnum[CalendarViewEnum[\"month\"] = 0] = \"month\";\n CalendarViewEnum[CalendarViewEnum[\"year\"] = 1] = \"year\";\n CalendarViewEnum[CalendarViewEnum[\"decade\"] = 2] = \"decade\";\n CalendarViewEnum[CalendarViewEnum[\"century\"] = 3] = \"century\";\n})(CalendarViewEnum || (CalendarViewEnum = {}));\n\nexport const services = {\n [CalendarViewEnum.month]: JalaliMonthViewService,\n [CalendarViewEnum.year]: JalaliYearViewService,\n [CalendarViewEnum.decade]: JalaliDecadeViewService,\n [CalendarViewEnum.century]: JalaliCenturyViewService\n};\n","import { ChangeDetectorRef, Directive, Inject, Self, SkipSelf, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { NavigationComponent } from '@progress/kendo-angular-dateinputs';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { debounceTime } from 'rxjs/operators';\nimport { Providers, services } from '../providers';\nimport { JalaliCldrIntlService } from '../services/jalali-cldr-intl.service';\n\n// tslint:disable-next-line:no-string-literal\nNavigationComponent.prototype['intlChange'] = function (): void {\n this.cdr.markForCheck();\n};\n\n@Directive({\n selector: 'kendo-datepicker,kendo-datetimepicker,kendo-calendar,kendo-timepicker,kendo-multiviewcalendar,kendo-dateinput',\n providers: [\n ...Providers\n ]\n})\nexport class KendoDatePickerDirective {\n hostComponent: any;\n\n constructor(\n @Inject('HeaderTitleTemplate') private headerTitleTemplate: TemplateRef<any>,\n @Inject(IntlService) @Self() private intl: JalaliCldrIntlService,\n @Inject(IntlService) @SkipSelf() hostIntlService: JalaliCldrIntlService,\n private cdr: ChangeDetectorRef,\n private viewContainerRef: ViewContainerRef,\n ) {\n this.setHostComponent();\n hostIntlService.changes.pipe(debounceTime(30)).subscribe(x => {\n intl.changeLocaleId(hostIntlService.localeId);\n intl.changeType(hostIntlService.datePickerType);\n this.cdr.detectChanges();\n });\n }\n\n\n private setHostComponent() {\n this.hostComponent = this.viewContainerRef['_hostLView'].find(x => (x?.element || x?.wrapper)?.nativeElement === this.viewContainerRef.element.nativeElement);\n if (!this.hostComponent) {\n debugger\n }\n this.init();\n }\n\n init(hostComponent = this.hostComponent) {\n this.setBusService(hostComponent);\n this.setHeaderTitleTemplate(hostComponent);\n this.initCalendar(hostComponent);\n this.initDateInput(hostComponent);\n this.initDatePicker(hostComponent);\n }\n\n private initDatePicker(hostComponent = this.hostComponent) {\n if (hostComponent.wrapper?.nativeElement.tagName !== 'KENDO-DATEPICKER') return;\n\n hostComponent.open.subscribe(x => {\n setTimeout(() => {\n this.init(hostComponent.calendar);\n this.populateCalendar(hostComponent.calendar);\n const intl: JalaliCldrIntlService = hostComponent.calendar.bus.service(hostComponent.calendar.activeViewEnum)._intlService;\n intl.$calendarType.pipe(debounceTime(10)).subscribe(x => {\n hostComponent.calendar.onResize();\n });\n hostComponent.calendar.onResize();\n if (hostComponent?.calendar?.monthView)\n hostComponent.calendar.monthView.headerComponent.title = hostComponent.calendar.monthView.headerComponent.getTitle()\n });\n })\n }\n\n private initDateInput(hostComponent = this.hostComponent) {\n if (hostComponent.wrapper?.nativeElement.tagName !== 'KENDO-DATEINPUT') return;\n\n }\n\n private initCalendar(hostComponent = this.hostComponent) {\n if ((this.viewContainerRef.element.nativeElement as HTMLElement).tagName !== 'kendo-calendar') return;\n this.populateCalendar(hostComponent);\n }\n private populateCalendar(hostComponent: any) {\n const oldNgOnInit = hostComponent.ngOnInit;\n hostComponent.ngOnInit = function (): void {\n oldNgOnInit.call(this);\n const intl: JalaliCldrIntlService = this.bus.service(this.activeViewEnum)._intlService;\n intl.$calendarType.pipe(debounceTime(10)).subscribe(x => {\n this.onResize();\n });\n };\n }\n\n private setHeaderTitleTemplate(hostComponent = this.hostComponent) {\n if (!Object.hasOwn(hostComponent, 'headerTitleTemplate')) {\n return;\n }\n if (hostComponent.headerTitleTemplate) return;\n\n setTimeout(() => {\n hostComponent.headerTitleTemplate = this.headerTitleTemplate;\n hostComponent.cdr.detectChanges();\n });\n }\n\n private setBusService(hostComponent = this.hostComponent) {\n if (!hostComponent.bus) { return; }\n\n hostComponent.bus.service = (view) => {\n return this.viewContainerRef.injector.get<any>(services[view]) as any;\n }\n }\n\n}\n","declare global {\n interface String {\n toPerNumber(): string;\n toEnNumber(): string;\n toMomentDateTimeFormat(): string;\n }\n}\n\nString.prototype.toPerNumber = function () {\n return this.replace(/\\d/g, (match) => {\n return enToPerNumberMap[match] || match;\n });\n};\nString.prototype.toEnNumber = function () {\n return this.replace(/[١٢٣٤٥٦٧٨٩٠]/g, (match) => {\n return perToEnNumberMap[match] || match;\n });\n};\nString.prototype.toMomentDateTimeFormat = function () {\n let x = this.replace(/d/g, 'D')\n .replace(/aa/ig, (m) => m[0])\n .replace(/_/g, '/')\n .replace(/[y]{1,}/, 'YYYY');\n\n return x;\n};\n\nexport const enToPerNumberMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n};\nexport const perToEnNumberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n};\n\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport '@angular/localize/init';\nimport { setData } from '@progress/kendo-angular-intl';\nimport dayjs from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport localeData from 'dayjs/plugin/localeData';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport jalaliday from 'jalaliday';\nimport { KendoDatePickerDirective } from './components/navigation.directive';\nimport { IConfig } from './models/config.model';\nimport { Providers } from './providers';\nimport { DateTimeNumberService } from './services/date-time-number.service';\nimport './utils/string-prototypes';\ndayjs.extend(jalaliday);\ndayjs.extend(isBetween);\ndayjs.extend(localeData);\ndayjs.extend(updateLocale);\n\nconst meridiem = (hour: number) => {\n return hour > 12 ? 'ب.ظ' : 'ق.ظ'\n}\ndayjs.updateLocale('fa', {\n meridiem\n});\ndayjs.updateLocale('fa-IR', {\n meridiem\n});\n\nif (typeof window !== 'undefined') {\n window['dayjs'] = dayjs;\n}\n\nsetData({\n name: \"fa\",\n likelySubtags: {\n fa: \"fa-Arab-IR\"\n },\n identity: {\n language: \"fa\"\n },\n territory: \"IR\",\n calendar: {\n patterns: {\n d: \"y/M/d\",\n D: \"EEEE d MMMM y\",\n m: \"d LLL\",\n M: \"d LLLL\",\n y: \"MMM y\",\n Y: \"MMMM y\",\n F: \"a h:mm:ss EEEE d MMMM y\",\n g: \"a h:mm y/M/d\",\n G: \"a h:mm:ss y/M/d\",\n t: \"a h:mm\",\n T: \"a h:mm:ss\",\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n },\n dateTimeFormats: {\n full: \"{1}، ساعت {0}\",\n long: \"{1}، ساعت {0}\",\n medium: \"{1}، {0}\",\n short: \"{1}، {0}\",\n availableFormats: {\n Bh: \"h B\",\n Bhm: \"h:mm B\",\n Bhms: \"h:mm:ss B\",\n d: \"d\",\n E: \"ccc\",\n EBhm: \"E h:mm B\",\n EBhms: \"E h:mm:ss B\",\n Ed: \"E d\",\n Ehm: \"E h:mm a\",\n EHm: \"E H:mm\",\n Ehms: \"E h:mm:ss a\",\n EHms: \"E H:mm:ss\",\n Gy: \"y G\",\n GyMMM: \"MMM y G\",\n GyMMMd: \"d MMM y G\",\n GyMMMEd: \"E d MMM y G\",\n h: \"h a\",\n H: \"H\",\n HHmmZ: \"HH:mm (Z)\",\n hm: \"h:mm a\",\n Hm: \"H:mm\",\n hms: \"h:mm:ss a\",\n Hms: \"H:mm:ss\",\n hmsv: \"h:mm:ss a v\",\n Hmsv: \"H:mm:ss v\",\n hmv: \"h:mm a v\",\n Hmv: \"H:mm v\",\n M: \"L\",\n Md: \"M/d\",\n MEd: \"E M/d\",\n MMM: \"LLL\",\n MMMd: \"d LLL\",\n MMMEd: \"E d LLL\",\n MMMMd: \"d LLLL\",\n MMMMEd: \"E d LLLL\",\n \"MMMMW-count-one\": \"هفتهٔ Wم LLLL\",\n \"MMMMW-count-other\": \"هفتهٔ Wم LLLL\",\n mmss: \"mm:ss\",\n ms: \"m:ss\",\n y: \"y\",\n yM: \"y/M\",\n yMd: \"y/M/d\",\n yMEd: \"E y/M/d\",\n yMMM: \"MMM y\",\n yMMMd: \"d MMM y\",\n yMMMEd: \"E d MMM y\",\n yMMMM: \"MMMM y\",\n yMMMMEEEEd: \"EEEE d MMMM y\",\n yQQQ: \"QQQQ y\",\n yQQQQ: \"QQQQ y\",\n \"yw-count-one\": \"هفتهٔ wم Y\",\n \"yw-count-other\": \"هفتهٔ wم Y\"\n }\n },\n timeFormats: {\n full: \"H:mm:ss (zzzz)\",\n long: \"H:mm:ss (z)\",\n medium: \"H:mm:ss\",\n short: \"H:mm\"\n },\n dateFormats: {\n full: \"EEEE d MMMM y\",\n long: \"d MMMM y\",\n medium: \"d MMM y\",\n short: \"y/M/d\"\n },\n days: {\n format: {\n abbreviated: [\n \"یکشنبه\",\n \"دوشنبه\",\n \"سهشنبه\",\n \"چهارشنبه\",\n \"پنجشنبه\",\n \"جمعه\",\n \"شنبه\"\n ],\n narrow: [\n \"ی\",\n \"د\",\n \"س\",\n \"چ\",\n \"پ\",\n \"ج\",\n \"ش\"\n ],\n short: [\n \"۱ش\",\n \"۲ش\",\n \"۳ش\",\n \"۴ش\",\n \"۵ش\",\n \"ج\",\n \"ش\"\n ],\n wide: [\n \"یکشنبه\",\n \"دوشنبه\",\n \"سهشنبه\",\n \"چهارشنبه\",\n \"پنجشنبه\",\n \"جمعه\",\n \"شنبه\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"یکشنبه\",\n \"دوشنبه\",\n \"سهشنبه\",\n \"چهارشنبه\",\n \"پنجشنبه\",\n \"جمعه\",\n \"شنبه\"\n ],\n narrow: [\n \"ی\",\n \"د\",\n \"س\",\n \"چ\",\n \"پ\",\n \"ج\",\n \"ش\"\n ],\n short: [\n \"۱ش\",\n \"۲ش\",\n \"۳ش\",\n \"۴ش\",\n \"۵ش\",\n \"ج\",\n \"ش\"\n ],\n wide: [\n \"یکشنبه\",\n \"دوشنبه\",\n \"سهشنبه\",\n \"چهارشنبه\",\n \"پنجشنبه\",\n \"جمعه\",\n \"شنبه\"\n ]\n }\n },\n months: {\n format: {\n abbreviated: [\n \"ژانویهٔ\",\n \"فوریهٔ\",\n \"مارس\",\n \"آوریل\",\n \"مهٔ\",\n \"ژوئن\",\n \"ژوئیهٔ\",\n \"اوت\",\n \"سپتامبر\",\n \"اکتبر\",\n \"نوامبر\",\n \"دسامبر\"\n ],\n narrow: [\n \"ژ\",\n \"ف\",\n \"م\",\n \"آ\",\n \"م\",\n \"ژ\",\n \"ژ\",\n \"ا\",\n \"س\",\n \"ا\",\n \"ن\",\n \"د\"\n ],\n wide: [\n \"ژانویهٔ\",\n \"فوریهٔ\",\n \"مارس\",\n \"آوریل\",\n \"مهٔ\",\n \"ژوئن\",\n \"ژوئیهٔ\",\n \"اوت\",\n \"سپتامبر\",\n \"اکتبر\",\n \"نوامبر\",\n \"دسامبر\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"ژانویه\",\n \"فوریه\",\n \"مارس\",\n \"آوریل\",\n \"مه\",\n \"ژوئن\",\n \"ژوئیه\",\n \"اوت\",\n \"سپتامبر\",\n \"اکتبر\",\n \"نوامبر\",\n \"دسامبر\"\n ],\n narrow: [\n \"ژ\",\n \"ف\",\n \"م\",\n \"آ\",\n \"م\",\n \"ژ\",\n \"ژ\",\n \"ا\",\n \"س\",\n \"ا\",\n \"ن\",\n \"د\"\n ],\n wide: [\n \"ژانویه\",\n \"فوریه\",\n \"مارس\",\n \"آوریل\",\n \"مه\",\n \"ژوئن\",\n \"ژوئیه\",\n \"اوت\",\n \"سپتامبر\",\n \"اکتبر\",\n \"نوامبر\",\n \"دسامبر\"\n ]\n }\n },\n quarters: {\n format: {\n abbreviated: [\n \"سم۱\",\n \"سم۲\",\n \"سم۳\",\n \"سم۴\"\n ],\n narrow: [\n \"۱\",\n \"۲\",\n \"۳\",\n \"۴\"\n ],\n wide: [\n \"سهماههٔ اول\",\n \"سهماههٔ دوم\",\n \"سهماههٔ سوم\",\n \"سهماههٔ چهارم\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"سم۱\",\n \"سم۲\",\n \"سم۳\",\n \"سم۴\"\n ],\n narrow: [\n \"۱\",\n \"۲\",\n \"۳\",\n \"۴\"\n ],\n wide: [\n \"سهماههٔ اول\",\n \"سهماههٔ دوم\",\n \"سهماههٔ سوم\",\n \"سهماههٔ چهارم\"\n ]\n }\n },\n dayPeriods: {\n format: {\n abbreviated: {\n am: \"ق.ظ.\",\n pm: \"ب.ظ.\",\n morning1: \"بامداد\",\n morning2: \"صبح\",\n afternoon1: \"ظهر\",\n afternoon2: \"عصر\",\n night1: \"شب\",\n night2: \"نیمهشب\"\n },\n narrow: {\n am: \"ق\",\n pm: \"ب\",\n morning1: \"ب\",\n morning2: \"ص\",\n afternoon1: \"ظ\",\n afternoon2: \"ع\",\n night1: \"ش\",\n night2: \"ن\"\n },\n wide: {\n am: \"قبلازظهر\",\n pm: \"بعدازظهر\",\n morning1: \"بامداد\",\n morning2: \"صبح\",\n afternoon1: \"ظهر\",\n afternoon2: \"عصر\",\n night1: \"شب\",\n night2: \"نیمهشب\"\n }\n },\n \"stand-alone\": {\n abbreviated: {\n am: \"ق.ظ.\",\n pm: \"ب.ظ.\",\n morning1: \"بامداد\",\n morning2: \"صبح\",\n afternoon1: \"ظهر\",\n afternoon2: \"عصر\",\n night1: \"شب\",\n night2: \"نیمهشب\"\n },\n narrow: {\n am: \"ق\",\n pm: \"ب\",\n morning1: \"ب\",\n morning2: \"ص\",\n afternoon1: \"ظ\",\n afternoon2: \"ع\",\n night1: \"ش\",\n night2: \"ن\"\n },\n wide: {\n am: \"قبلازظهر\",\n pm: \"بعدازظهر\",\n morning1: \"بامداد\",\n morning2: \"صبح\",\n afternoon1: \"ظهر\",\n afternoon2: \"عصر\",\n night1: \"شب\",\n night2: \"نیمهشب\"\n }\n }\n },\n eras: {\n format: {\n wide: {\n \"0\": \"قبل از میلاد\",\n \"1\": \"میلادی\",\n \"0-alt-variant\": \"قبل از دوران مشترک\",\n \"1-alt-variant\": \"دوران مشترک\"\n },\n abbreviated: {\n \"0\": \"ق.م.\",\n \"1\": \"م.\",\n \"0-alt-variant\": \"ق.د.م\",\n \"1-alt-variant\": \"د.م.\"\n },\n narrow: {\n \"0\": \"ق\",\n \"1\": \"م\",\n \"0-alt-variant\": \"ق.د.م\",\n \"1-alt-variant\": \"د.م.\"\n }\n }\n },\n gmtFormat: \"{0} گرینویچ\",\n gmtZeroFormat: \"گرینویچ\",\n dateFields: {\n era: {\n wide: \"دوره\",\n short: \"دوره\",\n narrow: \"دوره\"\n },\n year: {\n wide: \"سال\",\n short: \"سال\",\n narrow: \"سال\"\n },\n quarter: {\n wide: \"سهماهه\",\n short: \"سهماهه\",\n narrow: \"سهماهه\"\n },\n month: {\n wide: \"ماه\",\n short: \"ماه\",\n narrow: \"ماه\"\n },\n week: {\n wide: \"هفته\",\n short: \"هفته\",\n narrow: \"هفته\"\n },\n weekOfMonth: {\n wide: \"هفتهٔ ماه\",\n short: \"هفتهٔ ماه\",\n narrow: \"هفتهٔ ماه\"\n },\n day: {\n wide: \"روز\",\n short: \"روز\",\n narrow: \"روز\"\n },\n dayOfYear: {\n wide: \"روز سال\",\n short: \"روز سال\",\n narrow: \"روز سال\"\n },\n weekday: {\n wide: \"روز هفته\",\n short: \"روز هفته\",\n narrow: \"روز هفته\"\n },\n weekdayOfMonth: {\n wide: \"روز کاری ماه\",\n short: \"روز کاری ماه\",\n narrow: \"روز کاری ماه\"\n },\n dayperiod: {\n short: \"قبل/بعدازظهر\",\n wide: \"قبل/بعدازظهر\",\n narrow: \"قبل/بعدازظهر\"\n },\n hour: {\n wide: \"ساعت\",\n short: \"ساعت\",\n narrow: \"ساعت\"\n },\n minute: {\n wide: \"دقیقه\",\n short: \"دقیقه\",\n narrow: \"دقیقه\"\n },\n second: {\n wide: \"ثانیه\",\n short: \"ثانیه\",\n narrow: \"ثانیه\"\n },\n zone: {\n wide: \"منطقهٔ زمانی\",\n short: \"منطقهٔ زمانی\",\n narrow: \"منطقهٔ زمانی\"\n }\n }\n },\n firstDay: 6\n});\n\n@NgModule({\n imports: [\n KendoDatePickerDirective,\n ],\n providers: [\n ...Providers,\n DateTimeNumberService,\n { provide: 'CONFIGS', useValue: {} }\n ],\n exports: [\n KendoDatePickerDirective,\n ]\n})\nexport class KendoJalaliDateInputsModule {\n constructor(\n ) {\n }\n\n static forRoot(configs?: IConfig): ModuleWithProviders<KendoJalaliDateInputsModule> {\n return {\n ngModule: KendoJalaliDateInputsModule,\n providers: [\n { provide: 'CONFIGS', useValue: { ...configs } }\n ]\n };\n }\n}\n\n\n\n","import { DateInputComponent } from '@progress/kendo-angular-dateinputs';\nimport { localeData } from '@progress/kendo-angular-intl';\nimport { isEqual } from '@progress/kendo-date-math';\nimport { Constants } from '@progress/kendo-dateinputs-common/dist/es2015/common/constants';\nimport { DateObject } from '@progress/kendo-dateinputs-common/dist/es2015/common/dateobject';\nimport { Key } from '@progress/kendo-dateinputs-common/dist/es2015/common/key';\nimport { KeyCode } from '@progress/kendo-dateinputs-common/dist/es2015/common/keycode';\nimport { Mask } from '@progress/kendo-dateinputs-common/dist/es2015/common/mask';\nimport { parseToInt } from '@progress/kendo-dateinputs-common/dist/es2015/common/utils';\nimport { DateInput } from '@progress/kendo-dateinputs-common/dist/es2015/dateinput/dateinput';\nimport { DateInputInteractionMode } from '@progress/kendo-dateinputs-common/dist/es2015/dateinput/interaction-mode';\nimport { approximateStringMatching, padZero } from '@progress/kendo-dateinputs-common/dist/es2015/dateinput/utils';\nimport dayjs from 'dayjs';\nimport { JalaliCldrIntlService } from '../services/jalali-cldr-intl.service';\nimport { isPresent } from '../services/kendo-util-overrides';\n\nconst MONTH_PART_WITH_WORDS_THRESHOLD = 2;\nconst JS_MONTH_OFFSET = 1;\nconst MIN_JALALI_DATE = dayjs('0000-01-01', 'YYYY/MM/DD', 'fa');\n\nDateInput.prototype.onElementInput = onElementInput;\nDateInput.prototype.refreshElementValue = refreshElementValue\nDateObject.prototype.dateFormatString = dateFormatString;\nDateObject.prototype.getTextAndFormat = getTextAndFormat;\n\nconst oldInitKendoDate = DateInputComponent.prototype['initKendoDate'];\nDateInputComponent.prototype['initKendoDate'] = function () {\n\n const kendoDate = oldInitKendoDate.call(this);\n if (this.value) {\n setTimeout(() => {\n this.kendoDate?.refreshElementValue();\n });\n }\n\n return kendoDate;\n}\n\nfunction onElementInput(e) {\n this.triggerInput({ event: e });\n const oldElementValue = this.elementValue;\n if (!this.element || !this.dateObject) {\n return;\n }\n const switchedPartOnPreviousKeyAction = this.switchedPartOnPreviousKeyAction;\n if (this.isPasteInProgress) {\n if (this.options.allowCaretMode) {\n // pasting should leave the input with caret\n // thus allow direct input instead of selection mode\n this.resetSegmentValue = false;\n }\n this.updateOnPaste(e);\n this.isPasteInProgress = false;\n return;\n }\n const keyDownEvent = this.keyDownEvent || {};\n const isBackspaceKey = keyDownEvent.keyCode === KeyCode.BACKSPACE || keyDownEvent.key === Key.BACKSPACE;\n const isDeleteKey = keyDownEvent.keyCode === KeyCode.DELETE || keyDownEvent.key === Key.DELETE;\n const originalInteractionMode = this.interactionMode;\n if (this.options.allowCaretMode &&\n originalInteractionMode !== DateInputInteractionMode.Caret &&\n !isDeleteKey && !isBackspaceKey) {\n this.resetSegmentValue = true;\n }\n if (this.options.allowCaretMode) {\n this.interactionMode = DateInputInteractionMode.Caret;\n }\n else {\n this.interactionMode = DateInputInteractionMode.Selection;\n }\n const hasCaret = this.isInCaretMode();\n if (hasCaret && this.keyDownEvent.key === Key.SPACE) {\n // do not allow custom \"holes\" in the date segments\n this.restorePreviousInputEventState();\n return;\n }\n const oldExistingDateValue = this.dateObject && this.dateObject.getValue();\n const oldDateValue = this.dateObject ? this.dateObject.value : null;\n const { text: currentText, format: currentFormat } = this.dateObject.getTextAndFormat();\n this.currentFormat = currentFormat;\n let oldText = \"\";\n if (hasCaret) {\n if (isBackspaceKey || isDeleteKey) {\n oldText = this.previousElementValue;\n }\n else if (originalInteractionMode === DateInputInteractionMode.Caret) {\n oldText = this.previousElementValue;\n }\n else {\n oldText = currentText;\n }\n }\n else {\n oldText = currentText;\n }\n const newText = this.elementValue;\n const diff = approximateStringMatching({\n oldText: oldText.toEnNumber(),\n newText: newText.toEnNumber(),\n formatPattern: this.currentFormat,\n selectionStart: this.selection.start,\n isInCaretMode: hasCaret,\n keyEvent: this.keyDownEvent\n });\n console.log('before diff', diff[0], (this.intl.service as JalaliCldrIntlService).calendarType);\n prepareDiffInJalaliMode.call(this, this.intl.service, diff);\n\n console.log('diff', diff[0]);\n console.log('leadingZero', this.dateObject.leadingZero);\n if (diff && diff.length && diff[0] && diff[0][1] !== Constants.formatSeparator) {\n this.switchedPartOnPreviousKeyAction = false;\n }\n if (hasCaret && (!diff || diff.length === 0)) {\n this.restorePreviousInputEventState();\n return;\n }\n else if (hasCaret && diff.length === 1) {\n if (!diff[0] || !diff[0][0]) {\n this.restorePreviousInputEventState();\n return;\n }\n else if (hasCaret && diff[0] &&\n (diff[0][0] === Constants.formatSeparator || diff[0][1] === Constants.formatSeparator)) {\n this.restorePreviousInputEventState();\n return;\n }\n }\n const navigationOnly = (diff.length === 1 && diff[0][1] === Constants.formatSeparator);\n const parsePartsResults = [];\n let switchPart = false;\n let error = null;\n if (!navigationOnly) {\n for (let i = 0; i < diff.length; i++) {\n const parsePartResult = this.intl.service.isGregorian ? this.dateObject.parsePart({\n symbol: diff[i][0],\n currentChar: diff[i][1],\n resetSegmentValue: this.resetSegmentValue,\n cycleSegmentValue: !this.isInCaretMode(),\n rawTextValue: this.element.value,\n isDeleting: isBackspaceKey || isDeleteKey,\n originalFormat: this.currentFormat\n }) : parsePart.call(this, diff);\n parsePartsResults.push(parsePartResult);\n if (!parsePartResult.value) {\n error = { type: \"parse\" };\n }\n switchPart = parsePartResult.switchToNext;\n }\n }\n if (!this.options.autoSwitchParts) {\n switchPart = false;\n }\n this.resetSegmentValue = false;\n const hasFixedFormat = this.options.format === this.currentFormat ||\n // all not fixed formats are 1 symbol, e.g. \"d\"\n (isPresent(this.options.format) && this.options.format.length > 1);\n const lastParseResult = parsePartsResults[parsePartsResults.length - 1];\n const lastParseResultHasNoValue = lastParseResult && !isPresent(lastParseResult.value);\n const parsingFailedOnDelete = (hasCaret && (isBackspaceKey || isDeleteKey) && lastParseResultHasNoValue);\n const resetPart = lastParseResult ? lastParseResult.resetPart : false;\n const newExistingDateValue = this.dateObject.getValue();\n const hasExistingDateValueChanged = !isEqual(oldExistingDateValue, newExistingDateValue);\n const newDateValue = this.dateObject.value;\n let symbolForSelection;\n const currentSelection = this.selection;\n if (hasCaret) {\n const diffChar = diff && diff.length > 0 ? diff[0][0] : null;\n const hasLeadingZero = this.dateObject.getLeadingZero()[diffChar];\n if (diff.length && diff[0][0] !== Constants.formatSeparator) {\n if (switchPart) {\n this.forceUpdateWithSelection();\n this.switchDateSegment(1);\n }\n else if (resetPart) {\n symbolForSelection = this.currentFormat[currentSelection.start];\n if (symbolForSelection) {\n this.forceUpdate();\n this.setSelection(this.selectionBySymbol(symbolForSelection));\n }\n else {\n this.restorePreviousInputEventState();\n }\n }\n else if (parsingFailedOnDelete) {\n this.forceUpdate();\n if (diff.length && diff[0][0] !== Constants.formatSeparator) {\n this.setSelection(this.selectionBySymbol(diff[0][0]));\n }\n }\n else if (lastParseResultHasNoValue) {\n if (e.data === '0' && hasLeadingZero) {\n // do not reset element value on a leading zero\n // wait for consecutive input to determine the value\n }\n else if (isPresent(oldExistingDateValue) && !isPresent(newExistingDateValue)) {\n this.restorePreviousInputEventState();\n }\n else if (!isPresent(oldExistingDateValue) && isPresent(newExistingDateValue)) {\n this.forceUpdateWithSelection();\n }\n else if (isPresent(oldExistingDateValue) && isPresent(newExistingDateValue)) {\n if (hasExistingDateValueChanged) {\n this.forceUpdateWithSelection();\n }\n else {\n this.restorePreviousInputEventState();\n }\n }\n else if (!isPresent(oldExistingDateValue) && !isPresent(newExistingDateValue)) {\n this.forceUpdateWithSelection();\n }\n else if (oldDateValue !== newDateValue) {\n // this can happen on auto correct when no valid value is parsed\n }\n else {\n this.restorePreviousInputEventState();\n }\n }\n else {\n // the user types a valid but incomplete date (e.g. year \"123\" with format \"yyyy\")\n // let them continue typing, but refresh for not fixed formats\n if (!hasFixedFormat) {\n this.forceUpdateWithSelection();\n }\n }\n }\n else {\n if (!this.options.autoSwitchParts && diff[0][1] === Constants.formatSeparator) {\n // do not change the selection when a separator is pressed\n // this should happen only if autoSwitchKeys contains the separator explicitly\n }\n else {\n this.setSelection(this.selectionBySymbol(diff[0][0]));\n }\n }\n }\n else if (!hasCaret) {\n this.forceUpdate();\n if (diff.length && diff[0][0] !== Constants.formatSeparator) {\n this.setSelection(this.selectionBySymbol(diff[0][0]));\n }\n if (this.options.autoSwitchParts) {\n if (navigationOnly) {\n this.resetSegmentValue = true;\n if (!switchedPartOnPreviousKeyAction) {\n this.switchDateSegment(1);\n }\n this.switchedPartOnPreviousKeyAction = true;\n }\n else if (switchPart) {\n this.switchDateSegment(1);\n this.switchedPartOnPreviousKeyAction = true;\n }\n }\n else {\n if (lastParseResult && lastParseResult.switchToNext) {\n // the value is complete and should be switched, but the \"autoSwitchParts\" option prevents this\n // ensure that the segment value can be reset on next input\n this.resetSegmentValue = true;\n }\n else if (navigationOnly) {\n this.resetSegmentValue = true;\n if (!switchedPartOnPreviousKeyAction) {\n this.switchDateSegment(1);\n }\n this.switchedPartOnPreviousKeyAction = true;\n }\n }\n if (isBackspaceKey && this.options.selectPreviousSegmentOnBackspace) {\n // kendo angular have this UX\n this.switchDateSegment(-1);\n }\n }\n this.tryTriggerValueChange({\n oldValue: oldExistingDateValue,\n event: e\n });\n this.triggerInputEnd({ event: e, error: error, oldElementValue: oldElementValue, newElementValue: this.elementValue });\n if (hasCaret) {\n // a format like \"F\" can dynamically change the resolved format pattern based on the value, e.g.\n // \"Tuesday, February 1, 2022 3:04:05 AM\" becomes\n // \"Wednesday, February 2, 2022 3:04:05 AM\" giving a diff of 2 (\"Tuesday\".length - \"Wednesday\".length)\n this.setTextAndFormat();\n }\n}\n\nfunction refreshElementValue() {\n const element = this.element;\n const format = this.isActive ? this.inputFormat : this.displayFormat;\n const { text: currentText, format: currentFormat } = this.dateObject.getTextAndFormat(format);\n this.currentFormat = currentFormat;\n this.currentText = currentText;\n const hasPlaceholder = this.options.hasPlaceholder || isPresent(this.options.placeholder);\n const showPlaceholder = !this.isActive &&\n hasPlaceholder &&\n !this.dateObject.hasValue();\n if (hasPlaceholder && isPresent(this.options.placeholder)) {\n element.placeholder = this.options.placeholder;\n }\n const newElementValue = showPlaceholder ? \"\" : this.currentText;\n this.previousElementValue = this.elementValue;\n console.log('newElementValue', newElementValue);\n this.setElementValue(newElementValue);\n};\n\nfunction getTextAndFormat(customFormat = \"\") {\n let format = customFormat || this.format;\n let text = (this.intl.service as JalaliCldrIntlService).getDayJsValue(this.value)?.locale(this.intl.localeId)?.format(mapKendoFormatToDayJs(format as string, this.intl.service, this.value));\n\n const mask = this.dateFormatString(this.value, format);\n if (this.autoCorrectParts || !this._partiallyInvalidDate.startDate) {\n return this.merge(text, mask);\n }\n\n let partiallyInvalidText = \"\";\n const formattedDate = this.intl.formatDate(this.value, format, this.intl.localeId);\n const formattedDates = this.getFormattedInvalidDates(format);\n for (let i = 0; i < formattedDate.length; i++) {\n const symbol = mask.symbols[i];\n if (mask.partMap[i].type === \"literal\") {\n partiallyInvalidText += text[i];\n }\n else if (this.getInvalidDatePartValue(symbol)) {\n const partsForSegment = this.getPartsForSegment(mask, i);\n if (symbol === \"M\") {\n const datePartText = (parseToInt(this.getInvalidDatePartValue(symbol)) + JS_MONTH_OFFSET).toString();\n if (partsForSegment.length > MONTH_PART_WITH_WORDS_THRESHOLD) {\n partiallyInvalidText += formattedDates[symbol][i];\n }\n else {\n if (this.getInvalidDatePartValue(symbol)) {\n const formattedDatePart = padZero(partsForSegment.length - datePartText.length) + datePartText;\n partiallyInvalidText += formattedDatePart;\n // add -1 as the first character in the segment is at index i\n i += partsForSegment.length - 1;\n }\n else {\n partiallyInvalidText += formattedDates[symbol][i];\n }\n }\n }\n else {\n if (this.getInvalidDatePartValue(symbol)) {\n const datePartText = this.getInvalidDatePartValue(symbol).toString();\n const formattedDatePart = padZero(partsForSegment.length - datePartText.length) + datePartText;\n partiallyInvalidText += formattedDatePart;\n // add -1 as the first character in the segment is at index i\n i += partsForSegment.length - 1;\n }\n else {\n partiallyInvalidText += formattedDates[symbol][i];\n }\n }\n }\n else {\n partiallyInvalidText += text[i];\n }\n }\n text = partiallyInvalidText;\n const result = this.merge(text, mask);\n return result;\n}\n\nfunction dateFormatString(date, format) {\n var dateFormatParts = this.intl.splitDateFormat(format, this.intl.service.localeIdByDatePickerType);\n var parts = [];\n var partMap = [];\n for (var i = 0; i < dateFormatParts.length; i++) {\n let partLength = this.intl.service.getDayJsValue(date)?.format(dateFormatParts[i].pattern.toMomentDateTimeFormat()).length || 0;\n while (partLength > 0) {\n parts.push(this.symbols[dateFormatParts[i].pattern[0]] || Constants.formatSeparator);\n partMap.push(dateFormatParts[i]);\n partLength--;\n }\n }\n var returnValue = new Mask();\n returnValue.symbols = parts.join('');\n returnValue.partMap = partMap;\n return returnValue;\n};\n\nfunction mapKendoFormatToDayJs(format: string, i18n: JalaliCldrIntlService, dt: Date) {\n // if (format === 'd')\n // format = i18n.isJalali ? 'y_M_d' : 'M_d_y';\n // else if (format === 'g')\n // format = i18n.isJalali ? 'y_M_d h_mm_aa' : 'M_d_y h_mm_aa';\n // else if (format === 't')\n // format = 'h:mm A';\n\n return convertKendoToDayjsFormat(format, i18n.localeId); // (mapFormatToDayJs(format, dt));\n}\n\nfunction mapFormatToDayJs(value: string, dt: Date) {\n return value.replace('h_mm_aa', 'h:mm A').replaceAll('_', '/').replaceAll('y', dt.getFullYear() < 623 ? '0' : 'YYYY').replaceAll('d', 'D').replaceAll('aa', 'a');\n\n}\nfunction prepareDiffInJalaliMode(intl: JalaliCldrIntlService, diff: any[]) {\n if (!intl.isJalali) { return; }\n\n if (!this.elementValue || !this.dateObject.hasValue()) {\n this.dateObject.date = false;\n this.dateObject.year = false;\n this.dateObject.month = false;\n this.dateObject = this.getDateObject((MIN_JALALI_DATE.clone().toDate()));\n }\n if (!this.elementValue) return;\n\n const dt = intl.getDayJsValue(this.dateObject.value, 'fa');\n if (!dt) return;\n\n // if (debuggerCounter(3)) { }\n\n diff.forEach((d): void => {\n if (!d[0]) return;\n\n if (d[0] === 'M') {\n\n this.dateObject.month = d[1] != '';\n if (d[1] === '') {\n existInputs.M = false;\n this.dateObject = this.getDateObject(dt.month((+d[1])).toDate());\n return;\n }\n let month = d[1];\n if (existInputs.M) {\n month = +(dt.month() + 1) + d[1];\n resetExistingInputs();\n } else {\n existInputs.M = true;\n if (month === '0') {\n existInputs.M = false;\n this.dateObject.month = false;\n this.dateObject.value = dt.month(0).toDate();\n this.dateObject.leadingZero = { [d[0]]: 1 };\n\n return;\n }\n }\n\n this.dateObject.value = (dt.set('month', month - 1).toDate());\n d[1] = '' + (dt.locale('en').month() + 1);\n\n return;\n }\n else if (d[0].toLocaleLowerCase() === 'd') {\n if (d[1] === '') {\n existInputs.d = false;\n this.dateObject = this.getDateObject(dt.date((+d[1])).toDate());\n return;\n }\n this.dateObject.date = true;\n let day = d[1];\n if (existInputs.d) {\n day = +(dt.date()) + d[1];\n resetExistingInputs();\n } else {\n existInputs.d = true;\n if (day === '0') {\n existInputs.d = false;\n this.dateObject.date = false;\n this.dateObject.leadingZero = { d: 1 };\n this.dateObject.value = dt.day(1).toDate();\n return;\n }\n }\n this.dateObject.value = (dt.set('date', +day).toDate());\n d[1] = '' + (dt.locale('en').date());\n return;\n }\n else if (d[0].toLocaleLowerCase() === 'y') {\n d[1] = prepareYearValue.call(this, d, dt);\n }\n else if (d[0].toLocaleLowerCase() === 'h') {\n d[1] = prepareHourValue.call(this, d, dt);\n }\n else if (d[0].toLocaleLowerCase() === 'm') {\n d[1] = prepareMinuteValue.call(this, d, dt);\n }\n else if (d[0].toLocaleLowerCase() === 's') {\n d[1] = prepareSecondValue.call(this, d, dt);\n }\n });\n}\nfunction prepareSecondValue(diff: any[], dt: dayjs.Dayjs) {\n diff[2] = false\n this.dateObject.seconds = false;\n const seconds = diff[1];\n const format = diff[0];\n if (seconds === '') {\n existInputs.s = false;\n this.dateObject = this.getDateObject(dt.second((+seconds)).toDate());\n return '';\n }\n this.dateObject.seconds = true;\n // if (!existInputs.y && year === '0') {\n // existInputs.y = false;\n // this.dateObject.year = false;\n // return;\n // }\n if (!existInputs.s || dt.format(format).length > 1) {\n existInputs.s = true;\n this.dateObject = this.getDateObject(dt.second((+seconds)).toDate());\n return seconds === '' ? '' : dt.format(format);\n }\n\n this.dateObject.value = dt.second(+(dt.second() + seconds)).toDate();\n\n if (dt.format(format).length > 1) {\n resetExistingInputs();\n diff[2] = true;\n }\n return dt.format(format);\n}\nfunction prepareMinuteValue(diff: any[], dt: dayjs.Dayjs) {\n diff[2] = false\n this.dateObject.hours = false;\n const minutes = diff[1];\n const format = diff[0];\n if (minutes === '') {\n existInputs.m = false;\n this.dateObject = this.getDateObject(dt.minute((+minutes)).toDate());\n return '';\n }\n this.dateObject.hours = true;\n // if (!existInputs.y && year === '0') {\n // existInputs.y = false;\n // this.dateObject.year = false;\n // return;\n // }\n if (!existInputs.m || dt.format(format).length > 1) {\n existInputs.m = true;\n this.dateObject = this.getDateObject(dt.minute((+minutes)).toDate());\n return minutes === '' ? '' : dt.format(format);\n }\n\n this.dateObject.value = dt.minute(+(dt.minute() + minutes)).toDate();\n\n if (dt.format(format).length > 1) {\n resetExistingInputs();\n diff[2] = true;\n }\n return dt.format(format);\n}\nfunction prepareHourValue(diff: any[], dt: dayjs.Dayjs) {\n diff[2] = false\n this.dateObject.hours = false;\n const hours = diff[1];\n const format = diff[0];\n if (hours === '') {\n existInputs.h = false;\n this.dateObject = this.getDateObject(dt.hour((+hours)).toDate());\n return '';\n }\n this.dateObject.hours = true;\n // if (!existInputs.y && year === '0') {\n // existInputs.y = false;\n // this.dateObject.year = false;\n // return;\n // }\n if (!existInputs.h || dt.format(format).length > 1) {\n existInputs.h = true;\n this.dateObject = this.getDateObject(dt.hour((+hours)).toDate());\n return hours === '' ? '' : dt.format(format);\n }\n\n this.dateObject.value = dt.hour(+(dt.hour() + hours)).toDate();\n\n if (dt.format(format).length > 1) {\n resetExistingInputs();\n diff[2] = true;\n }\n return dt.format(format);\n}\nfunction prepareYearValue(diff: any[], dt: dayjs.Dayjs) {\n diff[2] = false\n this.dateObject.year = false;\n const year = diff[1];\n if (year === '') {\n existInputs.y = false;\n this.dateObject = this.getDateObject(dt.year((+year)).toDate());\n return '';\n }\n\n this.dateObject.year = true;\n // if (!existInputs.y && year === '0') {\n // existInputs.y = false;\n // this.dateObject.year = false;\n // return '0';\n // }\n\n if (!existInputs.y || ('' + dt.year()).length > 3) {\n existInputs.y = true;\n this.dateObject = this.getDateObject(dt.year((+year) || 1).toDate());\n return year === '' ? '0' : year === '0' ? '0' : '' + dt.year();\n }\n\n this.dateObject.value = dt.year(+(dt.year() + year)).toDate();\n\n if (('' + dt.year()).length > 3) {\n resetExistingInputs();\n diff[2] = true;\n }\n\n return '' + dt.year();\n}\nfunction resetExistingInputs() {\n existInputs.M = false;\n existInputs.d = false;\n existInputs.y = false;\n existInputs.h = false;\n existInputs.m = false;\n existInputs.s = false;\n existInputs.a = false;\n}\nconst existInputs = {\n M: false,\n d: false,\n y: false,\n h: false,\n m: false,\n s: false,\n a: false\n};\n\nfunction parsePart(diff) {\n const value = this.dateObject.value;\n const dt = this.intl.service.getDayJsValue(this.dateObject.value) as dayjs.Dayjs;\n let switchToNext = false;\n if (!diff[0]?.[0]) return {\n hasInvalidDatePart: false,\n resetPart: false,\n switchToNext: false,\n value\n };\n\n const target = diff[0][0].toLocaleLowerCase();\n if (diff[0][0] === 'M') {\n switchToNext = dt.month() > 0;\n } else if (target === 'd') {\n switchToNext = dt.date() > 3;\n } else if (target === 'y') {\n switchToNext = dt.year() > 1000;\n } else if (target === 'a') {\n switchToNext = true;\n } else if (diff[0][0] === 'h') {\n switchToNext = dt.hour() > 1;\n } else if (diff[0][0] === 'H') {\n switchToNext = dt.hour() > 5;\n } else if (diff[0][0] === 'm') {\n switchToNext = dt.minute() > 5;\n } else if (diff[0][0] === 's') {\n switchToNext = dt.second() > 5;\n }\n\n return {\n hasInvalidDatePart: false,\n resetPart: true,\n switchToNext,\n value\n };\n}\n\nfunction convertKendoToDayjsFormat(kendoFormat, localeId) {\n const aliasFormats = localeData(localeId).calendar.patterns;\n const kendoToDayjsMap = {\n 'yyyy': 'YYYY',\n 'yy': 'YY',\n 'y': 'YYYY',\n 'yyy': 'YYY',\n 'dd': 'DD',\n 'd': 'D',\n 'tt': 'A',\n 'fff': 'SSS' // اگر نیاز به پشتیبانی از میلیثانیه دارید,\n };\n\n const regexPattern = Object.keys(kendoToDayjsMap)\n .sort((a, b) => b.length - a.length)\n .map(escapeRegExp)\n .join('|');\n\n const regex = new RegExp(regexPattern, 'g');\n\n return (aliasFormats[kendoFormat] || kendoFormat).replace(regex, match => kendoToDayjsMap[match]);\n}\n\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nexport default {};","/*\n * Public API Surface of kendo-jalali-date-inputs\n */\n\nexport * from './lib/kendo-jalali-date-inputs.module';\nexport * from './lib/services/jalali-cldr-intl.service';\nexport * from './lib/components/date-input.component';\nexport * from './lib/components/navigation.directive';\nexport * from './lib/models/date-picker-type';\nexport * from './lib/models/config.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DateTimeNumberService","EMPTY_DATA","CELLS_LENGTH","ROWS_LENGTH","localeData"],"mappings":"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"}