gramli-angular-mydatepicker
Version:
Angular datepicker
1 lines • 261 kB
Source Map (JSON)
{"version":3,"file":"gramli-angular-mydatepicker.mjs","sources":["../../../projects/angular-mydatepicker/src/lib/enums/key-code.enum.ts","../../../projects/angular-mydatepicker/src/lib/enums/key-name.enum.ts","../../../projects/angular-mydatepicker/src/lib/constants/constants.ts","../../../projects/angular-mydatepicker/src/lib/services/angular-mydatepicker.util.service.ts","../../../projects/angular-mydatepicker/src/lib/enums/month-id.enum.ts","../../../projects/angular-mydatepicker/src/lib/enums/default-view.enum.ts","../../../projects/angular-mydatepicker/src/lib/enums/cal-animation.enum.ts","../../../projects/angular-mydatepicker/src/lib/enums/header-action.enum.ts","../../../projects/angular-mydatepicker/src/lib/components/selection-bar/selection-bar.component.ts","../../../projects/angular-mydatepicker/src/lib/components/selection-bar/selection-bar.component.html","../../../projects/angular-mydatepicker/src/lib/enums/active-view.enum.ts","../../../projects/angular-mydatepicker/src/lib/components/day-view/day-view.component.ts","../../../projects/angular-mydatepicker/src/lib/components/day-view/day-view.component.html","../../../projects/angular-mydatepicker/src/lib/components/month-view/month-view.component.ts","../../../projects/angular-mydatepicker/src/lib/components/month-view/month-view.component.html","../../../projects/angular-mydatepicker/src/lib/components/year-view/year-view.component.ts","../../../projects/angular-mydatepicker/src/lib/components/year-view/year-view.component.html","../../../projects/angular-mydatepicker/src/lib/components/footer-bar/footer-bar.component.ts","../../../projects/angular-mydatepicker/src/lib/components/footer-bar/footer-bar.component.html","../../../projects/angular-mydatepicker/src/lib/directives/angular-mydatepicker-calendar.directive.ts","../../../projects/angular-mydatepicker/src/lib/components/calendar/calendar.component.ts","../../../projects/angular-mydatepicker/src/lib/components/calendar/calendar.component.html","../../../projects/angular-mydatepicker/src/lib/services/angular-mydatepicker.locale.service.ts","../../../projects/angular-mydatepicker/src/lib/enums/year.enum.ts","../../../projects/angular-mydatepicker/src/lib/services/angular-mydatepicker.config.service.ts","../../../projects/angular-mydatepicker/src/lib/enums/cal-toggle.enum.ts","../../../projects/angular-mydatepicker/src/lib/angular-mydatepicker.input.ts","../../../projects/angular-mydatepicker/src/lib/angular-mydatepicker.module.ts","../../../projects/angular-mydatepicker/src/public-api.ts","../../../projects/angular-mydatepicker/src/gramli-angular-mydatepicker.ts"],"sourcesContent":["/**\r\n * Event key codes\r\n */\r\nexport enum KeyCode {\r\n enter = 13, \r\n esc = 27, \r\n space = 32, \r\n leftArrow = 37, \r\n upArrow = 38, \r\n rightArrow = 39, \r\n downArrow = 40, \r\n tab = 9, \r\n shift = 16\r\n}\r\n","/**\r\n * Event key names\r\n */\r\nexport enum KeyName {\r\n enter = \"Enter\", \r\n esc = \"Escape|Esc\", \r\n space = \" |Spacebar\", \r\n leftArrow = \"ArrowLeft|Left\", \r\n upArrow = \"ArrowUp|Up\", \r\n rightArrow = \"ArrowRight|Right\", \r\n downArrow = \"ArrowDown|Down\", \r\n tab = \"Tab\", \r\n shift = \"Shift\"\r\n}\r\n","/**\r\n * Constants\r\n */\r\nconst D = \"d\";\r\nconst DD = \"dd\";\r\nconst M = \"m\";\r\nconst MM = \"mm\";\r\nconst MMM = \"mmm\";\r\nconst Y = \"y\";\r\nconst YYYY = \"yyyy\";\r\nconst ORDINAL = \"##\";\r\n\r\nconst ST = 'st';\r\nconst ND = \"nd\";\r\nconst RD = \"rd\";\r\n\r\nconst DATE_ROW_COUNT = 5;\r\nconst DATE_COL_COUNT = 6;\r\nconst MONTH_ROW_COUNT = 3;\r\nconst MONTH_COL_COUNT = 2;\r\nconst YEAR_ROW_COUNT = 4;\r\nconst YEAR_COL_COUNT = 4;\r\n\r\nconst DOT = \".\";\r\nconst UNDER_LINE = \"_\";\r\nconst PIPE = \"|\";\r\nconst YEAR_SEPARATOR = \" - \";\r\n\r\nconst SU = \"su\";\r\nconst MO = \"mo\";\r\nconst TU = \"tu\";\r\nconst WE = \"we\";\r\nconst TH = \"th\";\r\nconst FR = \"fr\";\r\nconst SA = \"sa\";\r\n\r\nconst DEFAULT_LOCALE = \"en\";\r\n\r\nconst ZERO_STR = \"0\";\r\nconst EMPTY_STR = \"\";\r\nconst SPACE_STR = \" \";\r\n\r\nconst CLICK = \"click\";\r\nconst KEYUP = \"keyup\";\r\nconst BLUR = \"blur\";\r\nconst DISABLED = \"disabled\";\r\nconst BODY = \"body\";\r\nconst VALUE = \"value\";\r\nconst OPTIONS = \"options\";\r\nconst DEFAULT_MONTH = \"defaultMonth\";\r\nconst LOCALE = \"locale\";\r\nconst OBJECT = \"object\";\r\nconst PX = \"px\";\r\nconst STYLE = \"style\";\r\nconst INNER_HTML = \"innerHTML\";\r\n\r\nconst OPTS = \"opts\";\r\nconst YEARS_DURATION = \"yearsDuration\";\r\nconst YEARS = \"years\";\r\nconst VISIBLE_MONTH = \"visibleMonth\";\r\nconst SELECT_MONTH = \"selectMonth\";\r\nconst SELECT_YEAR = \"selectYear\";\r\nconst PREV_VIEW_DISABLED = \"prevViewDisabled\";\r\nconst NEXT_VIEW_DISABLED = \"nextViewDisabled\";\r\nconst DATES = \"dates\";\r\nconst WEEK_DAYS = \"weekDays\";\r\nconst SELECTED_DATE = \"selectedDate\";\r\nconst SELECTED_DATE_RANGE = \"selectedDateRange\";\r\nconst MONTHS = \"months\";\r\n\r\nconst ANIMATION_END = \"animationend\";\r\nconst ANIMATION_TIMEOUT = 550;\r\nconst MY_DP_ANIMATION = \"myDpAnimation\";\r\nconst ANIMATION_NAMES = [\"Fade\", \"ScaleTop\", \"ScaleCenter\", \"Rotate\", \"FlipDiagonal\", \"Own\"];\r\nconst IN = \"In\";\r\nconst OUT = \"Out\";\r\n\r\nconst TABINDEX = \"tabindex\";\r\nconst TD_SELECTOR = \"table tbody tr td:not(.myDpDaycellWeekNbr)\";\r\n\r\nconst PREVENT_CLOSE_TIMEOUT = 50;\r\n\r\nexport {\r\n D,\r\n DD,\r\n M,\r\n MM,\r\n MMM,\r\n Y,\r\n YYYY,\r\n ORDINAL,\r\n ST,\r\n ND,\r\n RD,\r\n DATE_ROW_COUNT,\r\n DATE_COL_COUNT,\r\n MONTH_ROW_COUNT,\r\n MONTH_COL_COUNT,\r\n YEAR_ROW_COUNT,\r\n YEAR_COL_COUNT,\r\n DOT,\r\n UNDER_LINE,\r\n PIPE,\r\n YEAR_SEPARATOR,\r\n SU,\r\n MO,\r\n TU,\r\n WE,\r\n TH,\r\n FR,\r\n SA,\r\n DEFAULT_LOCALE,\r\n ZERO_STR,\r\n EMPTY_STR,\r\n SPACE_STR,\r\n CLICK,\r\n KEYUP,\r\n BLUR,\r\n DISABLED,\r\n BODY,\r\n VALUE,\r\n OPTIONS,\r\n DEFAULT_MONTH,\r\n LOCALE,\r\n OBJECT,\r\n PX,\r\n STYLE,\r\n INNER_HTML,\r\n OPTS,\r\n YEARS_DURATION,\r\n YEARS,\r\n VISIBLE_MONTH,\r\n SELECT_MONTH,\r\n SELECT_YEAR,\r\n PREV_VIEW_DISABLED,\r\n NEXT_VIEW_DISABLED,\r\n DATES,\r\n WEEK_DAYS,\r\n SELECTED_DATE,\r\n SELECTED_DATE_RANGE,\r\n MONTHS,\r\n ANIMATION_END,\r\n ANIMATION_TIMEOUT,\r\n MY_DP_ANIMATION,\r\n ANIMATION_NAMES,\r\n IN,\r\n OUT,\r\n TABINDEX,\r\n TD_SELECTOR,\r\n PREVENT_CLOSE_TIMEOUT\r\n};\r\n","import {Injectable} from \"@angular/core\";\r\nimport {IMyDateModel} from \"../interfaces/my-date-model.interface\";\r\nimport {IMySingleDateModel} from \"../interfaces/my-single-date-model.interface\";\r\nimport {IMyDateRangeModel} from \"../interfaces/my-date-range-model.interface\";\r\nimport {IMyDate} from \"../interfaces/my-date.interface\";\r\nimport {IMyDateRange} from \"../interfaces/my-date-range.interface\";\r\nimport {IMyMonth} from \"../interfaces/my-month.interface\";\r\nimport {IMyMonthLabels} from \"../interfaces/my-month-labels.interface\";\r\nimport {IMyMarkedDate} from \"../interfaces/my-marked-date.interface\";\r\nimport {IMyDisabledDate} from \"../interfaces/my-disabled-date.interface\";\r\nimport {IMyDateFormat} from \"../interfaces/my-date-format.interface\";\r\nimport {IMyValidateOptions} from \"../interfaces/my-validate-options.interface\";\r\nimport {IMyOptions} from \"../interfaces/my-options.interface\";\r\nimport {KeyCode} from \"../enums/key-code.enum\";\r\nimport {KeyName} from \"../enums/key-name.enum\";\r\nimport {D, DD, M, MM, MMM, YYYY, ORDINAL, ST, ND, RD, SU, MO, TU, WE, TH, FR, SA, ZERO_STR, EMPTY_STR, PIPE} from \"../constants/constants\";\r\n\r\n@Injectable()\r\nexport class UtilService {\r\n weekDays: Array<string> = [SU, MO, TU, WE, TH, FR, SA];\r\n\r\n isDateValid(dateStr: string, options: IMyOptions, validateOpts: IMyValidateOptions): IMyDate {\r\n const {dateFormat, minYear, maxYear, monthLabels} = options;\r\n\r\n const returnDate: IMyDate = this.resetDate();\r\n const datesInMonth: Array<number> = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n const isMonthStr: boolean = dateFormat.indexOf(MMM) !== -1;\r\n const delimeters: Array<string> = dateFormat.match(/[^(d#my)]{1,}/g);\r\n\r\n if (!dateStr || dateStr === EMPTY_STR) {\r\n return returnDate;\r\n }\r\n\r\n const dateValues: Array<IMyDateFormat> = this.getDateValue(dateStr, dateFormat, delimeters);\r\n\r\n let year: number = 0;\r\n let month: number = 0;\r\n let day: number = 0;\r\n\r\n for(let dv of dateValues) {\r\n if (dv.format.indexOf(ORDINAL) != -1) {\r\n const dayNumber: number = parseInt(dv.value.replace(/\\D/g, ''));\r\n const ordinalStr: string = dv.value.replace(/[0-9]/g, '');\r\n const ordinal: string = this.getOrdinal(dayNumber);\r\n\r\n if (ordinal !== ordinalStr) {\r\n return returnDate;\r\n }\r\n\r\n dv.value = dv.value.replace(ST, EMPTY_STR).replace(ND, EMPTY_STR).replace(RD, EMPTY_STR).replace(TH, EMPTY_STR);\r\n dv.format = dv.format.replace(ORDINAL, EMPTY_STR);\r\n }\r\n\r\n const {value, format} = dv;\r\n\r\n if (value && /^\\d+$/.test(value) && Number(value) === 0) {\r\n return returnDate;\r\n }\r\n \r\n if (format.indexOf(YYYY) !== -1) {\r\n year = this.getNumberByValue(dv);\r\n }\r\n else if (format.indexOf(M) !== -1) {\r\n month = isMonthStr ? this.getMonthNumberByMonthName(dv, monthLabels) : this.getNumberByValue(dv);\r\n }\r\n else if (format.indexOf(D) !== -1) {\r\n day = this.getNumberByValue(dv);\r\n }\r\n }\r\n\r\n const {validateDisabledDates, selectedValue} = validateOpts;\r\n\r\n year = year === 0 && selectedValue ? selectedValue.year : year;\r\n month = month === 0 && selectedValue ? selectedValue.month : month;\r\n day = day === 0 && selectedValue ? selectedValue.day : day;\r\n\r\n const today: IMyDate = this.getToday();\r\n if (year === 0 && (month !== 0 || day !== 0)) {\r\n year = today.year;\r\n }\r\n\r\n if (month === 0 && (year !== 0 || day !== 0)) {\r\n month = today.month;\r\n }\r\n\r\n if (day === 0 && (year !== 0 || month !== 0)) {\r\n day = today.day;\r\n }\r\n\r\n if (month !== -1 && day !== -1 && year !== -1) {\r\n if (year < minYear || year > maxYear || month < 1 || month > 12) {\r\n return returnDate;\r\n }\r\n\r\n const date: IMyDate = {year, month, day};\r\n\r\n if (validateDisabledDates && this.isDisabledDate(date, options).disabled) {\r\n return returnDate;\r\n }\r\n\r\n if (year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) {\r\n datesInMonth[1] = 29;\r\n }\r\n\r\n if (day < 1 || day > datesInMonth[month - 1]) {\r\n return returnDate;\r\n }\r\n\r\n // Valid date\r\n return date;\r\n }\r\n return returnDate;\r\n }\r\n\r\n isDateValidDateRange(dateRangeStr: string, options: IMyOptions, validateOpts: IMyValidateOptions): IMyDateRange {\r\n let dateRange: IMyDateRange = {begin: this.resetDate(), end: this.resetDate()};\r\n if (dateRangeStr && dateRangeStr.length) {\r\n const dates: Array<string> = dateRangeStr.split(options.dateRangeDatesDelimiter);\r\n if (dates && dates.length === 2) {\r\n const [beginDate, endDate] = dates;\r\n let {selectedValue} = validateOpts;\r\n\r\n if (selectedValue) {\r\n validateOpts.selectedValue = selectedValue.begin;\r\n }\r\n \r\n const begin: IMyDate = this.isDateValid(beginDate, options, validateOpts);\r\n\r\n if (this.isInitializedDate(begin)) {\r\n if (selectedValue) {\r\n validateOpts.selectedValue = selectedValue.end;\r\n }\r\n \r\n const end: IMyDate = this.isDateValid(endDate, options, validateOpts);\r\n\r\n if (this.isInitializedDate(end) && this.isDateSameOrEarlier(begin, end)) {\r\n dateRange = {begin, end};\r\n }\r\n }\r\n }\r\n }\r\n return dateRange;\r\n }\r\n\r\n getDateValue(dateStr: string, dateFormat: string, delimeters: Array<string>): Array<IMyDateFormat> {\r\n let del: string = EMPTY_STR;\r\n \r\n if (delimeters) {\r\n for(const d of delimeters) {\r\n if (del.indexOf(d) === -1) {\r\n del += d;\r\n }\r\n }\r\n }\r\n\r\n const re: any = new RegExp(\"[\" + del + \"]\");\r\n const ds: Array<string> = dateStr.split(re);\r\n const df: Array<string> = dateFormat.split(re);\r\n const da: Array<IMyDateFormat> = [];\r\n\r\n for (let i = 0; i < df.length; i++) {\r\n if (df[i].indexOf(YYYY) !== -1) {\r\n da.push({value: ds[i], format: df[i]});\r\n }\r\n if (df[i].indexOf(M) !== -1) {\r\n da.push({value: ds[i], format: df[i]});\r\n }\r\n if (df[i].indexOf(D) !== -1) {\r\n da.push({value: ds[i], format: df[i]});\r\n }\r\n }\r\n return da;\r\n }\r\n\r\n getMonthNumberByMonthName(df: IMyDateFormat, monthLabels: IMyMonthLabels): number {\r\n if (df.value) {\r\n for (let key = 1; key <= 12; key++) {\r\n if (df.value.toLowerCase() === monthLabels[key].toLowerCase()) {\r\n return key;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n getNumberByValue(df: IMyDateFormat): number {\r\n if (!/^\\d+$/.test(df.value)) {\r\n return -1;\r\n }\r\n\r\n let nbr: number = Number(df.value);\r\n if (df.format.length === 1 && df.value.length !== 1 && nbr < 10 || df.format.length === 1 && df.value.length !== 2 && nbr >= 10) {\r\n nbr = -1;\r\n }\r\n else if (df.format.length === 2 && df.value.length > 2) {\r\n nbr = -1;\r\n }\r\n return nbr;\r\n }\r\n\r\n parseDefaultMonth(monthString: string): IMyMonth {\r\n const month: IMyMonth = {monthTxt: EMPTY_STR, monthNbr: 0, year: 0};\r\n if (monthString !== EMPTY_STR) {\r\n const split = monthString.split(monthString.match(/[^0-9]/)[0]);\r\n month.monthNbr = split[0].length === 2 ? Number(split[0]) : Number(split[1]);\r\n month.year = split[0].length === 2 ? Number(split[1]) : Number(split[0]);\r\n }\r\n return month;\r\n }\r\n\r\n isDisabledDate(date: IMyDate, options: IMyOptions): IMyDisabledDate {\r\n const {minYear, maxYear, disableUntil, disableSince, disableWeekends, disableDates, disableDateRanges, disableWeekdays, enableDates} = options;\r\n\r\n if (this.dateMatchToDates(date, enableDates)) {\r\n return this.getDisabledValue(false, EMPTY_STR);\r\n }\r\n\r\n if (date.year < minYear && date.month === 12 || date.year > maxYear && date.month === 1) {\r\n return this.getDisabledValue(true, EMPTY_STR);\r\n }\r\n\r\n const inputDates: any = disableDates as any;\r\n const result = inputDates.find((d) => {\r\n return d.dates;\r\n });\r\n\r\n if (!result) {\r\n if (this.dateMatchToDates(date, inputDates)) {\r\n return this.getDisabledValue(true, EMPTY_STR);\r\n }\r\n }\r\n else {\r\n for (const dd of inputDates) {\r\n if (this.dateMatchToDates(date, dd.dates)) {\r\n return this.getDisabledValue(true, dd.styleClass);\r\n }\r\n }\r\n }\r\n\r\n if (this.isDisabledByDisableUntil(date, disableUntil)) {\r\n return this.getDisabledValue(true, EMPTY_STR);\r\n }\r\n\r\n if (this.isDisabledByDisableSince(date, disableSince)) {\r\n return this.getDisabledValue(true, EMPTY_STR);\r\n }\r\n\r\n if (disableWeekends) {\r\n const dayNbr = this.getDayNumber(date);\r\n if (dayNbr === 0 || dayNbr === 6) {\r\n return this.getDisabledValue(true, EMPTY_STR);\r\n }\r\n }\r\n\r\n const dn = this.getDayNumber(date);\r\n if (disableWeekdays.length > 0) {\r\n for (const wd of disableWeekdays) {\r\n if (dn === this.getWeekdayIndex(wd)) {\r\n return this.getDisabledValue(true, EMPTY_STR);\r\n }\r\n }\r\n }\r\n\r\n if (this.isDisabledByDisableDateRange(date, date, disableDateRanges)) {\r\n return this.getDisabledValue(true, EMPTY_STR);\r\n }\r\n\r\n return this.getDisabledValue(false, EMPTY_STR);\r\n }\r\n\r\n getDisabledValue(disabled: boolean, styleClass: string): IMyDisabledDate {\r\n return {disabled, styleClass};\r\n }\r\n\r\n dateMatchToDates(date: IMyDate, dates: Array<IMyDate>): boolean {\r\n for (const d of dates) {\r\n if ((d.year === 0 || d.year === date.year) && (d.month === 0 || d.month === date.month) && d.day === date.day) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n isDisabledMonth(year: number, month: number, options: IMyOptions): boolean {\r\n const {disableUntil, disableSince, disableDateRanges, enableDates} = options;\r\n\r\n const dateEnd: IMyDate = {year, month, day: this.datesInMonth(month, year)};\r\n const dateBegin: IMyDate = {year, month, day: 1};\r\n\r\n if (this.isDatesEnabled(dateBegin, dateEnd, enableDates)) {\r\n return false;\r\n }\r\n\r\n if (this.isDisabledByDisableUntil(dateEnd, disableUntil)) {\r\n return true;\r\n }\r\n\r\n if (this.isDisabledByDisableSince(dateBegin, disableSince)) {\r\n return true;\r\n }\r\n\r\n if (this.isDisabledByDisableDateRange(dateBegin, dateEnd, disableDateRanges)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isDisabledYear(year: number, options: IMyOptions): boolean {\r\n const {disableUntil, disableSince, disableDateRanges, enableDates, minYear, maxYear} = options;\r\n\r\n const dateEnd: IMyDate = {year, month: 12, day: 31};\r\n const dateBegin: IMyDate = {year, month: 1, day: 1};\r\n\r\n if (this.isDatesEnabled(dateBegin, dateEnd, enableDates)) {\r\n return false;\r\n }\r\n\r\n if (this.isDisabledByDisableUntil(dateEnd, disableUntil)) {\r\n return true;\r\n }\r\n\r\n if (this.isDisabledByDisableSince(dateBegin, disableSince)) {\r\n return true;\r\n }\r\n\r\n if (this.isDisabledByDisableDateRange(dateBegin, dateEnd, disableDateRanges)) {\r\n return true;\r\n }\r\n\r\n if (year < minYear || year > maxYear) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isDisabledByDisableUntil(date: IMyDate, disableUntil: IMyDate): boolean {\r\n return this.isInitializedDate(disableUntil) && this.getTimeInMilliseconds(date) <= this.getTimeInMilliseconds(disableUntil);\r\n }\r\n\r\n isDisabledByDisableSince(date: IMyDate, disableSince: IMyDate): boolean {\r\n return this.isInitializedDate(disableSince) && this.getTimeInMilliseconds(date) >= this.getTimeInMilliseconds(disableSince);\r\n }\r\n\r\n isPastDatesEnabled(date: IMyDate, enableDates: Array<IMyDate>): boolean {\r\n for(const d of enableDates) {\r\n if (this.getTimeInMilliseconds(d) <= this.getTimeInMilliseconds(date)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n isFutureDatesEnabled(date: IMyDate, enableDates: Array<IMyDate>): boolean {\r\n for(const d of enableDates) {\r\n if (this.getTimeInMilliseconds(d) >= this.getTimeInMilliseconds(date)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n isDatesEnabled(dateBegin: IMyDate, dateEnd: IMyDate, enableDates: Array<IMyDate>): boolean {\r\n for(const d of enableDates) {\r\n if (this.getTimeInMilliseconds(d) >= this.getTimeInMilliseconds(dateBegin) \r\n && this.getTimeInMilliseconds(d) <= this.getTimeInMilliseconds(dateEnd)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n isDisabledByDisableDateRange(dateBegin: IMyDate, dateEnd: IMyDate, disableDateRanges: Array<IMyDateRange>): boolean {\r\n const dateMsBegin: number = this.getTimeInMilliseconds(dateBegin);\r\n const dateMsEnd: number = this.getTimeInMilliseconds(dateEnd);\r\n\r\n for (const d of disableDateRanges) {\r\n if (this.isInitializedDate(d.begin) && this.isInitializedDate(d.end) \r\n && dateMsBegin >= this.getTimeInMilliseconds(d.begin) && dateMsEnd <= this.getTimeInMilliseconds(d.end)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n isMarkedDate(date: IMyDate, options: IMyOptions): IMyMarkedDate {\r\n const {markDates, markWeekends} = options;\r\n\r\n for (const md of markDates) {\r\n if (this.dateMatchToDates(date, md.dates)) {\r\n return this.getMarkedValue(true, md.color, md.styleClass);\r\n }\r\n }\r\n if (markWeekends && markWeekends.marked) {\r\n const dayNbr = this.getDayNumber(date);\r\n if (dayNbr === 0 || dayNbr === 6) {\r\n return this.getMarkedValue(true, markWeekends.color, EMPTY_STR);\r\n }\r\n }\r\n return this.getMarkedValue(false, EMPTY_STR, EMPTY_STR);\r\n }\r\n\r\n getMarkedValue(marked: boolean, color: string, styleClass: string): IMyMarkedDate {\r\n return {marked, color: color ? color : EMPTY_STR, styleClass: styleClass ? styleClass : EMPTY_STR};\r\n }\r\n\r\n isHighlightedDate(date: IMyDate, options: IMyOptions): boolean {\r\n const {sunHighlight, satHighlight, highlightDates} = options;\r\n\r\n const dayNbr: number = this.getDayNumber(date);\r\n if (sunHighlight && dayNbr === 0 || satHighlight && dayNbr === 6) {\r\n return true;\r\n }\r\n\r\n if (this.dateMatchToDates(date, highlightDates)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getWeekNumber(date: IMyDate): number {\r\n const d: Date = new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0);\r\n d.setDate(d.getDate() + (d.getDay() === 0 ? -3 : 4 - d.getDay()));\r\n return Math.round(((d.getTime() - new Date(d.getFullYear(), 0, 4).getTime()) / 86400000) / 7) + 1;\r\n }\r\n\r\n getDateModel(date: IMyDate, dateRange: IMyDateRange, dateFormat: string, monthLabels: IMyMonthLabels, rangeDelimiter: string, dateStr: string = EMPTY_STR): IMyDateModel {\r\n let singleDateModel: IMySingleDateModel = null;\r\n let dateRangeModel: IMyDateRangeModel = null;\r\n\r\n if (date) {\r\n singleDateModel = {\r\n date,\r\n jsDate: this.myDateToJsDate(date),\r\n formatted: dateStr.length ? dateStr : this.formatDate(date, dateFormat, monthLabels),\r\n epoc: this.getEpocTime(date)\r\n };\r\n }\r\n else {\r\n dateRangeModel = {\r\n beginDate: dateRange.begin,\r\n beginJsDate: this.myDateToJsDate(dateRange.begin),\r\n beginEpoc: this.getEpocTime(dateRange.begin),\r\n endDate: dateRange.end,\r\n endJsDate: this.myDateToJsDate(dateRange.end),\r\n endEpoc: this.getEpocTime(dateRange.end),\r\n formatted: this.formatDate(dateRange.begin, dateFormat, monthLabels) + rangeDelimiter + this.formatDate(dateRange.end, dateFormat, monthLabels)\r\n };\r\n }\r\n\r\n return {\r\n isRange: date === null,\r\n singleDate: singleDateModel,\r\n dateRange: dateRangeModel\r\n };\r\n }\r\n\r\n formatDate(date: IMyDate, dateFormat: string, monthLabels: IMyMonthLabels): string {\r\n let formatted: string = dateFormat.replace(YYYY, String(date.year));\r\n\r\n if (dateFormat.indexOf(MMM) !== -1) {\r\n formatted = formatted.replace(MMM, monthLabels[date.month]);\r\n }\r\n else if (dateFormat.indexOf(MM) !== -1) {\r\n formatted = formatted.replace(MM, this.preZero(date.month));\r\n }\r\n else {\r\n formatted = formatted.replace(M, String(date.month));\r\n }\r\n\r\n if (dateFormat.indexOf(DD) !== -1) {\r\n formatted = formatted.replace(DD, this.preZero(date.day));\r\n }\r\n else {\r\n formatted = formatted.replace(D, String(date.day));\r\n }\r\n\r\n if (dateFormat.indexOf(ORDINAL) !== -1) {\r\n formatted = formatted.replace(ORDINAL, this.getOrdinal(date.day));\r\n }\r\n\r\n return formatted;\r\n }\r\n\r\n getOrdinal(date: number): string {\r\n if (date > 3 && date < 21) {\r\n return TH;\r\n }\r\n\r\n switch (date % 10) {\r\n case 1:\r\n return ST;\r\n case 2:\r\n return ND;\r\n case 3:\r\n return RD;\r\n default:\r\n return TH;\r\n }\r\n }\r\n\r\n getFormattedDate(model: IMyDateModel): string {\r\n return !model.isRange ? model.singleDate.formatted : model.dateRange.formatted;\r\n }\r\n\r\n preZero(val: number): string {\r\n return val < 10 ? ZERO_STR + val : String(val);\r\n }\r\n\r\n isInitializedDate(date: IMyDate): boolean {\r\n return date.year !== 0 && date.month !== 0 && date.day !== 0;\r\n }\r\n\r\n isDateEarlier(firstDate: IMyDate, secondDate: IMyDate): boolean {\r\n return this.getTimeInMilliseconds(firstDate) < this.getTimeInMilliseconds(secondDate);\r\n }\r\n\r\n isDateSameOrEarlier(firstDate: IMyDate, secondDate: IMyDate): boolean {\r\n return this.getTimeInMilliseconds(firstDate) <= this.getTimeInMilliseconds(secondDate);\r\n }\r\n\r\n isDateSame(firstDate: IMyDate, secondDate: IMyDate): boolean {\r\n return this.getTimeInMilliseconds(firstDate) === this.getTimeInMilliseconds(secondDate);\r\n }\r\n\r\n isDateRangeBeginOrEndSame(dateRange: IMyDateRange, date: IMyDate): boolean {\r\n const dateMs: number = this.getTimeInMilliseconds(date);\r\n return this.getTimeInMilliseconds(dateRange.begin) === dateMs || this.getTimeInMilliseconds(dateRange.end) === dateMs;\r\n }\r\n\r\n isDateRangeBegin(dateRange: IMyDateRange, date: IMyDate): boolean {\r\n const dateMs: number = this.getTimeInMilliseconds(date);\r\n return this.getTimeInMilliseconds(dateRange.begin) === dateMs;\r\n }\r\n\r\n isDateRangeEnd(dateRange: IMyDateRange, date: IMyDate): boolean {\r\n const dateMs: number = this.getTimeInMilliseconds(date);\r\n return this.getTimeInMilliseconds(dateRange.end) === dateMs;\r\n }\r\n\r\n isDateInRange(date: IMyDate, dateRange: IMyDateRange): boolean {\r\n if (!this.isInitializedDate(dateRange.begin) || !this.isInitializedDate(dateRange.end)) {\r\n return false;\r\n }\r\n return this.isDateSameOrEarlier(dateRange.begin, date) && this.isDateSameOrEarlier(date, dateRange.end);\r\n }\r\n\r\n resetDate(): IMyDate {\r\n return {year: 0, month: 0, day: 0};\r\n }\r\n\r\n getTimeInMilliseconds(date: IMyDate): number {\r\n return this.myDateToJsDate(date).getTime();\r\n }\r\n\r\n getToday(): IMyDate {\r\n const date: Date = new Date();\r\n return {year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate()};\r\n }\r\n\r\n getDayNumber(date: IMyDate): number {\r\n return new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0).getDay();\r\n }\r\n\r\n getWeekdayIndex(wd: string) {\r\n return this.weekDays.indexOf(wd);\r\n }\r\n\r\n getEpocTime(date: IMyDate): number {\r\n return Math.round(this.getTimeInMilliseconds(date) / 1000.0);\r\n }\r\n\r\n jsDateToMyDate(date: Date): IMyDate {\r\n return {year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate()};\r\n }\r\n\r\n myDateToJsDate(date: IMyDate): Date {\r\n const {year, month, day} = date;\r\n return new Date(year, month - 1, day, 0, 0, 0, 0);\r\n }\r\n\r\n datesInMonth(m: number, y: number): number {\r\n return new Date(y, m, 0).getDate();\r\n }\r\n\r\n datesInPrevMonth(m: number, y: number): number {\r\n const d: Date = this.getJsDate(y, m, 1);\r\n d.setMonth(d.getMonth() - 1);\r\n return this.datesInMonth(d.getMonth() + 1, d.getFullYear());\r\n }\r\n\r\n getJsDate(year: number, month: number, day: number): Date {\r\n return new Date(year, month - 1, day, 0, 0, 0, 0);\r\n }\r\n\r\n getSelectedValue(selectedValue: any, dateRange: boolean): any {\r\n if (!selectedValue) {\r\n return null;\r\n }\r\n\r\n if (!dateRange) {\r\n return selectedValue.date;\r\n }\r\n else {\r\n const {beginDate, endDate} = selectedValue;\r\n return {begin: beginDate, end: endDate};\r\n }\r\n }\r\n\r\n getKeyCodeFromEvent(event: any): number {\r\n let key: any = event.key || event.keyCode || event.which;\r\n\r\n if (this.checkKeyName(key, KeyName.enter) || key === KeyCode.enter) {\r\n return KeyCode.enter;\r\n }\r\n else if (this.checkKeyName(key, KeyName.esc) || key === KeyCode.esc) {\r\n return KeyCode.esc;\r\n }\r\n else if (this.checkKeyName(key, KeyName.space) || key === KeyCode.space) {\r\n return KeyCode.space;\r\n }\r\n else if (this.checkKeyName(key, KeyName.leftArrow) || key === KeyCode.leftArrow) {\r\n return KeyCode.leftArrow;\r\n }\r\n else if (this.checkKeyName(key, KeyName.upArrow) || key === KeyCode.upArrow) {\r\n return KeyCode.upArrow;\r\n }\r\n else if (this.checkKeyName(key, KeyName.rightArrow) || key === KeyCode.rightArrow) {\r\n return KeyCode.rightArrow;\r\n }\r\n else if (this.checkKeyName(key, KeyName.downArrow)|| key === KeyCode.downArrow) {\r\n return KeyCode.downArrow;\r\n }\r\n else if (this.checkKeyName(key, KeyName.tab) || key === KeyCode.tab) {\r\n return KeyCode.tab;\r\n }\r\n else if (this.checkKeyName(key, KeyName.shift) || key === KeyCode.shift) {\r\n return KeyCode.shift;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n checkKeyName(key: string, keyName: string): boolean {\r\n const arr: Array<string> = keyName.split(PIPE);\r\n return arr.indexOf(key) !== -1;\r\n }\r\n}\r\n","export enum MonthId {\r\n prev = 1, \r\n curr = 2, \r\n next = 3\r\n}\r\n","export enum DefaultView {\r\n Date = 1, \r\n Month = 2, \r\n Year = 3\r\n}\r\n","export enum CalAnimation {\r\n None = 0, \r\n Fade = 1, \r\n ScaleTop = 2, \r\n ScaleCenter = 3, \r\n Rotate = 4, \r\n FlipDiagonal = 5,\r\n Own = 6\r\n}\r\n","export enum HeaderAction { \r\n PrevBtnClick = 1, \r\n NextBtnClick = 2, \r\n MonthBtnClick = 3, \r\n YearBtnClick = 4\r\n}\r\n","import {Component, EventEmitter, Input, OnChanges, Output, ViewEncapsulation, SimpleChanges} from \"@angular/core\";\r\nimport {IMyMonth} from \"../../interfaces/my-month.interface\";\r\nimport {IMyOptions} from \"../../interfaces/my-options.interface\";\r\nimport {OPTS, YEARS_DURATION, VISIBLE_MONTH, SELECT_MONTH, SELECT_YEAR, PREV_VIEW_DISABLED, NEXT_VIEW_DISABLED} from \"../../constants/constants\"\r\n\r\n@Component({\n selector: \"lib-selection-bar\",\n templateUrl: \"./selection-bar.component.html\",\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\r\nexport class SelectionBarComponent implements OnChanges {\r\n @Input() opts: IMyOptions;\r\n @Input() yearsDuration: string;\r\n @Input() visibleMonth: IMyMonth;\r\n @Input() selectMonth: boolean;\r\n @Input() selectYear: boolean;\r\n @Input() prevViewDisabled: boolean;\r\n @Input() nextViewDisabled: boolean;\r\n\r\n @Output() prevNavigateBtnClicked: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() nextNavigateBtnClicked: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() monthViewBtnClicked: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() yearViewBtnClicked: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.hasOwnProperty(OPTS)) {\r\n this.opts = changes[OPTS].currentValue;\r\n }\r\n if (changes.hasOwnProperty(YEARS_DURATION)) {\r\n this.yearsDuration = changes[YEARS_DURATION].currentValue;\r\n }\r\n if (changes.hasOwnProperty(VISIBLE_MONTH)) {\r\n this.visibleMonth = changes[VISIBLE_MONTH].currentValue;\r\n }\r\n if (changes.hasOwnProperty(SELECT_MONTH)) {\r\n this.selectMonth = changes[SELECT_MONTH].currentValue;\r\n }\r\n if (changes.hasOwnProperty(SELECT_YEAR)) {\r\n this.selectYear = changes[SELECT_YEAR].currentValue;\r\n }\r\n if (changes.hasOwnProperty(PREV_VIEW_DISABLED)) {\r\n this.prevViewDisabled = changes[PREV_VIEW_DISABLED].currentValue;\r\n }\r\n if (changes.hasOwnProperty(NEXT_VIEW_DISABLED)) {\r\n this.nextViewDisabled = changes[NEXT_VIEW_DISABLED].currentValue;\r\n }\r\n }\r\n\r\n onPrevNavigateBtnClicked(event: any): void {\r\n event.stopPropagation();\r\n this.opts.rtl ? this.nextNavigateBtnClicked.emit() : this.prevNavigateBtnClicked.emit();\r\n }\r\n\r\n onNextNavigateBtnClicked(event: any): void {\r\n event.stopPropagation();\r\n this.opts.rtl ? this.prevNavigateBtnClicked.emit() : this.nextNavigateBtnClicked.emit();\r\n }\r\n\r\n onMonthViewBtnClicked(event: any): void {\r\n event.stopPropagation();\r\n this.monthViewBtnClicked.emit();\r\n }\r\n\r\n onYearViewBtnClicked(event: any): void {\r\n event.stopPropagation();\r\n this.yearViewBtnClicked.emit();\r\n }\r\n}\r\n","<div class=\"myDpMonthYearSelBar\">\r\n <div class=\"myDpPrevBtn\">\r\n <button type=\"button\" [attr.aria-label]=\"opts.ariaLabelPrevMonth\" class=\"myDpHeaderBtn myDpIcon myDpIconLeftArrow myDpHeaderBtnEnabled\" (click)=\"onPrevNavigateBtnClicked($event)\" tabindex=\"{{!prevViewDisabled ? '0':'-1'}}\" [disabled]=\"prevViewDisabled\" [ngClass]=\"{'myDpHeaderBtnDisabled': prevViewDisabled}\"></button>\r\n </div>\r\n <div class=\"myDpMonthYearText\">\r\n <button type=\"button\" class=\"myDpHeaderBtn myDpMonthBtn\" *ngIf=\"!selectYear\" (click)=\"opts.monthSelector && onMonthViewBtnClicked($event)\" tabindex=\"{{opts.monthSelector ? '0':'-1'}}\" [ngClass]=\"{'myDpMonthLabel': opts.monthSelector, 'myDpHeaderLabelBtnNotEdit': !opts.monthSelector}\">{{visibleMonth.monthTxt}}</button>\r\n <button type=\"button\" class=\"myDpHeaderBtn myDpYearBtn\" (click)=\"opts.yearSelector && onYearViewBtnClicked($event)\" tabindex=\"{{opts.yearSelector ? '0':'-1'}}\" [ngClass]=\"{'myDpYearLabel': opts.yearSelector, 'myDpHeaderLabelBtnNotEdit': !opts.yearSelector}\">{{!selectYear ? visibleMonth.year : yearsDuration}}</button>\r\n </div>\r\n <div class=\"myDpNextBtn\">\r\n <button type=\"button\" [attr.aria-label]=\"opts.ariaLabelNextMonth\" class=\"myDpHeaderBtn myDpIcon myDpIconRightArrow myDpHeaderBtnEnabled\" (click)=\"onNextNavigateBtnClicked($event)\" tabindex=\"{{!nextViewDisabled ? '0':'-1'}}\" [disabled]=\"nextViewDisabled\" [ngClass]=\"{'myDpHeaderBtnDisabled': nextViewDisabled}\"></button>\r\n </div>\r\n</div>\r\n","export enum ActiveView {\r\n Date = 1, \r\n Month = 2, \r\n Year = 3\r\n}\r\n","import {Component, EventEmitter, Input, OnChanges, AfterViewInit, Output, ViewEncapsulation, SimpleChanges} from \"@angular/core\";\r\nimport {IMyCalendarDay} from \"../../interfaces/my-calendar-day.interface\";\r\nimport {IMyDate} from \"../../interfaces/my-date.interface\";\r\nimport {IMyDateRange} from \"../../interfaces/my-date-range.interface\";\r\nimport {IMyOptions} from \"../../interfaces/my-options.interface\";\r\nimport {IMyWeek} from \"../../interfaces/my-week.interface\";\r\nimport {UtilService} from \"../../services/angular-mydatepicker.util.service\";\r\nimport {KeyCode} from \"../../enums/key-code.enum\";\r\nimport {MonthId} from \"../../enums/month-id.enum\";\r\nimport {ActiveView} from \"../../enums/active-view.enum\";\r\nimport {OPTS, DATES, WEEK_DAYS, SELECTED_DATE, SELECTED_DATE_RANGE} from \"../../constants/constants\";\r\n\r\n@Component({\n selector: \"lib-day-view\",\n templateUrl: \"./day-view.component.html\",\n providers: [UtilService],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\r\nexport class DayViewComponent implements OnChanges, AfterViewInit {\r\n @Input() opts: IMyOptions;\r\n @Input() dates: Array<IMyWeek>;\r\n @Input() weekDays: Array<string>;\r\n @Input() selectedDate: IMyDate;\r\n @Input() selectedDateRange: IMyDateRange;\r\n @Input() viewChanged: boolean;\r\n\r\n @Output() dayCellClicked: EventEmitter<IMyCalendarDay> = new EventEmitter<IMyCalendarDay>();\r\n @Output() dayCellKeyDown: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() viewActivated: EventEmitter<ActiveView> = new EventEmitter<ActiveView>();\r\n\r\n prevMonthId: number = MonthId.prev;\r\n currMonthId: number = MonthId.curr;\r\n nextMonthId: number = MonthId.next;\r\n\r\n constructor(private utilService: UtilService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.hasOwnProperty(OPTS)) {\r\n this.opts = changes[OPTS].currentValue;\r\n }\r\n if (changes.hasOwnProperty(DATES)) {\r\n this.dates = changes[DATES].currentValue;\r\n }\r\n if (changes.hasOwnProperty(WEEK_DAYS)) {\r\n this.weekDays = changes[WEEK_DAYS].currentValue;\r\n }\r\n if (changes.hasOwnProperty(SELECTED_DATE)) {\r\n this.selectedDate = changes[SELECTED_DATE].currentValue;\r\n }\r\n if (changes.hasOwnProperty(SELECTED_DATE_RANGE)) {\r\n this.selectedDateRange = changes[SELECTED_DATE_RANGE].currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewActivated.emit(ActiveView.Date);\r\n }\r\n\r\n onDayCellClicked(event: any, cell: IMyCalendarDay): void {\r\n event.stopPropagation();\r\n\r\n if (cell.disabledDate.disabled) {\r\n return;\r\n }\r\n\r\n this.dayCellClicked.emit(cell);\r\n }\r\n\r\n onDayCellKeyDown(event: any, cell: IMyCalendarDay) {\r\n const keyCode: number = this.utilService.getKeyCodeFromEvent(event);\r\n if (keyCode !== KeyCode.tab) {\r\n event.preventDefault();\r\n\r\n if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\r\n this.onDayCellClicked(event, cell);\r\n }\r\n else if (this.opts.moveFocusByArrowKeys) {\r\n this.dayCellKeyDown.emit(event)\r\n }\r\n }\r\n }\r\n\r\n onDayCellMouseEnter(cell: any): void {\r\n if (this.utilService.isInitializedDate(this.selectedDateRange.begin) && !this.utilService.isInitializedDate(this.selectedDateRange.end)) {\r\n for (const w of this.dates) {\r\n for (const day of w.week) {\r\n day.range = this.utilService.isDateSameOrEarlier(this.selectedDateRange.begin, day.dateObj) && this.utilService.isDateSameOrEarlier(day.dateObj, cell.dateObj);\r\n }\r\n }\r\n }\r\n }\r\n\r\n onDayCellMouseLeave(): void {\r\n for (const w of this.dates) {\r\n for (const day of w.week) {\r\n day.range = false;\r\n }\r\n }\r\n }\r\n\r\n isDateInRange(date: IMyDate): boolean {\r\n return this.utilService.isDateInRange(date, this.selectedDateRange);\r\n }\r\n\r\n isDateSame(date: IMyDate): boolean {\r\n return this.utilService.isDateSame(this.selectedDate, date);\r\n }\r\n\r\n isDateRangeBeginOrEndSame(date: IMyDate): boolean {\r\n return this.utilService.isDateRangeBeginOrEndSame(this.selectedDateRange, date);\r\n }\r\n\r\n isDateRangeBegin(date: IMyDate): boolean {\r\n return this.utilService.isDateRangeBegin(this.selectedDateRange, date);\r\n }\r\n\r\n isDateRangeEnd(date: IMyDate): boolean {\r\n return this.utilService.isDateRangeEnd(this.selectedDateRange, date);\r\n }\r\n\r\n isDaySelected(day: IMyCalendarDay) {\r\n return !this.opts.dateRange && this.isDateSame(day.dateObj) || this.opts.dateRange && this.isDateRangeBeginOrEndSame(day.dateObj);\r\n }\r\n}\r\n","<table class=\"myDpCalTable\" [ngClass]=\"{'ng-myrtl': opts.rtl, 'myDpFooter': opts.showFooterToday, 'myDpNoFooter': !opts.showFooterToday, 'myDpViewChangeAnimation': opts.viewChangeAnimation && viewChanged}\">\r\n <thead>\r\n <tr>\r\n <th class=\"myDpWeekDayTitle myDpWeekDayTitleWeekNbr\" *ngIf=\"opts.showWeekNumbers && opts.firstDayOfWeek==='mo'\">#</th>\r\n <th class=\"myDpWeekDayTitle\" scope=\"col\" *ngFor=\"let d of weekDays\">{{d}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let w of dates\">\r\n <td class=\"myDpDaycellWeekNbr\" *ngIf=\"opts.showWeekNumbers && opts.firstDayOfWeek==='mo'\">{{w.weekNbr}}</td>\r\n <td *ngFor=\"let d of w.week\"\r\n id=\"d_{{d.row}}_{{d.col}}\"\r\n class=\"d_{{d.row}}_{{d.col}} myDpDaycell {{d.markedDate.styleClass}} {{d.disabledDate.styleClass}}\"\r\n [ngClass]=\"{'myDpRangeColor': isDateInRange(d.dateObj) || d.range,\r\n 'myDpPrevMonth': d.cmo === prevMonthId,\r\n 'myDpCurrMonth':d.cmo === currMonthId && !d.disabledDate.disabled,\r\n 'myDpNextMonth': d.cmo === nextMonthId,\r\n 'myDpSelectedDay':isDaySelected(d),\r\n 'myDpRangeBegin':this.opts.dateRange && isDateRangeBegin(d.dateObj),\r\n 'myDpRangeEnd':this.opts.dateRange && isDateRangeEnd(d.dateObj),\r\n 'myDpDisabled': d.disabledDate.disabled && !d.disabledDate.styleClass.length,\r\n 'myDpTableSingleDay': !d.disabledDate.disabled}\"\r\n [attr.aria-current]=\"d.currDay ? 'date' : null\"\r\n [attr.aria-disabled]=\"d.disabledDate.disabled || null\"\r\n [attr.aria-selected]=\"isDaySelected(d) || null\"\r\n [attr.tabindex]=\"!d.disabledDate.disabled ? 0 : -1\"\r\n (click)=\"onDayCellClicked($event, d)\"\r\n (keydown)=\"onDayCellKeyDown($event, d)\"\r\n (mouseenter)=\"onDayCellMouseEnter(d)\"\r\n (mouseleave)=\"onDayCellMouseLeave()\">\r\n <span *ngIf=\"d.markedDate.marked && d.markedDate.color.length\" class=\"myDpMarkDate\" [ngStyle]=\"{'border-top': '8px solid ' + d.markedDate.color}\"></span>\r\n <span class=\"myDpDayValue\"\r\n [attr.aria-label]=\"[(d.dateObj.month + '/' + d.dateObj.day + '/' + d.dateObj.year | date:'fullDate')]\"\r\n [ngClass]=\"{'myDpMarkCurrDay': d.currDay && opts.markCurrentDay, 'myDpDimDay': d.highlight && (d.cmo===prevMonthId || d.cmo===nextMonthId || d.disabledDate.disabled), 'myDpHighlight': d.highlight}\">{{d.dateObj.day}}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n","import {Component, EventEmitter, Input, OnChanges, AfterViewInit, Output, SimpleChanges, ViewEncapsulation} from \"@angular/core\";\r\nimport {IMyCalendarMonth} from \"../../interfaces/my-calendar-month.interface\";\r\nimport {IMyOptions} from \"../../interfaces/my-options.interface\";\r\nimport {KeyCode} from \"../../enums/key-code.enum\";\r\nimport {ActiveView} from \"../../enums/active-view.enum\";\r\nimport {UtilService} from \"../../services/angular-mydatepicker.util.service\";\r\nimport {OPTS, MONTHS} from \"../../constants/constants\";\r\n\r\n@Component({\n selector: \"lib-month-view\",\n templateUrl: \"./month-view.component.html\",\n providers: [UtilService],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\r\nexport class MonthViewComponent implements OnChanges, AfterViewInit {\r\n @Input() opts: IMyOptions;\r\n @Input() months: Array<Array<IMyCalendarMonth>>;\r\n @Input() viewChanged: boolean;\r\n\r\n @Output() monthCellClicked: EventEmitter<IMyCalendarMonth> = new EventEmitter<IMyCalendarMonth>();\r\n @Output() monthCellKeyDown: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() viewActivated: EventEmitter<ActiveView> = new EventEmitter<ActiveView>();\r\n\r\n constructor(private utilService: UtilService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.hasOwnProperty(OPTS)) {\r\n this.opts = changes[OPTS].currentValue;\r\n }\r\n if (changes.hasOwnProperty(MONTHS)) {\r\n this.months = changes[MONTHS].currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewActivated.emit(ActiveView.Month);\r\n }\r\n\r\n onMonthCellClicked(event: any, cell: IMyCalendarMonth): void {\r\n event.stopPropagation();\r\n\r\n if (cell.disabled) {\r\n return;\r\n }\r\n\r\n this.monthCellClicked.emit(cell);\r\n }\r\n\r\n onMonthCellKeyDown(event: any, cell: IMyCalendarMonth) {\r\n const keyCode: number = this.utilService.getKeyCodeFromEvent(event);\r\n if (keyCode !== KeyCode.tab) {\r\n event.preventDefault();\r\n\r\n if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\r\n this.onMonthCellClicked(event, cell);\r\n }\r\n else if (this.opts.moveFocusByArrowKeys) {\r\n this.monthCellKeyDown.emit(event)\r\n }\r\n }\r\n }\r\n}\r\n","<table class=\"myDpMonthTable\" [ngClass]=\"{'ng-myrtl': opts.rtl, 'myDpFooter': opts.showFooterToday, 'myDpNoFooter': !opts.showFooterToday, 'myDpViewChangeAnimation': opts.viewChangeAnimation && viewChanged}\">\r\n <tbody>\r\n <tr *ngFor=\"let mr of months\">\r\n <td *ngFor=\"let m of mr\"\r\n id=\"m_{{m.row}}_{{m.col}}\"\r\n class=\"m_{{m.row}}_{{m.col}} myDpMonthcell\"\r\n [ngClass]=\"{'myDpSelectedMonth': m.selected, 'myDpDisabled': m.disabled, 'myDpTableSingleMonth': !m.disabled}\"\r\n [attr.aria-current]=\"m.currMonth ? 'date' : null\"\r\n [attr.aria-disabled]=\"m.disabled || null\"\r\n [attr.aria-selected]=\"m.selected || null\"\r\n [attr.tabindex]=\"!m.disabled ? 0 : -1\"\r\n (click)=\"onMonthCellClicked($event, m)\"\r\n (keydown)=\"onMonthCellKeyDown($event, m)\">\r\n <span class=\"myDpMonthNbr\" *ngIf=\"opts.showMonthNumber\" aria-hidden=\"true\">{{m.nbr}}</span>\r\n <span class=\"myDpMonthValue\"\r\n [attr.aria-label]=\"[(m.nbr + '/' + 1 + '/' + m.year | date:'MMMM yyyy')]\"\r\n [ngClass]=\"{'myDpMarkCurrMonth': m.currMonth && opts.markCurrentMonth}\">{{m.name}}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n","import {Component, EventEmitter, Input, OnChanges, AfterViewInit, Output, SimpleChanges, ViewEncapsulation} from \"@angular/core\";\r\nimport {IMyCalendarYear} from \"../../interfaces/my-calendar-year.interface\";\r\nimport {IMyOptions} from \"../../interfaces/my-options.interface\";\r\nimport {KeyCode} from \"../../enums/key-code.enum\";\r\nimport {ActiveView} from \"../../enums/active-view.enum\";\r\nimport {UtilService} from \"../../services/angular-mydatepicker.util.service\";\r\nimport {YEARS, OPTS} from \"../../constants/constants\";\r\n\r\n@Component({\n selector: \"lib-year-view\",\n templateUrl: \"./year-view.component.html\",\n providers: [UtilService],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\r\nexport class YearViewComponent implements OnChanges, AfterViewInit {\r\n @Input() opts: IMyOptions;\r\n @Input() years: Array<Array<IMyCalendarYear>>;\r\n @Input() viewChanged: boolean;\r\n\r\n @Output() yearCellClicked: EventEmitter<IMyCalendarYear> = new EventEmitter<IMyCalendarYear>();\r\n @Output() yearCellKeyDown: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() viewActivated: EventEmitter<ActiveView> = new EventEmitter<ActiveView>();\r\n\r\n constructor(private utilService: UtilService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.hasOwnProperty(OPTS)) {\r\n this.opts = changes[OPTS].currentValue;\r\n }\r\n if (changes.hasOwnProperty(YEARS)) {\r\n this.years = changes[YEARS].currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewActivated.emit(ActiveView.Year);\r\n }\r\n\r\n onYearCellClicked(event: any, cell: IMyCalendarYear): void {\r\n event.stopPropagation();\r\n\r\n if (cell.disabled) {\r\n return;\r\n }\r\n\r\n this.yearCellClicked.emit(cell);\r\n }\r\n\r\n onYearCellKeyDown(event: any, cell: IMyCalendarYear) {\r\n const keyCode: number = this.utilService.getKeyCodeFromEvent(event);\r\n if (keyCode !== KeyCode.tab) {\r\n event.preventDefault();\r\n\r\n if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\r\n this.onYearCellClicked(event, cell);\r\n }\r\n else if (this.opts.moveFocusByArrowKeys) {\r\n this.yearCellKeyDown.emit(event)\r\n }\r\n }\r\n }\r\n}\r\n","<table class=\"myDpYearTable\" [ngClass]=\"{'ng-myrtl': opts.rtl, 'myDpFooter': opts.showFooterToday, 'myDpNoFooter': !opts.showFooterToday, 'myDpViewChangeAnimation': opts.viewChangeAnimation && viewChanged}\">\r\n <tbody>\r\n <tr *ngFor=\"let yr of years\">\r\n <td *ngFor=\"let y of yr\"\r\n id=\"y_{{y.row}}_{{y.col}}\"\r\n class=\"y_{{y.row}}_{{y.col}} myDpYearcell\"\r\n [ngClass]=\"{'myDpSelectedYear': y.selected, 'myDpDisabled': y.disabled, 'myDpTableSingleYear': !y.disabled}\"\r\n [attr.aria-current]=\"y.currYear ? 'date' : null\"\r\n [attr.aria-disabled]=\"y.disabled || null\"\r\n [attr.aria-selected]=\"y.selected || null\"\r\n [attr.tabindex]=\"!y.disabled ? 0 : -1\"\r\n (click)=\"onYearCellClicked($event, y)\"\r\n (keydown)=\"onYearCellKeyDown($event, y)\">\r\n <span class=\"myDpYearValue\"\r\n [attr.aria-label]=\"[(1 + '/' + 1 + '/' + y.year | date:'yyyy')]\"\r\n [ngClass]=\"{'myDpMarkCurrYear': y.currYear && opts.markCurrentYear}\">{{y.year}}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n","import {Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation} from \"@angular/core\";\r\nimport {IMyOptions} from \"../../interfaces/my-options.interface\";\r\nimport {UtilService} from \"../../services/angular-mydatepicker.util.service\";\r\nimport {OPTS, SPACE_STR, EMPTY_STR} from \"../../constants/constants\";\r\n\r\n@Component({\n selector: \"lib-footer-bar\",\n templateUrl: \"./footer-bar.component.html\",\n providers: [UtilService],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\r\nexport class FooterBarComponent implements OnChanges {\r\n @Input() opts: IMyOptions;\r\n @Output() footerBarTxtClicked: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n footerBarTxt: string = EMPTY_STR;\r\n\r\n constructor(private utilService: UtilService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.hasOwnProperty(OPTS)) {\r\n this.opts = changes[OPTS].currentValue;\r\n\r\n const {dateFormat, monthLabels, todayTxt} = this.opts;\r\n\r\n const today = this.utilService.getToday();\r\n this.footerBarTxt = todayTxt + (todayTxt.length > 0 ? SPACE_STR : EMPTY_STR) + \r\n this.utilService.formatDate(today, dateFormat, monthLabels);\r\n }\r\n }\r\n\r\n onFooterBarTxtClicked(): void {\r\n this.footerBarTxtClicked.emit()\r\n }\r\n}","<div class=\"myDpFooterBar\">\r\n <button type=\"button\" class=\"myDpHeaderBtn myDpFooterBtn\" (click)=\"onFooterBarTxtClicked()\">{{footerBarTxt}}</button>\r\n</div>","import {Directive, ElementRef, AfterViewInit, Input} from \"@angular/core\";\r\n\r\n@Directive({\n selector: \"[libAngularMyDatePickerCalendar]\",\n standalone: false\n})\r\nexport class AngularMyDatePickerCalendarDirective implements AfterViewInit {\r\n @Input() libAngularMyDatePickerCalendar: any;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n const {inline, selectorHeight, selectorWidth, selectorPos} = this.libAngularMyDatePickerCalendar;\r\n const {style} = this.el.nativeElement;\r\n \r\n style.height = selectorHeight;\r\n style.width = selectorWidth;\r\n style.top = !inline ? selectorPos.top : \"0\";\r\n style.left = !inline ? selectorPos.left : \"0\";\r\n }\r\n}\r\n","import {Component, ElementRef, ViewEncapsulation, ViewChild, Renderer2, ChangeDetectorRef, AfterViewInit, OnDestroy, HostBinding} from \"@angular/core\";\r\nimport {IMyDate} from \"../../interfaces/my-date.interface\";\r\nimport {IMyDateRange} from \"../../interfaces/my-date-range.interface\";\r\nimport {IMyMonth} from \"../../interfaces/my-month.interface\";\r\nimport {IMyCalendarDay} from \"../../interfaces/my-calendar-day.interface\";\r\nimport {IMyCalendarMonth} from \"../../interfaces/my-calendar-month.interface\";\r\nimport {IMyCalendarYear} from \"../../interfaces/my-calendar-year.interface\";\r\nimport {IMyWeek} from \"../../interfaces/my-week.interface\";\r\nimport {IMyOptions} from \"../../interfaces/my-options.interface\";\r\nimport {IMySelectorPosition} from \"../../interfaces/my-selector-pos.interface\";\r\nimport {IMyCalendarViewChanged} from \"../../interfaces/my-calendar-view-changed.interface\";\r\nimport {IMyDateModel} from \"../../interfaces/my-date-model.interface\";\r\nimport {IMyRangeDateSelection} from \"../../interfaces/my-range-date-selection.interface\";\r\nimport {IMyCalendarAnimation} from \"../../interfaces/my-calendar-animation.interface\";\r\nimport {IMyValidateOptions} from \"../../interfaces/my-validate-options.interface\";\r\nimport {IMyDefaultMonth} from \"../../interfaces/my-default-month.interface\";\r\nimport {UtilService} from \"../../services/angular-mydatepicker.util.service\";\r\nimport {KeyCode} from \"../../enums/key-code.enum\";\r\nimport {MonthId} from \"../../enums/month-id.enum\";\r\nimport {DefaultView} from \"../../enums/default-view.enum\";\r\nimport {CalAnimation} from \"../../enums/cal-animation.enum\";\r\nimport {HeaderAction} from \"../../enums/header-action.enum\";\r\nimport {ActiveView} from \"../../enums/active-view.enum\";\r\nimport {DOT, UNDER_LINE, D, M, Y, DATE_ROW_COUNT, DATE_COL_COUNT, MONTH_ROW_COUNT, MONTH_COL_COUNT, YEAR_ROW_COUNT, YEAR_COL_COUNT, \r\n SU, MO, TU, WE, TH, FR, SA, EMPTY_STR, CLICK, STYLE, MY_DP_ANIMATION, ANIMATION_NAMES, IN, OUT, TABINDEX, TD_SELECTOR, ZERO_STR, YEAR_SEPARATOR} from \"../../constants/constants\";\r\n\r\n@Component({\n selector: \"lib-angular-mydatepicker-calendar\",\n templateUrl: './calendar.component.html',\n styleUrls: ['../../css/angular-mydatepicker.style.css'],\n providers: [UtilService],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\r\nexport class CalendarComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild(\"selectorEl\", { static: true }) selectorEl: ElementRef;\r\n @ViewChild(\"styleEl\", { static: true }) styleEl: ElementRef;\r\n \r\n @HostBinding(\"style.position\") position = \"static\";\r\n\r\n opts: IMyOptions;\r\n visibleMonth: IMyMonth = {monthTxt: EMPTY_STR, monthNbr: 0, year: 0};\r\n selectedMonth: IMyMonth = {monthNbr: 0, year: 0};\r\n selectedDate: IMyDate = {year: 0, month: 0, day: 0};\r\n selectedDateRange: IMyDateRange = {begin: {year: 0, month: 0, day: 0}, end: {year: 0, month: 0, day: 0}};\r\n weekDays: Array<string> = [];\r\n dates: Array<IMyWeek> = [];\r\n months: Array<Array<IMyCalendarMonth>> = [];\r\n years: Array<Array<IMyCalendarYear>> = [];\r\n yearsDuration: string = \"\";\r\n dayIdx: number = 0;\r\n weekDayOpts: Array<string> = [SU, MO, TU, WE, TH, FR, SA];\r\n\r\n selectMonth: boolean = false;\r\n selectYear: boolean = false;\r\n\r\n viewChanged: boolean = false;\r\n\r\n dateChanged: (dm: IMyDateModel, close: boolean) => void;\r\n calendarViewChanged: (cvc: IMyCalendarViewChanged) => void;\r\n rangeDateSelection: (rds: IMyRangeDateSelection) => void;\r\n viewActivated: (va: ActiveView) => void;\r\n closedByEsc: () => void;\r\n \r\n selectorPos: IMySelectorPosition = null;\r\n\r\n prevViewDisabled: boolean = false;\r\n nextViewDisabled: boolean = false;\r\n\r\n clickListener: () => void;\r\n\r\n constructor(private elem: ElementRef, private renderer: Renderer2, private cdr: ChangeDetectorRef, private utilService: UtilService) {\r\n this.clickListener = renderer.listen(elem.nativeElement, CLICK, (event: any) => {\r\n if ((this.opts.monthSelector || this.opts.yearSelector) && event.target) {\r\n this.resetMonthYearSelect();\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const {stylesData, calendarAnimation, inline} = this.opts;\r\n\r\n if (stylesData.styles.length) {\r\n const styleElTemp: any = this.renderer.createElement(STYLE);\r\n this.renderer.appendChild(styleElTemp, this.renderer.createText(stylesData.styles));\r\n this.renderer.appendChild(this.styleEl.nativeElement, styleElTemp);\r\n }\r\n\r\n if (calendarAnimation.in !== CalAnimation.None) {\r\n this.setCalendarAnimation(calendarAnimation, true);\r\n }\r\n\r\n if (!inline) {\r\n this.focusToSelector();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.clickListener();\r\n }\r\n\r\n initializeComponent(opts: IMyOptions, defaultMonth: IMyDefaultMonth, selectedValue: any, inputValue: string, selectorPos: IMySelectorPosition, dc: (dm: IMyDateModel, close: boolean) => void, cvc: (cvc: IMyCalendarViewChanged) => void, rds: (rds: IMyRangeDateSelection) => void, va: (va: ActiveView) => void, cbe: () => void): void {\r\n this.opts = opts;\r\n this.selectorPos = selectorPos;\r\n \r\n this.dateChanged = dc;\r\n this.calendarViewChanged = cvc;\r\n this.rangeDateSelection = rds;\r\n this.viewActivated = va;\r\n this.closedByEsc = cbe;\r\n\r\n const {defaultView, firstDayOfWeek, dayLabels} = opts;\r\n\r\n this.weekDays.length = 0;\r\n this.dayIdx = this.weekDayOpts.indexOf(firstDayOfWeek);\r\n if (this.dayIdx !== -1) {\r\n let idx: number = this.dayIdx;\r\n for (let i = 0; i < this.weekDayOpts.length; i++) {\r\n this.weekDays.push(dayLabels[this.weekDayOpts[idx]]);\r\n idx = this.weekDayOpts[idx] === SA ? 0 : idx + 1;\r\n }\r\n }\r\n\r\n this.initializeView(defaultMonth, selectedValue, inputValue);\r\n this.setCalendarVisibleMonth();\r\n this.setDefaultView(defaultView);\r\n }\r\n\r\n initializeView(defaultMonth: IMyDefaultMonth, selectedValue: any, inputValue: string): void {\r\n const {dateRange} = this.opts;\r\n\r\n // use today as a selected month\r\n const today: IMyDate = this.utilService.getToday();\r\n this.selectedMonth = {monthNbr: today.month, year: today.year};\r\n\r\n // If default month attribute valur given use it as a selected month\r\n const {defMonth, overrideSelection} = defaultMonth;\r\n if (defMonth && defMonth.length) {\r\n this.selectedMonth = this.utilService.parseDefaultMonth(defMonth);\r\n }\r\n\r\n let validateOpts: IMyValidateOptions = null;\r\n if (!dateRange) {\r\n // Single date mode - If date selected use it as selected month\r\n validateOpts = {validateDisabledDates: false, selectedValue: this.utilService.getSelectedValue(selectedValue, dateRange)};\r\n const date: IMyDate = this.utilService.isDateValid(inputValue, this.opts, validateOpts);\r\n\r\n if (this.utilService.isInitializedDate(date)) {\r\n this.selectedDate = date;\r\n if (!overrideSelection) {\r\n this.selectedMonth = {monthNbr: date.month, year: date.year};\r\n }\r\n }\r\n }\r\n else {\r\n // Date range mode - If date range selected use begin date as selected month\r\n validateOpts = {validateDisabledDates: false, selectedValue: this.utilService.getSelectedValue(selectedValue, dateRange)};\r\n const {begin, end} = this.utilService.isDateValidDateRange(inputValue, this.opts, validateOpts);\r\n\r\n if (this.utilService.isInitializedDate(begin) && this.utilService.isInitializedDate(end)) {\r\n this.selectedDateRange = {begin, end};\r\n if (!overrideSelection) {\r\n this.selectedMonth = {monthNbr: begin.month, year: begin.year};\r\n }\r\n }\r\n }\r\n }\r\n\r\n refreshComponent(opts: IMyOptions, defaultMonth: IMyDefaultMonth, selectedValue: any, inputValue: string): void {\r\n this.opts = opts;\r\n\r\n const {defaultView} = opts;\r\n\r\n this.initializeView(defaultMonth, selectedValue, inputValue);\r\n this.setCalendarVisibleMonth();\r\n this.setDefaultView(defaultView);\r\n }\r\n\r\n headerAction(headerAction: HeaderAction): void {\r\n const {monthSelector, yearSelector} = this.opts;\r\n\r\n if (headerAction === HeaderAction.PrevBtnClick) {\r\n if (!this.prevViewDisabled) {\r\n this.onPrevNavigateBtnClicked();\r\n }\r\n }\r\n else if (headerAction === HeaderAction.NextBtnClick) {\r\n if (!this.nextViewDisabled) {\r\n this.onNextNavigateBtnClicked();\r\n }\r\n }\r\n else if (headerAction === HeaderAction.MonthBtnClick) {\r\n if (monthSelector) {\r\n this.onMonthViewBtnClicked();\r\n }\r\n }\r\n else if (headerAction === HeaderAction.YearBtnClick) {\r\n if (yearSelector) {\r\n this.onYearViewBtnClicked();\r\n }\r\n }\r\n }\r\n\r\n setDefaultView(defaultView: DefaultView): void {\r\n if (defaultView === DefaultView.Month) {\r\n this.monthViewBtnClicked();\r\n }\r\n else if (defaultView === DefaultView.Year) {\r\n this.yearViewBtnClicked();\r\n }\r\n }\r\n\r\n setCalendarAnimation(calAnimation: IMyCalendarAnimation, isOpen: boolean): void {\r\n const {nativeElement} = this.selectorEl;\r\n const {renderer} = this;\r\n\r\n const classIn = MY_DP_ANIMATION + ANIMATION_NAMES[calAnimation.in - 1];\r\n if (isOpen) {\r\n renderer.addClass(nativeElement, classIn + IN);\r\n }\r\n else {\r\n const classOut = MY_DP_ANIMATION + ANIMATION_NAMES[calAnimation.out - 1];\r\n renderer.removeClass(nativeElement, classIn + IN);\r\n renderer.addClass(nativeElement, classOut + OUT);\r\n }\r\n }\r\n\r\n resetDateValue(): void {\r\n if (!this.opts.dateRange) {\r\n this.selectedDate = this.utilService.resetDate();\r\n }\r\n else {\r\n this.selectedDateRange.begin = this.utilService.resetDate();\r\n this.selectedDateRange.end = this.utilService.resetDate();\r\n }\r\n }\r\n\r\n clearDate(): void {\r\n const {month, year} = this.utilService.getToday();\r\n this.selectedMonth = {monthNbr: month, year: year};\r\n \r\n this.resetDateValue();\r\n this.setCalendarVisibleMonth();\r\n this.resetMonthYearSelect();\r\n }\r\n\r\n resetMonthYearSelect(): void {\r\n this.selectMonth = false;\r\n this.selectYear = false;\r\n }\r\n\r\n onMonthViewBtnClicked(): void {\r\n this.viewChanged = true;\r\n this.monthViewBtnClicked();\r\n }\r\n\r\n monthViewBtnClicked(): void {\r\n this.selectMonth = !this.selectMonth;\r\n this.selectYear = false;\r\n \r\n this.cdr.detectChanges();\r\n if (this.selectMonth) {\r\n this.generateMonths();\r\n }\r\n else {\r\n const {year, monthNbr} = this.selectedMonth;\r\n this.visibleMonth = {monthTxt: this.opts.monthLabels[monthNbr], monthNbr, year};\r\n this.generateCalendar(monthNbr, year, true);\r\n }\r\n }\r\n\r\n onMonthCellClicked(cell: IMyCalendarMonth): void {\r\n this.viewChanged = true;\r\n\r\n const {year, monthNbr} = this.visibleMonth;\r\n const monthChange: boolean = cell.nbr !== monthNbr;\r\n this.visibleMonth = {monthTxt: this.opts.monthLabels[cell.nbr], monthNbr: cell.nbr, year};\r\n this.selectedMonth.year = year;\r\n this.generateCalendar(cell.nbr, year, monthChange);\r\n this.selectMonth = false;\r\n this.focusToSelector();\r\n }\r\n\r\n onMonthCellKeyDown(event: any) {\r\n // Move focus by arrow keys\r\n const {sourceRow, sourceCol} = this.getSourceRowAndColumnFromEvent(event);\r\n const {moveFocus, targetRow, targetCol, direction} = this.getTargetFocusRowAndColumn(event, sourceRow, sourceCol, MONTH_ROW_COUNT, MONTH_COL_COUNT);\r\n\r\n if (moveFocus) {\r\n this.focusCellElement(M, targetRow, targetCol, direction, MONTH_COL_COUNT);\r\n }\r\n }\r\n\r\n onYearViewBtnClicked(): void {\r\n this.viewChanged = true;\r\n this.yearViewBtnClicked();\r\n }\r\n\r\n yearViewBtnClicked(): void {\r\n this.selectYear = !this.selectYear;\r\n this.selectMonth = false;\r\n\r\n this.cdr.detectChanges();\r\n if (this.selectYear) {\r\n this.generateYears(this.visibleMonth.year);\r\n }\r\n else {\r\n const {year, monthNbr} = this.selectedMonth;\r\n this.visibleMonth = {monthTxt: this.opts.monthLabels[monthNbr], monthNbr, year};\r\n this.generateCalendar(monthNbr, year, true);\r\n }\r\n }\r\n\r\n onYearCellClicked(cell: IMyCalendarYear): void {\r\n this.viewChanged = true;\r\n\r\n const {year, monthNbr, monthTxt} = this.visibleMonth;\r\n const yc: boolean = cell.year !== year;\r\n this.visibleMonth = {monthTxt, monthNbr, year: cell.year};\r\n this.selectedMonth.year = cell.year;\r\n this.generateCalendar(monthNbr, cell.year, yc);\r\n this.selectYear = false;\r\n this.focusToSelector();\r\n }\r\n\r\n onYearCellKeyDown(event: any) {\r\n // Move focus by arrow keys\r\n const {sourceRow, sourceCol} = this.getSourceRowAndColumnFromEvent(event);\r\n const {moveFocus, targetRow, targetCol, direction} = this.getTargetFocusRowAndColumn(event, sourceRow, sourceCol, YEAR_ROW_COUNT, YEAR_COL_COUNT);\r\n\r\n if (moveFocus) {\r\n this.focusCellElement(Y, targetRow, targetCol, direction, YEAR_COL_COUNT);\r\n }\r\n }\r\n\r\n generateMonths(): void {\r\n const today: IMyDate = this.utilService.getToday();\r\n this.months.length = 0;\r\n\r\n const {year, monthNbr} = this.visibleMonth;\r\n const {rtl, monthLabels} = this.opts;\r\n\r\n let row: number = 0;\r\n for (let i = 1; i <= 12; i += 3) {\r\n const rowData: Array<IMyCalendarMonth> = [];\r\n let col = rtl ? 2 : 0;\r\n\r\n for (let j = i; j < i + 3; j++) {\r\n const disabled: boolean = this.utilService.isDisabledMonth(year, j, this.opts);\r\n rowData.push({\r\n nbr: j,\r\n year,\r\n name: monthLabels[j], \r\n currMonth: j === today.month && year === today.year, \r\n selected: j === monthNbr && year === this.selectedMonth.year, \r\n disabled,\r\n row,\r\n col: rtl ? col-- : col++\r\n });\r\n }\r\n row++;\r\n this.months.push(rowData);\r\n }\r\n\r\n this.setMonthViewHeaderBtnDisabledState(year);\r\n }\r\n\r\n generateYears(inputYear: number): void {\r\n const {minYear, maxYear, rtl} = this.opts;\r\n\r\n let y: number = inputYear - 12;\r\n if (inputYear < minYear) {\r\n y = minYear;\r\n }\r\n\r\n if (inputYear + 25 > maxYear) {\r\n y = maxYear - 24;\r\n }\r\n\r\n const {year} = this.visibleMonth;\r\n\r\n this.years.length = 0;\r\n const today: IMyDate = this.utilService.getToday();\r\n\r\n let row: number = 0;\r\n for (let i = y; i < y + 25; i += 5) {\r\n const rowData: Array<IMyCalendarYear> = [];\r\n let col: number = rtl ? 4 : 0;\r\n\r\n for (let j = i; j < i + 5; j++) {\r\n const disabled: boolean = this.utilService.isDisabledYear(j, this.opts);\r\n rowData.push({\r\n year: j, \r\n currYear: j === today.year, \r\n selected: j === year, \r\n disabled,\r\n row,\r\n col: rtl ? col-- : col++\r\n });\r\n }\r\n row++;\r\n this.years.push(rowData);\r\n }\r\n\r\n const beginYear: number = this.getYearValueByRowAndCol(0, 0);\r\n const endYear: number = beginYear + 24;\r\n this.yearsDuration = (!rtl ? beginYear : endYear) + YEAR_SEPARATOR + (!rtl ? endYear : beginYear);\r\n\r\n this.setYearViewHeaderBtnDisabledState(beginYear, endYear);\r\n }\r\n\r\n onTodayFooterClicked(): void {\r\n const date = this.utilService.getToday();\r\n this.selectDate(date);\r\n }\r\n\r\n getYearValueByRowAndCol(row: number, col: number): number {\r\n const {years} = this;\r\n if (!years || years.length === 0) {\r\n const {year} = this.utilService.getToday();\r\n return year;\r\n }\r\n return years[row][col].year;\r\n }\r\n\r\n setCalendarVisibleMonth(): void {\r\n // Sets visible month of calendar\r\n const {year, monthNbr} = this.selectedMonth;\r\n this.visibleMonth = {monthTxt: this.opts.monthLabels[monthNbr], monthNbr, year};\r\n\r\n // Create current month\r\n this.generateCalendar(monthNbr, year, true);\r\n }\r\n\r\n onViewActivated(event: any): void {\r\n this.viewActivated(event);\r\n }\r\n\r\n onPrevNavigateBtnClicked(): void {\r\n if (!this.selectMonth && !this.selectYear) {\r\n this.setDateViewMonth(false);\r\n }\r\n else if (this.selectMonth) {\r\n this.visibleMonth.year--;\r\n this.generateMonths();\r\n }\r\n else if (this.selectYear) {\r\n this.generateYears(this.getYearValueByRowAndCol(2, 2) - 25);\r\n }\r\n }\r\n\r\n onNextNavigateBtnClicked(): void {\r\n if (!this.selectMonth && !this.selectYear) {\r\n this.setDateViewMonth(true);\r\n }\r\n else if (this.selectMonth) {\r\n this.visibleMonth.year++;\r\n this.generateMonths();\r\n }\r\n else if (this.selectYear) {\r\n this.generateYears(this.getYearValueByRowAndCol(2, 2) + 25);\r\n }\r\n }\r\n\r\n setDateViewMonth(isNext: boolean): void {\r\n let change: number = isNext ? 1 : -1;\r\n\r\n const {year, monthNbr} = this.visibleMonth;\r\n\r\n const d: Date = this.utilService.getJsDate(year, monthNbr, 1);\r\n d.setMonth(d.getMonth() + change);\r\n\r\n const y: number = d.getFullYear();\r\n const m: number = d.getMonth() + 1;\r\n\r\n this.visibleMonth = {monthTxt: this.opts.monthLabels[m], monthNbr: m, year: y};\r\n this.generateCalendar(m, y, true);\r\n }\r\n\r\n onCloseSelector(event: any): void {\r\n const keyCode: number = this.utilService.getKeyCodeFromEvent(event);\r\n if (keyCode === KeyCode.esc) {\r\n this.closedByEsc();\r\n }\r\n }\r\n\r\n onDayCellClicked(cell: IMyCalendarDay): void {\r\n // Cell clicked on the calendar\r\n this.selectDate(cell.dateObj);\r\n this.resetMonthYearSelect();\r\n }\r\n\r\n onDayCellKeyDown(event: any) {\r\n // Move focus by arrow keys\r\n const {sourceRow, sourceCol} = this.getSourceRowAndColumnFromEvent(event);\r\n const {moveFocus, targetRow, targetCol, direction} = this.getTargetFocusRowAndColumn(event, sourceRow, sourceCol, DATE_ROW_COUNT, DATE_COL_COUNT);\r\n if (moveFocus) {\r\n this.focusCellElement(D, targetRow, targetCol, direction, DATE_COL_COUNT);\r\n }\r\n }\r\n\r\n getSourceRowAndColumnFromEvent(event: any): any {\r\n let sourceRow: number = 0;\r\n let sourceCol: number = 0;\r\n if (event.target && event.target.id) {\r\n // value of id is for example: m_0_1 (first number = row, second number = column)\r\n const arr: Array<string> = event.target.id.split(UNDER_LINE);\r\n sourceRow = Number(arr[1]);\r\n sourceCol = Number(arr[2]);\r\n }\r\n return {sourceRow, sourceCol};\r\n }\r\n\r\n getTargetFocusRowAndColumn(event: any, row: number, col: number, rowCount: number, colCount: number): any {\r\n let moveFocus: boolean = true;\r\n let targetRow: number = row;\r\n let targetCol: number = col;\r\n let direction: boolean = false;\r\n\r\n const keyCode: number = this.utilService.getKeyCodeFromEvent(event);\r\n if (keyCode === KeyCode.upArrow && row > 0) {\r\n targetRow--;\r\n }\r\n else if (keyCode === KeyCode.downArrow && row < rowCount) {\r\n targetRow++;\r\n direction = true;\r\n }\r\n else if (keyCode === KeyCode.leftArrow && col > 0) {\r\n targetCol--;\r\n }\r\n else if (keyCode === KeyCode.rightArrow && col < colCount) {\r\n targetCol++;\r\n direction = true;\r\n }\r\n else {\r\n moveFocus = false;\r\n }\r\n return {moveFocus, targetRow, targetCol, direction};\r\n }\r\n\r\n focusCellElement(type: string, row: number, col: number, direction: boolean, colCount: number): void {\r\n const className: string = type + UNDER_LINE + row + UNDER_LINE + col;\r\n let elem: any = this.selectorEl.nativeElement.querySelector(DOT + className);\r\n\r\n if (elem.getAttribute(TABINDEX) !== ZERO_STR) {\r\n // if the selected element is disabled move a focus to next/previous enabled element\r\n let tdList: any = this.getCalendarElements();\r\n const idx: number = row * (colCount + 1) + col;\r\n\r\n let enabledElem: any = null;\r\n if (direction) {\r\n // find next enabled\r\n enabledElem = tdList.slice(idx).find((td: any) => td.getAttribute(TABINDEX) === ZERO_STR);\r\n }\r\n else {\r\n // find previous enabled\r\n enabledElem = tdList.slice(0, idx).reverse().find((td: any) => td.getAttribute(TABINDEX) === ZERO_STR);\r\n }\r\n\r\n elem = enabledElem ? enabledElem : this.selectorEl.nativeElement;\r\n }\r\n else {\r\n elem.focus();\r\n }\r\n }\r\n\r\n focusToSelector(): void {\r\n this.selectorEl.nativeElement.focus();\r\n }\r\n\r\n getCalendarElements(): any {\r\n return Array.from(this.selectorEl.nativeElement.querySelectorAll(TD_SELECTOR));\r\n }\r\n\r\n selectDate(date: IMyDate): void {\r\n const {dateRange, dateFormat, monthLabels, dateRangeDatesDelimiter, closeSelectorOnDateSelect} = this.opts;\r\n\r\n if (dateRange) {\r\n // Date range\r\n const isBeginDateInitialized: boolean = this.utilService.isInitializedDate(this.selectedDateRange.begin);\r\n const isEndDateInitialized: boolean = this.utilService.isInitializedDate(this.selectedDateRange.end);\r\n if (isBeginDateInitialized && isEndDateInitialized) {\r\n // both already selected - set begin date and reset end date\r\n this.selectedDateRange.begin = date;\r\n this.selectedDateRange.end = this.utilService.resetDate();\r\n this.rangeDateSelection({\r\n isBegin: true,\r\n date,\r\n jsDate: this.utilService.myDateToJsDate(date),\r\n dateFormat: dateFormat,\r\n formatted: this.utilService.formatDate(date, dateFormat, monthLabels),\r\n epoc: this.utilService.getEpocTime(date)\r\n });\r\n }\r\n else if (!isBeginDateInitialized) {\r\n // begin date\r\n this.selectedDateRange.begin = date;\r\n this.rangeDateSelection({\r\n isBegin: true,\r\n date,\r\n jsDate: this.utilService.myDateToJsDate(date),\r\n dateFormat: dateFormat,\r\n formatted: this.utilService.formatDate(date, dateFormat, monthLabels),\r\n epoc: this.utilService.getEpocTime(date)\r\n });\r\n\r\n }\r\n else {\r\n // second selection\r\n const firstDateEarlier: boolean = this.utilService.isDateEarlier(date, this.selectedDateRange.begin);\r\n if (firstDateEarlier) {\r\n this.selectedDateRange.begin = date;\r\n this.rangeDateSelection({\r\n isBegin: true,\r\n date,\r\n jsDate: this.utilService.myDateToJsDate(date),\r\n dateFormat: dateFormat,\r\n formatted: this.utilService.formatDate(date, dateFormat, monthLabels),\r\n epoc: this.utilService.getEpocTime(date)\r\n });\r\n }\r\n else {\r\n this.selectedDateRange.end = date;\r\n this.rangeDateSelection({\r\n isBegin: false,\r\n date,\r\n jsDate: this.utilService.myDateToJsDate(date),\r\n dateFormat: dateFormat,\r\n formatted: this.utilService.formatDate(date, dateFormat, monthLabels),\r\n epoc: this.utilService.getEpocTime(date)\r\n });\r\n\r\n this.dateChanged(this.utilService.getDateModel(null, this.selectedDateRange, dateFormat, monthLabels, dateRangeDatesDelimiter), closeSelectorOnDateSelect);\r\n }\r\n }\r\n }\r\n else {\r\n // Single date\r\n this.selectedDate = date;\r\n this.dateChanged(this.utilService.getDateModel(this.selectedDate, null, dateFormat, monthLabels, dateRangeDatesDelimiter), closeSelectorOnDateSelect);\r\n }\r\n }\r\n\r\n monthStartIdx(y: number, m: number): number {\r\n // Month start index\r\n const d: Date = new Date();\r\n d.setDate(1);\r\n d.setMonth(m - 1);\r\n d.setFullYear(y);\r\n const idx = d.getDay() + this.sundayIdx();\r\n return idx >= 7 ? idx - 7 : idx;\r\n }\r\n\r\n isCurrDay(d: number, m: number, y: number, today: IMyDate): boolean {\r\n // Check is a given date the today\r\n return d === today.day && m === today.month && y === today.year;\r\n }\r\n\r\n getDayNumber(date: IMyDate): number {\r\n // Get day number: su=0, mo=1, tu=2, we=3 ...\r\n const {year, month, day} = date;\r\n const d: Date = this.utilService.getJsDate(year, month, day);\r\n return d.getDay();\r\n }\r\n\r\n getWeekday(date: IMyDate): string {\r\n // Get weekday: su, mo, tu, we ...\r\n return this.weekDayOpts[this.getDayNumber(date)];\r\n }\r\n\r\n sundayIdx(): number {\r\n // Index of Sunday day\r\n return this.dayIdx > 0 ? 7 - this.dayIdx : 0;\r\n }\r\n\r\n generateCalendar(m: number, y: number, notifyChange: boolean): void {\r\n this.dates.length = 0;\r\n const today: IMyDate = this.utilService.getToday();\r\n const monthStart: number = this.monthStartIdx(y, m);\r\n const dInThisM: number = this.utilService.datesInMonth(m, y);\r\n const dInPrevM: number = this.utilService.datesInPrevMonth(m, y);\r\n\r\n let dayNbr: number = 1;\r\n let month: number = m;\r\n let cmo: number = MonthId.prev;\r\n const {rtl, showWeekNumbers, firstDayOfWeek} = this.opts;\r\n for (let i = 1; i < 7; i++) {\r\n let col: number = rtl ? 6 : 0;\r\n const week: Array<IMyCalendarDay> = [];\r\n if (i === 1) {\r\n // First week\r\n const pm = dInPrevM - monthStart + 1;\r\n // Previous month\r\n for (let j = pm; j <= dInPrevM; j++) {\r\n const date: IMyDate = {year: m === 1 ? y - 1 : y, month: m === 1 ? 12 : m - 1, day: j};\r\n week.push({\r\n dateObj: date,\r\n cmo,\r\n currDay: this.isCurrDay(j, month - 1, y, today),\r\n disabledDate: this.utilService.isDisabledDate(date, this.opts),\r\n markedDate: this.utilService.isMarkedDate(date, this.opts),\r\n highlight: this.utilService.isHighlightedDate(date, this.opts),\r\n row: i - 1,\r\n col: rtl ? col-- : col++\r\n }); \r\n }\r\n\r\n cmo = MonthId.curr;\r\n // Current month\r\n const daysLeft: number = 7 - week.length;\r\n for (let j = 0; j < daysLeft; j++) {\r\n const date: IMyDate = {year: y, month: m, day: dayNbr};\r\n week.push({\r\n dateObj: date,\r\n cmo,\r\n currDay: this.isCurrDay(dayNbr, m, y, today),\r\n disabledDate: this.utilService.isDisabledDate(date, this.opts),\r\n markedDate: this.utilService.isMarkedDate(date, this.opts),\r\n highlight: this.utilService.isHighlightedDate(date, this.opts),\r\n row: i - 1,\r\n col: rtl ? col-- : col++\r\n });\r\n dayNbr++;\r\n }\r\n }\r\n else {\r\n // Rest of the weeks\r\n for (let j = 1; j < 8; j++) {\r\n if (dayNbr > dInThisM) {\r\n // Next month\r\n dayNbr = 1;\r\n cmo = MonthId.next;\r\n month = m + 1;\r\n }\r\n const date: IMyDate = {year: cmo === MonthId.next && m === 12 ? y + 1 : y, month: cmo === MonthId.curr ? m : cmo === MonthId.next && m < 12 ? m + 1 : 1, day: dayNbr};\r\n week.push({\r\n dateObj: date,\r\n cmo,\r\n currDay: this.isCurrDay(dayNbr, month, y, today),\r\n disabledDate: this.utilService.isDisabledDate(date, this.opts),\r\n markedDate: this.utilService.isMarkedDate(date, this.opts),\r\n highlight: this.utilService.isHighlightedDate(date, this.opts),\r\n row: i - 1,\r\n col: rtl ? col-- : col++\r\n });\r\n dayNbr++;\r\n }\r\n }\r\n const weekNbr: number = showWeekNumbers && firstDayOfWeek === MO ? this.utilService.getWeekNumber(week[0].dateObj) : 0;\r\n this.dates.push({week, weekNbr});\r\n }\r\n\r\n this.setDateViewHeaderBtnDisabledState(m, y);\r\n\r\n if (notifyChange) {\r\n // Notify parent\r\n this.calendarViewChanged({year: y, month: m, first: {number: 1, weekday: this.getWeekday({year: y, month: m, day: 1})}, last: {number: dInThisM, weekday: this.getWeekday({year: y, month: m, day: dInThisM})}});\r\n }\r\n }\r\n\r\n setDateViewHeaderBtnDisabledState(m: number, y: number): void {\r\n let dpm: boolean = false;\r\n let dnm: boolean = false;\r\n\r\n const {disableHeaderButtons, disableUntil, disableSince, enableDates, minYear, maxYear, rtl} = this.opts;\r\n\r\n if (disableHeaderButtons) {\r\n const duDate: IMyDate = {year: m === 1 ? y - 1 : y, month: m === 1 ? 12 : m - 1, day: this.utilService.datesInMonth(m === 1 ? 12 : m - 1, m === 1 ? y - 1 : y)};\r\n const dsDate: IMyDate = {year: m === 12 ? y + 1 : y, month: m === 12 ? 1 : m + 1, day: 1};\r\n \r\n dpm = this.utilService.isDisabledByDisableUntil(duDate, disableUntil) \r\n && !this.utilService.isPastDatesEnabled(duDate, enableDates);\r\n dnm = this.utilService.isDisabledByDisableSince(dsDate, disableSince)\r\n && !this.utilService.isFutureDatesEnabled(dsDate, enableDates);\r\n }\r\n\r\n this.prevViewDisabled = m === 1 && y === minYear || dpm;\r\n this.nextViewDisabled = m === 12 && y === maxYear || dnm;\r\n\r\n if (rtl) {\r\n this.swapHeaderBtnDisabled();\r\n }\r\n }\r\n\r\n setMonthViewHeaderBtnDisabledState(y: number): void {\r\n let dpm: boolean = false;\r\n let dnm: boolean = false;\r\n\r\n const {disableHeaderButtons, disableUntil, disableSince, enableDates, minYear, maxYear, rtl} = this.opts;\r\n\r\n if (disableHeaderButtons) {\r\n const duDate: IMyDate = {year: y - 1, month: 12, day: 31};\r\n const dsDate: IMyDate = {year: y + 1, month: 1, day: 1};\r\n\r\n dpm = this.utilService.isDisabledByDisableUntil(duDate, disableUntil)\r\n && !this.utilService.isPastDatesEnabled(duDate, enableDates);\r\n dnm = this.utilService.isDisabledByDisableSince(dsDate, disableSince)\r\n && !this.utilService.isFutureDatesEnabled(dsDate, enableDates);\r\n }\r\n\r\n this.prevViewDisabled = y === minYear || dpm;\r\n this.nextViewDisabled = y === maxYear || dnm;\r\n\r\n if (rtl) {\r\n this.swapHeaderBtnDisabled();\r\n }\r\n }\r\n\r\n setYearViewHeaderBtnDisabledState(yp: number, yn: number): void {\r\n let dpy: boolean = false;\r\n let dny: boolean = false;\r\n\r\n const {disableHeaderButtons, disableUntil, disableSince, enableDates, minYear, maxYear, rtl} = this.opts;\r\n\r\n if (disableHeaderButtons) {\r\n const duDate: IMyDate = {year: yp - 1, month: 12, day: 31};\r\n const dsDate: IMyDate = {year: yn + 1, month: 1, day: 1};\r\n\r\n dpy = this.utilService.isDisabledByDisableUntil(duDate, disableUntil)\r\n && !this.utilService.isPastDatesEnabled(duDate, enableDates);\r\n dny = this.utilService.isDisabledByDisableSince(dsDate, disableSince)\r\n && !this.utilService.isFutureDatesEnabled(dsDate, enableDates);\r\n }\r\n this.prevViewDisabled = yp <= minYear || dpy;\r\n this.nextViewDisabled = yn >= maxYear || dny;\r\n\r\n if (rtl) {\r\n this.swapHeaderBtnDisabled();\r\n }\r\n }\r\n\r\n swapHeaderBtnDisabled(): void {\r\n [this.prevViewDisabled, this.nextViewDisabled] = [this.nextViewDisabled, this.prevViewDisabled];\r\n }\r\n}\r\n","<span #styleEl></span>\r\n<div class=\"ng-mydp {{opts.stylesData?.selector || ''}}\">\r\n <div class=\"myDpSelector\" #selectorEl \r\n [libAngularMyDatePickerCalendar]=\"{inline: opts.inline, selectorWidth: opts.selectorWidth, selectorHeight: opts.selectorHeight, selectorPos: selectorPos}\" \r\n [ngClass]=\"{'myDpSelectorArrow': opts.showSelectorArrow, 'myDpSelectorArrowLeft': opts.showSelectorArrow && !opts.alignSelectorRight, \r\n 'myDpSelectorArrowRight': opts.showSelectorArrow&&opts.alignSelectorRight, 'myDpSelectorAbsolute': !opts.inline, 'myDpSelectorPosInitial': opts.inline}\" \r\n (keyup)=\"onCloseSelector($event)\" tabindex=\"0\">\r\n\r\n <lib-selection-bar [opts]=\"opts\" [yearsDuration]=\"yearsDuration\" [visibleMonth]=\"visibleMonth\" [selectMonth]=\"selectMonth\" [selectYear]=\"selectYear\"\r\n [prevViewDisabled]=\"prevViewDisabled\" [nextViewDisabled]=\"nextViewDisabled\"\r\n (prevNavigateBtnClicked)=\"onPrevNavigateBtnClicked()\" (nextNavigateBtnClicked)=\"onNextNavigateBtnClicked()\"\r\n (monthViewBtnClicked)=\"onMonthViewBtnClicked()\" (yearViewBtnClicked)=\"onYearViewBtnClicked()\"></lib-selection-bar>\r\n\r\n <lib-day-view *ngIf=\"!selectMonth && !selectYear\" [opts]=\"opts\" [dates]=\"dates\" [weekDays]=\"weekDays\"\r\n [selectedDate]=\"selectedDate\" [selectedDateRange]=\"selectedDateRange\" [viewChanged]=\"viewChanged\"\r\n (dayCellClicked)=\"onDayCellClicked($event)\"\r\n (dayCellKeyDown)=\"onDayCellKeyDown($event)\"\r\n (viewActivated)=\"onViewActivated($event)\"></lib-day-view>\r\n\r\n <lib-month-view *ngIf=\"selectMonth\" [opts]=\"opts\" [months]=\"months\" [viewChanged]=\"viewChanged\"\r\n (monthCellClicked)=\"onMonthCellClicked($event)\"\r\n (monthCellKeyDown)=\"onMonthCellKeyDown($event)\"\r\n (viewActivated)=\"onViewActivated($event)\"></lib-month-view>\r\n\r\n <lib-year-view *ngIf=\"selectYear\" [opts]=\"opts\" [years]=\"years\" [viewChanged]=\"viewChanged\"\r\n (yearCellClicked)=\"onYearCellClicked($event)\"\r\n (yearCellKeyDown)=\"onYearCellKeyDown($event)\"\r\n (viewActivated)=\"onViewActivated($event)\"></lib-year-view>\r\n\r\n <lib-footer-bar *ngIf=\"opts.showFooterToday\" [opts]=\"opts\"\r\n (footerBarTxtClicked)=\"onTodayFooterClicked()\"></lib-footer-bar>\r\n </div>\r\n</div>\r\n","import {Injectable} from \"@angular/core\";\r\nimport {IMyLocales} from \"../interfaces/my-locale.interface\";\r\nimport {IMyOptions} from \"../interfaces/my-options.interface\";\r\n\r\nimport {DEFAULT_LOCALE} from \"../constants/constants\";\r\n\r\n@Injectable()\r\nexport class LocaleService {\r\n private locales: IMyLocales = {\r\n \"en\": {\r\n dayLabels: {su: \"Sun\", mo: \"Mon\", tu: \"Tue\", we: \"Wed\", th: \"Thu\", fr: \"Fri\", sa: \"Sat\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"mm/dd/yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Today\"\r\n },\r\n \"he\": {\r\n dayLabels: {su: \"רא\", mo: \"שנ\", tu: \"של\", we: \"רב\", th: \"חמ\", fr: \"שי\", sa: \"שב\"},\r\n monthLabels: { 1: \"ינו\", 2: \"פבר\", 3: \"מרץ\", 4: \"אפר\", 5: \"מאי\", 6: \"יונ\", 7: \"יול\", 8: \"אוג\", 9: \"ספט\", 10: \"אוק\", 11: \"נוב\", 12: \"דצמ\" },\r\n dateFormat: \"dd/mm/yyyy\",\r\n firstDayOfWeek: \"su\",\r\n sunHighlight: false,\r\n todayTxt: \"היום\"\r\n },\r\n \"ja\": {\r\n dayLabels: {su: \"日\", mo: \"月\", tu: \"火\", we: \"水\", th: \"木\", fr: \"金\", sa: \"土\"},\r\n monthLabels: {1: \"1月\", 2: \"2月\", 3: \"3月\", 4: \"4月\", 5: \"5月\", 6: \"6月\", 7: \"7月\", 8: \"8月\", 9: \"9月\", 10: \"10月\", 11: \"11月\", 12: \"12月\"},\r\n dateFormat: \"yyyy.mm.dd\",\r\n sunHighlight: false,\r\n todayTxt: \"今日\"\r\n },\r\n \"fr\": {\r\n dayLabels: {su: \"Dim\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Jeu\", fr: \"Ven\", sa: \"Sam\"},\r\n monthLabels: {1: \"Jan\", 2: \"Fév\", 3: \"Mar\", 4: \"Avr\", 5: \"Mai\", 6: \"Juin\", 7: \"Juil\", 8: \"Aoû\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Déc\"},\r\n dateFormat: \"dd/mm/yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Aujourd'hui\"\r\n },\r\n \"fr-ch\": {\r\n dayLabels: {su: \"Dim\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Jeu\", fr: \"Ven\", sa: \"Sam\"},\r\n monthLabels: {1: \"Jan\", 2: \"Fév\", 3: \"Mar\", 4: \"Avr\", 5: \"Mai\", 6: \"Juin\", 7: \"Juil\", 8: \"Aoû\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Déc\"},\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Aujourd'hui\"\r\n },\r\n \"fi\": {\r\n dayLabels: {su: \"Su\", mo: \"Ma\", tu: \"Ti\", we: \"Ke\", th: \"To\", fr: \"Pe\", sa: \"La\"},\r\n monthLabels: {1: \"Tam\", 2: \"Hel\", 3: \"Maa\", 4: \"Huh\", 5: \"Tou\", 6: \"Kes\", 7: \"Hei\", 8: \"Elo\", 9: \"Syy\", 10: \"Lok\", 11: \"Mar\", 12: \"Jou\"},\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Tänään\"\r\n },\r\n \"es\": {\r\n dayLabels: {su: \"Do\", mo: \"Lu\", tu: \"Ma\", we: \"Mi\", th: \"Ju\", fr: \"Vi\", sa: \"Sa\"},\r\n monthLabels: {1: \"Ene\", 2: \"Feb\", 3: \"Mar\", 4: \"Abr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Ago\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dic\"},\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Hoy\"\r\n },\r\n \"hu\": {\r\n dayLabels: {su: \"Vas\", mo: \"Hét\", tu: \"Kedd\", we: \"Sze\", th: \"Csü\", fr: \"Pén\", sa: \"Szo\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Már\", 4: \"Ápr\", 5: \"Máj\", 6: \"Jún\", 7: \"Júl\", 8: \"Aug\", 9: \"Szep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Ma\"\r\n },\r\n \"sv\": {\r\n dayLabels: {su: \"Sön\", mo: \"Mån\", tu: \"Tis\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lör\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: false,\r\n todayTxt: \"Idag\"\r\n },\r\n \"nl\": {\r\n dayLabels: {su: \"Zon\", mo: \"Maa\", tu: \"Din\", we: \"Woe\", th: \"Don\", fr: \"Vri\", sa: \"Zat\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mei\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"d-m-yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: false,\r\n todayTxt: \"Vandaag\"\r\n },\r\n \"nl-be\": {\r\n dayLabels: {su: \"Zon\", mo: \"Maa\", tu: \"Din\", we: \"Woe\", th: \"Don\", fr: \"Vri\", sa: \"Zat\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mei\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"d/m/yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: false,\r\n todayTxt: \"Vandaag\"\r\n },\r\n \"ru\": {\r\n dayLabels: {su: \"Вс\", mo: \"Пн\", tu: \"Вт\", we: \"Ср\", th: \"Чт\", fr: \"Пт\", sa: \"Сб\"},\r\n monthLabels: { 1: \"Янв\", 2: \"Фев\", 3: \"Март\", 4: \"Апр\", 5: \"Май\", 6: \"Июнь\", 7: \"Июль\", 8: \"Авг\", 9: \"Сент\", 10: \"Окт\", 11: \"Ноя\", 12: \"Дек\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Сегодня\"\r\n },\r\n \"uk\": {\r\n dayLabels: {su: \"Нд\", mo: \"Пн\", tu: \"Вт\", we: \"Ср\", th: \"Чт\", fr: \"Пт\", sa: \"Сб\"},\r\n monthLabels: { 1: \"Січ\", 2: \"Лют\", 3: \"Бер\", 4: \"Кві\", 5: \"Тра\", 6: \"Чер\", 7: \"Лип\", 8: \"Сер\", 9: \"Вер\", 10: \"Жов\", 11: \"Лис\", 12: \"Гру\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Сьогодні\"\r\n },\r\n \"uz\": {\r\n dayLabels: {su: \"Yak\", mo: \"Du\", tu: \"Se\", we: \"Cho\", th: \"Pay\", fr: \"Ju\", sa: \"Sha\"},\r\n monthLabels: { 1: \"Yan\", 2: \"Fev\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Iyn\", 7: \"Iyl\", 8: \"Avg\", 9: \"Sen\", 10: \"Okt\", 11: \"Noy\", 12: \"Dek\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Bugun\"\r\n },\r\n \"no\": {\r\n dayLabels: {su: \"Søn\", mo: \"Man\", tu: \"Tir\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lør\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Des\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: false,\r\n todayTxt: \"I dag\"\r\n },\r\n \"tr\": {\r\n dayLabels: {su: \"Paz\", mo: \"Pzt\", tu: \"Sal\", we: \"Çar\", th: \"Per\", fr: \"Cum\", sa: \"Cmt\"},\r\n monthLabels: { 1: \"Oca\", 2: \"Şub\", 3: \"Mar\", 4: \"Nis\", 5: \"May\", 6: \"Haz\", 7: \"Tem\", 8: \"Ağu\", 9: \"Eyl\", 10: \"Eki\", 11: \"Kas\", 12: \"Ara\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: false,\r\n todayTxt: \"Bugün\"\r\n },\r\n \"pt-br\": {\r\n dayLabels: {su: \"Dom\", mo: \"Seg\", tu: \"Ter\", we: \"Qua\", th: \"Qui\", fr: \"Sex\", sa: \"Sab\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Fev\", 3: \"Mar\", 4: \"Abr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Ago\", 9: \"Set\", 10: \"Out\", 11: \"Nov\", 12: \"Dez\" },\r\n dateFormat: \"dd/mm/yyyy\",\r\n firstDayOfWeek: \"su\",\r\n sunHighlight: true,\r\n todayTxt: \"Hoje\"\r\n },\r\n \"de\": {\r\n dayLabels: {su: \"So\", mo: \"Mo\", tu: \"Di\", we: \"Mi\", th: \"Do\", fr: \"Fr\", sa: \"Sa\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mär\", 4: \"Apr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dez\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Heute\"\r\n },\r\n \"de-ch\": {\r\n dayLabels: {su: \"So\", mo: \"Mo\", tu: \"Di\", we: \"Mi\", th: \"Do\", fr: \"Fr\", sa: \"Sa\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mär\", 4: \"Apr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dez\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Heute\"\r\n },\r\n \"it\": {\r\n dayLabels: { su: \"Dom\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Gio\", fr: \"Ven\", sa: \"Sab\" },\r\n monthLabels: { 1: \"Gen\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mag\", 6: \"Giu\", 7: \"Lug\", 8: \"Ago\", 9: \"Set\", 10: \"Ott\", 11: \"Nov\", 12: \"Dic\" },\r\n dateFormat: \"dd/mm/yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Oggi\"\r\n },\r\n \"it-ch\": {\r\n dayLabels: { su: \"Dom\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Gio\", fr: \"Ven\", sa: \"Sab\" },\r\n monthLabels: { 1: \"Gen\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mag\", 6: \"Giu\", 7: \"Lug\", 8: \"Ago\", 9: \"Set\", 10: \"Ott\", 11: \"Nov\", 12: \"Dic\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Oggi\"\r\n },\r\n \"pl\": {\r\n dayLabels: { su: \"Nie\", mo: \"Pon\", tu: \"Wto\", we: \"Śro\", th: \"Czw\", fr: \"Pią\", sa: \"Sob\" },\r\n monthLabels: { 1: \"Sty\", 2: \"Lut\", 3: \"Mar\", 4: \"Kwi\", 5: \"Maj\", 6: \"Cze\", 7: \"Lip\", 8: \"Sie\", 9: \"Wrz\", 10: \"Paź\", 11: \"Lis\", 12: \"Gru\" },\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Dzisiaj\"\r\n },\r\n \"my\": {\r\n dayLabels: {su: \"တနင်္ဂနွေ\", mo: \"တနင်္လာ\", tu: \"အင်္ဂါ\", we: \"ဗုဒ္ဓဟူး\", th: \"ကြသပတေး\", fr: \"သောကြာ\", sa: \"စနေ\"},\r\n monthLabels: { 1: \"ဇန်နဝါရီ\", 2: \"ဖေဖော်ဝါရီ\", 3: \"မတ်\", 4: \"ဧပြီ\", 5: \"မေ\", 6: \"ဇွန်\", 7: \"ဇူလိုင်\", 8: \"ဩဂုတ်\", 9: \"စက်တင်ဘာ\", 10: \"အောက်တိုဘာ\", 11: \"နိုဝင်ဘာ\", 12: \"ဒီဇင်ဘာ\" },\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"ယနေ့\"\r\n },\r\n \"sk\": {\r\n dayLabels: { su: \"Ne\", mo: \"Po\", tu: \"Ut\", we: \"St\", th: \"Št\", fr: \"Pi\", sa: \"So\" },\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Máj\", 6: \"Jún\", 7: \"Júl\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Dnes\"\r\n },\r\n \"sl\": {\r\n dayLabels: { su: \"Ned\", mo: \"Pon\", tu: \"Tor\", we: \"Sre\", th: \"Čet\", fr: \"Pet\", sa: \"Sob\" },\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Avg\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"dd. mm. yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Danes\"\r\n },\r\n \"zh-cn\": {\r\n dayLabels: {su: \"日\", mo: \"一\", tu: \"二\", we: \"三\", th: \"四\", fr: \"五\", sa: \"六\"},\r\n monthLabels: { 1: \"1月\", 2: \"2月\", 3: \"3月\", 4: \"4月\", 5: \"5月\", 6: \"6月\", 7: \"7月\", 8: \"8月\", 9: \"9月\", 10: \"10月\", 11: \"11月\", 12: \"12月\" },\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"今天\"\r\n },\r\n \"ro\": {\r\n dayLabels: {su: \"du\", mo: \"lu\", tu: \"ma\", we: \"mi\", th: \"jo\", fr: \"vi\", sa: \"sa\"},\r\n monthLabels: { 1: \"ian\", 2: \"feb\", 3: \"mart\", 4: \"apr\", 5: \"mai\", 6: \"iun\", 7: \"iul\", 8: \"aug\", 9: \"sept\", 10: \"oct\", 11: \"nov\", 12: \"dec\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Astăzi\"\r\n },\r\n \"ca\": {\r\n dayLabels: {su: \"dg\", mo: \"dl\", tu: \"dt\", we: \"dc\", th: \"dj\", fr: \"dv\", sa: \"ds\"},\r\n monthLabels: {1: \"Gen\", 2: \"Febr\", 3: \"Març\", 4: \"Abr\", 5: \"Maig\", 6: \"Juny\", 7: \"Jul\", 8: \"Ag\", 9: \"Set\", 10: \"Oct\", 11: \"Nov\", 12: \"Des\"},\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Avui\"\r\n },\r\n \"id\": {\r\n dayLabels: {su: \"Min\", mo: \"Sen\", tu: \"Sel\", we: \"Rab\", th: \"Kam\", fr: \"Jum\", sa: \"Sab\"},\r\n monthLabels: {1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mei\", 6: \"Jun\", 7: \"Jul\", 8: \"Ags\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Des\"},\r\n dateFormat: \"dd-mm-yyyy\",\r\n firstDayOfWeek: \"su\",\r\n sunHighlight: true,\r\n todayTxt: \"Hari ini\"\r\n },\r\n \"en-au\": {\r\n dayLabels: {su: \"Sun\", mo: \"Mon\", tu: \"Tue\", we: \"Wed\", th: \"Thu\", fr: \"Fri\", sa: \"Sat\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"dd/mm/yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Today\"\r\n },\r\n \"en-gb\": {\r\n dayLabels: {su: \"Sun\", mo: \"Mon\", tu: \"Tue\", we: \"Wed\", th: \"Thu\", fr: \"Fri\", sa: \"Sat\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"dd/mm/yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Today\"\r\n },\r\n \"am-et\": {\r\n dayLabels: {su: \"እሑድ\", mo: \"ሰኞ\", tu: \"ማክሰኞ\", we: \"ረቡዕ\", th: \"ሐሙስ\", fr: \"ዓርብ\", sa: \"ቅዳሜ\"},\r\n monthLabels: { 1: \"ጃንዩ\", 2: \"ፌብሩ\", 3: \"ማርች\", 4: \"ኤፕረ\", 5: \"ሜይ\", 6: \"ጁን\", 7: \"ጁላይ\", 8: \"ኦገስ\", 9: \"ሴፕቴ\", 10: \"ኦክተ\", 11: \"ኖቬም\", 12: \"ዲሴም\" },\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"ዛሬ\"\r\n },\r\n \"cs\": {\r\n dayLabels: { su: \"Ne\", mo: \"Po\", tu: \"Út\", we: \"St\", th: \"Čt\", fr: \"Pá\", sa: \"So\" },\r\n monthLabels: { 1: \"Led\", 2: \"Úno\", 3: \"Bře\", 4: \"Dub\", 5: \"Kvě\", 6: \"Čvn\", 7: \"Čvc\", 8: \"Srp\", 9: \"Zář\", 10: \"Říj\", 11: \"Lis\", 12: \"Pro\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Dnes\"\r\n },\r\n \"el\": {\r\n dayLabels: { su: \"Κυρ\", mo: \"Δευ\", tu: \"Τρι\", we: \"Τετ\", th: \"Πεμ\", fr: \"Παρ\", sa: \"Σαβ\" },\r\n monthLabels: { 1: \"Ιαν\", 2: \"Φεβ\", 3: \"Μαρ\", 4: \"Απρ\", 5: \"Μαι\", 6: \"Ιουν\", 7: \"Ιουλ\", 8: \"Αυγ\", 9: \"Σεπ\", 10: \"Οκτ\", 11: \"Νοε\", 12: \"Δεκ\" },\r\n dateFormat: \"dd/mm/yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Σήμερα\"\r\n },\r\n \"kk\": {\r\n dayLabels: { su: \"Жк\", mo: \"Дс\", tu: \"Сс\", we: \"Ср\", th: \"Бс\", fr: \"Жм\", sa: \"Сб\" },\r\n monthLabels: { 1: \"Қаң\", 2: \"Ақп\", 3: \"Нау\", 4: \"Сәу\", 5: \"Мам\", 6: \"Мау\", 7: \"Шіл\", 8: \"Там\", 9: \"Қырк\", 10: \"Қаз\", 11: \"Қар\", 12: \"Желт\" },\r\n dateFormat: \"dd-mmm-yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Бүгін\"\r\n },\r\n \"th\": {\r\n dayLabels: { su: \"อา\", mo: \"จ\", tu: \"อ\", we: \"พ\", th: \"พฤ\", fr: \"ศ\", sa: \"ส\" },\r\n monthLabels: { 1: \"ม.ค\", 2: \"ก.พ.\", 3: \"มี.ค.\", 4: \"เม.ย.\", 5: \"พ.ค.\", 6: \"มิ.ย.\", 7: \"ก.ค.\", 8: \"ส.ค.\", 9: \"ก.ย.\", 10: \"ต.ค.\", 11: \"พ.ย.\", 12: \"ธ.ค.\" },\r\n dateFormat: \"dd-mm-yyyy\",\r\n firstDayOfWeek: \"su\",\r\n sunHighlight: true,\r\n todayTxt: \"วันนี้\"\r\n },\r\n \"ko-kr\": {\r\n dayLabels: {su: \"일\", mo: \"월\", tu: \"화\", we: \"수\", th: \"목\", fr: \"금\", sa: \"토\"},\r\n monthLabels: { 1: \"1월\", 2: \"2월\", 3: \"3월\", 4: \"4월\", 5: \"5월\", 6: \"6월\", 7: \"7월\", 8: \"8월\", 9: \"9월\", 10: \"10월\", 11: \"11월\", 12: \"12월\" },\r\n dateFormat: \"yyyy mm dd\",\r\n firstDayOfWeek: \"su\",\r\n sunHighlight: true,\r\n todayTxt: \"오늘\"\r\n },\r\n \"da\": {\r\n dayLabels: {su: \"Søn\", mo: \"Man\", tu: \"Tir\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lør\"},\r\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\r\n dateFormat: \"dd-mm-yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"I dag\"\r\n },\r\n \"lt\": {\r\n dayLabels: {su: \"Sk\", mo: \"Pr\", tu: \"An\", we: \"Tr\", th: \"Kt\", fr: \"Pn\", sa: \"Št\"},\r\n monthLabels: { 1: \"Saus.\", 2: \"Vas.\", 3: \"Kov.\", 4: \"Bal.\", 5: \"Geg.\", 6: \"Birž.\", 7: \"Liep.\", 8: \"Rugp.\", 9: \"Rugs.\", 10: \"Sapl.\", 11: \"Lapkr.\", 12: \"Gruod.\" },\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Šianien\"\r\n },\r\n \"vi\": {\r\n dayLabels: {su: \"CN\", mo: \"T2\", tu: \"T3\", we: \"T4\", th: \"T5\", fr: \"T6\", sa: \"T7\"},\r\n monthLabels: { 1: \"THG 1\", 2: \"THG 2\", 3: \"THG 3\", 4: \"THG 4\", 5: \"THG 5\", 6: \"THG 6\", 7: \"THG 7\", 8: \"THG 8\", 9: \"THG 9\", 10: \"THG 10\", 11: \"THG 11\", 12: \"THG 12\" },\r\n dateFormat: \"dd/mm/yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Hôm nay\"\r\n },\r\n \"bn\": {\r\n dayLabels: {su: \"রবি\", mo: \"সোম\", tu: \"মঙ্গল\", we: \"বুধ\", th: \"বৃহঃ\", fr: \"শুক্র\", sa: \"শনি\"},\r\n monthLabels: { 1: \"জানু\", 2: \"ফেব্রু\", 3: \"মার্চ\", 4: \"এপ্রিল\", 5: \"মে\", 6: \"জুন\", 7: \"জুলাই\", 8: \"আগস্ট\", 9: \"সেপ্টে\", 10: \"অক্টো\", 11: \"নভে\", 12: \"ডিসে\" },\r\n dateFormat: \"dd-mm-yyyy\",\r\n firstDayOfWeek: \"su\",\r\n sunHighlight: true,\r\n todayTxt: \"আজ\"\r\n },\r\n \"bg\": {\r\n dayLabels: {su: \"нд\", mo: \"пн\", tu: \"вт\", we: \"ср\", th: \"чт\", fr: \"пт\", sa: \"сб\"},\r\n monthLabels: { 1: \"яну.\", 2: \"фев.\", 3: \"март\", 4: \"апр.\", 5: \"май\", 6: \"юни\", 7: \"юли\", 8: \"авг.\", 9: \"сеп.\", 10: \"окт.\", 11: \"ное.\", 12: \"дек.\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"днес\"\r\n },\r\n \"hr\": {\r\n dayLabels: {su: \"Ne\", mo: \"Po\", tu: \"Ul\", we: \"Sr\", th: \"Če\", fr: \"Pe\", sa: \"Su\"},\r\n monthLabels: { 1: \"Sij\", 2: \"Vel\", 3: \"Ožu\", 4: \"Tra\", 5: \"Svi\", 6: \"Lip\", 7: \"Srp\", 8: \"Kol\", 9: \"Ruj\", 10: \"Lis\", 11: \"Stu\", 12: \"Pro\" },\r\n dateFormat: \"dd.mm.yyyy.\",\r\n firstDayOfWeek: \"su\",\r\n sunHighlight: true,\r\n todayTxt: \"danas\"\r\n },\r\n \"ar\": {\r\n dayLabels: { su: \"الأحد\", mo: \"الاثنين\", tu: \"الثلاثاء\", we: \"الاربعاء\", th: \"الخميس\", fr: \"الجمعة\", sa: \"السبت\" },\r\n monthLabels: { 1: \"يناير\", 2: \"فبراير\", 3: \"مارس\", 4: \"ابريل\", 5: \"مايو\", 6: \"يونيو\", 7: \"يوليو\", 8: \"أغسطس\", 9: \"سبتمبر\", 10: \"أكتوبر\", 11: \"نوفمبر\", 12: \"ديسمبر\" },\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"sa\",\r\n sunHighlight: true,\r\n todayTxt: \"اليوم\"\r\n },\r\n \"is\": {\r\n dayLabels: {su: \"sun\", mo: \"mán\", tu: \"þri\", we: \"mið\", th: \"fim\", fr: \"fös\", sa: \"lau\"},\r\n monthLabels: { 1: \"jan\", 2: \"feb\", 3: \"mar\", 4: \"apr\", 5: \"maí\", 6: \"jún\", 7: \"júl\", 8: \"ágú\", 9: \"sep\", 10: \"okt\", 11: \"nóv\", 12: \"des\" },\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"su\",\r\n sunHighlight: true,\r\n todayTxt: \"Í dag\"\r\n },\r\n \"tw\": {\r\n dayLabels: {su: \"週日\", mo: \"週一\", tu: \"週二\", we: \"週三\", th: \"週四\", fr: \"週五\", sa: \"週六\"},\r\n monthLabels: {1: \"一月\", 2: \"二月\", 3: \"三月\", 4: \"四月\", 5: \"五月\", 6: \"六月\", 7: \"七月\", 8: \"八月\", 9: \"九月\", 10: \"十月\", 11: \"十一月\", 12: \"十二月\"},\r\n dateFormat: \"yyyy-mm-dd\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"今天\"\r\n },\r\n \"lv\": {\r\n dayLabels: { su: \"S\", mo: \"P\", tu: \"O\", we: \"T\", th: \"C\", fr: \"P\", sa: \"S\" },\r\n monthLabels: {1: \"Janv\", 2: \"Febr\", 3: \"Marts\", 4: \"Apr\", 5: \"Maijs\", 6: \"Jūn\", 7: \"Jūl\", 8: \"Aug\", 9: \"Sept\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\"},\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Šodien\"\r\n },\r\n \"et\": {\r\n dayLabels: { su: \"P\", mo: \"E\", tu: \"T\", we: \"K\", th: \"N\", fr: \"R\", sa: \"L\" },\r\n monthLabels: {1: \"Jaan\", 2: \"Veebr\", 3: \"Märts\", 4: \"Apr\", 5: \"Mai\", 6: \"Juuni\", 7: \"Juuli\", 8: \"Aug\", 9: \"Sept\", 10: \"Okt\", 11: \"Nov\", 12: \"Dets\"},\r\n dateFormat: \"dd.mm.yyyy\",\r\n firstDayOfWeek: \"mo\",\r\n sunHighlight: true,\r\n todayTxt: \"Täna\"\r\n }\r\n };\r\n\r\n getLocaleOptions(locale = DEFAULT_LOCALE): IMyOptions {\r\n // Convert locale to lowercase - i.e. support passing uppercase region subtags\r\n const lowerCaseLocale = locale.toLowerCase()\r\n // If locale exists, return it, else return default locale (en)\r\n return this.locales.hasOwnProperty(lowerCaseLocale) ? this.locales[lowerCaseLocale] : this.locales[DEFAULT_LOCALE];\r\n }\r\n}\r\n","export enum Year {\r\n min = 1000, \r\n max = 9999\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {IMyOptions} from \"../interfaces/my-options.interface\";\r\nimport {Year} from \"../enums/year.enum\";\r\nimport {DefaultView} from \"../enums/default-view.enum\";\r\nimport {CalAnimation} from \"../enums/cal-animation.enum\";\r\n\r\n@Injectable()\r\nexport class DefaultConfigService {\r\n private defaultConfig: IMyOptions = {\r\n dateRange: false,\r\n inline: false,\r\n dayLabels: {su: \"Sun\", mo: \"Mon\", tu: \"Tue\", we: \"Wed\", th: \"Thu\", fr: \"Fri\", sa: \"Sat\"},\r\n monthLabels: {1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dec\"},\r\n dateFormat: \"yyyy-mm-dd\",\r\n defaultView: DefaultView.Date,\r\n firstDayOfWeek: \"mo\",\r\n satHighlight: false,\r\n sunHighlight: true,\r\n highlightDates: [],\r\n markCurrentDay: true,\r\n markCurrentMonth: true,\r\n markCurrentYear: true,\r\n monthSelector: true,\r\n yearSelector: true,\r\n disableHeaderButtons: true,\r\n showWeekNumbers: false,\r\n selectorHeight: \"266px\",\r\n selectorWidth: \"266px\",\r\n disableUntil: {year: 0, month: 0, day: 0},\r\n disableSince: {year: 0, month: 0, day: 0},\r\n disableDates: [],\r\n disableDateRanges: [],\r\n disableWeekends: false,\r\n disableWeekdays: [],\r\n enableDates: [],\r\n markDates: [],\r\n markWeekends: {marked: false, color: \"\"},\r\n alignSelectorRight: false,\r\n openSelectorTopOfInput: false,\r\n closeSelectorOnDateSelect: true,\r\n closeSelectorOnDocumentClick: true,\r\n minYear: Year.min,\r\n maxYear: Year.max,\r\n showSelectorArrow: true,\r\n appendSelectorToBody: false,\r\n focusInputOnDateSelect: true,\r\n moveFocusByArrowKeys: true,\r\n dateRangeDatesDelimiter: \" - \",\r\n inputFieldValidation: true,\r\n showMonthNumber: true,\r\n todayTxt: \"\",\r\n showFooterToday: false,\r\n calendarAnimation: {in: CalAnimation.None, out: CalAnimation.None},\r\n viewChangeAnimation: true,\r\n rtl: false,\r\n stylesData: {selector: \"\", styles: \"\"},\r\n divHostElement: {enabled: false, placeholder: \"\"},\r\n ariaLabelPrevMonth: \"Previous Month\",\r\n ariaLabelNextMonth: \"Next Month\"\r\n };\r\n\r\n public getDefaultConfig() {\r\n return this.defaultConfig;\r\n }\r\n}\r\n","export enum CalToggle {\r\n Open = 1, \r\n CloseByDateSel = 2, \r\n CloseByCalBtn = 3, \r\n CloseByOutClick = 4, \r\n CloseByEsc = 5\r\n}\r\n","import {Directive, Input, ComponentRef, ElementRef, ViewContainerRef, Renderer2, ChangeDetectorRef, \r\n forwardRef, EventEmitter, Output, SimpleChanges, OnChanges, HostListener, OnDestroy} from \"@angular/core\";\r\nimport {AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from \"@angular/forms\";\r\nimport {CalendarComponent} from \"./components/calendar/calendar.component\";\r\nimport {IMyDate} from \"./interfaces/my-date.interface\";\r\nimport {IMyOptions} from \"./interfaces/my-options.interface\";\r\nimport {IMyDateModel} from \"./interfaces/my-date-model.interface\";\r\nimport {IMyDateRange} from \"./interfaces/my-date-range.interface\";\r\nimport {IMyRangeDateSelection} from \"./interfaces/my-range-date-selection.interface\";\r\nimport {IMyCalendarViewChanged} from \"./interfaces/my-calendar-view-changed.interface\";\r\nimport {IMyInputFieldChanged} from \"./interfaces/my-input-field-changed.interface\";\r\nimport {IMySelectorPosition} from \"./interfaces/my-selector-pos.interface\";\r\nimport {IMyValidateOptions} from \"./interfaces/my-validate-options.interface\";\r\nimport {IMyDefaultMonth} from \"./interfaces/my-default-month.interface\";\r\nimport {LocaleService} from \"./services/angular-mydatepicker.locale.service\";\r\nimport {UtilService} from \"./services/angular-mydatepicker.util.service\";\r\nimport {DefaultConfigService} from \"./services/angular-mydatepicker.config.service\";\r\nimport {CalToggle} from \"./enums/cal-toggle.enum\";\r\nimport {Year} from \"./enums/year.enum\";\r\nimport {KeyCode} from \"./enums/key-code.enum\";\r\nimport {CalAnimation} from \"./enums/cal-animation.enum\";\r\nimport {HeaderAction} from \"./enums/header-action.enum\";\r\nimport {ActiveView} from \"./enums/active-view.enum\";\r\nimport {KEYUP, BLUR, EMPTY_STR, DISABLED, CLICK, BODY, VALUE, PREVENT_CLOSE_TIMEOUT, OPTIONS, DEFAULT_MONTH, \r\n LOCALE, OBJECT, PX, INNER_HTML, ANIMATION_END, ANIMATION_TIMEOUT} from \"./constants/constants\";\r\n\r\nconst NGX_DP_VALUE_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AngularMyDatePickerDirective),\r\n multi: true\r\n};\r\n\r\nconst NGX_DP_VALIDATORS = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => AngularMyDatePickerDirective),\r\n multi: true\r\n};\r\n\r\n@Directive({\n selector: \"[angular-mydatepicker]\",\n exportAs: \"angular-mydatepicker\",\n providers: [UtilService, LocaleService, DefaultConfigService, NGX_DP_VALUE_ACCESSOR, NGX_DP_VALIDATORS],\n standalone: false\n})\r\nexport class AngularMyDatePickerDirective implements OnChanges, OnDestroy, ControlValueAccessor, Validator {\r\n @Input() options: IMyOptions;\r\n @Input() locale: string;\r\n @Input() defaultMonth: IMyDefaultMonth = {defMonth: EMPTY_STR, overrideSelection: false};\r\n\r\n @Output() dateChanged: EventEmitter<IMyDateModel> = new EventEmitter<IMyDateModel>();\r\n @Output() inputFieldChanged: EventEmitter<IMyInputFieldChanged> = new EventEmitter<IMyInputFieldChanged>();\r\n @Output() calendarViewChanged: EventEmitter<IMyCalendarViewChanged> = new EventEmitter<IMyCalendarViewChanged>();\r\n @Output() calendarToggle: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() rangeDateSelection: EventEmitter<IMyRangeDateSelection> = new EventEmitter<IMyRangeDateSelection>();\r\n @Output() viewActivated: EventEmitter<ActiveView> = new EventEmitter<ActiveView>();\r\n\r\n private cRef: ComponentRef<CalendarComponent> = null;\r\n private hostText: string = EMPTY_STR;\r\n private preventClose: boolean = false;\r\n private disabled = false;\r\n private selectedValue: any = null;\r\n\r\n private opts: IMyOptions;\r\n\r\n onChangeCb: (_: any) => void = () => { };\r\n onTouchedCb: () => void = () => { };\r\n\r\n constructor(private localeService: LocaleService,\r\n private utilService: UtilService,\r\n private vcRef: ViewContainerRef,\r\n private renderer: Renderer2,\r\n private cdr: ChangeDetectorRef,\r\n private elem: ElementRef,\r\n private config: DefaultConfigService) {\r\n this.opts = this.config.getDefaultConfig();\r\n this.parseOptions(this.opts);\r\n }\r\n\r\n @HostListener(KEYUP, [\"$event\"]) onKeyUp(event: any) {\r\n const keyCode: number = this.utilService.getKeyCodeFromEvent(event);\r\n if (this.ignoreKeyPress(keyCode)) {\r\n return;\r\n }\r\n \r\n if (keyCode === KeyCode.esc) {\r\n this.closeSelector(CalToggle.CloseByEsc);\r\n }\r\n else {\r\n const {dateRange, dateFormat, monthLabels, dateRangeDatesDelimiter} = this.opts;\r\n const value: string = this.getHostValue();\r\n\r\n let dateModel: IMyDateModel = null;\r\n let valid: boolean = false;\r\n let validateOpts: IMyValidateOptions = null;\r\n if (!dateRange) {\r\n validateOpts = {validateDisabledDates: true, selectedValue: this.utilService.getSelectedValue(this.selectedValue, false)};\r\n const date: IMyDate = this.utilService.isDateValid(value, this.opts, validateOpts);\r\n valid = this.utilService.isInitializedDate(date);\r\n if (valid) {\r\n dateModel = this.utilService.getDateModel(date, null, dateFormat, monthLabels, dateRangeDatesDelimiter);\r\n }\r\n }\r\n else {\r\n validateOpts = {validateDisabledDates: true, selectedValue: this.utilService.getSelectedValue(this.selectedValue, true)};\r\n const range = this.utilService.isDateValidDateRange(value, this.opts, validateOpts);\r\n const {begin, end} = range;\r\n valid = this.utilService.isInitializedDate(begin) && this.utilService.isInitializedDate(end);\r\n if (valid) {\r\n dateModel = this.utilService.getDateModel(null, range, dateFormat, monthLabels, dateRangeDatesDelimiter);\r\n }\r\n }\r\n\r\n this.onChangeCb(dateModel);\r\n this.emitInputFieldChanged(value, valid);\r\n }\r\n }\r\n\r\n @HostListener(BLUR) onBlur() {\r\n const {inputFieldValidation, dateRange, dateFormat, monthLabels, dateRangeDatesDelimiter, closeSelectorOnDateSelect} = this.opts;\r\n\r\n if (inputFieldValidation) {\r\n const value: string = this.getHostValue();\r\n\r\n let valid: boolean = false;\r\n let validateOpts: IMyValidateOptions = null;\r\n if (!dateRange) {\r\n validateOpts = {validateDisabledDates: true, selectedValue: this.utilService.getSelectedValue(this.selectedValue, false)};\r\n const date: IMyDate = this.utilService.isDateValid(value, this.opts, validateOpts);\r\n valid = this.utilService.isInitializedDate(date);\r\n if (valid && this.hostText !== value) {\r\n // Valid date\r\n const dateModel: IMyDateModel = this.utilService.getDateModel(date, null, dateFormat, monthLabels, dateRangeDatesDelimiter);\r\n this.emitDateChanged(dateModel);\r\n this.updateModel(dateModel);\r\n if (closeSelectorOnDateSelect) {\r\n this.closeSelector(CalToggle.CloseByDateSel);\r\n }\r\n }\r\n }\r\n else {\r\n validateOpts = {validateDisabledDates: true, selectedValue: this.utilService.getSelectedValue(this.selectedValue, true)};\r\n const dateRange: IMyDateRange = this.utilService.isDateValidDateRange(value, this.opts, validateOpts);\r\n const {begin, end} = dateRange;\r\n valid = this.utilService.isInitializedDate(begin) && this.utilService.isInitializedDate(end);\r\n if (valid && this.hostText !== value) {\r\n // Valid date range\r\n const dateModel: IMyDateModel = this.utilService.getDateModel(null, dateRange, dateFormat, monthLabels, dateRangeDatesDelimiter);\r\n this.emitDateChanged(dateModel);\r\n this.updateModel(dateModel);\r\n if (closeSelectorOnDateSelect) {\r\n this.closeSelector(CalToggle.CloseByDateSel);\r\n }\r\n }\r\n }\r\n\r\n if (!valid && this.hostText !== value) {\r\n if (value === EMPTY_STR) {\r\n this.clearDate();\r\n }\r\n else {\r\n this.onChangeCb(null);\r\n }\r\n }\r\n\r\n this.hostText = value;\r\n }\r\n\r\n this.onTouchedCb();\r\n }\r\n\r\n private onClickWrapper = (event: any) => this.onClick(event);\r\n\r\n private onClick(event: any) {\r\n if (this.opts.closeSelectorOnDocumentClick && !this.preventClose && event.target && this.cRef \r\n && this.elem.nativeElement !== event.target && !this.cRef.location.nativeElement.contains(event.target) \r\n && !this.disabled) {\r\n this.closeSelector(CalToggle.CloseByOutClick);\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.hasOwnProperty(LOCALE)) {\r\n this.setLocaleOptions();\r\n }\r\n\r\n if (changes.hasOwnProperty(DEFAULT_MONTH)) {\r\n let dm: any = changes[DEFAULT_MONTH].currentValue;\r\n if (typeof dm === OBJECT) {\r\n if (!dm.overrideSelection) {\r\n dm.overrideSelection = false;\r\n }\r\n }\r\n else {\r\n dm = {defMonth: dm, overrideSelection: false};\r\n }\r\n \r\n this.defaultMonth = dm;\r\n }\r\n\r\n if (changes.hasOwnProperty(OPTIONS)) {\r\n this.parseOptions(changes[OPTIONS].currentValue);\r\n }\r\n\r\n if (this.cRef) {\r\n this.cRef.instance.refreshComponent(this.opts, this.defaultMonth, this.selectedValue, this.getHostValue());\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.closeCalendar();\r\n }\r\n\r\n public setLocaleOptions(): void {\r\n const opts: IMyOptions = this.localeService.getLocaleOptions(this.locale);\r\n Object.keys(opts).forEach((k) => {\r\n (<IMyOptions> this.opts)[k] = opts[k];\r\n });\r\n }\r\n\r\n public parseOptions(opts: IMyOptions): void {\r\n if (opts) {\r\n Object.keys(opts).forEach((k) => {\r\n (<IMyOptions> this.opts)[k] = opts[k];\r\n });\r\n }\r\n\r\n const {minYear, maxYear, openSelectorTopOfInput, inline} = this.opts;\r\n\r\n if (minYear < Year.min) {\r\n this.opts.minYear = Year.min;\r\n }\r\n\r\n if (maxYear > Year.max) {\r\n this.opts.maxYear = Year.max;\r\n }\r\n\r\n if (openSelectorTopOfInput || inline) {\r\n this.opts.showSelectorArrow = false;\r\n }\r\n\r\n if (inline) {\r\n this.openCalendar();\r\n }\r\n }\r\n\r\n public writeValue(value: any): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n let validateOpts: IMyValidateOptions = null;\r\n const {dateFormat, monthLabels, dateRangeDatesDelimiter, inline} = this.opts;\r\n\r\n if (!value) {\r\n this.setHostValue(EMPTY_STR);\r\n this.emitInputFieldChanged(EMPTY_STR, false);\r\n\r\n if (this.cRef) {\r\n this.cRef.instance.resetDateValue();\r\n }\r\n }\r\n else if (!value.isRange && value.singleDate) {\r\n // single date\r\n let {date, jsDate} = value.singleDate;\r\n if (!date) {\r\n date = this.utilService.jsDateToMyDate(jsDate);\r\n }\r\n \r\n const formatted: string = this.utilService.formatDate(date, dateFormat, monthLabels);\r\n\r\n validateOpts = {validateDisabledDates: false, selectedValue: this.utilService.getSelectedValue(this.selectedValue, false)};\r\n const valid: boolean = this.utilService.isInitializedDate(this.utilService.isDateValid(formatted, this.opts, validateOpts));\r\n if (valid) {\r\n this.setHostValue(formatted);\r\n this.emitInputFieldChanged(formatted, valid);\r\n this.setSelectedValue(this.utilService.getDateModel(date, null, dateFormat, monthLabels, dateRangeDatesDelimiter));\r\n\r\n if (this.cRef) {\r\n this.cRef.instance.refreshComponent(this.opts, this.defaultMonth, this.selectedValue, this.getHostValue());\r\n }\r\n }\r\n }\r\n else if (value.isRange && value.dateRange) {\r\n // date range\r\n let {beginDate, beginJsDate, endDate, endJsDate} = value.dateRange;\r\n if (!beginDate || !endDate) {\r\n beginDate = this.utilService.jsDateToMyDate(beginJsDate);\r\n endDate = this.utilService.jsDateToMyDate(endJsDate);\r\n }\r\n\r\n const formatted: string = this.utilService.formatDate(beginDate, dateFormat, monthLabels) + dateRangeDatesDelimiter +\r\n this.utilService.formatDate(endDate, dateFormat, monthLabels);\r\n validateOpts = {validateDisabledDates: false, selectedValue: this.utilService.getSelectedValue(this.selectedValue, true)};\r\n const {begin, end} = this.utilService.isDateValidDateRange(formatted, this.opts, validateOpts);\r\n const valid: boolean = this.utilService.isInitializedDate(begin) && this.utilService.isInitializedDate(end);\r\n if (valid) {\r\n this.setHostValue(formatted);\r\n this.emitInputFieldChanged(formatted, valid);\r\n\r\n const dateRange: IMyDateRange = {begin: beginDate, end: endDate};\r\n this.setSelectedValue(this.utilService.getDateModel(null, dateRange, dateFormat, monthLabels, dateRangeDatesDelimiter));\r\n\r\n if (this.cRef) {\r\n this.cRef.instance.refreshComponent(this.opts, this.defaultMonth, this.selectedValue, this.getHostValue());\r\n }\r\n }\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeCb = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchedCb = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.renderer.setProperty(this.elem.nativeElement, DISABLED, isDisabled);\r\n\r\n if (isDisabled) {\r\n this.closeCalendar();\r\n }\r\n }\r\n\r\n public validate(c: AbstractControl): { [p: string]: any } {\r\n const value: string = this.getHostValue();\r\n\r\n if (value === null || value === EMPTY_STR) {\r\n return null;\r\n }\r\n\r\n let validateOpts: IMyValidateOptions = null;\r\n if (!this.opts.dateRange) {\r\n validateOpts = {validateDisabledDates: true, selectedValue: this.utilService.getSelectedValue(this.selectedValue, false)};\r\n const date: IMyDate = this.utilService.isDateValid(value, this.opts, validateOpts);\r\n if (!this.utilService.isInitializedDate(date)) {\r\n return {invalidDateFormat: true};\r\n }\r\n }\r\n else {\r\n validateOpts = {validateDisabledDates: true, selectedValue: this.utilService.getSelectedValue(this.selectedValue, true)};\r\n const {begin, end} = this.utilService.isDateValidDateRange(value, this.opts, validateOpts);\r\n if (!this.utilService.isInitializedDate(begin) || !this.utilService.isInitializedDate(end)) {\r\n return {invalidDateFormat: true};\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public openCalendar(): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.preventClose = true;\r\n this.cdr.detectChanges();\r\n if (this.cRef === null) {\r\n this.cRef = this.vcRef.createComponent(CalendarComponent);\r\n this.appendSelector(this.cRef.location.nativeElement);\r\n this.cRef.instance.initializeComponent(\r\n this.opts,\r\n this.defaultMonth,\r\n this.selectedValue,\r\n this.getHostValue(),\r\n this.getSelectorPosition(this.elem.nativeElement),\r\n (dm: IMyDateModel, close: boolean) => {\r\n this.focusToInput();\r\n this.emitDateChanged(dm);\r\n this.emitInputFieldChanged(this.utilService.getFormattedDate(dm), true);\r\n this.updateModel(dm);\r\n if (close) {\r\n this.closeSelector(CalToggle.CloseByDateSel);\r\n }\r\n },\r\n (cvc: IMyCalendarViewChanged) => {\r\n this.emitCalendarChanged(cvc);\r\n },\r\n (rds: IMyRangeDateSelection) => {\r\n this.emitRangeDateSelection(rds);\r\n },\r\n (va: ActiveView) => {\r\n this.emitViewActivated(va);\r\n },\r\n () => {\r\n this.closeSelector(CalToggle.CloseByEsc);\r\n }\r\n );\r\n this.emitCalendarToggle(CalToggle.Open);\r\n\r\n if (!this.opts.inline) {\r\n document.addEventListener(CLICK, this.onClickWrapper);\r\n }\r\n }\r\n setTimeout(() => {\r\n this.preventClose = false;\r\n }, PREVENT_CLOSE_TIMEOUT);\r\n }\r\n\r\n public closeCalendar(): void {\r\n this.closeSelector(CalToggle.CloseByCalBtn);\r\n }\r\n\r\n public toggleCalendar(): boolean | null {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n const isOpen: boolean = this.cRef === null;\r\n\r\n if (isOpen) {\r\n this.openCalendar();\r\n }\r\n else {\r\n this.closeSelector(CalToggle.CloseByCalBtn);\r\n }\r\n return isOpen;\r\n }\r\n\r\n public clearDate(): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n const {inline} = this.opts;\r\n\r\n this.setHostValue(EMPTY_STR);\r\n this.emitDateChanged({\r\n isRange: this.opts.dateRange,\r\n singleDate: {\r\n date: this.utilService.resetDate(),\r\n jsDate: null,\r\n formatted: EMPTY_STR,\r\n epoc: 0\r\n },\r\n dateRange: {\r\n beginDate: this.utilService.resetDate(),\r\n beginJsDate: null,\r\n beginEpoc: 0,\r\n endDate: this.utilService.resetDate(),\r\n endJsDate: null,\r\n endEpoc: 0,\r\n formatted: EMPTY_STR\r\n }\r\n });\r\n\r\n this.onChangeCb(null);\r\n this.onTouchedCb();\r\n\r\n if (this.cRef) {\r\n this.cRef.instance.clearDate();\r\n }\r\n\r\n if (!inline) {\r\n this.closeSelector(CalToggle.CloseByCalBtn);\r\n }\r\n }\r\n\r\n public isDateValid(): boolean {\r\n const value: string = this.getHostValue();\r\n\r\n if (value === null || value === EMPTY_STR) {\r\n return false;\r\n }\r\n\r\n let validateOpts: IMyValidateOptions = null;\r\n if (!this.opts.dateRange) {\r\n validateOpts = {validateDisabledDates: true, selectedValue: this.utilService.getSelectedValue(this.selectedValue, false)};\r\n const date: IMyDate = this.utilService.isDateValid(value, this.opts, validateOpts);\r\n if (this.utilService.isInitializedDate(date)) {\r\n this.emitInputFieldChanged(value, true);\r\n return true;\r\n }\r\n }\r\n else {\r\n validateOpts = {validateDisabledDates: true, selectedValue: this.utilService.getSelectedValue(this.selectedValue, true)};\r\n const {begin, end} = this.utilService.isDateValidDateRange(value, this.opts, validateOpts);\r\n if (this.utilService.isInitializedDate(begin) && this.utilService.isInitializedDate(end)) {\r\n this.emitInputFieldChanged(value, true);\r\n return true;\r\n }\r\n }\r\n \r\n this.emitInputFieldChanged(value, false);\r\n return false;\r\n }\r\n\r\n public headerAction(headerAction: HeaderAction): void {\r\n if (this.cRef) {\r\n this.cRef.instance.headerAction(headerAction);\r\n }\r\n }\r\n\r\n public setHostValue(value: string): void {\r\n const {divHostElement} = this.opts;\r\n this.hostText = value;\r\n const valueType: string = !divHostElement.enabled ? VALUE : INNER_HTML;\r\n value = valueType === INNER_HTML && value === EMPTY_STR ? divHostElement.placeholder : value;\r\n this.renderer.setProperty(this.elem.nativeElement, valueType, value);\r\n }\r\n\r\n private ignoreKeyPress(keyCode: number): boolean {\r\n return keyCode === KeyCode.leftArrow || keyCode === KeyCode.rightArrow || keyCode === KeyCode.upArrow || keyCode === KeyCode.downArrow || keyCode === KeyCode.tab || keyCode === KeyCode.shift;\r\n }\r\n\r\n private onAnimateWrapper = (reason: number) => this.animationEnd(reason);\r\n\r\n private animationEnd(reason: number): void {\r\n if (this.cRef) {\r\n this.cRef.instance.selectorEl.nativeElement.removeEventListener(ANIMATION_END, this.onAnimateWrapper);\r\n this.removeComponent();\r\n this.emitCalendarToggle(reason);\r\n }\r\n }\r\n\r\n private closeSelector(reason: number): void {\r\n const {inline, calendarAnimation} = this.opts;\r\n \r\n if (this.cRef && !inline) {\r\n if (calendarAnimation.out !== CalAnimation.None) {\r\n const {instance} = this.cRef;\r\n instance.selectorEl.nativeElement.addEventListener(ANIMATION_END, this.onAnimateWrapper.bind(this, reason));\r\n instance.setCalendarAnimation(calendarAnimation, false);\r\n\r\n // In case the animationend event is not fired\r\n setTimeout(this.onAnimateWrapper.bind(this, reason), ANIMATION_TIMEOUT);\r\n }\r\n else {\r\n this.removeComponent();\r\n this.emitCalendarToggle(reason);\r\n }\r\n\r\n document.removeEventListener(CLICK, this.onClickWrapper);\r\n }\r\n }\r\n\r\n private removeComponent(): void {\r\n if (this.vcRef !== null) {\r\n this.vcRef.remove(this.vcRef.indexOf(this.cRef.hostView));\r\n this.cRef = null;\r\n }\r\n }\r\n \r\n private updateModel(model: IMyDateModel): void {\r\n this.setHostValue(this.utilService.getFormattedDate(model));\r\n this.onChangeCb(model);\r\n this.onTouchedCb();\r\n }\r\n\r\n private getHostValue(): string {\r\n const {value, innerHTML} = this.elem.nativeElement;\r\n return !this.opts.divHostElement.enabled ? value : innerHTML;\r\n }\r\n\r\n private focusToInput(): void {\r\n const {focusInputOnDateSelect, divHostElement} = this.opts;\r\n if (focusInputOnDateSelect && !divHostElement.enabled) {\r\n setTimeout(() => {\r\n this.elem.nativeElement.focus();\r\n });\r\n }\r\n }\r\n\r\n private emitDateChanged(dateModel: IMyDateModel): void {\r\n this.dateChanged.emit(dateModel);\r\n this.setSelectedValue(dateModel);\r\n }\r\n\r\n private setSelectedValue(dateModel: IMyDateModel): void {\r\n const {isRange, dateRange, singleDate} = dateModel;\r\n this.selectedValue = isRange ? dateRange : singleDate;\r\n }\r\n\r\n private emitInputFieldChanged(value: string, valid: boolean): void {\r\n this.inputFieldChanged.emit({value, dateFormat: this.opts.dateFormat, valid});\r\n }\r\n\r\n private emitCalendarChanged(cvc: IMyCalendarViewChanged): void {\r\n this.calendarViewChanged.emit(cvc);\r\n }\r\n\r\n private emitRangeDateSelection(rds: IMyRangeDateSelection): void {\r\n this.rangeDateSelection.emit(rds);\r\n }\r\n\r\n private emitViewActivated(va: ActiveView): void {\r\n this.viewActivated.emit(va);\r\n }\r\n\r\n private emitCalendarToggle(reason: number): void {\r\n this.calendarToggle.emit(reason);\r\n }\r\n\r\n private appendSelector(elem: any): void {\r\n if (this.opts.appendSelectorToBody) {\r\n document.querySelector(BODY).appendChild(elem);\r\n }\r\n }\r\n\r\n private getSelectorPosition(elem: any): IMySelectorPosition {\r\n let top: number = 0;\r\n let left: number = 0;\r\n\r\n const {appendSelectorToBody, openSelectorTopOfInput, selectorHeight, selectorWidth, showSelectorArrow, alignSelectorRight} = this.opts;\r\n\r\n if (appendSelectorToBody) {\r\n const b: any = document.body.getBoundingClientRect();\r\n const e: any = elem.getBoundingClientRect();\r\n top = e.top - b.top;\r\n left = e.left - b.left;\r\n }\r\n\r\n if (openSelectorTopOfInput) {\r\n top = top - this.getSelectorDimension(selectorHeight) - 2;\r\n }\r\n else {\r\n top = top + elem.offsetHeight + (showSelectorArrow ? 12 : 2);\r\n }\r\n\r\n if (alignSelectorRight) {\r\n left = left + elem.offsetWidth - this.getSelectorDimension(selectorWidth);\r\n }\r\n return {top: top + PX, left: left + PX};\r\n }\r\n\r\n private getSelectorDimension(value: string): number {\r\n return Number(value.replace(PX, EMPTY_STR));\r\n }\r\n}\r\n","import {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {NgModule} from \"@angular/core\";\r\n\r\nimport {CalendarComponent} from \"./components/calendar/calendar.component\";\r\nimport {SelectionBarComponent} from \"./components/selection-bar/selection-bar.component\";\r\nimport {DayViewComponent} from \"./components/day-view/day-view.component\";\r\nimport {MonthViewComponent} from \"./components/month-view/month-view.component\";\r\nimport {YearViewComponent} from \"./components/year-view/year-view.component\";\r\nimport {FooterBarComponent} from \"./components/footer-bar/footer-bar.component\";\r\n\r\nimport {AngularMyDatePickerDirective} from \"./angular-mydatepicker.input\";\r\nimport {AngularMyDatePickerCalendarDirective} from \"./directives/angular-mydatepicker-calendar.directive\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule],\r\n declarations: [\r\n CalendarComponent,\r\n SelectionBarComponent,\r\n DayViewComponent,\r\n MonthViewComponent,\r\n YearViewComponent,\r\n FooterBarComponent,\r\n AngularMyDatePickerDirective,\r\n AngularMyDatePickerCalendarDirective\r\n ],\r\n exports: [\r\n CalendarComponent,\r\n SelectionBarComponent,\r\n DayViewComponent,\r\n MonthViewComponent,\r\n YearViewComponent,\r\n FooterBarComponent,\r\n AngularMyDatePickerDirective,\r\n AngularMyDatePickerCalendarDirective\r\n ]\r\n})\r\nexport class AngularMyDatePickerModule { }\r\n","/*\r\n * Public API Surface of angular-mydatepicker\r\n */\r\nexport {AngularMyDatePickerModule} from \"./lib/angular-mydatepicker.module\";\r\nexport {AngularMyDatePickerDirective} from \"./lib/angular-mydatepicker.input\";\r\nexport {CalendarComponent} from \"./lib/components/calendar/calendar.component\";\r\nexport {DayViewComponent} from \"./lib/components/day-view/day-view.component\";\r\nexport {MonthViewComponent} from \"./lib/components/month-view/month-view.component\";\r\nexport {YearViewComponent} from \"./lib/components/year-view/year-view.component\";\r\nexport {SelectionBarComponent} from \"./lib/components/selection-bar/selection-bar.component\";\r\nexport { FooterBarComponent } from './lib/components/footer-bar/footer-bar.component';\r\n\r\nexport {UtilService} from \"./lib/services/angular-mydatepicker.util.service\";\r\nexport {DefaultConfigService} from \"./lib/services/angular-mydatepicker.config.service\";\r\nexport {LocaleService} from \"./lib/services/angular-mydatepicker.locale.service\";\r\n\r\nexport {AngularMyDatePickerCalendarDirective} from \"./lib/directives/angular-mydatepicker-calendar.directive\";\r\n\r\nexport {IMyCalendarDay} from \"./lib/interfaces/my-calendar-day.interface\";\r\nexport {IMyCalendarMonth} from \"./lib/interfaces/my-calendar-month.interface\";\r\nexport {IMyCalendarViewChanged} from \"./lib/interfaces/my-calendar-view-changed.interface\";\r\nexport {IMyCalendarYear} from \"./lib/interfaces/my-calendar-year.interface\";\r\nexport {IMyDate} from \"./lib/interfaces/my-date.interface\";\r\nexport {IMyDateFormat} from \"./lib/interfaces/my-date-format.interface\";\r\nexport {IMyDateModel} from \"./lib/interfaces/my-date-model.interface\";\r\nexport {IMyDateRange} from \"./lib/interfaces/my-date-range.interface\";\r\nexport {IMyDateRangeModel} from \"./lib/interfaces/my-date-range-model.interface\";\r\nexport {IMyDayLabels} from \"./lib/interfaces/my-day-labels.interface\";\r\nexport {IMyDefaultMonth} from \"./lib/interfaces/my-default-month.interface\";\r\nexport {IMyInputFieldChanged} from \"./lib/interfaces/my-input-field-changed.interface\";\r\nexport {IMyLocales} from \"./lib/interfaces/my-locale.interface\";\r\nexport {IMyDisabledDate} from \"./lib/interfaces/my-disabled-date.interface\";\r\nexport {IMyDisabledDates} from \"./lib/interfaces/my-disabled-dates.interface\";\r\nexport {IMyMarkedDate} from \"./lib/interfaces/my-marked-date.interface\";\r\nexport {IMyMarkedDates} from \"./lib/interfaces/my-marked-dates.interface\";\r\nexport {IMyMonth} from \"./lib/interfaces/my-month.interface\";\r\nexport {IMyMonthLabels} from \"./lib/interfaces/my-month-labels.interface\";\r\nexport {IMyOptions, IAngularMyDpOptions} from \"./lib/interfaces/my-options.interface\";\r\nexport {IMyRangeDateSelection} from \"./lib/interfaces/my-range-date-selection.interface\";\r\nexport {IMySelectorPosition} from \"./lib/interfaces/my-selector-pos.interface\";\r\nexport {IMySingleDateModel} from \"./lib/interfaces/my-single-date-model.interface\";\r\nexport {IMyWeek} from \"./lib/interfaces/my-week.interface\";\r\nexport {IMyWeekday} from \"./lib/interfaces/my-weekday.interface\";\r\nexport {IMyStyles} from \"./lib/interfaces/my-styles.interface\";\r\nexport {IMyDivHostElement} from \"./lib/interfaces/my-div-host-element.interface\";\r\nexport {IMyCalendarAnimation} from \"./lib/interfaces/my-calendar-animation.interface\";\r\n\r\nexport {CalToggle} from \"./lib/enums/cal-toggle.enum\";\r\nexport {KeyCode} from \"./lib/enums/key-code.enum\";\r\nexport {KeyName} from \"./lib/enums/key-name.enum\";\r\nexport {MonthId} from \"./lib/enums/month-id.enum\";\r\nexport {Year} from \"./lib/enums/year.enum\";\r\nexport {DefaultView} from \"./lib/enums/default-view.enum\";\r\nexport {ActiveView} from \"./lib/enums/active-view.enum\";\r\nexport {CalAnimation} from \"./lib/enums/cal-animation.enum\";\r\nexport {HeaderAction} from \"./lib/enums/header-action.enum\";\r\n\r\nexport * from \"./lib/constants/constants\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.UtilService","i3.SelectionBarComponent","i4.DayViewComponent","i5.MonthViewComponent","i6.YearViewComponent","i7.FooterBarComponent","i8.AngularMyDatePickerCalendarDirective","i1.LocaleService","i2.UtilService","i3.DefaultConfigService"],"mappings":"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"}