@nepdatejs/datepicker 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/mask.ts","../src/input.ts","../src/base.ts","../src/presets.ts","../src/picker.ts","../src/range.ts","../src/multi.ts","../src/datetime.ts"],"sourcesContent":["const DIGIT = '[0-9\\u0966-\\u096f]';\nconst DIGITS_ONLY = new RegExp(`^${DIGIT}{1,8}$`);\nconst YEAR_MONTH = new RegExp(`^(${DIGIT}{4}-${DIGIT}{2})(${DIGIT}?)$`);\n\n/**\n * Add the dashes of YYYY-MM-DD while the user types digits: \"2083\" becomes\n * \"2083-\", \"208306\" becomes \"2083-06-\" and a pasted \"20830624\" becomes\n * \"2083-06-24\". ASCII and Devanagari digits keep their script, and a\n * separator typed straight after a dash is dropped, so typing the dashes\n * yourself works too. Only text that grew at the end (typing, or a paste into\n * an empty field) is touched: deleting, editing in the middle and other\n * separators (\"2083/6/4\") are left as the user wrote them. Pure.\n */\nexport function maskDateText(next: string, previous = ''): string {\n if (next.length <= previous.length || !next.startsWith(previous)) {\n return next;\n }\n if (previous.endsWith('-') && /^[-./]$/.test(next.slice(previous.length))) {\n // The user typed the separator the mask already added.\n return previous;\n }\n if (DIGITS_ONLY.test(next)) {\n // Every character is one ASCII or Devanagari digit, so string offsets are safe.\n let out = next.slice(0, 4);\n if (next.length >= 4) {\n out += '-';\n }\n out += next.slice(4, 6);\n if (next.length >= 6) {\n out += '-';\n }\n\n return out + next.slice(6);\n }\n const yearMonth = YEAR_MONTH.exec(next);\n if (yearMonth) {\n // \"2083-06\" → \"2083-06-\"; \"2083-062\" → \"2083-06-2\".\n return `${yearMonth[1] ?? ''}-${yearMonth[2] ?? ''}`;\n }\n\n return next;\n}\n","import {\n formatDate,\n formatMessage,\n fromIsoDate,\n getLocale,\n isWithin,\n parseDate,\n toCalendar,\n type AdDate,\n type CalendarDate,\n type CalendarSystem,\n type DateFormatPattern,\n type LocaleCode,\n} from '@nepdatejs/core';\nimport type { DateDetail, DateError } from './types';\n\n/** What a picker allows, in any calendar. */\nexport interface InputLimits {\n readonly min: CalendarDate;\n readonly max: CalendarDate;\n /** Whether the app set min/max (else they are the edges of the BS table). Picks the message. */\n readonly hasMin?: boolean;\n readonly hasMax?: boolean;\n readonly isDateDisabled?: ((date: CalendarDate) => boolean) | undefined;\n}\n\nexport type ParseResult =\n | { readonly kind: 'empty' }\n | { readonly kind: 'date'; readonly date: AdDate }\n | { readonly kind: 'error'; readonly error: DateError };\n\n/**\n * Read what the user typed: year first, ASCII or Devanagari digits, in the\n * calendar on screen. All date work is done by core (docs/plan D-005).\n */\nexport function parseInput(\n text: string,\n calendar: CalendarSystem,\n limits: InputLimits,\n locale: LocaleCode,\n format: DateFormatPattern = 'iso',\n): ParseResult {\n if (text.trim() === '') {\n return { kind: 'empty' };\n }\n const messages = getLocale(locale).messages;\n const date = parseDate(text, calendar);\n if (!date) {\n return {\n kind: 'error',\n error: { code: 'format', message: messages.invalidFormat[calendar] },\n };\n }\n const error = checkDate(date, calendar, limits, locale, format);\n\n return error\n ? { kind: 'error', error }\n : { kind: 'date', date: toCalendar(date, 'AD') };\n}\n\n/** Null when the day is allowed; otherwise a translated error. */\nexport function checkDate(\n date: CalendarDate,\n calendar: CalendarSystem,\n limits: InputLimits,\n locale: LocaleCode,\n format: DateFormatPattern = 'iso',\n): DateError | null {\n const messages = getLocale(locale).messages;\n if (!isWithin(date, limits.min, limits.max)) {\n const values = {\n min: formatInput(limits.min, calendar, format, locale),\n max: formatInput(limits.max, calendar, format, locale),\n };\n const template =\n limits.hasMin === limits.hasMax\n ? messages.outOfRange\n : limits.hasMin\n ? messages.onOrAfter\n : messages.onOrBefore;\n\n return { code: 'range', message: formatMessage(template, values) };\n }\n if (limits.isDateDisabled?.(date)) {\n return { code: 'disabled', message: messages.unavailable };\n }\n\n return null;\n}\n\n/** How the input shows a date: in the calendar on screen, with the locale's digits. */\nexport function formatInput(\n date: CalendarDate | null,\n calendar: CalendarSystem,\n format: DateFormatPattern,\n locale: LocaleCode,\n): string {\n return date ? formatDate(toCalendar(date, calendar), format, locale) : '';\n}\n\n/** \"10 October 2026 AD\": the same day in the other calendar. */\nexport function equivalentText(\n date: CalendarDate | null,\n calendar: CalendarSystem,\n locale: LocaleCode,\n): string | null {\n if (!date) {\n return null;\n }\n const other: CalendarSystem = calendar === 'BS' ? 'AD' : 'BS';\n\n return `${formatDate(toCalendar(date, other), 'long', locale)} ${getLocale(locale).calendarNames[other]}`;\n}\n\nexport function placeholderText(calendar: CalendarSystem, locale: LocaleCode): string {\n return `YYYY-MM-DD (${getLocale(locale).calendarNames[calendar]})`;\n}\n\n/** An AD \"YYYY-MM-DD\" string as a date; anything else is null. */\nexport function readIso(value: string | null | undefined): AdDate | null {\n return value ? fromIsoDate(value) : null;\n}\n\nexport function detailOf(date: CalendarDate | null): DateDetail | null {\n return date\n ? Object.freeze({ ad: toCalendar(date, 'AD'), bs: toCalendar(date, 'BS') })\n : null;\n}\n","import {\n getConfig,\n today,\n type CalendarDate,\n type DateFormatPattern,\n type LocaleCode,\n} from '@nepdatejs/core';\nimport {\n isDayList,\n type CalendarOptions,\n type CalendarSelection,\n type CalendarStore,\n type DateRange,\n} from '@nepdatejs/calendar';\nimport { readIso, type InputLimits } from './input';\nimport type { PickerBaseOptions } from './types';\n\n/** The panel calendar's options that come straight from the picker's options. */\nexport function panelOptions(\n options: PickerBaseOptions,\n calendar: CalendarOptions['calendar'],\n): CalendarOptions {\n return {\n calendar,\n locale: options.locale,\n min: readIso(options.min),\n max: readIso(options.max),\n isDateDisabled: options.isDateDisabled,\n holidays: options.holidays,\n events: options.events,\n showOtherCalendar: options.showOtherCalendar,\n weekStartsOn: options.weekStartsOn,\n weekendDays: options.weekendDays,\n today: options.today,\n };\n}\n\n/** What may be typed: the panel's effective range, so typing and clicking agree. */\nexport function inputLimits(\n options: PickerBaseOptions,\n panel: CalendarStore,\n): InputLimits {\n const { minDate, maxDate } = panel.getState();\n\n return {\n min: minDate,\n max: maxDate,\n hasMin: readIso(options.min) !== null,\n hasMax: readIso(options.max) !== null,\n isDateDisabled: options.isDateDisabled,\n };\n}\n\nexport function localeOf(options: PickerBaseOptions): LocaleCode {\n return options.locale ?? getConfig().defaultLocale;\n}\n\nexport function formatOf(options: PickerBaseOptions): DateFormatPattern {\n return options.displayFormat ?? 'iso';\n}\n\nexport function todayOf(options: PickerBaseOptions): CalendarDate {\n return options.today ?? today('AD');\n}\n\nexport function isRange(selection: CalendarSelection): selection is DateRange {\n return !isDayList(selection) && !('calendar' in selection);\n}\n\nexport function isSingleDay(selection: CalendarSelection): selection is CalendarDate {\n return !isDayList(selection) && 'calendar' in selection;\n}\n\n/**\n * Listener set plus batching: changes made inside `act` notify once at the end,\n * and callbacks queued with `after` run after listeners have seen the new state.\n */\nexport function createEmitter(rebuild: () => void): {\n subscribe(listener: () => void): () => void;\n act(change: () => void): void;\n after(callback: () => void): void;\n notify(): void;\n clear(): void;\n} {\n const listeners = new Set<() => void>();\n const queued: (() => void)[] = [];\n let depth = 0;\n\n function notify(): void {\n rebuild();\n for (const listener of [...listeners]) {\n listener();\n }\n }\n\n return {\n subscribe(listener) {\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n };\n },\n act(change) {\n depth++;\n try {\n change();\n } finally {\n // Even after a throw: part of the change may have happened.\n depth--;\n if (depth === 0) {\n const callbacks = queued.splice(0);\n try {\n notify();\n } finally {\n for (const callback of callbacks) {\n callback();\n }\n }\n }\n }\n },\n after(callback) {\n queued.push(callback);\n },\n notify() {\n if (depth === 0) {\n notify();\n }\n },\n clear() {\n listeners.clear();\n },\n };\n}\n","import {\n addDays,\n addMonths,\n endOfMonth,\n endOfWeek,\n endOfYear,\n fiscalYear,\n fiscalYearRange,\n getLocale,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendar,\n type AdDate,\n type CalendarDate,\n type CalendarSystem,\n type LocaleCode,\n type Weekday,\n} from '@nepdatejs/core';\n\n/** Built-in shortcuts for a single date. */\nexport type SinglePresetId = 'today' | 'yesterday' | 'tomorrow';\n\n/** Built-in shortcuts for a range. Weeks, months and years count in the calendar on screen. */\nexport type RangePresetId =\n | 'today'\n | 'yesterday'\n | 'thisWeek'\n | 'lastWeek'\n | 'last7Days'\n | 'last30Days'\n | 'thisMonth'\n | 'lastMonth'\n | 'thisYear'\n | 'thisFiscalYear'\n | 'lastFiscalYear';\n\n/** What a preset gets to work out its date: today (in the configured zone), the calendar on screen, the week start. */\nexport interface PresetContext {\n readonly today: AdDate;\n readonly calendar: CalendarSystem;\n readonly weekStartsOn: Weekday;\n}\n\nexport interface PresetRange {\n readonly start: CalendarDate;\n readonly end: CalendarDate;\n}\n\n/** An app-defined shortcut, e.g. { id: 'admission', label: 'Admission day', resolve: () => bsDate(2083, 1, 15) }. */\nexport interface CustomPreset<R> {\n readonly id: string;\n readonly label: string;\n readonly resolve: (context: PresetContext) => R;\n}\n\nexport type SinglePreset = SinglePresetId | CustomPreset<CalendarDate>;\nexport type RangePreset = RangePresetId | CustomPreset<PresetRange>;\n\n/** One shortcut as the panel shows it. */\nexport interface PresetState {\n readonly id: string;\n readonly label: string;\n /** The current value is exactly this preset's date or range. */\n readonly isActive: boolean;\n /** Outside min/max, too short/long, or outside the BS table. */\n readonly isDisabled: boolean;\n}\n\n/** The date a built-in single preset stands for. */\nexport function resolveSinglePreset(\n id: SinglePresetId,\n context: PresetContext,\n): CalendarDate {\n const today = toCalendar(context.today, context.calendar);\n switch (id) {\n case 'today':\n return today;\n case 'yesterday':\n return addDays(today, -1);\n case 'tomorrow':\n return addDays(today, 1);\n }\n}\n\n/** The range a built-in range preset stands for, in the calendar on screen. */\nexport function resolveRangePreset(\n id: RangePresetId,\n context: PresetContext,\n): PresetRange {\n const today = toCalendar(context.today, context.calendar);\n const week = context.weekStartsOn;\n switch (id) {\n case 'today':\n return { start: today, end: today };\n case 'yesterday': {\n const day = addDays(today, -1);\n return { start: day, end: day };\n }\n case 'thisWeek':\n return { start: startOfWeek(today, week), end: endOfWeek(today, week) };\n case 'lastWeek': {\n const day = addDays(today, -7);\n return { start: startOfWeek(day, week), end: endOfWeek(day, week) };\n }\n case 'last7Days':\n return { start: addDays(today, -6), end: today };\n case 'last30Days':\n return { start: addDays(today, -29), end: today };\n case 'thisMonth':\n return { start: startOfMonth(today), end: endOfMonth(today) };\n case 'lastMonth': {\n const month = addMonths(startOfMonth(today), -1);\n return { start: month, end: endOfMonth(month) };\n }\n case 'thisYear':\n return { start: startOfYear(today), end: endOfYear(today) };\n case 'thisFiscalYear': {\n const fy = fiscalYear(today);\n return { start: fy.firstDay, end: fy.lastDay };\n }\n case 'lastFiscalYear': {\n const fy = fiscalYearRange(fiscalYear(today).startYear - 1);\n return { start: fy.firstDay, end: fy.lastDay };\n }\n }\n}\n\n/** Shared by both pickers: label + resolver for a preset entry. */\nexport function describePreset<R, Id extends string>(\n preset: Id | CustomPreset<R>,\n locale: LocaleCode | undefined,\n resolveBuiltIn: (id: Id, context: PresetContext) => R,\n): { id: string; label: string; resolve: (context: PresetContext) => R } {\n if (typeof preset === 'string') {\n const labels = getLocale(locale).presets as Record<string, string>;\n\n return {\n id: preset,\n // Unknown ids show as themselves, even ones like \"constructor\" that objects inherit.\n label: Object.prototype.hasOwnProperty.call(labels, preset)\n ? (labels[preset] ?? preset)\n : preset,\n resolve: (context) => resolveBuiltIn(preset, context),\n };\n }\n\n return preset;\n}\n","import { maskDateText } from './mask';\nimport {\n getConfig,\n toCalendar,\n toIsoDate,\n type AdDate,\n type CalendarDate,\n type CalendarSystem,\n} from '@nepdatejs/core';\nimport { createCalendar } from '@nepdatejs/calendar';\nimport {\n createEmitter,\n formatOf,\n inputLimits,\n isSingleDay,\n localeOf,\n panelOptions,\n todayOf,\n} from './base';\nimport {\n describePreset,\n resolveSinglePreset,\n type PresetContext,\n type PresetState,\n} from './presets';\nimport {\n checkDate,\n detailOf,\n equivalentText,\n formatInput,\n parseInput,\n placeholderText,\n readIso,\n} from './input';\nimport type {\n DateError,\n DatePickerActions,\n DatePickerOptions,\n DatePickerState,\n DatePickerStore,\n} from './types';\n\n/**\n * A BS/AD date picker without UI: typed text ⇄ value, validation, the BS/AD\n * switch and open/close, plus the panel's calendar store. The value is always\n * an AD \"YYYY-MM-DD\" string (docs/plan D-003); all date work goes through core.\n *\n * Like the calendar, the picker keeps its own value; passing `value` through\n * setOptions replaces it (controlled use). Passing back the value the user just\n * typed leaves their text alone, so the cursor does not jump.\n */\nexport function createDatePicker(initial: DatePickerOptions = {}): DatePickerStore {\n let options: DatePickerOptions = { ...initial };\n let calendar: CalendarSystem = options.calendar ?? options.defaultCalendar ?? 'BS';\n let date: AdDate | null = readIso(options.value ?? options.defaultValue);\n let value = date ? toIsoDate(date) : '';\n let text = formatInput(date, calendar, formatOf(options), localeOf(options));\n let error: DateError | null = null;\n let open = false;\n let destroyed = false;\n\n const panel = createCalendar({\n ...panelOptions(options, calendar),\n selectionMode: 'single',\n selected: date,\n onSelect: (selection) => {\n if (isSingleDay(selection)) {\n pick(selection);\n }\n },\n });\n let snapshot = build();\n const emitter = createEmitter(() => {\n snapshot = build();\n });\n panel.subscribe(() => {\n emitter.notify();\n });\n\n function build(): DatePickerState {\n const locale = localeOf(options);\n\n return Object.freeze({\n value,\n date: detailOf(date),\n text,\n calendar,\n canSwitchCalendar: options.calendar === undefined,\n open: open || options.inline === true,\n inline: options.inline === true,\n error,\n equivalentText: error ? null : equivalentText(date, calendar, locale),\n placeholder: placeholderText(calendar, locale),\n presets: presetStates(),\n calendarState: panel.getState(),\n });\n }\n\n function presetContext(): PresetContext {\n return {\n today: toCalendar(todayOf(options), 'AD'),\n calendar,\n weekStartsOn: options.weekStartsOn ?? getConfig().weekStartsOn,\n };\n }\n\n /** Each shortcut's date, or null when it cannot be used now. */\n function resolvedPresets(): { id: string; label: string; date: CalendarDate | null }[] {\n const context = presetContext();\n const limits = inputLimits(options, panel);\n\n return (options.presets ?? []).map((preset) => {\n const entry = describePreset(preset, options.locale, resolveSinglePreset);\n const date = ((): CalendarDate | null => {\n try {\n const candidate = entry.resolve(context);\n return checkDate(candidate, calendar, limits, localeOf(options))\n ? null\n : candidate;\n } catch {\n return null; // e.g. outside the BS table\n }\n })();\n\n return { id: entry.id, label: entry.label, date };\n });\n }\n\n function presetStates(): PresetState[] {\n return resolvedPresets().map(({ id, label, date }) =>\n Object.freeze({\n id,\n label,\n isActive: date !== null && toIsoDate(date) === value,\n isDisabled: date === null,\n }),\n );\n }\n\n function syncPanel(showDate: boolean): void {\n panel.setOptions({\n ...panelOptions(options, calendar),\n selected: date,\n ...(showDate && date ? { visibleMonth: date } : {}),\n });\n }\n\n /** Change the value; queue onChange when it differs and the user caused it. */\n function setDate(next: AdDate | null, byUser: boolean): void {\n const nextValue = next ? toIsoDate(next) : '';\n const changed = nextValue !== value;\n date = next;\n value = nextValue;\n syncPanel(next !== null);\n if (changed && byUser) {\n const detail = detailOf(next);\n emitter.after(() => options.onChange?.(nextValue, detail));\n }\n }\n\n function format(next: AdDate | null): string {\n return formatInput(next, calendar, formatOf(options), localeOf(options));\n }\n\n function pick(selection: Parameters<DatePickerActions['select']>[0]): void {\n emitter.act(() => {\n const next = toCalendar(selection, 'AD');\n error = null;\n text = format(next);\n setDate(next, true);\n if (options.closeOnSelect ?? true) {\n open = false;\n }\n });\n }\n\n const actions: DatePickerActions = {\n type(next) {\n if (destroyed) {\n return;\n }\n emitter.act(() => {\n text = options.mask === false ? next : maskDateText(next, text);\n const result = parseInput(\n text,\n calendar,\n inputLimits(options, panel),\n localeOf(options),\n formatOf(options),\n );\n error = result.kind === 'error' ? result.error : null;\n setDate(result.kind === 'date' ? result.date : null, true);\n });\n },\n blur() {\n emitter.act(() => {\n if (!error) {\n text = format(date);\n }\n });\n },\n clear() {\n emitter.act(() => {\n text = '';\n error = null;\n setDate(null, true);\n });\n },\n setValue(next) {\n emitter.act(() => {\n applyValue(next);\n });\n },\n open() {\n emitter.act(() => {\n open = true;\n panel.actions.goTo(date ?? todayOf(options));\n });\n },\n close() {\n emitter.act(() => {\n open = false;\n });\n },\n toggle() {\n if (open) {\n actions.close();\n } else {\n actions.open();\n }\n },\n switchCalendar(next) {\n if (options.calendar !== undefined || next === calendar || destroyed) {\n return;\n }\n emitter.act(() => {\n calendar = next;\n if (!error) {\n text = format(date);\n }\n syncPanel(date !== null);\n emitter.after(() => options.onCalendarChange?.(next));\n });\n },\n select(day) {\n let picked = false;\n if (!destroyed) {\n emitter.act(() => {\n picked = panel.actions.select(day);\n });\n }\n\n return picked;\n },\n selectToday() {\n return actions.select(todayOf(options));\n },\n reset() {\n emitter.act(() => {\n const next = readIso(options.defaultValue);\n error = null;\n text = format(next);\n setDate(next, true);\n });\n },\n applyPreset(id) {\n const preset = resolvedPresets().find((entry) => entry.id === id);\n if (destroyed || !preset?.date) {\n return false;\n }\n pick(preset.date);\n\n return true;\n },\n };\n\n /** An outside value: replaces the text only when it is a different value (echo guard). */\n function applyValue(next: string | undefined): void {\n const nextDate = readIso(next);\n if ((nextDate ? toIsoDate(nextDate) : '') === value) {\n return;\n }\n error = null;\n text = format(nextDate);\n setDate(nextDate, false);\n }\n\n return {\n getState: () => snapshot,\n subscribe: (listener) => emitter.subscribe(listener),\n setOptions(changes) {\n if (destroyed) {\n return;\n }\n emitter.act(() => {\n const before = { calendar, locale: localeOf(options), format: formatOf(options) };\n options = { ...options, ...changes };\n if (options.calendar !== undefined) {\n calendar = options.calendar;\n }\n if ('value' in changes) {\n applyValue(changes.value);\n }\n const looksChanged =\n before.calendar !== calendar ||\n before.locale !== localeOf(options) ||\n before.format !== formatOf(options);\n if (looksChanged && !error) {\n text = format(date);\n }\n syncPanel(false);\n });\n },\n actions,\n calendar: panel,\n destroy() {\n destroyed = true;\n panel.destroy();\n emitter.clear();\n },\n };\n}\n","import { maskDateText } from './mask';\nimport {\n compareDates,\n differenceInDays,\n formatMessage,\n getConfig,\n getLocale,\n toCalendar,\n toIsoDate,\n type AdDate,\n type CalendarDate,\n type CalendarSystem,\n} from '@nepdatejs/core';\nimport { createCalendar } from '@nepdatejs/calendar';\nimport {\n createEmitter,\n formatOf,\n inputLimits,\n isRange,\n localeOf,\n panelOptions,\n todayOf,\n} from './base';\nimport {\n describePreset,\n resolveRangePreset,\n type PresetContext,\n type PresetRange,\n type PresetState,\n} from './presets';\nimport {\n checkDate,\n detailOf,\n equivalentText,\n formatInput,\n parseInput,\n placeholderText,\n readIso,\n} from './input';\nimport type {\n DateError,\n DateRangePickerActions,\n DateRangePickerOptions,\n DateRangePickerState,\n DateRangePickerStore,\n RangeField,\n RangeValue,\n} from './types';\n\ntype RangeError = DateError & { readonly field: RangeField | 'range' };\n\n/**\n * A BS/AD date range picker without UI: two typed fields (start, end), a panel\n * calendar in range mode, minDays/maxDays checks and the BS/AD switch. Values\n * are AD \"YYYY-MM-DD\" strings; an unfinished or invalid end is \"\".\n */\nexport function createDateRangePicker(\n initial: DateRangePickerOptions = {},\n): DateRangePickerStore {\n let options: DateRangePickerOptions = { ...initial };\n let calendar: CalendarSystem = options.calendar ?? options.defaultCalendar ?? 'BS';\n let start: AdDate | null = readIso(options.value?.start ?? options.defaultValue?.start);\n let end: AdDate | null = readIso(options.value?.end ?? options.defaultValue?.end);\n [start, end] = ordered(start, end);\n let value = valueOf(start, end);\n let startText = format(start);\n let endText = format(end);\n let error: RangeError | null = null;\n let open = false;\n let destroyed = false;\n\n const panel = createCalendar({\n ...panelOptions(options, calendar),\n selectionMode: 'range',\n selected: { start, end },\n onSelect: (selection) => {\n if (isRange(selection)) {\n pick(selection.start, selection.end);\n }\n },\n });\n let snapshot = build();\n const emitter = createEmitter(() => {\n snapshot = build();\n });\n panel.subscribe(() => {\n emitter.notify();\n });\n\n function format(date: CalendarDate | null): string {\n return formatInput(date, calendar, formatOf(options), localeOf(options));\n }\n\n function build(): DateRangePickerState {\n const locale = localeOf(options);\n\n return Object.freeze({\n value,\n date: Object.freeze({ start: detailOf(start), end: detailOf(end) }),\n startText,\n endText,\n calendar,\n canSwitchCalendar: options.calendar === undefined,\n open: open || options.inline === true,\n inline: options.inline === true,\n error,\n equivalentText: Object.freeze({\n start: error?.field === 'start' ? null : equivalentText(start, calendar, locale),\n end: error?.field === 'end' ? null : equivalentText(end, calendar, locale),\n }),\n placeholder: placeholderText(calendar, locale),\n presets: presetStates(),\n calendarState: panel.getState(),\n });\n }\n\n function presetContext(): PresetContext {\n return {\n today: toCalendar(todayOf(options), 'AD'),\n calendar,\n weekStartsOn: options.weekStartsOn ?? getConfig().weekStartsOn,\n };\n }\n\n /** Each shortcut's range, or null when it cannot be used now. */\n function resolvedPresets(): { id: string; label: string; range: PresetRange | null }[] {\n const context = presetContext();\n const limits = inputLimits(options, panel);\n const locale = localeOf(options);\n\n return (options.presets ?? []).map((preset) => {\n const entry = describePreset(preset, options.locale, resolveRangePreset);\n const range = ((): PresetRange | null => {\n try {\n const candidate = entry.resolve(context);\n const from = toCalendar(candidate.start, 'AD');\n const to = toCalendar(candidate.end, 'AD');\n const allowed =\n compareDates(from, to) <= 0 &&\n !checkDate(from, calendar, limits, locale) &&\n !checkDate(to, calendar, limits, locale) &&\n lengthError(from, to) === null;\n return allowed ? candidate : null;\n } catch {\n return null; // e.g. outside the BS table\n }\n })();\n\n return { id: entry.id, label: entry.label, range };\n });\n }\n\n function presetStates(): PresetState[] {\n return resolvedPresets().map(({ id, label, range }) =>\n Object.freeze({\n id,\n label,\n isActive:\n range !== null &&\n toIsoDate(range.start) === value.start &&\n toIsoDate(range.end) === value.end,\n isDisabled: range === null,\n }),\n );\n }\n\n function syncPanel(): void {\n panel.setOptions({\n ...panelOptions(options, calendar),\n selected: { start, end },\n ...(start ? { visibleMonth: start } : {}),\n });\n }\n\n /** Too short or too long, or null. Counts both ends. */\n function lengthError(from: AdDate, to: AdDate): RangeError | null {\n const days = differenceInDays(to, from) + 1;\n const messages = getLocale(localeOf(options)).messages;\n if (options.minDays !== undefined && days < options.minDays) {\n return {\n field: 'range',\n code: 'tooShort',\n message: formatMessage(messages.rangeTooShort, { min: String(options.minDays) }),\n };\n }\n if (options.maxDays !== undefined && days > options.maxDays) {\n return {\n field: 'range',\n code: 'tooLong',\n message: formatMessage(messages.rangeTooLong, { max: String(options.maxDays) }),\n };\n }\n\n return null;\n }\n\n /** Store the dates, keep the panel in step, and queue onChange when the value moved. */\n function commit(\n nextStart: AdDate | null,\n nextEnd: AdDate | null,\n byUser: boolean,\n ): void {\n start = nextStart;\n end = nextEnd;\n const next = valueOf(start, end);\n const changed = next.start !== value.start || next.end !== value.end;\n value = next;\n syncPanel();\n if (changed && byUser) {\n const detail = Object.freeze({ start: detailOf(start), end: detailOf(end) });\n emitter.after(() => options.onChange?.(next, detail));\n }\n }\n\n /** Put the ends in order, check the length, then commit. False when the length is not allowed. */\n function settle(nextStart: AdDate | null, nextEnd: AdDate | null): boolean {\n const [a, b] = ordered(nextStart, nextEnd);\n if (a !== nextStart) {\n [startText, endText] = [endText, startText];\n }\n const tooFar = a && b ? lengthError(a, b) : null;\n error = tooFar ?? error;\n commit(a, tooFar ? null : b, true);\n\n return tooFar === null;\n }\n\n function pick(from: CalendarDate | null, to: CalendarDate | null): void {\n emitter.act(() => {\n const a = from ? toCalendar(from, 'AD') : null;\n const b = to ? toCalendar(to, 'AD') : null;\n error = null;\n startText = format(a);\n endText = format(b);\n const allowed = settle(a, b);\n if (b && allowed && (options.closeOnSelect ?? true)) {\n open = false;\n }\n });\n }\n\n const actions: DateRangePickerActions = {\n type(field, text) {\n if (destroyed) {\n return;\n }\n emitter.act(() => {\n if (options.mask !== false) {\n text = maskDateText(text, field === 'start' ? startText : endText);\n }\n if (field === 'start') {\n startText = text;\n } else {\n endText = text;\n }\n const result = parseInput(\n text,\n calendar,\n inputLimits(options, panel),\n localeOf(options),\n formatOf(options),\n );\n const date = result.kind === 'date' ? result.date : null;\n error = result.kind === 'error' ? { ...result.error, field } : null;\n const other = field === 'start' ? end : start;\n const otherError = other\n ? checkDate(other, calendar, inputLimits(options, panel), localeOf(options))\n : null;\n if (!error && otherError) {\n error = { ...otherError, field: field === 'start' ? 'end' : 'start' };\n }\n if (field === 'start') {\n settle(date, end);\n } else {\n settle(start, date);\n }\n });\n },\n blur(field) {\n emitter.act(() => {\n if (error?.field === field) {\n return;\n }\n if (field === 'start') {\n startText = format(start);\n } else if (end || error?.field !== 'range') {\n endText = format(end);\n }\n });\n },\n clear() {\n emitter.act(() => {\n startText = '';\n endText = '';\n error = null;\n commit(null, null, true);\n });\n },\n setValue(next) {\n emitter.act(() => {\n applyValue(next);\n });\n },\n open() {\n emitter.act(() => {\n open = true;\n panel.actions.goTo(start ?? todayOf(options));\n });\n },\n close() {\n emitter.act(() => {\n open = false;\n });\n },\n toggle() {\n if (open) {\n actions.close();\n } else {\n actions.open();\n }\n },\n switchCalendar(next) {\n if (options.calendar !== undefined || next === calendar || destroyed) {\n return;\n }\n emitter.act(() => {\n calendar = next;\n if (!error) {\n startText = format(start);\n endText = format(end);\n }\n syncPanel();\n emitter.after(() => options.onCalendarChange?.(next));\n });\n },\n select(day) {\n let picked = false;\n if (!destroyed) {\n emitter.act(() => {\n picked = panel.actions.select(day);\n });\n }\n\n return picked;\n },\n applyPreset(id) {\n const preset = resolvedPresets().find((entry) => entry.id === id);\n if (destroyed || !preset?.range) {\n return false;\n }\n pick(preset.range.start, preset.range.end);\n\n return true;\n },\n reset() {\n emitter.act(() => {\n const [a, b] = ordered(\n readIso(options.defaultValue?.start),\n readIso(options.defaultValue?.end),\n );\n error = null;\n startText = format(a);\n endText = format(b);\n commit(a, b, true);\n });\n },\n };\n\n /** An outside value: replaces the texts only when the value differs (echo guard). */\n function applyValue(next: RangeValue | undefined): void {\n const [a, b] = ordered(readIso(next?.start), readIso(next?.end));\n const incoming = valueOf(a, b);\n if (incoming.start === value.start && incoming.end === value.end) {\n return;\n }\n error = null;\n startText = format(a);\n endText = format(b);\n commit(a, b, false);\n }\n\n return {\n getState: () => snapshot,\n subscribe: (listener) => emitter.subscribe(listener),\n setOptions(changes) {\n if (destroyed) {\n return;\n }\n emitter.act(() => {\n const before = { calendar, locale: localeOf(options), format: formatOf(options) };\n options = { ...options, ...changes };\n if (options.calendar !== undefined) {\n calendar = options.calendar;\n }\n if ('value' in changes) {\n applyValue(changes.value);\n }\n const looksChanged =\n before.calendar !== calendar ||\n before.locale !== localeOf(options) ||\n before.format !== formatOf(options);\n if (looksChanged && !error) {\n startText = format(start);\n endText = format(end);\n }\n syncPanel();\n });\n },\n actions,\n calendar: panel,\n destroy() {\n destroyed = true;\n panel.destroy();\n emitter.clear();\n },\n };\n}\n\nfunction ordered(a: AdDate | null, b: AdDate | null): [AdDate | null, AdDate | null] {\n return a && b && compareDates(b, a) < 0 ? [b, a] : [a, b];\n}\n\nfunction valueOf(start: AdDate | null, end: AdDate | null): RangeValue {\n return Object.freeze({\n start: start ? toIsoDate(start) : '',\n end: end ? toIsoDate(end) : '',\n });\n}\n","import {\n formatMessage,\n getLocale,\n toCalendar,\n toIsoDate,\n type AdDate,\n type CalendarSystem,\n} from '@nepdatejs/core';\nimport { createCalendar, isDayList } from '@nepdatejs/calendar';\nimport { createEmitter, inputLimits, localeOf, panelOptions } from './base';\nimport { formatInput, parseInput, placeholderText, readIso } from './input';\nimport { maskDateText } from './mask';\nimport type {\n DateDetail,\n DateError,\n MultiDatePickerActions,\n MultiDatePickerOptions,\n MultiDatePickerState,\n MultiDatePickerStore,\n} from './types';\n\nconst SEPARATOR = /[,\\s\\u060c]+/;\n\n/**\n * A picker for several separate days (PICK-001). The value is a sorted list of\n * AD \"YYYY-MM-DD\" strings; the input lists the days in the calendar on screen,\n * separated by \", \", and clicking a day in the panel adds or removes it. The\n * list is always written as YYYY-MM-DD so it can be typed back.\n */\nexport function createMultiDatePicker(\n initial: MultiDatePickerOptions = {},\n): MultiDatePickerStore {\n let options: MultiDatePickerOptions = { ...initial };\n let calendar: CalendarSystem = options.calendar ?? options.defaultCalendar ?? 'BS';\n let dates = readAll(options.value ?? options.defaultValue);\n let value = valuesOf(dates);\n let text = format(dates);\n let error: DateError | null = null;\n /** False while the typed text has a problem: then it is left as typed. */\n let textOk = true;\n let open = false;\n let destroyed = false;\n\n const panel = createCalendar({\n ...panelOptions(options, calendar),\n selectionMode: 'multiple',\n selected: dates,\n onSelect: (selection) => {\n if (isDayList(selection)) {\n pick(selection.map((day) => toCalendar(day, 'AD')));\n }\n },\n });\n let snapshot = build();\n const emitter = createEmitter(() => {\n snapshot = build();\n });\n panel.subscribe(() => {\n emitter.notify();\n });\n\n function build(): MultiDatePickerState {\n return Object.freeze({\n value,\n dates: detailsOf(dates),\n text,\n calendar,\n canSwitchCalendar: options.calendar === undefined,\n open: open || options.inline === true,\n inline: options.inline === true,\n error,\n placeholder: placeholderText(calendar, localeOf(options)),\n calendarState: panel.getState(),\n });\n }\n\n function format(list: readonly AdDate[]): string {\n return list\n .map((day) => formatInput(day, calendar, 'iso', localeOf(options)))\n .join(', ');\n }\n\n function tooMany(count: number): DateError | null {\n const max = options.maxDates;\n\n return max !== undefined && count > max\n ? {\n code: 'tooMany',\n message: formatMessage(getLocale(localeOf(options)).messages.tooManyDates, {\n max: String(max),\n }),\n }\n : null;\n }\n\n function syncPanel(): void {\n panel.setOptions({ ...panelOptions(options, calendar), selected: dates });\n }\n\n /** Change the value; queue onChange when it differs and the user caused it. */\n function setDates(next: readonly AdDate[], byUser: boolean): void {\n const sorted = unique(next);\n const nextValue = valuesOf(sorted);\n const changed = nextValue.join() !== value.join();\n dates = sorted;\n value = nextValue;\n syncPanel();\n if (changed && byUser) {\n const details = detailsOf(sorted);\n emitter.after(() => options.onChange?.(nextValue, details));\n }\n }\n\n function pick(next: readonly AdDate[]): void {\n emitter.act(() => {\n error = tooMany(next.length);\n if (error) {\n syncPanel(); // undo the calendar's toggle\n return;\n }\n text = format(unique(next));\n textOk = true;\n setDates(next, true);\n if (options.closeOnSelect === true) {\n open = false;\n }\n });\n }\n\n const actions: MultiDatePickerActions = {\n type(next) {\n if (destroyed) {\n return;\n }\n emitter.act(() => {\n text = options.mask === false ? next : maskLast(next, text);\n const limits = inputLimits(options, panel);\n const parsed: AdDate[] = [];\n let firstError: DateError | null = null;\n for (const token of text.split(SEPARATOR)) {\n const result = parseInput(token, calendar, limits, localeOf(options));\n if (result.kind === 'date') {\n parsed.push(result.date);\n } else if (result.kind === 'error') {\n firstError ??= result.error;\n }\n }\n error = firstError ?? tooMany(unique(parsed).length);\n textOk = error === null;\n setDates(parsed, true);\n });\n },\n blur() {\n emitter.act(() => {\n if (textOk) {\n text = format(dates);\n }\n });\n },\n clear() {\n emitter.act(() => {\n text = '';\n error = null;\n textOk = true;\n setDates([], true);\n });\n },\n setValue(next) {\n emitter.act(() => {\n applyValue(next);\n });\n },\n open() {\n emitter.act(() => {\n open = true;\n const first = dates[0];\n if (first) {\n panel.actions.goTo(first);\n }\n });\n },\n close() {\n emitter.act(() => {\n open = false;\n });\n },\n toggle() {\n if (open) {\n actions.close();\n } else {\n actions.open();\n }\n },\n switchCalendar(next) {\n if (options.calendar !== undefined || next === calendar || destroyed) {\n return;\n }\n emitter.act(() => {\n calendar = next;\n if (textOk) {\n text = format(dates);\n }\n syncPanel();\n emitter.after(() => options.onCalendarChange?.(next));\n });\n },\n select(day) {\n if (destroyed) {\n return false;\n }\n const before = value;\n emitter.act(() => {\n panel.actions.select(day);\n });\n\n return value !== before;\n },\n remove(iso) {\n emitter.act(() => {\n error = null;\n const next = dates.filter((day) => toIsoDate(day) !== iso);\n text = format(next);\n textOk = true;\n setDates(next, true);\n });\n },\n reset() {\n emitter.act(() => {\n const next = readAll(options.defaultValue);\n error = null;\n text = format(next);\n textOk = true;\n setDates(next, true);\n });\n },\n };\n\n /** An outside value: replaces the text only when it is a different value (echo guard). */\n function applyValue(next: readonly string[] | undefined): void {\n const nextDates = readAll(next);\n if (valuesOf(nextDates).join() === value.join()) {\n return;\n }\n error = null;\n text = format(nextDates);\n textOk = true;\n setDates(nextDates, false);\n }\n\n return {\n getState: () => snapshot,\n subscribe: (listener) => emitter.subscribe(listener),\n setOptions(changes) {\n if (destroyed) {\n return;\n }\n emitter.act(() => {\n const before = { calendar, locale: localeOf(options) };\n options = { ...options, ...changes };\n if (options.calendar !== undefined) {\n calendar = options.calendar;\n }\n if ('value' in changes) {\n applyValue(changes.value);\n }\n if (\n (before.calendar !== calendar || before.locale !== localeOf(options)) &&\n textOk\n ) {\n text = format(dates);\n }\n syncPanel();\n });\n },\n actions,\n calendar: panel,\n destroy() {\n destroyed = true;\n panel.destroy();\n emitter.clear();\n },\n };\n}\n\nfunction readAll(values: readonly string[] | undefined): AdDate[] {\n return unique((values ?? []).map(readIso).filter((day) => day !== null));\n}\n\nfunction unique(list: readonly AdDate[]): AdDate[] {\n const byValue = new Map(list.map((day) => [toIsoDate(day), day]));\n\n return [...byValue.entries()]\n .sort(([a], [b]) => (a < b ? -1 : 1))\n .map(([, day]) => day);\n}\n\nfunction valuesOf(list: readonly AdDate[]): readonly string[] {\n return Object.freeze(list.map((day) => toIsoDate(day)));\n}\n\nfunction detailsOf(list: readonly AdDate[]): readonly DateDetail[] {\n return Object.freeze(\n list.map((day) => Object.freeze({ ad: day, bs: toCalendar(day, 'BS') })),\n );\n}\n\n/** Mask only the day being typed: the text after the last separator. */\nfunction maskLast(next: string, previous: string): string {\n if (!next.startsWith(previous)) {\n return next;\n }\n const match = /^(.*[,\\s\\u060c])?([^,\\s\\u060c]*)$/.exec(next);\n const head = match?.[1] ?? '';\n const tail = match?.[2] ?? next;\n const previousTail = previous.length > head.length ? previous.slice(head.length) : '';\n\n return head + maskDateText(tail, previousTail);\n}\n","import {\n formatNumber,\n formatTime,\n fromIsoDateTime,\n getConfig,\n getLocale,\n now,\n parseTime,\n toIsoDate,\n toIsoDateTime,\n type AdDate,\n type BsDate,\n type CalendarDate,\n type CalendarSystem,\n type TimeOfDay,\n} from '@nepdatejs/core';\nimport type { CalendarState, CalendarStore } from '@nepdatejs/calendar';\nimport { createEmitter, localeOf } from './base';\nimport { createDatePicker } from './picker';\nimport type { PresetState, SinglePreset } from './presets';\nimport type { DateError, PickerBaseOptions } from './types';\n\nexport interface DateTimeDetail {\n readonly ad: AdDate;\n readonly bs: BsDate;\n readonly time: TimeOfDay;\n /** The same instant as the value. */\n readonly iso: string;\n}\n\nexport interface DateTimePickerOptions extends PickerBaseOptions {\n /** An ISO timestamp with offset (\"2026-10-18T14:30:00+05:45\"), a local \"YYYY-MM-DDTHH:MM\", or \"\". */\n readonly value?: string | undefined;\n readonly defaultValue?: string | undefined;\n readonly onChange?:\n ((value: string, detail: DateTimeDetail | null) => void) | undefined;\n /** The zone the date and time are read in, and whose offset the value carries. Default: core config (Nepal). */\n readonly timeZone?: string | undefined;\n /** Show 12-hour times (2:30 PM). Default false (14:30). */\n readonly hour12?: boolean | undefined;\n /** Minutes offered in the column: 1–30. Default 5. Any minute can still be typed. */\n readonly minuteStep?: number | undefined;\n /** The time used when a date is picked before any time. Default \"00:00\". */\n readonly defaultTime?: string | undefined;\n readonly presets?: readonly SinglePreset[] | undefined;\n}\n\n/** One hour or minute in the time columns (Figma \"Time Item\"). */\nexport interface TimeCell {\n readonly value: number;\n readonly label: string;\n readonly isSelected: boolean;\n}\n\nexport interface DateTimePickerState {\n /** ISO timestamp with the zone's offset, or \"\" until both date and time are valid. */\n readonly value: string;\n readonly detail: DateTimeDetail | null;\n readonly dateText: string;\n readonly timeText: string;\n readonly time: TimeOfDay | null;\n readonly calendar: CalendarSystem;\n readonly canSwitchCalendar: boolean;\n /** The panel is showing. Always true for an inline picker. */\n readonly open: boolean;\n /** The calendar sits in the page and never closes (option `inline`). */\n readonly inline: boolean;\n readonly error: (DateError & { readonly field: 'date' | 'time' }) | null;\n readonly equivalentText: string | null;\n readonly placeholder: string;\n readonly timePlaceholder: string;\n readonly hours: readonly TimeCell[];\n readonly minutes: readonly TimeCell[];\n readonly presets: readonly PresetState[];\n readonly calendarState: CalendarState;\n}\n\nexport interface DateTimePickerActions {\n typeDate(text: string): void;\n typeTime(text: string): void;\n blurDate(): void;\n blurTime(): void;\n /** Pick a day; the time stays (or becomes defaultTime). Returns false when disabled. */\n selectDate(date: CalendarDate): boolean;\n selectHour(hour: number): void;\n selectMinute(minute: number): void;\n /** Today and the current time in the zone. Returns false when today is not allowed. */\n selectNow(): boolean;\n applyPreset(id: string): boolean;\n open(): void;\n close(): void;\n toggle(): void;\n clear(): void;\n setValue(value: string): void;\n switchCalendar(calendar: CalendarSystem): void;\n reset(): void;\n}\n\nexport interface DateTimePickerStore {\n getState(): DateTimePickerState;\n subscribe(listener: () => void): () => void;\n setOptions(changes: Partial<DateTimePickerOptions>): void;\n readonly actions: DateTimePickerActions;\n readonly calendar: CalendarStore;\n destroy(): void;\n}\n\n/**\n * A BS/AD date and time picker without UI. The date half is a regular date\n * picker; the value is the instant as an ISO timestamp carrying the zone's\n * offset, so servers store one unambiguous moment.\n */\nexport function createDateTimePicker(\n initial: DateTimePickerOptions = {},\n): DateTimePickerStore {\n let options: DateTimePickerOptions = { ...initial };\n const start = fromIsoDateTime(options.value ?? options.defaultValue, zone());\n let time: TimeOfDay | null = start?.time ?? null;\n let timeText = time ? fmt(time) : '';\n let timeError: DateError | null = null;\n let value = '';\n let destroyed = false;\n\n const datePicker = createDatePicker({\n ...dateOptions(),\n defaultValue: start ? toIsoDay(start.date) : '',\n closeOnSelect: false,\n onChange: () => {\n emitter.act(() => {\n if (datePicker.getState().date && !time) {\n time = parseTime(options.defaultTime) ?? Object.freeze({ hour: 0, minute: 0 });\n timeText = fmt(time);\n timeError = null;\n }\n commit(true);\n });\n },\n });\n value = compose();\n let snapshot = build();\n const emitter = createEmitter(() => {\n snapshot = build();\n });\n datePicker.subscribe(() => {\n emitter.notify();\n });\n\n function zone(): string {\n return options.timeZone ?? getConfig().timeZone;\n }\n\n function fmt(t: TimeOfDay): string {\n return formatTime(t, { hour12: options.hour12 ?? false, locale: localeOf(options) });\n }\n\n function dateOptions(): PickerBaseOptions & {\n presets?: readonly SinglePreset[] | undefined;\n } {\n const {\n value: _value,\n defaultValue: _default,\n onChange: _onChange,\n timeZone: _zone,\n hour12: _hour12,\n minuteStep: _step,\n defaultTime: _defaultTime,\n ...rest\n } = options;\n\n return rest;\n }\n\n function compose(): string {\n const day = datePicker.getState().date;\n\n return day && time ? toIsoDateTime(day.ad, time, zone()) : '';\n }\n\n function detail(): DateTimeDetail | null {\n const day = datePicker.getState().date;\n\n return day && time && value\n ? Object.freeze({ ad: day.ad, bs: day.bs, time, iso: value })\n : null;\n }\n\n /** Recompute the value; queue onChange when it changed and the user caused it. */\n function commit(byUser: boolean): void {\n const next = compose();\n if (next === value) {\n return;\n }\n value = next;\n if (byUser) {\n const info = detail();\n emitter.after(() => options.onChange?.(next, info));\n }\n }\n\n function build(): DateTimePickerState {\n const inner = datePicker.getState();\n const locale = localeOf(options);\n const step = Math.min(30, Math.max(1, Math.floor(options.minuteStep ?? 5)));\n const { am, pm } = getLocale(locale).time;\n const hour12 = options.hour12 ?? false;\n\n return Object.freeze({\n value,\n detail: detail(),\n dateText: inner.text,\n timeText,\n time,\n calendar: inner.calendar,\n canSwitchCalendar: inner.canSwitchCalendar,\n open: inner.open,\n inline: inner.inline,\n error: inner.error\n ? { ...inner.error, field: 'date' as const }\n : timeError\n ? { ...timeError, field: 'time' as const }\n : null,\n equivalentText: inner.equivalentText,\n placeholder: inner.placeholder,\n timePlaceholder: hour12 ? `h:mm ${am}` : 'HH:MM',\n hours: Array.from({ length: 24 }, (_, hour) =>\n Object.freeze({\n value: hour,\n label: hour12\n ? `${formatNumber(hour % 12 === 0 ? 12 : hour % 12, locale)} ${hour < 12 ? am : pm}`\n : formatNumber(String(hour).padStart(2, '0'), locale),\n isSelected: time?.hour === hour,\n }),\n ),\n minutes: Array.from({ length: Math.ceil(60 / step) }, (_, index) =>\n Object.freeze({\n value: index * step,\n label: formatNumber(String(index * step).padStart(2, '0'), locale),\n isSelected: time?.minute === index * step,\n }),\n ),\n presets: inner.presets,\n calendarState: inner.calendarState,\n });\n }\n\n function setTime(next: TimeOfDay | null, text: string, byUser: boolean): void {\n time = next;\n timeText = text;\n timeError = null;\n commit(byUser);\n }\n\n const actions: DateTimePickerActions = {\n typeDate(text) {\n datePicker.actions.type(text);\n },\n blurDate() {\n datePicker.actions.blur();\n },\n typeTime(text) {\n if (destroyed) {\n return;\n }\n emitter.act(() => {\n const parsed = parseTime(text);\n if (text.trim() === '' || parsed) {\n setTime(parsed, text, true);\n } else {\n time = null;\n timeText = text;\n timeError = {\n code: 'format',\n message: getLocale(localeOf(options)).messages.invalidTime,\n };\n commit(true);\n }\n });\n },\n blurTime() {\n emitter.act(() => {\n if (!timeError && time) {\n timeText = fmt(time);\n }\n });\n },\n selectDate(date) {\n return !destroyed && datePicker.actions.select(date);\n },\n selectHour(hour) {\n emitter.act(() => {\n const next = Object.freeze({ hour, minute: time?.minute ?? 0 });\n setTime(next, fmt(next), true);\n });\n },\n selectMinute(minute) {\n emitter.act(() => {\n const next = Object.freeze({ hour: time?.hour ?? 0, minute });\n setTime(next, fmt(next), true);\n });\n },\n selectNow() {\n if (destroyed) {\n return false;\n }\n const current = now(zone());\n let picked = false;\n emitter.act(() => {\n time = current.time;\n timeText = fmt(current.time);\n timeError = null;\n picked = datePicker.actions.select(current.date);\n commit(true);\n });\n\n return picked;\n },\n applyPreset(id) {\n return !destroyed && datePicker.actions.applyPreset(id);\n },\n open() {\n datePicker.actions.open();\n },\n close() {\n datePicker.actions.close();\n },\n toggle() {\n datePicker.actions.toggle();\n },\n clear() {\n emitter.act(() => {\n datePicker.actions.setValue('');\n setTime(null, '', true);\n });\n },\n setValue(next) {\n emitter.act(() => {\n applyValue(next);\n });\n },\n switchCalendar(calendar) {\n datePicker.actions.switchCalendar(calendar);\n },\n reset() {\n emitter.act(() => {\n const start = fromIsoDateTime(options.defaultValue, zone());\n datePicker.actions.setValue(start ? toIsoDay(start.date) : '');\n setTime(start?.time ?? null, start ? fmt(start.time) : '', true);\n });\n },\n };\n\n /** An outside value; ignored when it is the instant already shown (echo guard). */\n function applyValue(next: string | undefined): void {\n const parsed = fromIsoDateTime(next, zone());\n const incoming = parsed ? toIsoDateTime(parsed.date, parsed.time, zone()) : '';\n if (incoming === value) {\n return;\n }\n datePicker.actions.setValue(parsed ? toIsoDay(parsed.date) : '');\n time = parsed?.time ?? null;\n timeText = time ? fmt(time) : '';\n timeError = null;\n commit(false);\n }\n\n return {\n getState: () => snapshot,\n subscribe: (listener) => emitter.subscribe(listener),\n setOptions(changes) {\n if (destroyed) {\n return;\n }\n emitter.act(() => {\n options = { ...options, ...changes };\n datePicker.setOptions(dateOptions());\n if ('value' in changes) {\n applyValue(changes.value);\n }\n if (time && !timeError) {\n timeText = fmt(time);\n }\n commit(false);\n });\n },\n actions,\n calendar: datePicker.calendar,\n destroy() {\n destroyed = true;\n datePicker.destroy();\n emitter.clear();\n },\n };\n}\n\nfunction toIsoDay(date: CalendarDate): string {\n return toIsoDate(date);\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var NepDatePicker=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t=`[0-9०-९]`,n=RegExp(`^${t}{1,8}$`),r=RegExp(`^(${t}{4}-${t}{2})(${t}?)$`);function i(e,t=``){if(e.length<=t.length||!e.startsWith(t))return e;if(t.endsWith(`-`)&&/^[-./]$/.test(e.slice(t.length)))return t;if(n.test(e)){let t=e.slice(0,4);return e.length>=4&&(t+=`-`),t+=e.slice(4,6),e.length>=6&&(t+=`-`),t+e.slice(6)}let i=r.exec(e);return i?`${i[1]??``}-${i[2]??``}`:e}let a={firstYear:1970,epochStart:-20717,verifiedThrough:2083,years:[[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,31,32,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,31,29,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,30],[31,32,31,32,31,30,30,30,29,30,29,31],[31,31,31,32,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,30],[31,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,30,29,31],[31,31,31,32,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,30],[31,32,31,32,31,30,30,30,29,30,29,31],[31,31,31,32,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,31,32,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,31,29,30,30,29,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,30],[31,32,31,32,31,30,30,30,29,30,29,31],[31,31,31,32,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,30],[31,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,31,32,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[30,32,31,32,31,31,29,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,29,30,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,31],[31,31,31,32,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,30],[31,32,31,32,31,30,30,30,29,30,29,31],[31,31,31,32,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,29,30,30],[31,32,31,32,31,30,30,30,29,30,29,31],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,31,31,31,30,29,30,29,30,30],[31,31,32,31,31,30,30,30,29,30,30,30],[31,32,31,32,30,31,30,30,29,30,30,30],[30,32,31,32,31,30,30,30,29,30,30,30],[31,31,32,31,31,31,30,30,29,30,30,30],[30,31,32,32,30,31,30,30,29,30,30,30],[30,32,31,32,31,30,30,30,29,30,30,30],[30,32,31,32,31,30,30,30,29,30,30,30],[31,31,32,31,31,31,30,30,29,30,30,30],[30,31,32,32,31,30,30,30,29,30,30,30],[30,32,31,32,31,30,30,30,29,30,30,30],[31,31,32,31,31,30,30,30,29,30,30,30],[31,31,32,31,31,31,30,29,30,30,30,30],[30,31,32,32,31,30,30,29,30,29,30,30],[31,32,31,32,31,30,30,30,29,30,30,30],[31,31,32,31,31,31,29,30,29,30,29,31],[31,31,32,31,31,31,30,29,29,30,30,30]]};var o=class extends RangeError{constructor(e,t){super(t),this.name=`NepDateRangeError`,this.code=e}};function s(e){if(!Number.isSafeInteger(e))throw new o(`INVALID_ARGUMENT`,`${String(e)} is not a whole number of days.`);return e}function c(e){return((e+4)%7+7)%7}let l=[`Baisakh`,`Jestha`,`Asar`,`Shrawan`,`Bhadra`,`Ashwin`,`Kartik`,`Mangsir`,`Poush`,`Magh`,`Falgun`,`Chaitra`],u=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],d={digits:[`0`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],weekdays:{long:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],short:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],narrow:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`]},months:{AD:{long:u,short:u.map(e=>e.slice(0,3))},BS:{long:l,short:l.map(e=>e.slice(0,3))}},calendarNames:{AD:`AD`,BS:`BS`},labels:{today:`Today`,clear:`Clear date`,previousMonth:`Previous month`,nextMonth:`Next month`,previousYear:`Previous year`,nextYear:`Next year`,month:`Month`,year:`Year`,openCalendar:`Open calendar`,chooseDate:`Choose a date`,calendar:`Calendar`,presets:`Shortcuts`,fiscalYear:`Fiscal year`,time:`Time`,hour:`Hour`,minute:`Minute`,now:`Now`,done:`Done`},time:{am:`AM`,pm:`PM`},presets:{today:`Today`,yesterday:`Yesterday`,tomorrow:`Tomorrow`,thisWeek:`This week`,lastWeek:`Last week`,last7Days:`Last 7 days`,last30Days:`Last 30 days`,thisMonth:`This month`,lastMonth:`Last month`,thisYear:`This year`,thisFiscalYear:`This fiscal year`,lastFiscalYear:`Last fiscal year`},messages:{invalidFormat:{AD:`Enter an AD date as YYYY-MM-DD.`,BS:`Enter a BS date as YYYY-MM-DD.`},outOfRange:`Choose a date from {min} to {max}.`,onOrAfter:`Choose {min} or later.`,onOrBefore:`Choose {max} or earlier.`,unavailable:`This date is not available.`,rangeTooShort:`Choose at least {min} days.`,rangeTooLong:`Choose at most {max} days.`,tooManyDates:`Choose at most {max} dates.`,invalidTime:`Enter a time as HH:MM.`}},f=[`बैशाख`,`जेठ`,`असार`,`साउन`,`भदौ`,`असोज`,`कार्तिक`,`मङ्सिर`,`पुस`,`माघ`,`फाल्गुण`,`चैत`],p=[`जनवरी`,`फेब्रुअरी`,`मार्च`,`अप्रिल`,`मे`,`जुन`,`जुलाई`,`अगस्ट`,`सेप्टेम्बर`,`अक्टोबर`,`नोभेम्बर`,`डिसेम्बर`],m=/* @__PURE__ */ new Map([[`en`,d],[`ne`,{digits:[`०`,`१`,`२`,`३`,`४`,`५`,`६`,`७`,`८`,`९`],weekdays:{long:[`आइतबार`,`सोमबार`,`मङ्गलबार`,`बुधबार`,`बिहिबार`,`शुक्रबार`,`शनिबार`],short:[`आइत`,`सोम`,`मङ्गल`,`बुध`,`बिही`,`शुक्र`,`शनि`],narrow:[`आ`,`सो`,`मं`,`बु`,`बि`,`शु`,`श`]},months:{AD:{long:p,short:p},BS:{long:f,short:f}},calendarNames:{AD:`ई.सं.`,BS:`वि.सं.`},labels:{today:`आज`,clear:`मिति हटाउनुहोस्`,previousMonth:`अघिल्लो महिना`,nextMonth:`अर्को महिना`,previousYear:`अघिल्लो वर्ष`,nextYear:`अर्को वर्ष`,month:`महिना`,year:`वर्ष`,openCalendar:`पात्रो खोल्नुहोस्`,chooseDate:`मिति छान्नुहोस्`,calendar:`पात्रो`,presets:`छिटो छनोट`,fiscalYear:`आर्थिक वर्ष`,time:`समय`,hour:`घण्टा`,minute:`मिनेट`,now:`अहिले`,done:`भयो`},time:{am:`पूर्वाह्न`,pm:`अपराह्न`},presets:{today:`आज`,yesterday:`हिजो`,tomorrow:`भोलि`,thisWeek:`यो हप्ता`,lastWeek:`गत हप्ता`,last7Days:`पछिल्लो ७ दिन`,last30Days:`पछिल्लो ३० दिन`,thisMonth:`यो महिना`,lastMonth:`गत महिना`,thisYear:`यो वर्ष`,thisFiscalYear:`यो आर्थिक वर्ष`,lastFiscalYear:`गत आर्थिक वर्ष`},messages:{invalidFormat:{AD:`ई.सं. मिति YYYY-MM-DD ढाँचामा लेख्नुहोस्।`,BS:`वि.सं. मिति YYYY-MM-DD ढाँचामा लेख्नुहोस्।`},outOfRange:`{min} देखि {max} सम्मको मिति छान्नुहोस्।`,onOrAfter:`{min} वा त्यसपछिको मिति छान्नुहोस्।`,onOrBefore:`{max} वा त्यसअघिको मिति छान्नुहोस्।`,unavailable:`यो मिति उपलब्ध छैन।`,rangeTooShort:`कम्तीमा {min} दिन छान्नुहोस्।`,rangeTooLong:`बढीमा {max} दिन छान्नुहोस्।`,tooManyDates:`बढीमा {max} मिति छान्नुहोस्।`,invalidTime:`समय HH:MM ढाँचामा लेख्नुहोस्।`}}]]);function h(e){return m.get(e)??d}let g=Object.freeze({timeZone:`Asia/Kathmandu`,weekStartsOn:0,weekendDays:Object.freeze([6]),defaultLocale:`en`});function _(){return g}function v(e){return Number.isInteger(e)&&e>=0&&e<=6}let y=719468,b=146097,x=[31,28,31,30,31,30,31,31,30,31,30,31];function S(e){return e%4==0&&e%100!=0||e%400==0}function C(e,t){return t===2&&S(e)?29:x[t-1]??0}function w(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)&&Number.isInteger(n)&&Math.abs(e)<=999999&&t>=1&&t<=12&&n>=1&&n<=C(e,t)}function T(e,t,n){let r=t<=2?e-1:e,i=Math.floor(r/400),a=r-i*400,o=Math.floor((153*(t+(t>2?-3:9))+2)/5)+n-1,s=a*365+Math.floor(a/4)-Math.floor(a/100)+o;return i*b+s-y}function E(e){let t=e+y,n=Math.floor(t/b),r=t-n*b,i=Math.floor((r-Math.floor(r/1460)+Math.floor(r/36524)-Math.floor(r/146096))/365),a=r-(365*i+Math.floor(i/4)-Math.floor(i/100)),o=Math.floor((5*a+2)/153),s=a-Math.floor((153*o+2)/5)+1,c=o<10?o+3:o-9;return{year:i+n*400+ +(c<=2),month:c,day:s}}let D=ee(a),O=null;function ee(e){return Object.freeze({firstYear:e.firstYear,epochStart:e.epochStart,verifiedThrough:e.verifiedThrough,years:Object.freeze(e.years.map(e=>Object.freeze([...e])))})}function te(){let e=D.years.length,t=new Float64Array(e+1),n=new Uint16Array(e*12),r=D.epochStart;for(let i=0;i<e;i++){t[i]=r;let e=D.years[i]??[],a=0;for(let t=0;t<12;t++)n[i*12+t]=a,a+=e[t]??0;r+=a}return t[e]=r,{data:D,lastYear:D.firstYear+e-1,yearStart:t,monthOffset:n}}function k(){return O??(O=te())}function ne(){return k().lastYear}function A(){let{yearStart:e}=k();return{first:e[0]??0,last:(e[e.length-1]??0)-1}}function j(e,t){let{lastYear:n}=k();if(!Number.isInteger(e)||e<D.firstYear||e>n)throw new o(`OUT_OF_TABLE`,`BS year ${String(e)} is outside the supported range (BS ${D.firstYear}–${n}).`);if(!Number.isInteger(t)||t<1||t>12)throw new o(`INVALID_DATE`,`BS month ${String(t)} does not exist.`);return D.years[e-D.firstYear]?.[t-1]??0}function re(e,t,n){try{return Number.isInteger(n)&&n>=1&&n<=j(e,t)}catch{return!1}}function ie(e,t,n){let{yearStart:r,monthOffset:i}=k(),a=e-D.firstYear;return(r[a]??0)+(i[a*12+t-1]??0)+n-1}function ae(e){let{yearStart:t,monthOffset:n}=k(),{first:r,last:i}=A();if(e<r||e>i)throw new o(`OUT_OF_TABLE`,`Day ${e} is outside the BS table (BS ${D.firstYear}–${ne()}).`);let a=0,s=t.length-2;for(;a<s;){let n=Math.ceil((a+s)/2);(t[n]??0)<=e?a=n:s=n-1}let c=e-(t[a]??0),l=11;for(;l>0&&(n[a*12+l]??0)>c;)l--;return{year:D.firstYear+a,month:l+1,day:c-(n[a*12+l]??0)+1}}function oe(e,t,n){if(!w(e,t,n))throw new o(Number.isInteger(e)&&Number.isInteger(t)&&Number.isInteger(n)?`INVALID_DATE`:`INVALID_ARGUMENT`,Math.abs(e)>999999?`AD year ${String(e)} is outside ±999999.`:`AD ${String(e)}-${String(t)}-${String(n)} is not a valid date.`);return Object.freeze({calendar:`AD`,year:e,month:t,day:n})}function se(e,t,n){let r=j(e,t);if(!Number.isInteger(n)||n<1||n>r)throw new o(Number.isInteger(n)?`INVALID_DATE`:`INVALID_ARGUMENT`,`BS ${e}-${t} has ${r} days, not ${String(n)}.`);return Object.freeze({calendar:`BS`,year:e,month:t,day:n})}function M(e,t,n,r){return e===`AD`?oe(t,n,r):se(t,n,r)}function ce(e,t,n,r){return e===`AD`?w(t,n,r):re(t,n,r)}function N(e,t,n){if(e===`BS`)return j(t,n);if(!w(t,n,1))throw new o(`INVALID_DATE`,`AD ${String(t)}-${String(n)} is not a month.`);return C(t,n)}function P(e){return s(e.calendar===`AD`?T(e.year,e.month,e.day):ie(e.year,e.month,e.day))}function le(e,t){if(t===`AD`){let{year:t,month:n,day:r}=E(e);return oe(t,n,r)}he(e);let{year:n,month:r,day:i}=ae(e);return se(n,r,i)}function F(e,t){return e.calendar===t?e:le(P(e),t)}function ue(e){return le(s(A().first),e)}function de(e){return le(s(A().last),e)}function I(e){let{year:t,month:n,day:r}=F(e,`AD`);if(t<0||t>9999)throw new o(`INVALID_ARGUMENT`,`AD year ${t} cannot be written as YYYY-MM-DD.`);return`${_e(t,4)}-${_e(n,2)}-${_e(r,2)}`}function fe(e){let t=/^(\d{4})-(\d{2})-(\d{2})(?:$|[T ])/.exec(e??``);if(!t)return null;try{return oe(Number(t[1]),Number(t[2]),Number(t[3]))}catch{return null}}function pe(e,t=_().timeZone){if(Number.isNaN(e.getTime()))throw new o(`INVALID_ARGUMENT`,`The Date is invalid.`);let n;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`numeric`,day:`numeric`,era:`short`}).formatToParts(e)}catch{throw new o(`INVALID_ARGUMENT`,`"${t}" is not a time zone.`)}let r=e=>n.find(t=>t.type===e)?.value??``,i=Number(r(`year`));return oe(r(`era`)===`BC`?1-i:i,Number(r(`month`)),Number(r(`day`)))}function me(e,t=_().timeZone){if(!e||!/T.*(?:Z|[+-]\d{2}:?\d{2})$/.test(e))return null;let n=new Date(e);if(Number.isNaN(n.getTime()))return null;let r=new Intl.DateTimeFormat(`en-GB`,{timeZone:t,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`}).format(n);return{date:pe(n,t),time:r}}function he(e){let{first:t,last:n}=A();if(e<t||e>n){let{year:r,month:i,day:a}=E(e),s=E(t),c=E(n);throw new o(`OUT_OF_TABLE`,`AD ${ge(r,i,a)} is outside the BS table (AD ${ge(s.year,s.month,s.day)} to ${ge(c.year,c.month,c.day)}).`)}}function ge(e,t,n){return`${e}-${_e(t,2)}-${_e(n,2)}`}function _e(e,t){return String(e).padStart(t,`0`)}function ve(e=`AD`,t=_().timeZone){return F(pe(/* @__PURE__ */ new Date,t),e)}function ye(e=_().timeZone){let t=me((/* @__PURE__ */ new Date()).toISOString(),e),[n=0,r=0]=(t?.time??`00:00`).split(`:`).map(Number);return{date:t?.date??pe(/* @__PURE__ */ new Date,e),time:Object.freeze({hour:n,minute:r})}}function L(e,t){return Oe(t,`days`),le(s(P(e)+t),e.calendar)}function R(e,t){Oe(t,`months`);let n=e.year*12+(e.month-1)+t,r=Math.floor(n/12),i=n-r*12+1,a=Math.min(e.day,N(e.calendar,r,i));return M(e.calendar,r,i,a)}function be(e,t){return Oe(t,`years`),R(e,t*12)}function z(e){return M(e.calendar,e.year,e.month,1)}function xe(e){return M(e.calendar,e.year,e.month,N(e.calendar,e.year,e.month))}function Se(e){return M(e.calendar,e.year,1,1)}function Ce(e){return M(e.calendar,e.year,12,N(e.calendar,e.year,12))}function we(e,t=_().weekStartsOn){return ke(t),L(e,-((c(P(e))-t+7)%7))}function Te(e,t=_().weekStartsOn){return L(we(e,t),6)}function Ee(e,t){return P(e)-P(t)}function De(e,t){return F(t,e.calendar)}function Oe(e,t){if(!Number.isSafeInteger(e))throw new o(`INVALID_ARGUMENT`,`${t} must be a whole number, not ${String(e)}.`)}function ke(e){if(!v(e))throw new o(`INVALID_ARGUMENT`,`${String(e)} is not a weekday (0–6).`)}function B(e,t){return Math.sign(P(e)-P(t))}function Ae(e,t){return e!=null&&t!=null&&P(e)===P(t)}function je(e,t){let n=De(e,t);return n.year===e.year&&n.month===e.month}function Me(e,t){return P(e)<P(t)}function V(e,t){return P(e)>P(t)}function Ne(e,t,n){let r=P(e);return(t==null||r>=P(t))&&(n==null||r<=P(n))}function Pe(e,t,n){return t!=null&&Me(e,t)?F(t,e.calendar):n!=null&&V(e,n)?F(n,e.calendar):e}function Fe(e){return c(P(e))}let Ie=[`०`,`१`,`२`,`३`,`४`,`५`,`६`,`७`,`८`,`९`];function H(e=_().defaultLocale){return h(e)}function Le(e,t,n=`long`){return H(t).months[e][n]}function Re(e){return e.replace(/[०-९]/g,e=>String(Ie.indexOf(e)))}function U(e,t){let{digits:n}=H(t);return String(e).replace(/[0-9]/g,e=>n[Number(e)]??e)}function ze(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>Object.prototype.hasOwnProperty.call(t,n)?t[n]??e:e)}let Be=Object.freeze({iso:`Y-m-d`,cbms:`Y.m.d`,short:`j M Y`,long:`j F Y`,full:`l, j F Y`});function W(e,t=`iso`,n){let r=Object.prototype.hasOwnProperty.call(Be,t)?Be[t]:t,i=H(n),a=i.months[e.calendar],o=e=>U(e,n),s=e=>String(e).padStart(2,`0`),c=``;for(let t=0;t<r.length;t++){let n=r.charAt(t);switch(n){case`\\`:t++,c+=r.charAt(t);break;case`Y`:c+=o(e.year);break;case`y`:c+=o(s((e.year%100+100)%100));break;case`m`:c+=o(s(e.month));break;case`n`:c+=o(e.month);break;case`d`:c+=o(s(e.day));break;case`j`:c+=o(e.day);break;case`F`:c+=a.long[e.month-1]??``;break;case`M`:c+=a.short[e.month-1]??``;break;case`l`:c+=i.weekdays.long[Fe(e)]??``;break;case`D`:c+=i.weekdays.short[Fe(e)]??``;break;default:c+=n}}return c}function Ve(e){let t=F(e,`BS`);return He(t.month>=4?t.year:t.year-1)}function He(e){let t=e+1;return Object.freeze({startYear:e,label:`${e}/${String(t%100).padStart(2,`0`)}`,firstDay:se(e,4,1),lastDay:se(t,3,N(`BS`,t,3))})}function Ue(e,t=`label`,n){let r=e.startYear+1;return U(t===`full`?`${e.startYear}/${r}`:t===`cbms`?`${e.startYear}.${String(r%1e3).padStart(3,`0`)}`:e.label,n)}let We=/^(\d{4})[-./](\d{1,2})[-./](\d{1,2})$/,Ge=/^(\d{4})(\d{2})(\d{2})$/;function Ke(e,t){try{return qe(e??``,t)}catch{return null}}function qe(e,t){let n=Re(e).trim(),r=We.exec(n)??Ge.exec(n);if(!r)throw new o(`INVALID_ARGUMENT`,`"${e}" is not a date written as YYYY-MM-DD.`);return M(t,Number(r[1]),Number(r[2]),Number(r[3]))}function Je(e,t=0){if(!Ye(e,t))throw new o(`INVALID_ARGUMENT`,`${String(e)}:${String(t)} is not a time of day.`);return Object.freeze({hour:e,minute:t})}function Ye(e,t){return Number.isInteger(e)&&Number.isInteger(t)&&e>=0&&e<=23&&t>=0&&t<=59}function Xe(e){let t=Re(e??``).trim().toLowerCase(),n=null;for(let e of[`en`,`ne`]){let{am:r,pm:i}=H(e).time;for(let[e,a]of[[r.toLowerCase(),`am`],[i.toLowerCase(),`pm`],[r.toLowerCase().replace(/(.)/g,`$1.`),`am`],[i.toLowerCase().replace(/(.)/g,`$1.`),`pm`]])if(t.endsWith(e)){n=a,t=t.slice(0,-e.length).trim();break}if(n)break}let r=/^(\d{1,2})(?:[:.](\d{2}))?$/.exec(t)??/^(\d{2})(\d{2})$/.exec(t);if(!r)return null;let i=Number(r[1]),a=Number(r[2]??0);if(n){if(i<1||i>12)return null;i=i%12+(n===`pm`?12:0)}return Ye(i,a)?Je(i,a):null}function Ze(e,t={}){let n=String(e.minute).padStart(2,`0`);if(!t.hour12)return U(`${String(e.hour).padStart(2,`0`)}:${n}`,t.locale);let{am:r,pm:i}=H(t.locale).time;return`${U(`${e.hour%12==0?12:e.hour%12}:${n}`,t.locale)} ${e.hour<12?r:i}`}function Qe(e,t,n=_().timeZone){let{year:r,month:i,day:a}=F(e,`AD`);if(r<0||r>9999)throw new o(`INVALID_ARGUMENT`,`AD year ${r} cannot be written in ISO form.`);let s=Date.UTC(r,i-1,a,t.hour,t.minute),c=et(s-et(s,n)*6e4,n),l=c<0?`-`:`+`,u=Math.abs(c),d=(e,t=2)=>String(e).padStart(t,`0`);return`${d(r,4)}-${d(i)}-${d(a)}T${d(t.hour)}:${d(t.minute)}:00${l}${d(Math.floor(u/60))}:${d(u%60)}`}function $e(e,t=_().timeZone){let n=me(e,t);if(n){let e=Xe(n.time);return e?{date:n.date,time:e}:null}let r=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::\d{2}(?:\.\d+)?)?$/.exec(e??``);if(!r)return null;try{return{date:oe(Number(r[1]),Number(r[2]),Number(r[3])),time:Je(Number(r[4]),Number(r[5]))}}catch{return null}}function et(e,t){let n;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,hourCycle:`h23`,year:`numeric`,month:`numeric`,day:`numeric`,hour:`numeric`,minute:`numeric`}).formatToParts(new Date(e))}catch{throw new o(`INVALID_ARGUMENT`,`"${t}" is not a time zone.`)}let r=e=>Number(n.find(t=>t.type===e)?.value??0),i=Date.UTC(r(`year`),r(`month`)-1,r(`day`),r(`hour`),r(`minute`));return Math.round((i-Math.floor(e/6e4)*6e4)/6e4)}let tt=/* @__PURE__ */ new Set([`ArrowRight`,`ArrowDown`,`End`,`PageDown`]);function nt(e,t,n,r){let i=r.shift?12:1,a;try{switch(t){case`ArrowLeft`:a=L(e,-1);break;case`ArrowRight`:a=L(e,1);break;case`ArrowUp`:a=L(e,-7);break;case`ArrowDown`:a=L(e,7);break;case`Home`:a=we(e,r.weekStartsOn);break;case`End`:a=Te(e,r.weekStartsOn);break;case`PageUp`:a=R(e,-i);break;case`PageDown`:a=R(e,i)}}catch{a=tt.has(t)?n.highDay:n.lowDay}return Pe(a,n.lowDay,n.highDay)}function rt(e,t,n){let r=at(e),i=ot(e),a=!1,o=r;t!=null&&V(t,r)&&(V(t,i)?a=!0:o=F(t,e));let s=i;return n!=null&&V(i,n)&&(V(r,n)?a=!0:s=F(n,e)),(a||V(o,s))&&(a=!0,s=o),{calendar:e,lowDay:o,highDay:s,lowMonth:z(o),highMonth:z(s),empty:a}}function it(e,t){return!t.empty&&Ne(e,t.lowDay,t.highDay)}function at(e){let t=ue(e);return t.day===1?t:z(R(t,1))}function ot(e){let t=de(e);return t.day===N(e,t.year,t.month)?t:L(z(t),-1)}let st=Object.freeze([]);function ct(e){let{calendar:t,month:n,locale:r}=e,i=t===`BS`?`AD`:`BS`,a=z(n),o=P(a),c=N(t,n.year,n.month),l=(Fe(a)-e.weekStartsOn+7)%7,u=e.fixedWeeks?6:Math.ceil((l+c)/7),d=H(r).calendarNames,f=P(e.today),p=e.focusTarget?P(e.focusTarget):null,{singleEpoch:m,startEpoch:h,endEpoch:g,many:_}=dt(e.selectionMode,e.selected),v=e.selectionMode===`range`&&h!==null&&g===null&&e.rangeHover?P(e.rangeHover):null,y=v===null||h===null?null:Math.min(h,v),b=v===null||h===null?null:Math.max(h,v),x=[];for(let n=0;n<u;n++){let a=[];for(let u=0;u<7;u++){let v=n*7+u,x=v<l||v>=l+c,S=s(o-l+v),C=x&&!e.showOutsideDays?null:ft(S,t);if(!C){a.push(null);continue}let w=e.showOtherCalendar?ft(S,i):null,T=Fe(C),E=S===f,D=h===S,O=g!==null&&g===S&&g!==h,ee=h!==null&&g!==null&&S>h&&S<g,te=m===S||D||O||_.has(S),k=y!==null&&b!==null&&S>=y&&S<=b,ne=!it(C,e.limits)||(e.isDateDisabled?.(C)??!1),A=e.holiday?.(C)??null,j=A?.label??null,re=te?e.selectionMode===`range`?O?`range-end`:g===null?`selected`:`range-start`:`selected`:ee?`range-middle`:ne?`disabled`:x?`outside`:E?`today`:A?`holiday`:`default`;a.push(Object.freeze({key:`${C.calendar}-${W(C,`Y-m-d`,`en`)}`,date:C,otherDate:w,epoch:S,weekday:T,label:U(C.day,r),subLabel:w?U(w.day,r):null,ariaLabel:W(C,`full`,r)+(w?` (${W(w,`long`,r)} ${d[w.calendar]})`:``)+(j?`, ${j}`:``),isToday:E,isSelected:te,isRangeStart:e.selectionMode===`range`&&D,isRangeMiddle:ee,isRangeEnd:O,isInRangePreview:k,isDisabled:ne,isOutside:x,isWeekend:e.weekendDays.includes(T),isHoliday:A!==null,holidayLabel:j,events:e.events?.(C)??st,isFocusTarget:p===S,state:re}))}x.push(a)}return x}function lt(e,t,n){let{weekdays:r}=H(e);return Array.from({length:7},(e,i)=>{let a=(t+i)%7;return Object.freeze({index:a,label:r.short[a]??``,narrowLabel:r.narrow[a]??``,longLabel:r.long[a]??``,isWeekend:n.includes(a)})})}let ut=/* @__PURE__ */ new Set;function dt(e,t){let n={singleEpoch:null,startEpoch:null,endEpoch:null,many:ut};return t==null?n:G(t)?{...n,many:new Set(t.map(e=>P(e)))}:`calendar`in t?e===`range`?{...n,startEpoch:P(t)}:{...n,singleEpoch:P(t)}:e===`range`?{...n,startEpoch:t.start?P(t.start):null,endEpoch:t.end?P(t.end):null}:{...n,singleEpoch:t.start?P(t.start):null}}function G(e){return Array.isArray(e)}function ft(e,t){try{return le(e,t)}catch{return null}}function pt(e){let{calendar:t,year:n,limits:r,locale:i}=e,a=t===`BS`?`AD`:`BS`,o=Le(t,i,`long`),s=Le(a,i,`short`),c=e.selected?K(e.selected,t):null,l=K(e.today,t);return Array.from({length:12},(e,i)=>{let u=i+1,d=ce(t,n,u,1),f=null,p=!0;if(d){let e=M(t,n,u,1),i=xe(e),o=K(e,a),c=K(i,a);if(o&&c){let e=s[o.month-1]??``,t=s[c.month-1]??``;f=e===t?e:`${e} / ${t}`}p=r.empty||Me(i,r.lowDay)||V(e,r.highDay)}return Object.freeze({value:u,label:o[i]??``,subLabel:f,isSelected:c?.year===n&&c.month===u,isCurrent:l?.year===n&&l.month===u,isDisabled:p})})}function mt(e){return Math.floor(e/12)*12}function ht(e){let{calendar:t,limits:n,locale:r}=e,i=t===`BS`?`AD`:`BS`,a=mt(e.year),o=e.selected?K(e.selected,t):null,s=K(e.today,t);return Array.from({length:12},(e,c)=>{let l=a+c,u=null;if(ce(t,l,1,1)){let e=M(t,l,1,1),n=K(Se(e),i),a=K(Ce(e),i);n&&a&&(u=U(n.year===a.year?`${n.year}`:`${n.year}/${String(a.year%100).padStart(2,`0`)}`,r))}return Object.freeze({value:l,label:U(l,r),subLabel:u,isSelected:o?.year===l,isCurrent:s?.year===l,isDisabled:n.empty||l<n.lowDay.year||l>n.highDay.year})})}function K(e,t){try{return F(e,t)}catch{return null}}function gt(e){try{return He(e)}catch{return null}}function _t(e,t){let n=gt(e);return n!==null&&!t.empty&&B(n.firstDay,t.lowDay)>=0&&B(n.lastDay,t.highDay)<=0}function vt(e){let{limits:t,locale:n}=e,r=K(e.today,`BS`),i=mt(e.year),a=r?Ve(r).startYear:null,o=e.selectedRange;return Array.from({length:12},(e,r)=>{let s=i+r,c=gt(s),l=c?K(c.firstDay,`AD`):null,u=c?K(c.lastDay,`AD`):null,d=c!==null&&o?.start!=null&&o.end!=null&&B(o.start,c.firstDay)===0&&B(o.end,c.lastDay)===0;return Object.freeze({value:s,label:c?Ue(c,`label`,n):U(`${s}/${String((s+1)%100).padStart(2,`0`)}`,n),subLabel:l&&u?U(`${l.year}/${String(u.year%100).padStart(2,`0`)}`,n):null,isSelected:d,isCurrent:a===s,isDisabled:!_t(s,t)})})}function yt(e={}){let t={...e},n=t.calendar??`BS`,r=t.selectionMode??`single`,i=F(t.today??ve(`AD`),`AD`),a=rt(n,t.min,t.max),o=xt(t.selected??null,r,n),s=`day`,c=null,l=Et(t.holidays),u=y(t.visibleMonth??t.defaultVisibleMonth??St(o)??i),d=b(St(o)??i),f=C(),p=/* @__PURE__ */ new Set,m=!1;function h(){return t.locale??_().defaultLocale}function g(){return t.weekStartsOn??_().weekStartsOn}function v(){return t.weekendDays??_().weekendDays}function y(e){return Me(e,a.lowMonth)?a.lowMonth:V(e,a.highDay)?a.highMonth:z(F(e,n))}function b(e){return Me(e,a.lowDay)?a.lowDay:V(e,a.highDay)?a.highDay:F(e,n)}function x(){if(je(u,d))return d;let e=Math.min(F(d,n).day,N(n,u.year,u.month));return M(n,u.year,u.month,e)}function S(e){return it(e,a)&&!(t.isDateDisabled?.(e)??!1)}function C(){let e=h(),d=x(),f=St(o),p=u.year,m=mt(p),_=bt(u),y=mt(_),b=H(e).labels,S=Ct(o),C={calendar:n,year:p,limits:a,locale:e,selected:f,today:i};return Object.freeze({calendar:n,view:s,visibleMonth:u,focused:d,title:s===`day`?W(u,`F Y`,e):s===`month`?U(p,e):s===`year`?`${U(m,e)}–${U(m+11,e)}`:`${b.fiscalYear} ${U(`${y}/${String((y+1)%100).padStart(2,`0`)}–${y+11}/${String((y+12)%100).padStart(2,`0`)}`,e)}`,weekdays:lt(e,g(),v()),weeks:ct({calendar:n,month:u,limits:a,locale:e,today:i,selectionMode:r,selected:o,rangeHover:c,focusTarget:d,showOtherCalendar:t.showOtherCalendar??!0,showOutsideDays:t.showOutsideDays??!0,fixedWeeks:t.fixedWeeks??!1,weekStartsOn:g(),weekendDays:v(),isDateDisabled:t.isDateDisabled,holiday:l,events:t.events}),months:pt(C),years:ht(C),fiscalYears:vt({...C,year:_,selectedRange:S}),canPrev:s===`day`?V(u,a.lowMonth):s===`month`?p>a.lowMonth.year:s===`year`?m>a.lowMonth.year:y>bt(a.lowDay),canNext:s===`day`?Me(u,a.highMonth):s===`month`?p<a.highMonth.year:s===`year`?m+11<a.highMonth.year:y+11<bt(a.highDay),selectionMode:r,selected:o,rangeHover:c,minDate:a.lowDay,maxDate:a.highDay})}function w(){f=C();for(let e of[...p])e()}function T(e){if(m)return;let n={month:u,view:s,key:E()};e(),E()!==n.key&&(w(),Ae(n.month,u)||t.onVisibleMonthChange?.(u),n.view!==s&&t.onViewChange?.(s))}function E(){let e=Ct(o),t=o&&`calendar`in o?o:null,n=G(o)?o.map(e=>P(e)).join(`,`):``;return[s,P(u),P(d),t?P(t):``,e?.start?P(e.start):``,e?.end?P(e.end):``,c?P(c):``,n].join(`|`)}function D(e){let t;try{t=R(u,e)}catch{t=e>0?a.highMonth:a.lowMonth}u=y(t)}let O={next(){T(()=>{D(s===`day`?1:s===`month`?12:144)})},prev(){T(()=>{D(s===`day`?-1:s===`month`?-12:-144)})},goTo(e){T(()=>{u=y(e),d=b(e)})},goToToday(){O.goTo(i)},setView(e){T(()=>{s=e})},chooseMonth(e){T(()=>{u=y(M(n,u.year,e,1)),d=x(),s=`day`})},chooseFiscalYear(e){let i=gt(e);if(m||!i||!_t(e,a))return!1;let l=F(i.firstDay,n),f=F(i.lastDay,n),p=r===`range`?Object.freeze({start:l,end:f}):null;return T(()=>{u=y(l),d=l,s=`day`,p&&(o=p,c=null)}),p&&t.onSelect?.(p),!0},chooseYear(e){T(()=>{let t;try{t=be(u,e-u.year)}catch{t=e<u.year?a.lowMonth:a.highMonth}u=y(t),s=`month`})},focus(e){T(()=>{d=b(e),u=y(d)})},moveFocus(e,t={}){T(()=>{d=nt(x(),e,a,{weekStartsOn:g(),...t.shift===void 0?{}:{shift:t.shift}}),je(u,d)||(u=y(d))})},select(e){if(m||!S(e))return!1;let i=F(e,n),a=i;return T(()=>{if(d=i,je(u,i)||(u=y(i)),r===`single`)o=i;else if(r===`multiple`)a=wt(G(o)?o:[],i),o=a;else{let e=o??{start:null,end:null},t=e.start===null||e.end!==null?{start:i,end:null}:B(i,e.start)<0?{start:i,end:e.start}:{start:e.start,end:i};o=Object.freeze(t),c=null,a=t}}),t.onSelect?.(a),!0},hover(e){T(()=>{let t=r===`range`?o:null;c=e&&t?.start&&t.end===null&&it(e,a)?F(e,n):null})}};return{getState:()=>f,subscribe(e){return p.add(e),()=>{p.delete(e)}},setOptions(e){if(m)return;t={...t,...e},n=t.calendar??`BS`,r=t.selectionMode??`single`,i=F(t.today??ve(`AD`),`AD`),a=rt(n,t.min,t.max),l=Et(t.holidays);let s=`selected`in e||`selectionMode`in e;o=xt(`selected`in e?e.selected??null:o,r,n),s&&(c=null),u=y(e.visibleMonth??u),d=b(d),w()},actions:O,destroy(){m=!0,p.clear()}}}function bt(e){try{return Ve(e).startYear}catch{return e.year}}function xt(e,t,n){let r=e=>{if(e===null)return null;try{return F(e,n)}catch{return e}};if(t===`multiple`)return Tt((G(e)?e:e===null?[]:`calendar`in e?[e]:[e.start,e.end].filter(e=>e!==null)).map(e=>r(e)??e));if(e===null)return t===`range`?Object.freeze({start:null,end:null}):null;if(G(e)){let[n=null,i=null]=Tt(e);return t===`range`?Object.freeze({start:r(n),end:r(i)}):r(n)}return`calendar`in e?t===`range`?Object.freeze({start:r(e),end:null}):r(e):t===`range`?Object.freeze({start:r(e.start),end:r(e.end)}):r(e.start)}function St(e){return e===null?null:G(e)?e[0]??null:`calendar`in e?e:e.start}function Ct(e){return e&&!G(e)&&!(`calendar`in e)?e:null}function wt(e,t){let n=e.filter(e=>!Ae(e,t));return Tt(n.length===e.length?[...n,t]:n)}function Tt(e){return Object.freeze([...e].sort(B))}function Et(e){if(e===void 0)return;if(typeof e==`function`)return t=>{let n=e(t);return n===!0?{label:null}:n?{label:n.label??null}:null};let t=/* @__PURE__ */ new Map;for(let n of e){let e=`calendar`in n?n:n.date;t.set(P(e),`calendar`in n?null:n.label??null)}return e=>{let n=t.get(P(e));return n===void 0?null:{label:n}}}function Dt(e,t,n,r,i=`iso`){if(e.trim()===``)return{kind:`empty`};let a=H(r).messages,o=Ke(e,t);if(!o)return{kind:`error`,error:{code:`format`,message:a.invalidFormat[t]}};let s=q(o,t,n,r,i);return s?{kind:`error`,error:s}:{kind:`date`,date:F(o,`AD`)}}function q(e,t,n,r,i=`iso`){let a=H(r).messages;if(!Ne(e,n.min,n.max)){let e={min:J(n.min,t,i,r),max:J(n.max,t,i,r)};return{code:`range`,message:ze(n.hasMin===n.hasMax?a.outOfRange:n.hasMin?a.onOrAfter:a.onOrBefore,e)}}return n.isDateDisabled?.(e)?{code:`disabled`,message:a.unavailable}:null}function J(e,t,n,r){return e?W(F(e,t),n,r):``}function Ot(e,t,n){if(!e)return null;let r=t===`BS`?`AD`:`BS`;return`${W(F(e,r),`long`,n)} ${H(n).calendarNames[r]}`}function kt(e,t){return`YYYY-MM-DD (${H(t).calendarNames[e]})`}function Y(e){return e?fe(e):null}function X(e){return e?Object.freeze({ad:F(e,`AD`),bs:F(e,`BS`)}):null}function Z(e,t){return{calendar:t,locale:e.locale,min:Y(e.min),max:Y(e.max),isDateDisabled:e.isDateDisabled,holidays:e.holidays,events:e.events,showOtherCalendar:e.showOtherCalendar,weekStartsOn:e.weekStartsOn,weekendDays:e.weekendDays,today:e.today}}function At(e,t){let{minDate:n,maxDate:r}=t.getState();return{min:n,max:r,hasMin:Y(e.min)!==null,hasMax:Y(e.max)!==null,isDateDisabled:e.isDateDisabled}}function Q(e){return e.locale??_().defaultLocale}function $(e){return e.displayFormat??`iso`}function jt(e){return e.today??ve(`AD`)}function Mt(e){return!G(e)&&!(`calendar`in e)}function Nt(e){return!G(e)&&`calendar`in e}function Pt(e){let t=/* @__PURE__ */ new Set,n=[],r=0;function i(){e();for(let e of[...t])e()}return{subscribe(e){return t.add(e),()=>{t.delete(e)}},act(e){r++;try{e()}finally{if(r--,r===0){let e=n.splice(0);try{i()}finally{for(let t of e)t()}}}},after(e){n.push(e)},notify(){r===0&&i()},clear(){t.clear()}}}function Ft(e,t){let n=F(t.today,t.calendar);switch(e){case`today`:return n;case`yesterday`:return L(n,-1);case`tomorrow`:return L(n,1)}}function It(e,t){let n=F(t.today,t.calendar),r=t.weekStartsOn;switch(e){case`today`:return{start:n,end:n};case`yesterday`:{let e=L(n,-1);return{start:e,end:e}}case`thisWeek`:return{start:we(n,r),end:Te(n,r)};case`lastWeek`:{let e=L(n,-7);return{start:we(e,r),end:Te(e,r)}}case`last7Days`:return{start:L(n,-6),end:n};case`last30Days`:return{start:L(n,-29),end:n};case`thisMonth`:return{start:z(n),end:xe(n)};case`lastMonth`:{let e=R(z(n),-1);return{start:e,end:xe(e)}}case`thisYear`:return{start:Se(n),end:Ce(n)};case`thisFiscalYear`:{let e=Ve(n);return{start:e.firstDay,end:e.lastDay}}case`lastFiscalYear`:{let e=He(Ve(n).startYear-1);return{start:e.firstDay,end:e.lastDay}}}}function Lt(e,t,n){if(typeof e==`string`){let r=H(t).presets;return{id:e,label:Object.prototype.hasOwnProperty.call(r,e)?r[e]??e:e,resolve:t=>n(e,t)}}return e}function Rt(e={}){let t={...e},n=t.calendar??t.defaultCalendar??`BS`,r=Y(t.value??t.defaultValue),a=r?I(r):``,o=J(r,n,$(t),Q(t)),s=null,c=!1,l=!1,u=yt({...Z(t,n),selectionMode:`single`,selected:r,onSelect:e=>{Nt(e)&&x(e)}}),d=p(),f=Pt(()=>{d=p()});u.subscribe(()=>{f.notify()});function p(){let e=Q(t);return Object.freeze({value:a,date:X(r),text:o,calendar:n,canSwitchCalendar:t.calendar===void 0,open:c||t.inline===!0,inline:t.inline===!0,error:s,equivalentText:s?null:Ot(r,n,e),placeholder:kt(n,e),presets:g(),calendarState:u.getState()})}function m(){return{today:F(jt(t),`AD`),calendar:n,weekStartsOn:t.weekStartsOn??_().weekStartsOn}}function h(){let e=m(),r=At(t,u);return(t.presets??[]).map(i=>{let a=Lt(i,t.locale,Ft),o=(()=>{try{let i=a.resolve(e);return q(i,n,r,Q(t))?null:i}catch{return null}})();return{id:a.id,label:a.label,date:o}})}function g(){return h().map(({id:e,label:t,date:n})=>Object.freeze({id:e,label:t,isActive:n!==null&&I(n)===a,isDisabled:n===null}))}function v(e){u.setOptions({...Z(t,n),selected:r,...e&&r?{visibleMonth:r}:{}})}function y(e,n){let i=e?I(e):``,o=i!==a;if(r=e,a=i,v(e!==null),o&&n){let n=X(e);f.after(()=>t.onChange?.(i,n))}}function b(e){return J(e,n,$(t),Q(t))}function x(e){f.act(()=>{let n=F(e,`AD`);s=null,o=b(n),y(n,!0),(t.closeOnSelect??!0)&&(c=!1)})}let S={type(e){l||f.act(()=>{o=t.mask===!1?e:i(e,o);let r=Dt(o,n,At(t,u),Q(t),$(t));s=r.kind===`error`?r.error:null,y(r.kind===`date`?r.date:null,!0)})},blur(){f.act(()=>{s||(o=b(r))})},clear(){f.act(()=>{o=``,s=null,y(null,!0)})},setValue(e){f.act(()=>{C(e)})},open(){f.act(()=>{c=!0,u.actions.goTo(r??jt(t))})},close(){f.act(()=>{c=!1})},toggle(){c?S.close():S.open()},switchCalendar(e){t.calendar!==void 0||e===n||l||f.act(()=>{n=e,s||(o=b(r)),v(r!==null),f.after(()=>t.onCalendarChange?.(e))})},select(e){let t=!1;return l||f.act(()=>{t=u.actions.select(e)}),t},selectToday(){return S.select(jt(t))},reset(){f.act(()=>{let e=Y(t.defaultValue);s=null,o=b(e),y(e,!0)})},applyPreset(e){let t=h().find(t=>t.id===e);return l||!t?.date?!1:(x(t.date),!0)}};function C(e){let t=Y(e);(t?I(t):``)!==a&&(s=null,o=b(t),y(t,!1))}return{getState:()=>d,subscribe:e=>f.subscribe(e),setOptions(e){l||f.act(()=>{let i={calendar:n,locale:Q(t),format:$(t)};t={...t,...e},t.calendar!==void 0&&(n=t.calendar),`value`in e&&C(e.value),(i.calendar!==n||i.locale!==Q(t)||i.format!==$(t))&&!s&&(o=b(r)),v(!1)})},actions:S,calendar:u,destroy(){l=!0,u.destroy(),f.clear()}}}function zt(e={}){let t={...e},n=t.calendar??t.defaultCalendar??`BS`,r=Y(t.value?.start??t.defaultValue?.start),a=Y(t.value?.end??t.defaultValue?.end);[r,a]=Bt(r,a);let o=Vt(r,a),s=h(r),c=h(a),l=null,u=!1,d=!1,f=yt({...Z(t,n),selectionMode:`range`,selected:{start:r,end:a},onSelect:e=>{Mt(e)&&T(e.start,e.end)}}),p=g(),m=Pt(()=>{p=g()});f.subscribe(()=>{m.notify()});function h(e){return J(e,n,$(t),Q(t))}function g(){let e=Q(t);return Object.freeze({value:o,date:Object.freeze({start:X(r),end:X(a)}),startText:s,endText:c,calendar:n,canSwitchCalendar:t.calendar===void 0,open:u||t.inline===!0,inline:t.inline===!0,error:l,equivalentText:Object.freeze({start:l?.field===`start`?null:Ot(r,n,e),end:l?.field===`end`?null:Ot(a,n,e)}),placeholder:kt(n,e),presets:b(),calendarState:f.getState()})}function v(){return{today:F(jt(t),`AD`),calendar:n,weekStartsOn:t.weekStartsOn??_().weekStartsOn}}function y(){let e=v(),r=At(t,f),i=Q(t);return(t.presets??[]).map(a=>{let o=Lt(a,t.locale,It),s=(()=>{try{let t=o.resolve(e),a=F(t.start,`AD`),s=F(t.end,`AD`);return B(a,s)<=0&&!q(a,n,r,i)&&!q(s,n,r,i)&&S(a,s)===null?t:null}catch{return null}})();return{id:o.id,label:o.label,range:s}})}function b(){return y().map(({id:e,label:t,range:n})=>Object.freeze({id:e,label:t,isActive:n!==null&&I(n.start)===o.start&&I(n.end)===o.end,isDisabled:n===null}))}function x(){f.setOptions({...Z(t,n),selected:{start:r,end:a},...r?{visibleMonth:r}:{}})}function S(e,n){let r=Ee(n,e)+1,i=H(Q(t)).messages;return t.minDays!==void 0&&r<t.minDays?{field:`range`,code:`tooShort`,message:ze(i.rangeTooShort,{min:String(t.minDays)})}:t.maxDays!==void 0&&r>t.maxDays?{field:`range`,code:`tooLong`,message:ze(i.rangeTooLong,{max:String(t.maxDays)})}:null}function C(e,n,i){r=e,a=n;let s=Vt(r,a),c=s.start!==o.start||s.end!==o.end;if(o=s,x(),c&&i){let e=Object.freeze({start:X(r),end:X(a)});m.after(()=>t.onChange?.(s,e))}}function w(e,t){let[n,r]=Bt(e,t);n!==e&&([s,c]=[c,s]);let i=n&&r?S(n,r):null;return l=i??l,C(n,i?null:r,!0),i===null}function T(e,n){m.act(()=>{let r=e?F(e,`AD`):null,i=n?F(n,`AD`):null;l=null,s=h(r),c=h(i);let a=w(r,i);i&&a&&(t.closeOnSelect??!0)&&(u=!1)})}let E={type(e,o){d||m.act(()=>{t.mask!==!1&&(o=i(o,e===`start`?s:c)),e===`start`?s=o:c=o;let u=Dt(o,n,At(t,f),Q(t),$(t)),d=u.kind===`date`?u.date:null;l=u.kind===`error`?{...u.error,field:e}:null;let p=e===`start`?a:r,m=p?q(p,n,At(t,f),Q(t)):null;!l&&m&&(l={...m,field:e===`start`?`end`:`start`}),e===`start`?w(d,a):w(r,d)})},blur(e){m.act(()=>{l?.field!==e&&(e===`start`?s=h(r):(a||l?.field!==`range`)&&(c=h(a)))})},clear(){m.act(()=>{s=``,c=``,l=null,C(null,null,!0)})},setValue(e){m.act(()=>{D(e)})},open(){m.act(()=>{u=!0,f.actions.goTo(r??jt(t))})},close(){m.act(()=>{u=!1})},toggle(){u?E.close():E.open()},switchCalendar(e){t.calendar!==void 0||e===n||d||m.act(()=>{n=e,l||(s=h(r),c=h(a)),x(),m.after(()=>t.onCalendarChange?.(e))})},select(e){let t=!1;return d||m.act(()=>{t=f.actions.select(e)}),t},applyPreset(e){let t=y().find(t=>t.id===e);return d||!t?.range?!1:(T(t.range.start,t.range.end),!0)},reset(){m.act(()=>{let[e,n]=Bt(Y(t.defaultValue?.start),Y(t.defaultValue?.end));l=null,s=h(e),c=h(n),C(e,n,!0)})}};function D(e){let[t,n]=Bt(Y(e?.start),Y(e?.end)),r=Vt(t,n);(r.start!==o.start||r.end!==o.end)&&(l=null,s=h(t),c=h(n),C(t,n,!1))}return{getState:()=>p,subscribe:e=>m.subscribe(e),setOptions(e){d||m.act(()=>{let i={calendar:n,locale:Q(t),format:$(t)};t={...t,...e},t.calendar!==void 0&&(n=t.calendar),`value`in e&&D(e.value),(i.calendar!==n||i.locale!==Q(t)||i.format!==$(t))&&!l&&(s=h(r),c=h(a)),x()})},actions:E,calendar:f,destroy(){d=!0,f.destroy(),m.clear()}}}function Bt(e,t){return e&&t&&B(t,e)<0?[t,e]:[e,t]}function Vt(e,t){return Object.freeze({start:e?I(e):``,end:t?I(t):``})}let Ht=/[,\s\u060c]+/;function Ut(e={}){let t={...e},n=t.calendar??t.defaultCalendar??`BS`,r=Wt(t.value??t.defaultValue),i=Kt(r),a=m(r),o=null,s=!0,c=!1,l=!1,u=yt({...Z(t,n),selectionMode:`multiple`,selected:r,onSelect:e=>{G(e)&&v(e.map(e=>F(e,`AD`)))}}),d=p(),f=Pt(()=>{d=p()});u.subscribe(()=>{f.notify()});function p(){return Object.freeze({value:i,dates:qt(r),text:a,calendar:n,canSwitchCalendar:t.calendar===void 0,open:c||t.inline===!0,inline:t.inline===!0,error:o,placeholder:kt(n,Q(t)),calendarState:u.getState()})}function m(e){return e.map(e=>J(e,n,`iso`,Q(t))).join(`, `)}function h(e){let n=t.maxDates;return n!==void 0&&e>n?{code:`tooMany`,message:ze(H(Q(t)).messages.tooManyDates,{max:String(n)})}:null}function g(){u.setOptions({...Z(t,n),selected:r})}function _(e,n){let a=Gt(e),o=Kt(a),s=o.join()!==i.join();if(r=a,i=o,g(),s&&n){let e=qt(a);f.after(()=>t.onChange?.(o,e))}}function v(e){f.act(()=>{o=h(e.length),o?g():(a=m(Gt(e)),s=!0,_(e,!0),t.closeOnSelect===!0&&(c=!1))})}let y={type(e){l||f.act(()=>{a=t.mask===!1?e:Jt(e,a);let r=At(t,u),i=[],c=null;for(let e of a.split(Ht)){let a=Dt(e,n,r,Q(t));a.kind===`date`?i.push(a.date):a.kind===`error`&&(c??(c=a.error))}o=c??h(Gt(i).length),s=o===null,_(i,!0)})},blur(){f.act(()=>{s&&(a=m(r))})},clear(){f.act(()=>{a=``,o=null,s=!0,_([],!0)})},setValue(e){f.act(()=>{b(e)})},open(){f.act(()=>{c=!0;let e=r[0];e&&u.actions.goTo(e)})},close(){f.act(()=>{c=!1})},toggle(){c?y.close():y.open()},switchCalendar(e){t.calendar!==void 0||e===n||l||f.act(()=>{n=e,s&&(a=m(r)),g(),f.after(()=>t.onCalendarChange?.(e))})},select(e){if(l)return!1;let t=i;return f.act(()=>{u.actions.select(e)}),i!==t},remove(e){f.act(()=>{o=null;let t=r.filter(t=>I(t)!==e);a=m(t),s=!0,_(t,!0)})},reset(){f.act(()=>{let e=Wt(t.defaultValue);o=null,a=m(e),s=!0,_(e,!0)})}};function b(e){let t=Wt(e);Kt(t).join()!==i.join()&&(o=null,a=m(t),s=!0,_(t,!1))}return{getState:()=>d,subscribe:e=>f.subscribe(e),setOptions(e){l||f.act(()=>{let i={calendar:n,locale:Q(t)};t={...t,...e},t.calendar!==void 0&&(n=t.calendar),`value`in e&&b(e.value),(i.calendar!==n||i.locale!==Q(t))&&s&&(a=m(r)),g()})},actions:y,calendar:u,destroy(){l=!0,u.destroy(),f.clear()}}}function Wt(e){return Gt((e??[]).map(Y).filter(e=>e!==null))}function Gt(e){return[...new Map(e.map(e=>[I(e),e])).entries()].sort(([e],[t])=>e<t?-1:1).map(([,e])=>e)}function Kt(e){return Object.freeze(e.map(e=>I(e)))}function qt(e){return Object.freeze(e.map(e=>Object.freeze({ad:e,bs:F(e,`BS`)})))}function Jt(e,t){if(!e.startsWith(t))return e;let n=/^(.*[,\s\u060c])?([^,\s\u060c]*)$/.exec(e),r=n?.[1]??``;return r+i(n?.[2]??e,t.length>r.length?t.slice(r.length):``)}function Yt(e={}){let t={...e},n=$e(t.value??t.defaultValue,d()),r=n?.time??null,i=r?f(r):``,a=null,o=``,s=!1,c=Rt({...p(),defaultValue:n?Xt(n.date):``,closeOnSelect:!1,onChange:()=>{u.act(()=>{c.getState().date&&!r&&(r=Xe(t.defaultTime)??Object.freeze({hour:0,minute:0}),i=f(r),a=null),g(!0)})}});o=m();let l=v(),u=Pt(()=>{l=v()});c.subscribe(()=>{u.notify()});function d(){return t.timeZone??_().timeZone}function f(e){return Ze(e,{hour12:t.hour12??!1,locale:Q(t)})}function p(){let{value:e,defaultValue:n,onChange:r,timeZone:i,hour12:a,minuteStep:o,defaultTime:s,...c}=t;return c}function m(){let e=c.getState().date;return e&&r?Qe(e.ad,r,d()):``}function h(){let e=c.getState().date;return e&&r&&o?Object.freeze({ad:e.ad,bs:e.bs,time:r,iso:o}):null}function g(e){let n=m();if(n!==o&&(o=n,e)){let e=h();u.after(()=>t.onChange?.(n,e))}}function v(){let e=c.getState(),n=Q(t),s=Math.min(30,Math.max(1,Math.floor(t.minuteStep??5))),{am:l,pm:u}=H(n).time,d=t.hour12??!1;return Object.freeze({value:o,detail:h(),dateText:e.text,timeText:i,time:r,calendar:e.calendar,canSwitchCalendar:e.canSwitchCalendar,open:e.open,inline:e.inline,error:e.error?{...e.error,field:`date`}:a?{...a,field:`time`}:null,equivalentText:e.equivalentText,placeholder:e.placeholder,timePlaceholder:d?`h:mm ${l}`:`HH:MM`,hours:Array.from({length:24},(e,t)=>Object.freeze({value:t,label:d?`${U(t%12==0?12:t%12,n)} ${t<12?l:u}`:U(String(t).padStart(2,`0`),n),isSelected:r?.hour===t})),minutes:Array.from({length:Math.ceil(60/s)},(e,t)=>Object.freeze({value:t*s,label:U(String(t*s).padStart(2,`0`),n),isSelected:r?.minute===t*s})),presets:e.presets,calendarState:e.calendarState})}function y(e,t,n){r=e,i=t,a=null,g(n)}let b={typeDate(e){c.actions.type(e)},blurDate(){c.actions.blur()},typeTime(e){s||u.act(()=>{let n=Xe(e);e.trim()===``||n?y(n,e,!0):(r=null,i=e,a={code:`format`,message:H(Q(t)).messages.invalidTime},g(!0))})},blurTime(){u.act(()=>{!a&&r&&(i=f(r))})},selectDate(e){return!s&&c.actions.select(e)},selectHour(e){u.act(()=>{let t=Object.freeze({hour:e,minute:r?.minute??0});y(t,f(t),!0)})},selectMinute(e){u.act(()=>{let t=Object.freeze({hour:r?.hour??0,minute:e});y(t,f(t),!0)})},selectNow(){if(s)return!1;let e=ye(d()),t=!1;return u.act(()=>{r=e.time,i=f(e.time),a=null,t=c.actions.select(e.date),g(!0)}),t},applyPreset(e){return!s&&c.actions.applyPreset(e)},open(){c.actions.open()},close(){c.actions.close()},toggle(){c.actions.toggle()},clear(){u.act(()=>{c.actions.setValue(``),y(null,``,!0)})},setValue(e){u.act(()=>{x(e)})},switchCalendar(e){c.actions.switchCalendar(e)},reset(){u.act(()=>{let e=$e(t.defaultValue,d());c.actions.setValue(e?Xt(e.date):``),y(e?.time??null,e?f(e.time):``,!0)})}};function x(e){let t=$e(e,d());(t?Qe(t.date,t.time,d()):``)!==o&&(c.actions.setValue(t?Xt(t.date):``),r=t?.time??null,i=r?f(r):``,a=null,g(!1))}return{getState:()=>l,subscribe:e=>u.subscribe(e),setOptions(e){s||u.act(()=>{t={...t,...e},c.setOptions(p()),`value`in e&&x(e.value),r&&!a&&(i=f(r)),g(!1)})},actions:b,calendar:c.calendar,destroy(){s=!0,c.destroy(),u.clear()}}}function Xt(e){return I(e)}return e.checkDate=q,e.createDatePicker=Rt,e.createDateRangePicker=zt,e.createDateTimePicker=Yt,e.createMultiDatePicker=Ut,e.equivalentText=Ot,e.formatInput=J,e.maskDateText=i,e.parseInput=Dt,e.placeholderText=kt,e.resolveRangePreset=It,e.resolveSinglePreset=Ft,e})({});
2
+ //# sourceMappingURL=nepdate-datepicker.global.js.map