{"version":3,"file":"index-C0aXWhTy.js","sources":["../../../app/frontend/vue/src/components-tw/ui/tw-ui-chips/ChipElem.vue","../../../app/frontend/vue/src/utils/datecalc/index.js","../../../app/frontend/vue/src/components-tw/shared/s-datepicker/composables/use-check-input.js","../../../app/frontend/vue/src/components-tw/shared/s-datepicker/composables/use-variables.js","../../../app/frontend/vue/src/components-tw/shared/s-datepicker/composables/index.js","../../../app/frontend/vue/src/components-tw/shared/s-datepicker/composables/use-styles.js","../../../app/frontend/vue/src/components-tw/shared/s-datepicker/composables/use-set-dates.js","../../../app/frontend/vue/src/components-tw/shared/s-datepicker/composables/use-functionality.js","../../../app/frontend/vue/src/components-tw/shared/s-datepicker/index.vue"],"sourcesContent":["\n\n","import moment from 'moment';\nimport 'moment/dist/locale/ru';\n\nmoment.locale('ru');\n\nconst CAPIRALIZED_MONTHS = {\n weekdaysShort: ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'],\n weekdays: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],\n months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],\n};\n\nfunction getWeeksInMonth(date) {\n const startWeek = moment(date).weekday(0).startOf('month').week();\n const endWeek = moment(date).weekday(0).endOf('month').week();\n return (startWeek < endWeek) ? endWeek - startWeek + 1 : endWeek + (52 - startWeek) + 1;\n}\n\nfunction getRegistredMonths() {\n const months = CAPIRALIZED_MONTHS.months;\n return months;\n}\n\nfunction getNamedDays() {\n let days = CAPIRALIZED_MONTHS.weekdaysShort;\n days = days.map((day) => day.charAt(0).toUpperCase() + day.slice(1));\n return days;\n}\n\nfunction dateIsCorrect(d) {\n // функция проверки корректности даты\n // если дата не корректна, то возвращаем дату с последним днем месяца\n // функция принимает массив даты в формате [год, месяц, день] и возвращает то же самое\n const dateMoment = moment([d[2] || moment().year()], 'DD.MM.YYYY');\n if (!dateMoment.isValid()) {\n const lastDay = moment([d[0], d[1]]).endOf('month').date();\n d[2] = lastDay;\n }\n return d;\n}\n\n// ЧЕК ДАННЫХ ВВЕДЕННЫХ С КЛАВИАТУРЫ\nfunction validateDate(v, type, maxYear, minYear) {\n const datecheck = v.split('.');\n const newDates = {\n date: null,\n month: null,\n year: null,\n };\n if (datecheck[0]?.length >= 1) {\n datecheck[0] = Number(datecheck[0]) > 31 ? Math.min(Number(datecheck[0]), 31) : Math.max(Number(datecheck[0]), 1);\n newDates.date = datecheck[0];\n datecheck[0] = String(datecheck[0]).padStart(2, '0');\n }\n if (datecheck[1]?.length >= 1) {\n datecheck[1] = Number(datecheck[1]) > 12 ? Math.min(Number(datecheck[1]), 12) : Math.max(Number(datecheck[1]), 1);\n newDates.month = Number(datecheck[1]);\n datecheck[1] = String(datecheck[1]).padStart(2, '0');\n if (datecheck[1] === '02') {\n if (datecheck[0] > 29) {\n datecheck[0] = 29;\n }\n }\n }\n if (datecheck[2]?.length >= 4) {\n const cYear = maxYear || new Date().getFullYear();\n datecheck[2] = Number(datecheck[2]) > cYear ? cYear : Math.max(Number(datecheck[2]), minYear);\n newDates.year = datecheck[2];\n datecheck[2] = String(datecheck[2]);\n // проверка на валидность даты\n if (newDates.month === 2 && !moment([newDates.year, newDates.month - 1, newDates.date]).isValid()) {\n // if not valid, set the last day of the month\n datecheck[0] = moment([newDates.year, newDates.month - 1]).endOf('month').date();\n }\n }\n const newValue = datecheck.join('.');\n return { newValue, newDates };\n}\n\nexport {\n moment,\n getWeeksInMonth,\n validateDate,\n getRegistredMonths,\n getNamedDays,\n dateIsCorrect,\n};\n","import { validateDate } from '@front/utils/datecalc';\n\nexport default function useCheckInput(props, {\n inputFieldDate, newSelectedDate, newSelectedMonth, newSelectedYear, displayedDate, displayedMonth, displayedYear, currentYearDozen, maxYear, minYear,\n}) {\n function checkInputDate(event) {\n const value = inputFieldDate.value;\n if (props.type === 1) {\n const { newValue, newDates } = validateDate(value, props.type, maxYear, minYear);\n // Update newDates as moment object\n if (newDates.date) { newSelectedDate.value = newDates.date; displayedDate.value = newDates.date; }\n if (newDates.month) { newSelectedMonth.value = newDates.month - 1; displayedMonth.value = newDates.month - 1; }\n if (newDates.year) {\n newSelectedYear.value = newDates.year;\n displayedYear.value = newDates.year;\n currentYearDozen.value = Math.floor((displayedYear.value - 2000) / 12);\n }\n event.target.value = newValue;\n inputFieldDate.value = newValue;\n }\n if (props.type === 3) {\n // If value length is 4 then check by maxYear and minYear\n if (value.length === 4) {\n let newValue = Math.min(Number(value), maxYear);\n newValue = Math.max(Number(value), minYear);\n newSelectedYear.value = newValue;\n newSelectedDate.value = 1;\n newSelectedMonth.value = 0;\n displayedYear.value = newValue;\n inputFieldDate.value = String(newValue);\n } else {\n newSelectedYear.value = null;\n }\n } else {\n inputFieldDate.value = value;\n }\n }\n\n function onKeyDown(event) {\n const regex = props.type === 1 ? /[\\d.]/ : /[\\d]/;\n const removeRegex = props.type === 1 ? /[^0-9.]/g : /[^0-9]/g;\n const val = event.target.value;\n const maxl = props.type === 1 ? 10 : 4;\n // count of dots\n const dots = val.match(/\\./g) ? val.match(/\\./g).length : 0;\n\n if (!regex.test(event.data)) {\n // replace all non-regexp symbols\n event.target.value = val.replace(removeRegex, '');\n }\n if (dots > 2) {\n event.target.value = val.slice(0, -1);\n }\n if (val.length > maxl && event.key !== 'Backspace') {\n event.target.value = val.slice(0, maxl);\n }\n\n inputFieldDate.value = event.target.value;\n checkInputDate(event);\n }\n\n return {\n onKeyDown,\n checkInputDate,\n };\n}\n","import { ref, computed } from 'vue';\nimport moment from 'moment';\nimport 'moment/dist/locale/ru';\nimport { getRegistredMonths, getNamedDays } from '@front/utils/datecalc';\n\nexport default function useVariables(props) {\n moment.locale('ru', { months: getRegistredMonths() });\n\n const calendarWrapper = ref();\n // Месяца и дни недели\n const months = getRegistredMonths();\n const days = getNamedDays();\n\n const error = ref(props.errors);\n\n const dateinput = ref(null);\n\n // показать календарь\n const showCalendar = ref(false);\n\n // выбранный календарь (1 - дата, 2 - месяц, 3 - год)\n const selectedCalendar = ref(props.type);\n const baseFormat = { 1: 'DD.MM.YYYY', 2: 'MMMM, YYYY', 3: 'YYYY' }; // базовый формат даты для input\n const formatting = ref(props.format || baseFormat[props.type]); // формат даты для вывода, если не задан, то берем базовый\n\n const currentSelectedDate = ref(props.modelValue ? moment(props.modelValue, formatting.value) : moment.invalid()); // Выбранная дата для подсветки в календаре\n const inputFieldDate = ref(currentSelectedDate.value.isValid() ? currentSelectedDate.value.format(baseFormat[props.type]) : ''); // Значение ввода\n const initialSelectedDate = ref(props.modelValue); // Старое значение даты для отмены\n\n const newSelectedDate = ref();\n const newSelectedMonth = ref();\n const newSelectedYear = ref();\n\n const displayedDate = ref(1);\n const displayedMonth = ref(currentSelectedDate.value.isValid() ? currentSelectedDate.value.month() : moment().month());\n const displayedYear = ref(currentSelectedDate.value.isValid() ? currentSelectedDate.value.year() : moment().year());\n\n const restrictions = {\n min: moment(props.restrictions.min, 'DD.MM.YYYY'),\n max: moment(props.restrictions.max, 'DD.MM.YYYY'),\n };\n const maxYear = restrictions.max.year();\n const minYear = restrictions.min.year();\n\n const cYear = currentSelectedDate.value.isValid() ? currentSelectedDate.value.year() : moment().year();\n const currentYearDozen = ref(Math.floor((cYear - 2000) / 12));\n const currentYearDozenDiapason = ref(1);\n const currentYearDozenText = (i) => `${Number(i) * 12 + 2000}-${Number(i) * 12 + 11 + 2000}`;\n const years = computed(() => {\n // generate 12 years by currentYearDozen\n const y = [];\n\n for (let i = 0; i < 12; i += 1) {\n y.push(currentYearDozen.value * 12 + i + 2000);\n }\n\n return y;\n });\n\n const yearsDozens = computed(() => {\n const y = [];\n const l = currentYearDozenDiapason.value * 4 - 4;\n const r = currentYearDozenDiapason.value * 4 + 4;\n\n for (let i = l; i <= r; i += 1) {\n y.push(i);\n }\n\n return y;\n });\n\n // список дат для календаря\n const calendar = computed(() => {\n const startOfMonth = moment([displayedYear.value, displayedMonth.value]);\n const endOfMonth = moment(startOfMonth).endOf('month');\n let startDate = startOfMonth.clone().startOf('week'); // начало недели, в которую попадает первый день месяца\n\n const calendarMonth = [];\n\n while (startDate.isBefore(endOfMonth)) {\n const week = [];\n\n for (let i = 0; i < 7; i += 1) {\n week.push(startDate.clone().add(i, 'days').date());\n }\n\n calendarMonth.push(week);\n startDate = startDate.add(1, 'week');\n }\n\n return calendarMonth;\n });\n\n return {\n calendarWrapper,\n months,\n days,\n error,\n dateinput,\n showCalendar,\n selectedCalendar,\n baseFormat,\n formatting,\n currentSelectedDate,\n inputFieldDate,\n initialSelectedDate,\n newSelectedDate,\n newSelectedMonth,\n newSelectedYear,\n displayedDate,\n displayedMonth,\n displayedYear,\n restrictions,\n maxYear,\n minYear,\n currentYearDozen,\n currentYearDozenDiapason,\n currentYearDozenText,\n years,\n yearsDozens,\n calendar,\n };\n}\n","import useStyles from './use-styles';\nimport useCheckInput from './use-check-input';\nimport useSetDates from './use-set-dates';\nimport useVariables from './use-variables';\nimport useFunctionality from './use-functionality';\n\nexport default function useDatepicker(props, emits) {\n // Переменные для календаря\n const {\n calendarWrapper,\n months,\n days,\n error,\n dateinput,\n showCalendar,\n selectedCalendar,\n baseFormat,\n formatting,\n currentSelectedDate,\n inputFieldDate,\n initialSelectedDate,\n newSelectedDate,\n newSelectedMonth,\n newSelectedYear,\n displayedDate,\n displayedMonth,\n displayedYear,\n restrictions,\n maxYear,\n minYear,\n currentYearDozen,\n currentYearDozenDiapason,\n currentYearDozenText,\n years,\n yearsDozens,\n calendar,\n } = useVariables(props);\n\n // Классы для даты (выбранная, текущая, выходные, недоступная, для дня недели/месяца/года/дюжины лет)\n const {\n dateClass,\n monthClass,\n yearClass,\n yearClassDozens,\n placeholderText,\n } = useStyles(props, {\n displayedYear, displayedMonth, currentSelectedDate, newSelectedYear, newSelectedMonth, newSelectedDate, calendar, restrictions,\n });\n\n // Обработка нажатия клавиш (при вводе даты)\n const { onKeyDown } = useCheckInput(props, {\n inputFieldDate, newSelectedDate, newSelectedMonth, newSelectedYear, displayedDate, displayedMonth, displayedYear, currentYearDozen, maxYear, minYear,\n });\n\n // Сдвиг даты (месяц, год, дюжина лет)\n const {\n moveData, setNewDate, setMonth, setYear, setDozen,\n } = useSetDates(props, {\n restrictions,\n selectedCalendar,\n displayedYear,\n displayedMonth,\n displayedDate,\n currentYearDozen,\n currentYearDozenDiapason,\n currentSelectedDate,\n newSelectedDate,\n newSelectedMonth,\n newSelectedYear,\n error,\n initialSelectedDate,\n emits,\n });\n\n // Функционал календаря (открыть, закрыть, изменить дату)\n const {\n changeCalendar,\n cancel,\n declane,\n confirm,\n onClear,\n isChanged,\n openCalendar,\n } = useFunctionality(props, {\n currentSelectedDate,\n inputFieldDate,\n showCalendar,\n selectedCalendar,\n initialSelectedDate,\n newSelectedDate,\n newSelectedMonth,\n newSelectedYear,\n displayedDate,\n displayedMonth,\n displayedYear,\n currentYearDozen,\n dateinput,\n calendarWrapper,\n error,\n formatting,\n baseFormat,\n emits,\n });\n\n return {\n calendarWrapper,\n months,\n days,\n inputFieldDate,\n error,\n dateinput,\n showCalendar,\n selectedCalendar,\n currentSelectedDate,\n newSelectedDate,\n newSelectedMonth,\n newSelectedYear,\n initialSelectedDate,\n displayedDate,\n displayedMonth,\n displayedYear,\n currentYearDozen,\n currentYearDozenDiapason,\n currentYearDozenText,\n yearsDozens,\n calendar,\n dateClass,\n monthClass,\n yearClass,\n yearClassDozens,\n placeholderText,\n moveData,\n setNewDate,\n setMonth,\n setYear,\n setDozen,\n changeCalendar,\n cancel,\n declane,\n confirm,\n onClear,\n isChanged,\n openCalendar,\n years,\n onKeyDown,\n };\n}\n","import { computed } from 'vue';\nimport moment from 'moment';\n\nexport default function useStyles(props, {\n displayedYear, displayedMonth, currentSelectedDate, newSelectedYear, newSelectedMonth, newSelectedDate, calendar, restrictions,\n}) {\n // Стили для дат, месяцев и годов\n function dateClass(dateItem, i) {\n const dateClassList = ['_calendar-date'];\n const d = moment({ year: displayedYear.value, month: displayedMonth.value, day: dateItem });\n if (d.isSame(moment(), 'day')) {\n dateClassList.push('_calendar-date--current');\n }\n if (d.isSame(currentSelectedDate.value, 'day')) {\n dateClassList.push('_calendar-date--selected');\n }\n if (newSelectedYear.value && newSelectedMonth.value >= 0\n && newSelectedDate.value\n && d.isSame(moment({ year: newSelectedYear.value, month: newSelectedMonth.value, day: newSelectedDate.value }), 'day')) {\n dateClassList.push('_calendar-date--selected-new');\n }\n const isBeforeMin = d.isBefore(restrictions.min, 'day');\n const isAfterMax = d.isAfter(restrictions.max, 'day');\n const isFirstOrLastWeek = (i === 0 && dateItem > 7) || (i === (calendar.value.length - 1) && dateItem < 7);\n if (isBeforeMin || isAfterMax || isFirstOrLastWeek) {\n dateClassList.push('_calendar-date--disabled');\n }\n return dateClassList;\n }\n\n function monthClass(monthId) {\n const monthClassList = ['_calendar-date'];\n const curr = moment({ year: displayedYear.value, month: monthId }).startOf('month');\n if (currentSelectedDate.value && curr.isSame(currentSelectedDate.value, 'month')) {\n monthClassList.push('_calendar-date--selected');\n }\n if (monthId === newSelectedMonth.value && newSelectedYear.value === displayedYear.value) {\n monthClassList.push('_calendar-date--selected-new');\n }\n if (monthId === moment().month() && displayedYear.value === moment().year()) {\n monthClassList.push('_calendar-date--current');\n }\n const d = moment([displayedYear.value, monthId, 1]);\n const isBeforeMin = d.isBefore(restrictions.min, 'month');\n const isAfterMax = d.isAfter(restrictions.max, 'month');\n if (isBeforeMin || isAfterMax) {\n monthClassList.push('_calendar-date--disabled');\n }\n return monthClassList;\n }\n\n function yearClass(year) {\n const yearClassList = ['_calendar-date'];\n if (year === moment().year()) {\n yearClassList.push('_calendar-date--current');\n }\n const isSelectedYear = currentSelectedDate.value.isValid() ? currentSelectedDate.value.year() : '';\n if (year === isSelectedYear) {\n yearClassList.push('_calendar-date--selected');\n }\n if (year === newSelectedYear.value) {\n yearClassList.push('_calendar-date--selected-new');\n }\n const d = moment([year, 0, 1]);\n const isBeforeMin = d.isBefore(restrictions.min, 'year');\n const isAfterMax = d.isAfter(restrictions.max, 'year');\n if (isBeforeMin || isAfterMax) {\n yearClassList.push('_calendar-date--disabled');\n }\n return yearClassList;\n }\n\n function yearClassDozens(dozen) {\n const yearClassList = ['_calendar-date'];\n if (dozen === Math.floor((moment().year() - 2000) / 12)) {\n yearClassList.push('_calendar-date--current');\n }\n const selectedYear = currentSelectedDate.value.isValid() ? currentSelectedDate.value.year() : moment().year();\n if (dozen === Math.floor((selectedYear - 2000) / 12)) {\n yearClassList.push('_calendar-date--selected');\n }\n if (dozen === Math.floor((newSelectedYear.value - 2000) / 12)) {\n yearClassList.push('_calendar-date--selected-new');\n }\n return yearClassList;\n }\n\n const placeholderText = computed(() => {\n if (props.placeholder) { return props.placeholder; }\n if (props.type === 2) {\n return 'Выберите месяц и год';\n }\n if (props.type === 3) {\n return 'Выберите год';\n }\n return 'Введите дату';\n });\n\n return {\n dateClass,\n monthClass,\n yearClass,\n yearClassDozens,\n placeholderText,\n };\n}\n","import moment from 'moment';\n\nexport default function useSetDates(props, {\n restrictions, selectedCalendar,\n displayedYear, displayedMonth, displayedDate,\n currentYearDozen, currentYearDozenDiapason,\n currentSelectedDate, newSelectedDate, newSelectedMonth, newSelectedYear,\n error, emits, initialSelectedDate,\n}) {\n function moveData(i = 1) {\n const d = moment({ year: displayedYear.value, month: displayedMonth.value, day: displayedDate.value });\n if (selectedCalendar.value === 1) {\n const r = i === 1 ? d.add(i, 'months') : d.subtract(Math.abs(i), 'months');\n displayedMonth.value = r.month();\n displayedYear.value = r.year();\n } else if (selectedCalendar.value === 2) {\n displayedYear.value += i;\n // change currentYearDozen also\n currentYearDozen.value = Math.floor((displayedYear.value - 2000) / 12);\n } else if (selectedCalendar.value === 3) {\n // Для изменения дюжины лет нужно умножить i на 12, потому что каждая дюжина это 12 лет\n currentYearDozen.value += i;\n } else if (selectedCalendar.value === 4) {\n currentYearDozenDiapason.value += i;\n }\n }\n\n function setTypeCalendar() {\n if (selectedCalendar.value !== props.type) {\n selectedCalendar.value -= 1;\n }\n }\n\n function isNewAsOld(currentMoment, type = 'day') {\n const newDateMoment = moment({ year: newSelectedYear.value, month: newSelectedMonth.value, date: newSelectedDate.value });\n\n if (currentMoment.isSame(newDateMoment, type)) {\n newSelectedDate.value = currentSelectedDate.value.date();\n newSelectedMonth.value = currentSelectedDate.value.month();\n newSelectedYear.value = currentSelectedDate.value.year();\n return true;\n }\n return false;\n }\n\n function setNewDate(day, week) {\n let currentMoment = moment({ year: displayedYear.value, month: displayedMonth.value, date: day });\n if (week) moveData(day > 7 ? -1 : 1);\n\n if (currentMoment.isSame(currentSelectedDate.value, 'day')) {\n return;\n }\n if (newSelectedDate.value) {\n if (isNewAsOld(currentMoment, 'day')) return;\n }\n if (initialSelectedDate.value && !week && currentSelectedDate.value.isValid() && currentMoment.isSame(currentSelectedDate.value, 'day')) {\n return;\n }\n\n if (newSelectedDate.value === day && !week && props.type === 1) {\n newSelectedDate.value = null;\n return;\n }\n\n newSelectedDate.value = day;\n newSelectedMonth.value = displayedMonth.value;\n newSelectedYear.value = displayedYear.value;\n\n // Проверяем, что дата не выходит за рамки ограничений\n currentMoment = moment({ year: newSelectedYear.value, month: newSelectedMonth.value, date: newSelectedDate.value });\n const isBeforeMin = currentMoment.isBefore(restrictions.min, 'day');\n const isAfterMax = currentMoment.isAfter(restrictions.max, 'day');\n if (isBeforeMin || isAfterMax) {\n newSelectedDate.value = null;\n return;\n }\n\n if (error.value && (!currentSelectedDate.value || newSelectedDate.value !== currentSelectedDate.value.date())) {\n error.value = false;\n emits('update:error', false);\n }\n }\n\n function setMonth(i) {\n const oldMoment = initialSelectedDate.value ? moment(initialSelectedDate.value, 'DD.MM.YYYY') : null;\n const selectedMoment = currentSelectedDate.value;\n\n if (oldMoment && selectedMoment && selectedMoment.month() === i && displayedYear.value === selectedMoment.year()) {\n return;\n }\n if (props.type === 2 && i === newSelectedMonth.value && displayedYear.value === newSelectedYear.value) {\n newSelectedMonth.value = null;\n newSelectedDate.value = null;\n return;\n }\n\n displayedMonth.value = i;\n\n if (props.type === 2) {\n setNewDate(1, false);\n }\n\n setTypeCalendar();\n }\n\n function setYear(i) {\n if (props.type === 3 && i === newSelectedYear.value) {\n newSelectedYear.value = null;\n return;\n }\n\n displayedYear.value = i;\n currentYearDozen.value = Math.floor((displayedYear.value - 2000) / 12);\n\n if (props.type === 3) {\n displayedMonth.value = 0;\n setNewDate(1, false);\n }\n\n setTypeCalendar();\n }\n\n function setDozen(i) {\n currentYearDozen.value = i;\n selectedCalendar.value = props.type;\n }\n\n return {\n setNewDate,\n setMonth,\n setYear,\n setDozen,\n moveData,\n setTypeCalendar,\n isNewAsOld,\n };\n}\n","import { computed, watch } from 'vue';\nimport moment from 'moment';\nimport 'moment/dist/locale/ru';\nimport { onClickOutside } from '@vueuse/core';\nimport capitalize from 'lodash/capitalize';\n\nmoment.locale('ru');\n\nexport default function useFunctionality(props, {\n currentSelectedDate, inputFieldDate, showCalendar, selectedCalendar,\n initialSelectedDate, newSelectedDate, newSelectedMonth, newSelectedYear, displayedDate, displayedMonth, displayedYear, currentYearDozen,\n dateinput, calendarWrapper, error, formatting, baseFormat, emits,\n}) {\n // Сменить календарь\n function changeCalendar(i = 1) {\n if (selectedCalendar.value === i) {\n selectedCalendar.value = props.type;\n } else {\n selectedCalendar.value = i;\n }\n }\n\n // Вернуть исходное значение\n function cancel() {\n const isSelected = currentSelectedDate.value.isValid();\n\n if (isSelected) {\n displayedDate.value = currentSelectedDate.value.date() || 1;\n displayedMonth.value = currentSelectedDate.value.month() || moment().month();\n displayedYear.value = currentSelectedDate.value.year() || moment().year();\n }\n\n currentYearDozen.value = Math.floor(((isSelected ? currentSelectedDate.value.year() : moment().year()) - 2000) / 12);\n newSelectedDate.value = null;\n newSelectedMonth.value = null;\n newSelectedYear.value = null;\n }\n\n // Отмена\n function declane(e = true) {\n if (showCalendar.value) {\n showCalendar.value = false;\n\n if (e) {\n cancel();\n }\n\n inputFieldDate.value = currentSelectedDate.value.isValid() ? currentSelectedDate.value.format(baseFormat[props.type]) : '';\n emits('update:modelValue', initialSelectedDate.value);\n }\n }\n\n function confirm(enter) {\n // вызов валидатора. Если не прошла валидация, поле закрывается с ошибкой.\n if (props.validation) {\n const nd = moment({ year: newSelectedYear.value, month: newSelectedMonth.value, date: newSelectedDate.value }).toDate();\n const r = props.validation(nd);\n\n if (!r) {\n error.value = true;\n emits('update:error', true);\n } else {\n error.value = false;\n emits('update:error', false);\n }\n }\n\n if (newSelectedDate.value !== null) {\n let formattedDate = '';\n\n if (props.type === 1) {\n formattedDate = moment({ year: newSelectedYear.value, month: newSelectedMonth.value, date: newSelectedDate.value }).format('DD.MM.YYYY');\n } else if (props.type === 2) {\n // formattedDate = `${months[newSelectedMonth.value]}, ${newSelectedYear.value}`;\n formattedDate = capitalize(moment({ year: newSelectedYear.value, month: newSelectedMonth.value }).format('MMMM, YYYY'));\n } else if (props.type === 3) {\n formattedDate = moment([newSelectedYear.value, 0, 1]).format('YYYY');\n }\n\n currentSelectedDate.value = moment({ year: newSelectedYear.value, month: newSelectedMonth.value, date: newSelectedDate.value });\n initialSelectedDate.value = formattedDate;\n inputFieldDate.value = formattedDate;\n showCalendar.value = false;\n\n const returnDate = capitalize(moment({ year: newSelectedYear.value, month: newSelectedMonth.value || 0, date: newSelectedDate.value || 1 }).format(formatting.value));\n\n emits('update:modelValue', returnDate);\n\n if (enter) {\n // Убрать фокус с поля ввода\n dateinput.value.input.blur();\n }\n\n cancel();\n }\n }\n\n function onClear() {\n inputFieldDate.value = '';\n emits('update:modelValue', '');\n initialSelectedDate.value = '';\n currentSelectedDate.value = moment.invalid(); // Making the currentSelectedDate explicitly invalid\n error.value = false;\n newSelectedDate.value = null;\n newSelectedMonth.value = null;\n newSelectedYear.value = null;\n displayedDate.value = moment().date();\n displayedMonth.value = moment().month();\n displayedYear.value = moment().year();\n currentYearDozen.value = Math.floor((displayedYear.value - 2000) / 12);\n declane(true);\n emits('update:error', false);\n }\n\n const isChanged = computed(() => {\n // Сравниваем для типа \"год\"\n if (props.type === 3 && newSelectedYear.value) {\n return Number(newSelectedYear.value) !== Number(props.modelValue);\n }\n\n // Для даты и месяца, проверяем изменения\n if (newSelectedDate.value && newSelectedMonth.value >= 0 && newSelectedYear.value) {\n const newDateMoment = moment({ year: newSelectedYear.value, month: newSelectedMonth.value, date: newSelectedDate.value });\n const isSameDates = newDateMoment.isSame(currentSelectedDate.value, 'day');\n\n // Проверяем, изменилась ли дата относительно первоначальной\n return !isSameDates;\n }\n\n // Если дата не выбрана, считаем что изменений нет\n return false;\n });\n\n // Открыть календарь\n function openCalendar() {\n showCalendar.value = !showCalendar.value;\n }\n\n onClickOutside(calendarWrapper, () => {\n declane(false);\n });\n\n watch(() => props.error, (e) => {\n error.value = e;\n });\n\n // Отслеживаем изменение модели на случай, если она меняется из вне, например при асинхронной загрузке данных\n watch(() => props.modelValue, (value) => {\n if (value) {\n currentSelectedDate.value = moment(value, formatting.value);\n inputFieldDate.value = moment(value, formatting.value).format(baseFormat[props.type]);\n\n if (props.validation) {\n const r = props.validation(currentSelectedDate.value.toDate());\n\n if (!r) {\n error.value = true;\n emits('update:error', true);\n } else {\n error.value = false;\n emits('update:error', false);\n }\n }\n\n initialSelectedDate.value = value;\n displayedDate.value = currentSelectedDate.value.date() || 1;\n displayedMonth.value = currentSelectedDate.value.month() || moment().month();\n displayedYear.value = currentSelectedDate.value.year() || moment().year();\n } else {\n currentSelectedDate.value = moment.invalid();\n inputFieldDate.value = '';\n initialSelectedDate.value = '';\n }\n });\n\n return {\n // return only functions\n changeCalendar,\n cancel,\n declane,\n confirm,\n onClear,\n isChanged,\n openCalendar,\n };\n}\n","\n\n"],"names":["props","__props","emits","__emit","iconColor","computed","checked","iconSize","size","rightIcon","close","dropdown","plus","click","classChip","disabled","icon","value","moment","locale","CAPIRALIZED_MONTHS","weekdaysShort","weekdays","months","getRegistredMonths","useCheckInput","inputFieldDate","newSelectedDate","newSelectedMonth","newSelectedYear","displayedDate","displayedMonth","displayedYear","currentYearDozen","maxYear","minYear","checkInputDate","event","type","newValue","newDates","v","datecheck","split","date","month","year","_a","length","Number","Math","min","max","String","padStart","_b","_c","cYear","Date","getFullYear","isValid","endOf","join","validateDate","floor","target","onKeyDown","regex","removeRegex","val","maxl","dots","match","test","data","replace","slice","key","useVariables","calendarWrapper","ref","days","map","day","charAt","toUpperCase","getNamedDays","error","errors","dateinput","showCalendar","selectedCalendar","baseFormat","formatting","format","currentSelectedDate","modelValue","invalid","initialSelectedDate","restrictions","currentYearDozenDiapason","years","y","i","push","yearsDozens","l","r","calendar","startOfMonth","endOfMonth","startDate","clone","startOf","calendarMonth","isBefore","week","add","currentYearDozenText","useDatepicker","dateClass","monthClass","yearClass","yearClassDozens","placeholderText","dateItem","dateClassList","d","isSame","isBeforeMin","isAfterMax","isAfter","isFirstOrLastWeek","monthId","monthClassList","curr","yearClassList","dozen","selectedYear","placeholder","useStyles","moveData","setNewDate","setMonth","setYear","setDozen","subtract","abs","setTypeCalendar","isNewAsOld","currentMoment","newDateMoment","oldMoment","selectedMoment","useSetDates","changeCalendar","cancel","declane","confirm","onClear","isChanged","openCalendar","isSelected","e","onClickOutside","watch","validation","toDate","enter","nd","formattedDate","capitalize","returnDate","input","blur","useFunctionality","isMobile","window","innerWidth","addEventListener","document","body","style","overflow"],"mappings":"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"}