@transkripid/flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork
1 lines • 8.16 kB
Source Map (JSON)
{"version":3,"file":"helpers.mjs","sources":["../../../src/components/Datepicker/helpers.ts"],"sourcesContent":["export enum Views {\n Days,\n Months,\n Years,\n Decades,\n}\n\nexport enum WeekStart {\n Sunday,\n Monday,\n Tuesday,\n Wednesday,\n Thursday,\n Friday,\n Saturday,\n}\n\nexport const isDateInRange = (date: Date, minDate?: Date, maxDate?: Date): boolean => {\n const dateTime = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();\n\n if (minDate && maxDate) {\n const minDateTime = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()).getTime();\n const maxDateTime = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()).getTime();\n return dateTime >= minDateTime && dateTime <= maxDateTime;\n }\n\n if (minDate) {\n const minDateTime = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()).getTime();\n return dateTime >= minDateTime;\n }\n\n if (maxDate) {\n const maxDateTime = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()).getTime();\n return dateTime <= maxDateTime;\n }\n\n return true;\n};\n\nexport const isDateEqual = (date: Date, selectedDate: Date): boolean => {\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n selectedDate = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), selectedDate.getDate());\n\n return date.getTime() === selectedDate.getTime();\n};\n\nexport const getFirstDateInRange = (date: Date, minDate?: Date, maxDate?: Date): Date => {\n if (!isDateInRange(date, minDate, maxDate)) {\n if (minDate && date < minDate) {\n date = minDate;\n } else if (maxDate && date > maxDate) {\n date = maxDate;\n }\n }\n return date;\n};\n\nexport const getFirstDayOfTheMonth = (date: Date, weekStart: WeekStart): Date => {\n const firstDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1);\n const dayOfWeek = firstDayOfMonth.getDay();\n\n let diff = dayOfWeek - weekStart;\n if (diff < 0) {\n diff += 7;\n }\n\n return addDays(firstDayOfMonth, -diff);\n};\n\nexport const getWeekDays = (lang: string, weekStart: WeekStart): string[] => {\n const weekdays: string[] = [];\n const date = new Date(0);\n date.setDate(date.getDate() - date.getDay() + weekStart);\n\n const formatter = new Intl.DateTimeFormat(lang, { weekday: 'short' });\n\n for (let i = 0; i < 7; i++) {\n weekdays.push(formatter.format(addDays(date, i)));\n }\n\n return weekdays;\n};\n\nexport const addDays = (date: Date, amount: number): Date => {\n const newDate = new Date(date);\n newDate.setDate(newDate.getDate() + amount);\n return newDate;\n};\n\nexport const addMonths = (date: Date, amount: number): Date => {\n const newDate = new Date(date);\n newDate.setMonth(newDate.getMonth() + amount);\n return newDate;\n};\n\nexport const addYears = (date: Date, amount: number): Date => {\n const newDate = new Date(date);\n newDate.setFullYear(newDate.getFullYear() + amount);\n return newDate;\n};\n\nexport const getFormattedDate = (language: string, date: Date, options?: Intl.DateTimeFormatOptions): string => {\n let defaultOptions: Intl.DateTimeFormatOptions = {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n };\n\n if (options) {\n defaultOptions = options;\n }\n\n return new Intl.DateTimeFormat(language, defaultOptions).format(date);\n};\n\nexport const startOfYearPeriod = (date: Date, years: number): number => {\n const year = date.getFullYear();\n return Math.floor(year / years) * years;\n};\n\nexport const isDateInDecade = (date: Date, startYear: number): boolean => {\n const year = date.getFullYear();\n const endYear = startYear + 9;\n return year >= startYear && year <= endYear;\n};\n\nexport const isDateRangeInDecade = (\n startDate: Date,\n endDate: Date,\n decadeStart: number,\n decadeEnd: number,\n): boolean => {\n const startYear = startDate.getFullYear();\n const endYear = endDate.getFullYear();\n\n if (decadeStart && decadeEnd) {\n // Check if the start and end years of the date range are within the decade\n const isStartYearInRange = isDateInRange(\n new Date(startYear, 0, 1),\n new Date(decadeStart, 0, 1),\n new Date(decadeEnd, 11, 31),\n );\n const isEndYearInRange = isDateInRange(\n new Date(endYear, 11, 31),\n new Date(decadeStart, 0, 1),\n new Date(decadeEnd, 11, 31),\n );\n\n return isStartYearInRange && isEndYearInRange;\n }\n\n // If decadeStart or decadeEnd is not provided, treat it as an open-ended range\n return true;\n};\n"],"names":["Views","Days","Months","Years","Decades","WeekStart","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","isDateInRange","date","minDate","maxDate","dateTime","Date","getFullYear","getMonth","getDate","getTime","minDateTime","maxDateTime","isDateEqual","selectedDate","getFirstDateInRange","getFirstDayOfTheMonth","weekStart","firstDayOfMonth","diff","getDay","addDays","getWeekDays","lang","weekdays","setDate","formatter","Intl","DateTimeFormat","weekday","i","push","format","amount","newDate","addMonths","setMonth","addYears","setFullYear","getFormattedDate","language","options","defaultOptions","day","month","year","startOfYearPeriod","years","Math","floor","isDateInDecade","startYear","endYear"],"mappings":"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"}