| | import type { DateLib } from "../classes/DateLib.js"; |
| | import type { DropdownOption } from "../components/Dropdown.js"; |
| | import type { Formatters } from "../types/index.js"; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | export function getYearOptions( |
| | navStart: Date | undefined, |
| | navEnd: Date | undefined, |
| | formatters: Pick<Formatters, "formatYearDropdown">, |
| | dateLib: DateLib, |
| | reverse: boolean = false, |
| | ): DropdownOption[] | undefined { |
| | if (!navStart) return undefined; |
| | if (!navEnd) return undefined; |
| | const { startOfYear, endOfYear, eachYearOfInterval, getYear } = dateLib; |
| | const firstNavYear = startOfYear(navStart); |
| | const lastNavYear = endOfYear(navEnd); |
| | const years = eachYearOfInterval({ start: firstNavYear, end: lastNavYear }); |
| |
|
| | if (reverse) years.reverse(); |
| |
|
| | return years.map((year) => { |
| | const label = formatters.formatYearDropdown(year, dateLib); |
| | return { |
| | value: getYear(year), |
| | label, |
| | disabled: false, |
| | }; |
| | }); |
| | } |
| |
|