@nepdatejs/vanilla 0.1.0 → 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.
- package/README.md +1 -1
- package/dist/auto-define.cjs +1 -1
- package/dist/auto-define.js +1 -1
- package/dist/{date-picker-ucoEFnMW.js → date-picker-BwlrlU5Y.js} +13 -30
- package/dist/date-picker-BwlrlU5Y.js.map +1 -0
- package/dist/{date-picker-CQoabjlj.cjs → date-picker-CgjYsf1w.cjs} +12 -29
- package/dist/date-picker-CgjYsf1w.cjs.map +1 -0
- package/dist/date-picker.cjs +1 -1
- package/dist/date-picker.js +1 -1
- package/dist/{date-range-picker-DAkCzVgT.js → date-range-picker-NwetXUC-.js} +13 -30
- package/dist/date-range-picker-NwetXUC-.js.map +1 -0
- package/dist/{date-range-picker-BQKcZeqG.cjs → date-range-picker-VrQZFZED.cjs} +12 -29
- package/dist/date-range-picker-VrQZFZED.cjs.map +1 -0
- package/dist/date-range-picker.cjs +1 -1
- package/dist/date-range-picker.js +1 -1
- package/dist/{date-time-picker-Bxfn-a9T.cjs → date-time-picker-ChHIBTBw.cjs} +12 -30
- package/dist/date-time-picker-ChHIBTBw.cjs.map +1 -0
- package/dist/{date-time-picker-BqweOP2u.js → date-time-picker-CxqC95aM.js} +12 -30
- package/dist/date-time-picker-CxqC95aM.js.map +1 -0
- package/dist/date-time-picker.cjs +1 -1
- package/dist/date-time-picker.js +1 -1
- package/dist/{define-DTTdLfIM.cjs → define-BbTIFHtH.cjs} +5 -5
- package/dist/{define-DTTdLfIM.cjs.map → define-BbTIFHtH.cjs.map} +1 -1
- package/dist/{define-7natoEH4.js → define-D96w8Zu2.js} +5 -5
- package/dist/{define-7natoEH4.js.map → define-D96w8Zu2.js.map} +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.js +5 -5
- package/dist/{multi-date-picker-XCg8Y0sF.js → multi-date-picker-C3Lr0Dq-.js} +13 -28
- package/dist/multi-date-picker-C3Lr0Dq-.js.map +1 -0
- package/dist/{multi-date-picker-BMEYUPBa.cjs → multi-date-picker-DUyuO-nH.cjs} +12 -27
- package/dist/multi-date-picker-DUyuO-nH.cjs.map +1 -0
- package/dist/multi-date-picker.cjs +1 -1
- package/dist/multi-date-picker.js +1 -1
- package/dist/nepdate-picker.global.js +2 -2
- package/dist/nepdate-picker.global.js.map +1 -1
- package/dist/preset-list-BYCZm61I.cjs +97 -0
- package/dist/preset-list-BYCZm61I.cjs.map +1 -0
- package/dist/preset-list-DmE6fJjr.js +80 -0
- package/dist/preset-list-DmE6fJjr.js.map +1 -0
- package/package.json +4 -4
- package/src/datetime-view.ts +12 -37
- package/src/multi-view.ts +11 -33
- package/src/panel.ts +61 -0
- package/src/picker-view.ts +11 -36
- package/src/range-view.ts +12 -37
- package/dist/date-picker-CQoabjlj.cjs.map +0 -1
- package/dist/date-picker-ucoEFnMW.js.map +0 -1
- package/dist/date-range-picker-BQKcZeqG.cjs.map +0 -1
- package/dist/date-range-picker-DAkCzVgT.js.map +0 -1
- package/dist/date-time-picker-BqweOP2u.js.map +0 -1
- package/dist/date-time-picker-Bxfn-a9T.cjs.map +0 -1
- package/dist/multi-date-picker-BMEYUPBa.cjs.map +0 -1
- package/dist/multi-date-picker-XCg8Y0sF.js.map +0 -1
- package/dist/preset-list-CASwnwmS.js +0 -45
- package/dist/preset-list-CASwnwmS.js.map +0 -1
- package/dist/preset-list-Cs8H12Wp.cjs +0 -50
- package/dist/preset-list-Cs8H12Wp.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-range-picker-VrQZFZED.cjs","names":["createDateRangePicker","uid","el","icon","PresetList","CalendarView","getLocale","openPanel","Base","presetIds","str","bool","calendarAttr","int","theme","panelLayout","onUnlessFalse","ELEMENT_NAMES"],"sources":["../src/range-view.ts","../src/date-range-picker-element.ts","../src/date-range-picker.ts"],"sourcesContent":["import { getLocale } from '@nepdatejs/core';\nimport {\n createDateRangePicker,\n type DateRangePickerOptions,\n type DateRangePickerState,\n type DateRangePickerStore,\n type RangeField,\n} from '@nepdatejs/datepicker';\nimport { restoreFocus, type PanelLayout } from '@nepdatejs/dom';\nimport { CalendarView } from './calendar-view';\nimport { openPanel, renderSegment } from './panel';\nimport { el, icon, setAttrs, setPopupMode, setText, uid } from './dom';\nimport { PANEL_WIDTH, PANEL_WIDTH_WITH_PRESETS, PresetList } from './preset-list';\nimport type { Theme } from './picker-view';\n\nexport interface DateRangePickerViewOptions extends DateRangePickerOptions {\n /** Field names for plain form posts; hidden inputs are rendered when set. */\n readonly startName?: string | undefined;\n readonly endName?: string | undefined;\n readonly hiddenInput?: boolean | undefined;\n readonly disabled?: boolean | undefined;\n readonly required?: boolean | undefined;\n /** 'sheet' opens a bottom sheet; 'popover' sits beside the field; 'auto' (default) uses the sheet below 480px. */\n readonly panelLayout?: PanelLayout | undefined;\n readonly theme?: Theme | undefined;\n readonly startLabel?: string | undefined;\n readonly endLabel?: string | undefined;\n /** Show a \"Fiscal year\" button that switches the panel to fiscal-year tiles. */\n readonly fiscalYearView?: boolean | undefined;\n readonly onOpenChange?: ((open: boolean) => void) | undefined;\n}\n\nconst VIEW_KEYS = new Set([\n 'startName',\n 'endName',\n 'hiddenInput',\n 'disabled',\n 'required',\n 'theme',\n 'panelLayout',\n 'startLabel',\n 'endLabel',\n 'fiscalYearView',\n 'onOpenChange',\n 'onChange',\n 'onCalendarChange',\n]);\n\n/** Two date fields (start, end) sharing one panel calendar in range mode. */\nexport class DateRangePickerView {\n readonly store: DateRangePickerStore;\n readonly inputs: Record<RangeField, HTMLInputElement>;\n private options: DateRangePickerViewOptions;\n private readonly field: HTMLDivElement;\n private readonly boxes: Record<RangeField, HTMLDivElement>;\n private readonly toggleButton: HTMLButtonElement;\n private readonly hint: HTMLParagraphElement;\n private readonly panel: HTMLDivElement;\n private readonly segment: HTMLDivElement;\n private readonly fiscalButton: HTMLButtonElement;\n private readonly footer: HTMLDivElement;\n private readonly hidden: Record<RangeField, HTMLInputElement>;\n private readonly calendarView: CalendarView;\n private readonly presetList: PresetList;\n private readonly unsubscribe: () => void;\n private closePanel: (() => void) | null = null;\n private wasOpen = false;\n\n constructor(host: HTMLElement, options: DateRangePickerViewOptions = {}) {\n this.options = { ...options };\n this.store = createDateRangePicker({\n ...storeOptions(options),\n onChange: (value, detail) => {\n this.options.onChange?.(value, detail);\n },\n onCalendarChange: (calendar) => {\n this.options.onCalendarChange?.(calendar);\n },\n });\n const id = uid('ndp-range');\n const makeInput = (field: RangeField): HTMLInputElement => {\n const input = el('input', {\n class: 'ndp-input__control',\n id: `${id}-${field}`,\n type: 'text',\n inputmode: 'numeric',\n autocomplete: 'off',\n 'aria-controls': `${id}-panel`,\n 'data-field': field,\n });\n input.addEventListener('input', () => {\n this.store.actions.type(field, input.value);\n });\n input.addEventListener('blur', () => {\n this.store.actions.blur(field);\n });\n input.addEventListener('keydown', (event) => {\n if (event.key === 'ArrowDown' && (event.altKey || input.value === '')) {\n event.preventDefault();\n this.open();\n }\n });\n return input;\n };\n this.inputs = { start: makeInput('start'), end: makeInput('end') };\n this.toggleButton = el(\n 'button',\n { type: 'button', class: 'ndp-icon-button', 'data-action': 'toggle' },\n [icon('calendar')],\n );\n this.boxes = {\n start: el('div', { class: 'ndp-input' }, [this.inputs.start]),\n end: el('div', { class: 'ndp-input' }, [\n this.inputs.end,\n el('span', { class: 'ndp-input__actions' }, [this.toggleButton]),\n ]),\n };\n this.hint = el('p', {\n class: 'ndp-hint',\n id: `${id}-hint`,\n 'aria-live': 'polite',\n hidden: true,\n });\n this.hidden = {\n start: el('input', { type: 'hidden' }),\n end: el('input', { type: 'hidden' }),\n };\n this.segment = el('div', { class: 'ndp-segment', role: 'group' }, [\n el('button', { type: 'button', class: 'ndp-segment__item', 'data-calendar': 'BS' }),\n el('button', { type: 'button', class: 'ndp-segment__item', 'data-calendar': 'AD' }),\n ]);\n this.fiscalButton = el('button', {\n type: 'button',\n class: 'ndp-button',\n 'data-action': 'fiscal',\n });\n this.footer = el('div', { class: 'ndp-panel__footer' }, [\n this.segment,\n this.fiscalButton,\n ]);\n const calendarRoot = el('div', { class: 'ndp-panel__calendar' });\n this.presetList = new PresetList((id) => {\n if (this.store.actions.applyPreset(id) && !this.store.getState().open) {\n restoreFocus(this.inputs.start);\n }\n });\n this.panel = el(\n 'div',\n {\n class: 'ndp-panel',\n id: `${id}-panel`,\n\n hidden: true,\n },\n [\n el('div', { class: 'ndp-panel__body' }, [this.presetList.element, calendarRoot]),\n this.footer,\n ],\n );\n const row = el('div', { class: 'ndp-range' }, [\n this.boxes.start,\n el('span', { class: 'ndp-range__separator', 'aria-hidden': 'true' }, ['→']),\n this.boxes.end,\n ]);\n this.field = el('div', { class: 'ndp-field' }, [\n row,\n this.hint,\n this.panel,\n this.hidden.start,\n this.hidden.end,\n ]);\n host.append(this.field);\n this.calendarView = new CalendarView(calendarRoot, this.store.calendar, {\n locale: () => this.options.locale,\n onDayActivate: (date) => {\n if (this.store.actions.select(date) && !this.store.getState().open) {\n restoreFocus(this.inputs.end);\n }\n },\n });\n this.field.addEventListener('click', this.onClick);\n this.unsubscribe = this.store.subscribe(() => {\n this.render();\n });\n this.render();\n }\n\n getState(): DateRangePickerState {\n return this.store.getState();\n }\n\n setOptions(changes: Partial<DateRangePickerViewOptions>): void {\n this.options = { ...this.options, ...changes };\n const forStore = storeOptions(changes);\n if (Object.keys(forStore).length > 0) {\n this.store.setOptions(forStore);\n } else {\n this.render();\n }\n }\n\n open(): void {\n if (!this.options.disabled) {\n this.store.actions.open();\n }\n }\n\n close(): void {\n this.store.actions.close();\n }\n\n destroy(): void {\n this.closePanel?.();\n this.unsubscribe();\n this.calendarView.destroy();\n this.field.remove();\n }\n\n private render(): void {\n const state = this.store.getState();\n const locale = getLocale(this.options.locale);\n const disabled = this.options.disabled ?? false;\n const hintText = state.error?.message ?? null;\n const texts: Record<RangeField, string> = {\n start: state.startText,\n end: state.endText,\n };\n const labels: Record<RangeField, string | undefined> = {\n start: this.options.startLabel,\n end: this.options.endLabel,\n };\n for (const field of ['start', 'end'] as const) {\n const input = this.inputs[field];\n if (input.value !== texts[field]) {\n input.value = texts[field];\n }\n const error = state.error;\n const fieldError =\n error !== null && (error.field === field || error.field === 'range');\n input.setCustomValidity(fieldError ? error.message : '');\n setAttrs(input, {\n placeholder: state.placeholder,\n disabled,\n required: this.options.required ?? false,\n 'aria-label': labels[field] ?? null,\n 'aria-invalid': fieldError ? 'true' : null,\n 'aria-describedby': hintText ? this.hint.id : null,\n });\n setAttrs(this.boxes[field], {\n 'data-invalid': fieldError,\n 'data-disabled': disabled,\n });\n const name =\n this.options.hiddenInput === false\n ? undefined\n : field === 'start'\n ? this.options.startName\n : this.options.endName;\n setAttrs(this.hidden[field], { name: name ?? null });\n this.hidden[field].value = state.value[field];\n this.hidden[field].disabled = name === undefined || disabled;\n }\n setAttrs(this.field, { 'data-ndp-theme': this.options.theme ?? null });\n setAttrs(this.panel, {\n 'data-ndp-theme': this.options.theme ?? null,\n 'aria-label': locale.labels.chooseDate,\n });\n setAttrs(this.toggleButton, {\n disabled,\n 'aria-label': locale.labels.openCalendar,\n 'aria-expanded': state.open ? 'true' : 'false',\n });\n this.hint.hidden = hintText === null;\n setText(this.hint, hintText ?? '');\n setAttrs(this.hint, { 'data-error': hintText !== null });\n renderSegment(this.segment, state, locale);\n this.presetList.render(state.presets, locale.labels.presets);\n const fiscal = this.options.fiscalYearView ?? false;\n this.fiscalButton.hidden = !fiscal;\n setText(this.fiscalButton, locale.labels.fiscalYear);\n setAttrs(this.fiscalButton, {\n 'aria-pressed': state.calendarState.view === 'fiscal' ? 'true' : 'false',\n });\n this.footer.hidden = !fiscal && !state.canSwitchCalendar;\n setPopupMode(\n state,\n [this.inputs.start, this.inputs.end],\n this.toggleButton,\n this.panel,\n );\n this.syncPanel(state.open && !state.inline);\n this.panel.hidden = !state.inline && !this.wasOpen;\n this.panel.style.setProperty(\n '--ndp-panel-width',\n state.inline ? `${String(this.panelWidth())}px` : null,\n );\n }\n\n private panelWidth(): number {\n return this.store.getState().presets.length > 0\n ? PANEL_WIDTH_WITH_PRESETS\n : PANEL_WIDTH;\n }\n\n private syncPanel(open: boolean): void {\n if (open === this.wasOpen) {\n return;\n }\n this.wasOpen = open;\n this.options.onOpenChange?.(open);\n if (open) {\n const anchor = this.field.querySelector('.ndp-range') ?? this.field;\n this.closePanel = openPanel({\n panel: this.panel,\n anchor,\n inside: [this.field],\n width: this.panelWidth(),\n layout: this.options.panelLayout,\n close: () => {\n this.store.actions.close();\n },\n returnFocus: this.inputs.start,\n });\n this.calendarView.focusGrid();\n } else {\n this.closePanel?.();\n this.closePanel = null;\n }\n }\n\n private readonly onClick = (event: MouseEvent): void => {\n const target = event.target instanceof Element ? event.target : null;\n if (!target || this.calendarView.element.contains(target)) {\n return;\n }\n const calendar = target.closest<HTMLElement>('[data-calendar]')?.dataset['calendar'];\n if (calendar === 'BS' || calendar === 'AD') {\n this.store.actions.switchCalendar(calendar);\n return;\n }\n if (target.closest('[data-action=\"fiscal\"]')) {\n const calendar = this.store.calendar;\n calendar.actions.setView(calendar.getState().view === 'fiscal' ? 'day' : 'fiscal');\n this.calendarView.focusGrid();\n return;\n }\n if (target.closest('[data-action=\"toggle\"]')) {\n if (this.store.getState().open) {\n this.close();\n } else {\n this.open();\n }\n }\n };\n}\n\nfunction storeOptions(\n options: Partial<DateRangePickerViewOptions>,\n): Partial<DateRangePickerOptions> {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(options)) {\n if (!VIEW_KEYS.has(key)) {\n out[key] = value;\n }\n }\n\n return out;\n}\n","import type { RangePreset } from '@nepdatejs/datepicker';\nimport { DateRangePickerView, type DateRangePickerViewOptions } from './range-view';\nimport {\n Base,\n str,\n bool,\n calendarAttr,\n int,\n onUnlessFalse,\n panelLayout,\n theme,\n presetIds,\n swallowInnerChange,\n type RichProps,\n} from './element-utils';\n\n/**\n * <nep-date-range-picker name=\"leave\" min-days=\"1\"></nep-date-range-picker>\n *\n * Two BS/AD fields sharing one panel. The form receives `${name}-start` and\n * `${name}-end` (or `start-name` / `end-name`). Fires `change` with { value }.\n */\nexport class NepDateRangePickerElement extends Base {\n static readonly formAssociated = true;\n static readonly observedAttributes: readonly string[] = [\n 'start',\n 'end',\n 'name',\n 'start-name',\n 'end-name',\n 'min',\n 'max',\n 'calendar',\n 'default-calendar',\n 'locale',\n 'min-days',\n 'max-days',\n 'disabled',\n 'required',\n 'theme',\n 'panel-layout',\n 'mask',\n 'inline',\n 'start-label',\n 'end-label',\n 'presets',\n 'fiscal-years',\n ];\n\n view: DateRangePickerView | null = null;\n private readonly internals: ElementInternals | null;\n private rich: RichProps = {};\n private customPresets: readonly RangePreset[] | undefined;\n private unsubscribe: (() => void) | null = null;\n\n constructor() {\n super();\n this.internals =\n typeof this.attachInternals === 'function' ? this.attachInternals() : null;\n swallowInnerChange(this);\n }\n\n get value(): { start: string; end: string } {\n return this.view?.getState().value ?? { start: '', end: '' };\n }\n set value(next: { start: string; end: string }) {\n this.view?.store.actions.setValue(next);\n }\n set holidays(next: RichProps['holidays']) {\n this.rich = { ...this.rich, holidays: next };\n this.view?.setOptions({ holidays: next });\n }\n set isDateDisabled(next: RichProps['isDateDisabled']) {\n this.rich = { ...this.rich, isDateDisabled: next };\n this.view?.setOptions({ isDateDisabled: next });\n }\n /** Shortcuts, including custom { id, label, resolve } ones. Overrides the presets attribute. */\n get presets(): readonly RangePreset[] | undefined {\n return this.customPresets ?? (presetIds(this) as readonly RangePreset[] | undefined);\n }\n set presets(next: readonly RangePreset[] | undefined) {\n this.customPresets = next;\n this.view?.setOptions({ presets: this.presets });\n }\n\n connectedCallback(): void {\n if (this.view) {\n return;\n }\n const view = new DateRangePickerView(this, {\n ...this.readOptions(),\n defaultValue: { start: str(this, 'start') ?? '', end: str(this, 'end') ?? '' },\n onChange: (value) => {\n this.dispatchEvent(\n new CustomEvent('change', { bubbles: true, detail: { value } }),\n );\n },\n onOpenChange: (open) => {\n this.dispatchEvent(\n new CustomEvent(open ? 'nep-open' : 'nep-close', { bubbles: true }),\n );\n },\n });\n this.view = view;\n this.unsubscribe = view.store.subscribe(() => {\n this.syncForm();\n });\n this.syncForm();\n }\n\n disconnectedCallback(): void {\n this.unsubscribe?.();\n this.view?.destroy();\n this.view = null;\n }\n\n attributeChangedCallback(): void {\n this.view?.setOptions(this.readOptions());\n this.syncForm();\n }\n\n formResetCallback(): void {\n this.view?.store.actions.reset();\n }\n\n formDisabledCallback(disabled: boolean): void {\n this.view?.setOptions({ disabled: disabled || bool(this, 'disabled') });\n }\n\n private names(): { start: string | undefined; end: string | undefined } {\n const name = str(this, 'name');\n\n return {\n start: str(this, 'start-name') ?? (name ? `${name}-start` : undefined),\n end: str(this, 'end-name') ?? (name ? `${name}-end` : undefined),\n };\n }\n\n private readOptions(): DateRangePickerViewOptions {\n const names = this.names();\n\n return {\n ...this.rich,\n startName: names.start,\n endName: names.end,\n hiddenInput: this.internals === null,\n min: str(this, 'min'),\n max: str(this, 'max'),\n calendar: calendarAttr(this, 'calendar'),\n defaultCalendar: calendarAttr(this, 'default-calendar'),\n locale: str(this, 'locale'),\n minDays: int(this, 'min-days'),\n maxDays: int(this, 'max-days'),\n disabled: bool(this, 'disabled'),\n required: bool(this, 'required'),\n theme: theme(this),\n panelLayout: panelLayout(this),\n mask: onUnlessFalse(this, 'mask'),\n inline: this.hasAttribute('inline'),\n startLabel: str(this, 'start-label'),\n endLabel: str(this, 'end-label'),\n fiscalYearView: bool(this, 'fiscal-years'),\n presets: this.presets,\n };\n }\n\n private syncForm(): void {\n const view = this.view;\n if (!view || !this.internals) {\n return;\n }\n const state = view.getState();\n const names = this.names();\n const data = new FormData();\n if (names.start && state.value.start) {\n data.append(names.start, state.value.start);\n }\n if (names.end && state.value.end) {\n data.append(names.end, state.value.end);\n }\n this.internals.setFormValue(data);\n if (state.error) {\n this.internals.setValidity(\n { customError: true },\n state.error.message,\n view.inputs.start,\n );\n } else if (\n bool(this, 'required') &&\n (state.value.start === '' || state.value.end === '')\n ) {\n this.internals.setValidity(\n { valueMissing: true },\n 'Please choose a start and end date.',\n view.inputs.start,\n );\n } else {\n this.internals.setValidity({});\n }\n }\n}\n","/** `@nepdatejs/vanilla/date-range-picker`: just the range picker. */\nimport { NepDateRangePickerElement } from './date-range-picker-element';\nimport { DateRangePickerView, type DateRangePickerViewOptions } from './range-view';\nimport { defineElement, ELEMENT_NAMES } from './registry';\n\nexport { NepDateRangePickerElement };\nexport { DateRangePickerView, type DateRangePickerViewOptions } from './range-view';\n\n/** Register <nep-date-range-picker> (skipped if already defined). */\nexport function defineDateRangePicker(registry?: CustomElementRegistry): void {\n defineElement(ELEMENT_NAMES.dateRangePicker, NepDateRangePickerElement, registry);\n}\n\n/** Mount a date range picker into a container. */\nexport function createDateRangePicker(\n container: HTMLElement,\n options: DateRangePickerViewOptions = {},\n): DateRangePickerView {\n return new DateRangePickerView(container, options);\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_date_range_picker = require("./date-range-picker-
|
|
2
|
+
const require_date_range_picker = require("./date-range-picker-VrQZFZED.cjs");
|
|
3
3
|
exports.DateRangePickerView = require_date_range_picker.DateRangePickerView;
|
|
4
4
|
exports.NepDateRangePickerElement = require_date_range_picker.NepDateRangePickerElement;
|
|
5
5
|
exports.createDateRangePicker = require_date_range_picker.createDateRangePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { i as DateRangePickerView, r as NepDateRangePickerElement, t as createDateRangePicker, n as defineDateRangePicker } from "./date-range-picker-
|
|
1
|
+
export { i as DateRangePickerView, r as NepDateRangePickerElement, t as createDateRangePicker, n as defineDateRangePicker } from "./date-range-picker-NwetXUC-.js";
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
const require_registry = require("./registry-3qzdVB7H.cjs");
|
|
2
|
-
const require_preset_list = require("./preset-list-
|
|
2
|
+
const require_preset_list = require("./preset-list-BYCZm61I.cjs");
|
|
3
3
|
let _nepdatejs_core = require("@nepdatejs/core");
|
|
4
4
|
let _nepdatejs_datepicker = require("@nepdatejs/datepicker");
|
|
5
|
-
let _nepdatejs_dom = require("@nepdatejs/dom");
|
|
6
5
|
//#region src/datetime-view.ts
|
|
7
6
|
const VIEW_KEYS = /* @__PURE__ */ new Set([
|
|
8
7
|
"name",
|
|
@@ -244,13 +243,7 @@ var DateTimePickerView = class {
|
|
|
244
243
|
this.hint.hidden = hint === null;
|
|
245
244
|
require_registry.setText(this.hint, hint ?? "");
|
|
246
245
|
require_registry.setAttrs(this.hint, { "data-error": state.error !== null });
|
|
247
|
-
this.segment
|
|
248
|
-
require_registry.setAttrs(this.segment, { "aria-label": locale.labels.calendar });
|
|
249
|
-
for (const button of this.segment.querySelectorAll("button")) {
|
|
250
|
-
const calendar = button.dataset["calendar"];
|
|
251
|
-
require_registry.setText(button, locale.calendarNames[calendar]);
|
|
252
|
-
require_registry.setAttrs(button, { "aria-pressed": calendar === state.calendar ? "true" : "false" });
|
|
253
|
-
}
|
|
246
|
+
require_preset_list.renderSegment(this.segment, state, locale);
|
|
254
247
|
require_registry.setText(this.nowButton, locale.labels.now);
|
|
255
248
|
require_registry.setText(this.doneButton, locale.labels.done);
|
|
256
249
|
require_registry.setAttrs(this.time, { "aria-label": locale.labels.time });
|
|
@@ -276,28 +269,17 @@ var DateTimePickerView = class {
|
|
|
276
269
|
this.wasOpen = open;
|
|
277
270
|
this.options.onOpenChange?.(open);
|
|
278
271
|
if (open) {
|
|
279
|
-
this.
|
|
280
|
-
|
|
272
|
+
this.closePanel = require_preset_list.openPanel({
|
|
273
|
+
panel: this.panel,
|
|
274
|
+
anchor: this.row,
|
|
275
|
+
inside: [this.field],
|
|
281
276
|
width: this.panelWidth(),
|
|
282
|
-
layout: this.options.panelLayout
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
const stopBackdrop = (0, _nepdatejs_dom.onBackdropPointer)(this.panel, () => {
|
|
288
|
-
this.store.actions.close();
|
|
289
|
-
});
|
|
290
|
-
const stopEscape = (0, _nepdatejs_dom.onEscape)(() => {
|
|
291
|
-
this.store.actions.close();
|
|
292
|
-
(0, _nepdatejs_dom.restoreFocus)(this.dateInput);
|
|
277
|
+
layout: this.options.panelLayout,
|
|
278
|
+
close: () => {
|
|
279
|
+
this.store.actions.close();
|
|
280
|
+
},
|
|
281
|
+
returnFocus: this.dateInput
|
|
293
282
|
});
|
|
294
|
-
this.closePanel = () => {
|
|
295
|
-
stopTracking();
|
|
296
|
-
stopOutside();
|
|
297
|
-
stopBackdrop();
|
|
298
|
-
stopEscape();
|
|
299
|
-
this.panel.hidden = true;
|
|
300
|
-
};
|
|
301
283
|
for (const item of this.time.querySelectorAll("[aria-pressed=\"true\"]")) if (typeof item.scrollIntoView === "function") item.scrollIntoView({ block: "nearest" });
|
|
302
284
|
this.calendarView.focusGrid();
|
|
303
285
|
} else {
|
|
@@ -507,4 +489,4 @@ Object.defineProperty(exports, "defineDateTimePicker", {
|
|
|
507
489
|
}
|
|
508
490
|
});
|
|
509
491
|
|
|
510
|
-
//# sourceMappingURL=date-time-picker-
|
|
492
|
+
//# sourceMappingURL=date-time-picker-ChHIBTBw.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time-picker-ChHIBTBw.cjs","names":["createDateTimePicker","uid","el","icon","PresetList","CalendarView","getLocale","openPanel","Base","str","bool","calendarAttr","theme","panelLayout","onUnlessFalse","int","presetIds","ELEMENT_NAMES"],"sources":["../src/datetime-view.ts","../src/date-time-picker-element.ts","../src/date-time-picker.ts"],"sourcesContent":["import { getLocale } from '@nepdatejs/core';\nimport {\n createDateTimePicker,\n type DateTimePickerOptions,\n type DateTimePickerState,\n type DateTimePickerStore,\n type TimeCell,\n} from '@nepdatejs/datepicker';\nimport type { PanelLayout } from '@nepdatejs/dom';\nimport { CalendarView } from './calendar-view';\nimport { openPanel, renderSegment } from './panel';\nimport { el, icon, setAttrs, setPopupMode, setText, uid } from './dom';\nimport type { Theme } from './picker-view';\nimport {\n PANEL_WIDTH,\n PANEL_WIDTH_WITH_PRESETS,\n PresetList,\n TIME_COLUMNS_WIDTH,\n} from './preset-list';\n\nexport interface DateTimePickerViewOptions extends DateTimePickerOptions {\n readonly name?: string | undefined;\n readonly hiddenInput?: boolean | undefined;\n readonly required?: boolean | undefined;\n readonly disabled?: boolean | undefined;\n /** 'sheet' opens a bottom sheet; 'popover' sits beside the field; 'auto' (default) uses the sheet below 480px. */\n readonly panelLayout?: PanelLayout | undefined;\n readonly theme?: Theme | undefined;\n readonly ariaLabel?: string | undefined;\n readonly timeLabel?: string | undefined;\n readonly id?: string | undefined;\n readonly onOpenChange?: ((open: boolean) => void) | undefined;\n}\n\nconst VIEW_KEYS = new Set([\n 'name',\n 'hiddenInput',\n 'required',\n 'disabled',\n 'theme',\n 'panelLayout',\n 'ariaLabel',\n 'timeLabel',\n 'id',\n 'onOpenChange',\n 'onChange',\n]);\n\n/** A date input and a time input sharing one panel: calendar plus hour/minute columns. */\nexport class DateTimePickerView {\n readonly store: DateTimePickerStore;\n readonly dateInput: HTMLInputElement;\n readonly timeInput: HTMLInputElement;\n private options: DateTimePickerViewOptions;\n private readonly field: HTMLDivElement;\n private readonly row: HTMLDivElement;\n private readonly dateBox: HTMLDivElement;\n private readonly timeBox: HTMLDivElement;\n private readonly toggleButton: HTMLButtonElement;\n private readonly hint: HTMLParagraphElement;\n private readonly panel: HTMLDivElement;\n private readonly segment: HTMLDivElement;\n private readonly nowButton: HTMLButtonElement;\n private readonly doneButton: HTMLButtonElement;\n private readonly hours: HTMLDivElement;\n private readonly minutes: HTMLDivElement;\n private readonly time: HTMLDivElement;\n private readonly hidden: HTMLInputElement;\n private readonly calendarView: CalendarView;\n private readonly presetList: PresetList;\n private readonly unsubscribe: () => void;\n private closePanel: (() => void) | null = null;\n private wasOpen = false;\n\n constructor(host: HTMLElement, options: DateTimePickerViewOptions = {}) {\n this.options = { ...options };\n this.store = createDateTimePicker({\n ...storeOptions(options),\n onChange: (value, detail) => {\n this.options.onChange?.(value, detail);\n },\n });\n const id = options.id ?? uid('ndp-datetime');\n this.dateInput = el('input', {\n class: 'ndp-input__control',\n id,\n type: 'text',\n inputmode: 'numeric',\n autocomplete: 'off',\n 'aria-controls': `${id}-panel`,\n });\n this.timeInput = el('input', {\n class: 'ndp-input__control',\n id: `${id}-time`,\n type: 'text',\n autocomplete: 'off',\n });\n this.toggleButton = el(\n 'button',\n { type: 'button', class: 'ndp-icon-button', 'data-action': 'toggle' },\n [icon('calendar')],\n );\n this.dateBox = el('div', { class: 'ndp-input' }, [\n this.dateInput,\n el('span', { class: 'ndp-input__actions' }, [this.toggleButton]),\n ]);\n this.timeBox = el('div', { class: 'ndp-input ndp-input--time' }, [this.timeInput]);\n this.row = el('div', { class: 'ndp-datetime' }, [this.dateBox, this.timeBox]);\n this.hint = el('p', {\n class: 'ndp-hint',\n id: `${id}-hint`,\n 'aria-live': 'polite',\n hidden: true,\n });\n this.hidden = el('input', { type: 'hidden' });\n this.segment = el('div', { class: 'ndp-segment', role: 'group' }, [\n el('button', { type: 'button', class: 'ndp-segment__item', 'data-calendar': 'BS' }),\n el('button', { type: 'button', class: 'ndp-segment__item', 'data-calendar': 'AD' }),\n ]);\n this.nowButton = el('button', {\n type: 'button',\n class: 'ndp-button',\n 'data-action': 'now',\n });\n this.doneButton = el('button', {\n type: 'button',\n class: 'ndp-button',\n 'data-variant': 'primary',\n 'data-action': 'done',\n });\n this.hours = el('div', {\n class: 'ndp-time__column',\n role: 'group',\n 'data-unit': 'hour',\n });\n this.minutes = el('div', {\n class: 'ndp-time__column',\n role: 'group',\n 'data-unit': 'minute',\n });\n this.time = el('div', { class: 'ndp-time', role: 'group' }, [\n this.hours,\n this.minutes,\n ]);\n const calendarRoot = el('div', { class: 'ndp-panel__calendar' });\n this.presetList = new PresetList((presetId) => {\n this.store.actions.applyPreset(presetId);\n });\n this.panel = el(\n 'div',\n {\n class: 'ndp-panel',\n id: `${id}-panel`,\n\n hidden: true,\n },\n [\n el('div', { class: 'ndp-panel__body' }, [\n this.presetList.element,\n calendarRoot,\n this.time,\n ]),\n el('div', { class: 'ndp-panel__footer' }, [\n this.segment,\n el('span', {}, [this.nowButton, this.doneButton]),\n ]),\n ],\n );\n this.field = el('div', { class: 'ndp-field' }, [\n this.row,\n this.hint,\n this.panel,\n this.hidden,\n ]);\n host.append(this.field);\n this.calendarView = new CalendarView(calendarRoot, this.store.calendar, {\n locale: () => this.options.locale,\n onDayActivate: (date) => {\n this.store.actions.selectDate(date);\n },\n });\n\n this.dateInput.addEventListener('input', () => {\n this.store.actions.typeDate(this.dateInput.value);\n });\n this.dateInput.addEventListener('blur', () => {\n this.store.actions.blurDate();\n });\n this.dateInput.addEventListener('keydown', (event) => {\n if (event.key === 'ArrowDown' && (event.altKey || this.dateInput.value === '')) {\n event.preventDefault();\n this.open();\n }\n });\n this.timeInput.addEventListener('input', () => {\n this.store.actions.typeTime(this.timeInput.value);\n });\n this.timeInput.addEventListener('blur', () => {\n this.store.actions.blurTime();\n });\n this.field.addEventListener('click', this.onClick);\n this.unsubscribe = this.store.subscribe(() => {\n this.render();\n });\n this.render();\n }\n\n getState(): DateTimePickerState {\n return this.store.getState();\n }\n\n setOptions(changes: Partial<DateTimePickerViewOptions>): void {\n this.options = { ...this.options, ...changes };\n const forStore = storeOptions(changes);\n if (Object.keys(forStore).length > 0) {\n this.store.setOptions(forStore);\n } else {\n this.render();\n }\n }\n\n open(): void {\n if (!this.options.disabled) {\n this.store.actions.open();\n }\n }\n\n close(): void {\n this.store.actions.close();\n }\n\n destroy(): void {\n this.closePanel?.();\n this.unsubscribe();\n this.calendarView.destroy();\n this.field.remove();\n }\n\n private render(): void {\n const state = this.store.getState();\n const locale = getLocale(this.options.locale);\n const disabled = this.options.disabled ?? false;\n const hint = state.error?.message ?? state.equivalentText;\n\n if (this.dateInput.value !== state.dateText) {\n this.dateInput.value = state.dateText;\n }\n if (this.timeInput.value !== state.timeText) {\n this.timeInput.value = state.timeText;\n }\n this.dateInput.setCustomValidity(\n state.error?.field === 'date' ? state.error.message : '',\n );\n this.timeInput.setCustomValidity(\n state.error?.field === 'time' ? state.error.message : '',\n );\n setAttrs(this.dateInput, {\n placeholder: state.placeholder,\n disabled,\n required: this.options.required ?? false,\n 'aria-label': this.options.ariaLabel ?? null,\n 'aria-invalid': state.error?.field === 'date' ? 'true' : null,\n 'aria-describedby': hint ? this.hint.id : null,\n });\n setAttrs(this.timeInput, {\n placeholder: state.timePlaceholder,\n disabled,\n 'aria-label': this.options.timeLabel ?? locale.labels.time,\n 'aria-invalid': state.error?.field === 'time' ? 'true' : null,\n 'aria-describedby': hint ? this.hint.id : null,\n });\n setAttrs(this.dateBox, {\n 'data-invalid': state.error?.field === 'date',\n 'data-disabled': disabled,\n });\n setAttrs(this.timeBox, {\n 'data-invalid': state.error?.field === 'time',\n 'data-disabled': disabled,\n });\n setAttrs(this.field, { 'data-ndp-theme': this.options.theme ?? null });\n setAttrs(this.panel, {\n 'data-ndp-theme': this.options.theme ?? null,\n 'aria-label': locale.labels.chooseDate,\n });\n setAttrs(this.toggleButton, {\n disabled,\n 'aria-label': locale.labels.openCalendar,\n 'aria-expanded': state.open ? 'true' : 'false',\n });\n this.hint.hidden = hint === null;\n setText(this.hint, hint ?? '');\n setAttrs(this.hint, { 'data-error': state.error !== null });\n\n renderSegment(this.segment, state, locale);\n setText(this.nowButton, locale.labels.now);\n setText(this.doneButton, locale.labels.done);\n setAttrs(this.time, { 'aria-label': locale.labels.time });\n setAttrs(this.hours, { 'aria-label': locale.labels.hour });\n setAttrs(this.minutes, { 'aria-label': locale.labels.minute });\n renderColumn(this.hours, state.hours);\n renderColumn(this.minutes, state.minutes);\n this.presetList.render(state.presets, locale.labels.presets);\n\n const name = this.options.hiddenInput === false ? undefined : this.options.name;\n setAttrs(this.hidden, { name: name ?? null });\n this.hidden.value = state.value;\n this.hidden.disabled = name === undefined || disabled;\n setPopupMode(state, [this.dateInput], this.toggleButton, this.panel);\n this.syncPanel(state.open && !state.inline);\n this.panel.hidden = !state.inline && !this.wasOpen;\n this.panel.style.setProperty(\n '--ndp-panel-width',\n state.inline ? `${String(this.panelWidth())}px` : null,\n );\n }\n\n private panelWidth(): number {\n return (\n (this.store.getState().presets.length > 0\n ? PANEL_WIDTH_WITH_PRESETS\n : PANEL_WIDTH) + TIME_COLUMNS_WIDTH\n );\n }\n\n private syncPanel(open: boolean): void {\n if (open === this.wasOpen) {\n return;\n }\n this.wasOpen = open;\n this.options.onOpenChange?.(open);\n if (open) {\n this.closePanel = openPanel({\n panel: this.panel,\n anchor: this.row,\n inside: [this.field],\n width: this.panelWidth(),\n layout: this.options.panelLayout,\n close: () => {\n this.store.actions.close();\n },\n returnFocus: this.dateInput,\n });\n for (const item of this.time.querySelectorAll<HTMLElement>(\n '[aria-pressed=\"true\"]',\n )) {\n if (typeof item.scrollIntoView === 'function') {\n item.scrollIntoView({ block: 'nearest' });\n }\n }\n this.calendarView.focusGrid();\n } else {\n this.closePanel?.();\n this.closePanel = null;\n }\n }\n\n private readonly onClick = (event: MouseEvent): void => {\n const target = event.target instanceof Element ? event.target : null;\n if (!target || this.calendarView.element.contains(target)) {\n return;\n }\n const item = target.closest<HTMLButtonElement>('.ndp-time-item');\n if (item) {\n const unit = item.parentElement?.dataset['unit'];\n const value = Number(item.dataset['value']);\n if (unit === 'hour') {\n this.store.actions.selectHour(value);\n } else {\n this.store.actions.selectMinute(value);\n }\n return;\n }\n const calendar = target.closest<HTMLElement>('[data-calendar]')?.dataset['calendar'];\n if (calendar === 'BS' || calendar === 'AD') {\n this.store.actions.switchCalendar(calendar);\n return;\n }\n switch (target.closest<HTMLElement>('[data-action]')?.dataset['action']) {\n case 'toggle':\n if (this.store.getState().open) {\n this.close();\n } else {\n this.open();\n }\n break;\n case 'now':\n this.store.actions.selectNow();\n break;\n case 'done':\n this.close();\n this.dateInput.focus();\n break;\n default:\n break;\n }\n };\n}\n\nfunction renderColumn(column: HTMLElement, cells: readonly TimeCell[]): void {\n if (column.children.length !== cells.length) {\n column.replaceChildren(\n ...cells.map((cell) =>\n el('button', {\n type: 'button',\n class: 'ndp-time-item',\n 'data-value': cell.value,\n }),\n ),\n );\n }\n cells.forEach((cell, index) => {\n const button = column.children[index];\n if (button) {\n setText(button, cell.label);\n setAttrs(button, {\n 'data-value': cell.value,\n 'aria-pressed': cell.isSelected ? 'true' : 'false',\n });\n }\n });\n}\n\nfunction storeOptions(\n options: Partial<DateTimePickerViewOptions>,\n): Partial<DateTimePickerOptions> {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(options)) {\n if (!VIEW_KEYS.has(key)) {\n out[key] = value;\n }\n }\n\n return out;\n}\n","import type { SinglePreset } from '@nepdatejs/datepicker';\nimport { DateTimePickerView, type DateTimePickerViewOptions } from './datetime-view';\nimport {\n Base,\n str,\n bool,\n calendarAttr,\n int,\n onUnlessFalse,\n panelLayout,\n theme,\n presetIds,\n swallowInnerChange,\n type RichProps,\n} from './element-utils';\n\n/**\n * <nep-date-time-picker name=\"starts-at\" minute-step=\"15\"></nep-date-time-picker>\n *\n * A form-associated BS/AD date + time field. The form receives one instant as\n * an ISO timestamp with the zone's offset (\"2026-10-18T14:30:00+05:45\").\n * Fires `change` with { value, ad, bs, time }.\n */\nexport class NepDateTimePickerElement extends Base {\n static readonly formAssociated = true;\n static readonly observedAttributes: readonly string[] = [\n 'value',\n 'min',\n 'max',\n 'calendar',\n 'default-calendar',\n 'locale',\n 'name',\n 'required',\n 'disabled',\n 'theme',\n 'panel-layout',\n 'mask',\n 'inline',\n 'time-zone',\n 'hour12',\n 'minute-step',\n 'default-time',\n 'label',\n 'time-label',\n 'presets',\n ];\n\n view: DateTimePickerView | null = null;\n private readonly internals: ElementInternals | null;\n private rich: RichProps = {};\n private unsubscribe: (() => void) | null = null;\n\n constructor() {\n super();\n this.internals =\n typeof this.attachInternals === 'function' ? this.attachInternals() : null;\n swallowInnerChange(this);\n }\n\n get value(): string {\n return this.view?.getState().value ?? '';\n }\n set value(next: string) {\n this.view?.store.actions.setValue(next);\n }\n set holidays(next: RichProps['holidays']) {\n this.rich = { ...this.rich, holidays: next };\n this.view?.setOptions({ holidays: next });\n }\n set isDateDisabled(next: RichProps['isDateDisabled']) {\n this.rich = { ...this.rich, isDateDisabled: next };\n this.view?.setOptions({ isDateDisabled: next });\n }\n\n connectedCallback(): void {\n if (this.view) {\n return;\n }\n const view = new DateTimePickerView(this, {\n ...this.readOptions(),\n defaultValue: str(this, 'value'),\n onChange: (value, detail) => {\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n detail: {\n value,\n ad: detail?.ad ?? null,\n bs: detail?.bs ?? null,\n time: detail?.time ?? null,\n },\n }),\n );\n },\n onOpenChange: (open) => {\n this.dispatchEvent(\n new CustomEvent(open ? 'nep-open' : 'nep-close', { bubbles: true }),\n );\n },\n });\n this.view = view;\n this.unsubscribe = view.store.subscribe(() => {\n this.syncForm();\n });\n this.syncForm();\n }\n\n disconnectedCallback(): void {\n this.unsubscribe?.();\n this.view?.destroy();\n this.view = null;\n }\n\n attributeChangedCallback(\n name: string,\n previous: string | null,\n next: string | null,\n ): void {\n if (!this.view || previous === next) {\n return;\n }\n if (name === 'value') {\n this.view.store.actions.setValue(next ?? '');\n }\n this.view.setOptions(this.readOptions());\n this.syncForm();\n }\n\n formResetCallback(): void {\n this.view?.store.actions.reset();\n }\n\n formDisabledCallback(disabled: boolean): void {\n this.view?.setOptions({ disabled: disabled || bool(this, 'disabled') });\n }\n\n override focus(options?: FocusOptions): void {\n this.view?.dateInput.focus(options);\n }\n\n private readOptions(): DateTimePickerViewOptions {\n return {\n ...this.rich,\n min: str(this, 'min'),\n max: str(this, 'max'),\n calendar: calendarAttr(this, 'calendar'),\n defaultCalendar: calendarAttr(this, 'default-calendar'),\n locale: str(this, 'locale'),\n name: str(this, 'name'),\n hiddenInput: this.internals === null,\n required: bool(this, 'required'),\n disabled: bool(this, 'disabled'),\n theme: theme(this),\n panelLayout: panelLayout(this),\n mask: onUnlessFalse(this, 'mask'),\n inline: this.hasAttribute('inline'),\n timeZone: str(this, 'time-zone'),\n hour12: bool(this, 'hour12'),\n minuteStep: int(this, 'minute-step'),\n defaultTime: str(this, 'default-time'),\n ariaLabel: str(this, 'label'),\n timeLabel: str(this, 'time-label'),\n presets: presetIds(this) as readonly SinglePreset[] | undefined,\n };\n }\n\n private syncForm(): void {\n const view = this.view;\n if (!view || !this.internals) {\n return;\n }\n const state = view.getState();\n this.internals.setFormValue(state.value === '' ? null : state.value);\n if (state.error) {\n this.internals.setValidity(\n { customError: true },\n state.error.message,\n state.error.field === 'time' ? view.timeInput : view.dateInput,\n );\n } else if (bool(this, 'required') && state.value === '') {\n this.internals.setValidity(\n { valueMissing: true },\n 'Please choose a date and time.',\n view.dateInput,\n );\n } else {\n this.internals.setValidity({});\n }\n }\n}\n","/** `@nepdatejs/vanilla/date-time-picker`: just the date + time picker. */\nimport { NepDateTimePickerElement } from './date-time-picker-element';\nimport { DateTimePickerView, type DateTimePickerViewOptions } from './datetime-view';\nimport { defineElement, ELEMENT_NAMES } from './registry';\n\nexport { NepDateTimePickerElement };\nexport { DateTimePickerView, type DateTimePickerViewOptions } from './datetime-view';\n\n/** Register <nep-date-time-picker> (skipped if already defined). */\nexport function defineDateTimePicker(registry?: CustomElementRegistry): void {\n defineElement(ELEMENT_NAMES.dateTimePicker, NepDateTimePickerElement, registry);\n}\n\n/** Mount a date + time picker into a container. */\nexport function createDateTimePicker(\n container: HTMLElement,\n options: DateTimePickerViewOptions = {},\n): DateTimePickerView {\n return new DateTimePickerView(container, options);\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { _ as icon, a as calendarAttr, b as setText, c as onUnlessFalse, d as str, f as swallowInnerChange, g as el, h as CalendarView, i as bool, l as panelLayout, n as defineElement, o as int, p as theme, r as Base, t as ELEMENT_NAMES, u as presetIds, v as setAttrs, x as uid, y as setPopupMode } from "./registry-BvkGnkvV.js";
|
|
2
|
-
import { t as PresetList } from "./preset-list-
|
|
2
|
+
import { n as openPanel, r as renderSegment, t as PresetList } from "./preset-list-DmE6fJjr.js";
|
|
3
3
|
import { getLocale } from "@nepdatejs/core";
|
|
4
4
|
import { createDateTimePicker } from "@nepdatejs/datepicker";
|
|
5
|
-
import { onBackdropPointer, onEscape, onOutsidePointer, restoreFocus, trackPosition } from "@nepdatejs/dom";
|
|
6
5
|
//#region src/datetime-view.ts
|
|
7
6
|
const VIEW_KEYS = /* @__PURE__ */ new Set([
|
|
8
7
|
"name",
|
|
@@ -244,13 +243,7 @@ var DateTimePickerView = class {
|
|
|
244
243
|
this.hint.hidden = hint === null;
|
|
245
244
|
setText(this.hint, hint ?? "");
|
|
246
245
|
setAttrs(this.hint, { "data-error": state.error !== null });
|
|
247
|
-
this.segment
|
|
248
|
-
setAttrs(this.segment, { "aria-label": locale.labels.calendar });
|
|
249
|
-
for (const button of this.segment.querySelectorAll("button")) {
|
|
250
|
-
const calendar = button.dataset["calendar"];
|
|
251
|
-
setText(button, locale.calendarNames[calendar]);
|
|
252
|
-
setAttrs(button, { "aria-pressed": calendar === state.calendar ? "true" : "false" });
|
|
253
|
-
}
|
|
246
|
+
renderSegment(this.segment, state, locale);
|
|
254
247
|
setText(this.nowButton, locale.labels.now);
|
|
255
248
|
setText(this.doneButton, locale.labels.done);
|
|
256
249
|
setAttrs(this.time, { "aria-label": locale.labels.time });
|
|
@@ -276,28 +269,17 @@ var DateTimePickerView = class {
|
|
|
276
269
|
this.wasOpen = open;
|
|
277
270
|
this.options.onOpenChange?.(open);
|
|
278
271
|
if (open) {
|
|
279
|
-
this.
|
|
280
|
-
|
|
272
|
+
this.closePanel = openPanel({
|
|
273
|
+
panel: this.panel,
|
|
274
|
+
anchor: this.row,
|
|
275
|
+
inside: [this.field],
|
|
281
276
|
width: this.panelWidth(),
|
|
282
|
-
layout: this.options.panelLayout
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
const stopBackdrop = onBackdropPointer(this.panel, () => {
|
|
288
|
-
this.store.actions.close();
|
|
289
|
-
});
|
|
290
|
-
const stopEscape = onEscape(() => {
|
|
291
|
-
this.store.actions.close();
|
|
292
|
-
restoreFocus(this.dateInput);
|
|
277
|
+
layout: this.options.panelLayout,
|
|
278
|
+
close: () => {
|
|
279
|
+
this.store.actions.close();
|
|
280
|
+
},
|
|
281
|
+
returnFocus: this.dateInput
|
|
293
282
|
});
|
|
294
|
-
this.closePanel = () => {
|
|
295
|
-
stopTracking();
|
|
296
|
-
stopOutside();
|
|
297
|
-
stopBackdrop();
|
|
298
|
-
stopEscape();
|
|
299
|
-
this.panel.hidden = true;
|
|
300
|
-
};
|
|
301
283
|
for (const item of this.time.querySelectorAll("[aria-pressed=\"true\"]")) if (typeof item.scrollIntoView === "function") item.scrollIntoView({ block: "nearest" });
|
|
302
284
|
this.calendarView.focusGrid();
|
|
303
285
|
} else {
|
|
@@ -484,4 +466,4 @@ function createDateTimePicker$1(container, options = {}) {
|
|
|
484
466
|
//#endregion
|
|
485
467
|
export { DateTimePickerView as i, defineDateTimePicker as n, NepDateTimePickerElement as r, createDateTimePicker$1 as t };
|
|
486
468
|
|
|
487
|
-
//# sourceMappingURL=date-time-picker-
|
|
469
|
+
//# sourceMappingURL=date-time-picker-CxqC95aM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time-picker-CxqC95aM.js","names":["createDateTimePicker"],"sources":["../src/datetime-view.ts","../src/date-time-picker-element.ts","../src/date-time-picker.ts"],"sourcesContent":["import { getLocale } from '@nepdatejs/core';\nimport {\n createDateTimePicker,\n type DateTimePickerOptions,\n type DateTimePickerState,\n type DateTimePickerStore,\n type TimeCell,\n} from '@nepdatejs/datepicker';\nimport type { PanelLayout } from '@nepdatejs/dom';\nimport { CalendarView } from './calendar-view';\nimport { openPanel, renderSegment } from './panel';\nimport { el, icon, setAttrs, setPopupMode, setText, uid } from './dom';\nimport type { Theme } from './picker-view';\nimport {\n PANEL_WIDTH,\n PANEL_WIDTH_WITH_PRESETS,\n PresetList,\n TIME_COLUMNS_WIDTH,\n} from './preset-list';\n\nexport interface DateTimePickerViewOptions extends DateTimePickerOptions {\n readonly name?: string | undefined;\n readonly hiddenInput?: boolean | undefined;\n readonly required?: boolean | undefined;\n readonly disabled?: boolean | undefined;\n /** 'sheet' opens a bottom sheet; 'popover' sits beside the field; 'auto' (default) uses the sheet below 480px. */\n readonly panelLayout?: PanelLayout | undefined;\n readonly theme?: Theme | undefined;\n readonly ariaLabel?: string | undefined;\n readonly timeLabel?: string | undefined;\n readonly id?: string | undefined;\n readonly onOpenChange?: ((open: boolean) => void) | undefined;\n}\n\nconst VIEW_KEYS = new Set([\n 'name',\n 'hiddenInput',\n 'required',\n 'disabled',\n 'theme',\n 'panelLayout',\n 'ariaLabel',\n 'timeLabel',\n 'id',\n 'onOpenChange',\n 'onChange',\n]);\n\n/** A date input and a time input sharing one panel: calendar plus hour/minute columns. */\nexport class DateTimePickerView {\n readonly store: DateTimePickerStore;\n readonly dateInput: HTMLInputElement;\n readonly timeInput: HTMLInputElement;\n private options: DateTimePickerViewOptions;\n private readonly field: HTMLDivElement;\n private readonly row: HTMLDivElement;\n private readonly dateBox: HTMLDivElement;\n private readonly timeBox: HTMLDivElement;\n private readonly toggleButton: HTMLButtonElement;\n private readonly hint: HTMLParagraphElement;\n private readonly panel: HTMLDivElement;\n private readonly segment: HTMLDivElement;\n private readonly nowButton: HTMLButtonElement;\n private readonly doneButton: HTMLButtonElement;\n private readonly hours: HTMLDivElement;\n private readonly minutes: HTMLDivElement;\n private readonly time: HTMLDivElement;\n private readonly hidden: HTMLInputElement;\n private readonly calendarView: CalendarView;\n private readonly presetList: PresetList;\n private readonly unsubscribe: () => void;\n private closePanel: (() => void) | null = null;\n private wasOpen = false;\n\n constructor(host: HTMLElement, options: DateTimePickerViewOptions = {}) {\n this.options = { ...options };\n this.store = createDateTimePicker({\n ...storeOptions(options),\n onChange: (value, detail) => {\n this.options.onChange?.(value, detail);\n },\n });\n const id = options.id ?? uid('ndp-datetime');\n this.dateInput = el('input', {\n class: 'ndp-input__control',\n id,\n type: 'text',\n inputmode: 'numeric',\n autocomplete: 'off',\n 'aria-controls': `${id}-panel`,\n });\n this.timeInput = el('input', {\n class: 'ndp-input__control',\n id: `${id}-time`,\n type: 'text',\n autocomplete: 'off',\n });\n this.toggleButton = el(\n 'button',\n { type: 'button', class: 'ndp-icon-button', 'data-action': 'toggle' },\n [icon('calendar')],\n );\n this.dateBox = el('div', { class: 'ndp-input' }, [\n this.dateInput,\n el('span', { class: 'ndp-input__actions' }, [this.toggleButton]),\n ]);\n this.timeBox = el('div', { class: 'ndp-input ndp-input--time' }, [this.timeInput]);\n this.row = el('div', { class: 'ndp-datetime' }, [this.dateBox, this.timeBox]);\n this.hint = el('p', {\n class: 'ndp-hint',\n id: `${id}-hint`,\n 'aria-live': 'polite',\n hidden: true,\n });\n this.hidden = el('input', { type: 'hidden' });\n this.segment = el('div', { class: 'ndp-segment', role: 'group' }, [\n el('button', { type: 'button', class: 'ndp-segment__item', 'data-calendar': 'BS' }),\n el('button', { type: 'button', class: 'ndp-segment__item', 'data-calendar': 'AD' }),\n ]);\n this.nowButton = el('button', {\n type: 'button',\n class: 'ndp-button',\n 'data-action': 'now',\n });\n this.doneButton = el('button', {\n type: 'button',\n class: 'ndp-button',\n 'data-variant': 'primary',\n 'data-action': 'done',\n });\n this.hours = el('div', {\n class: 'ndp-time__column',\n role: 'group',\n 'data-unit': 'hour',\n });\n this.minutes = el('div', {\n class: 'ndp-time__column',\n role: 'group',\n 'data-unit': 'minute',\n });\n this.time = el('div', { class: 'ndp-time', role: 'group' }, [\n this.hours,\n this.minutes,\n ]);\n const calendarRoot = el('div', { class: 'ndp-panel__calendar' });\n this.presetList = new PresetList((presetId) => {\n this.store.actions.applyPreset(presetId);\n });\n this.panel = el(\n 'div',\n {\n class: 'ndp-panel',\n id: `${id}-panel`,\n\n hidden: true,\n },\n [\n el('div', { class: 'ndp-panel__body' }, [\n this.presetList.element,\n calendarRoot,\n this.time,\n ]),\n el('div', { class: 'ndp-panel__footer' }, [\n this.segment,\n el('span', {}, [this.nowButton, this.doneButton]),\n ]),\n ],\n );\n this.field = el('div', { class: 'ndp-field' }, [\n this.row,\n this.hint,\n this.panel,\n this.hidden,\n ]);\n host.append(this.field);\n this.calendarView = new CalendarView(calendarRoot, this.store.calendar, {\n locale: () => this.options.locale,\n onDayActivate: (date) => {\n this.store.actions.selectDate(date);\n },\n });\n\n this.dateInput.addEventListener('input', () => {\n this.store.actions.typeDate(this.dateInput.value);\n });\n this.dateInput.addEventListener('blur', () => {\n this.store.actions.blurDate();\n });\n this.dateInput.addEventListener('keydown', (event) => {\n if (event.key === 'ArrowDown' && (event.altKey || this.dateInput.value === '')) {\n event.preventDefault();\n this.open();\n }\n });\n this.timeInput.addEventListener('input', () => {\n this.store.actions.typeTime(this.timeInput.value);\n });\n this.timeInput.addEventListener('blur', () => {\n this.store.actions.blurTime();\n });\n this.field.addEventListener('click', this.onClick);\n this.unsubscribe = this.store.subscribe(() => {\n this.render();\n });\n this.render();\n }\n\n getState(): DateTimePickerState {\n return this.store.getState();\n }\n\n setOptions(changes: Partial<DateTimePickerViewOptions>): void {\n this.options = { ...this.options, ...changes };\n const forStore = storeOptions(changes);\n if (Object.keys(forStore).length > 0) {\n this.store.setOptions(forStore);\n } else {\n this.render();\n }\n }\n\n open(): void {\n if (!this.options.disabled) {\n this.store.actions.open();\n }\n }\n\n close(): void {\n this.store.actions.close();\n }\n\n destroy(): void {\n this.closePanel?.();\n this.unsubscribe();\n this.calendarView.destroy();\n this.field.remove();\n }\n\n private render(): void {\n const state = this.store.getState();\n const locale = getLocale(this.options.locale);\n const disabled = this.options.disabled ?? false;\n const hint = state.error?.message ?? state.equivalentText;\n\n if (this.dateInput.value !== state.dateText) {\n this.dateInput.value = state.dateText;\n }\n if (this.timeInput.value !== state.timeText) {\n this.timeInput.value = state.timeText;\n }\n this.dateInput.setCustomValidity(\n state.error?.field === 'date' ? state.error.message : '',\n );\n this.timeInput.setCustomValidity(\n state.error?.field === 'time' ? state.error.message : '',\n );\n setAttrs(this.dateInput, {\n placeholder: state.placeholder,\n disabled,\n required: this.options.required ?? false,\n 'aria-label': this.options.ariaLabel ?? null,\n 'aria-invalid': state.error?.field === 'date' ? 'true' : null,\n 'aria-describedby': hint ? this.hint.id : null,\n });\n setAttrs(this.timeInput, {\n placeholder: state.timePlaceholder,\n disabled,\n 'aria-label': this.options.timeLabel ?? locale.labels.time,\n 'aria-invalid': state.error?.field === 'time' ? 'true' : null,\n 'aria-describedby': hint ? this.hint.id : null,\n });\n setAttrs(this.dateBox, {\n 'data-invalid': state.error?.field === 'date',\n 'data-disabled': disabled,\n });\n setAttrs(this.timeBox, {\n 'data-invalid': state.error?.field === 'time',\n 'data-disabled': disabled,\n });\n setAttrs(this.field, { 'data-ndp-theme': this.options.theme ?? null });\n setAttrs(this.panel, {\n 'data-ndp-theme': this.options.theme ?? null,\n 'aria-label': locale.labels.chooseDate,\n });\n setAttrs(this.toggleButton, {\n disabled,\n 'aria-label': locale.labels.openCalendar,\n 'aria-expanded': state.open ? 'true' : 'false',\n });\n this.hint.hidden = hint === null;\n setText(this.hint, hint ?? '');\n setAttrs(this.hint, { 'data-error': state.error !== null });\n\n renderSegment(this.segment, state, locale);\n setText(this.nowButton, locale.labels.now);\n setText(this.doneButton, locale.labels.done);\n setAttrs(this.time, { 'aria-label': locale.labels.time });\n setAttrs(this.hours, { 'aria-label': locale.labels.hour });\n setAttrs(this.minutes, { 'aria-label': locale.labels.minute });\n renderColumn(this.hours, state.hours);\n renderColumn(this.minutes, state.minutes);\n this.presetList.render(state.presets, locale.labels.presets);\n\n const name = this.options.hiddenInput === false ? undefined : this.options.name;\n setAttrs(this.hidden, { name: name ?? null });\n this.hidden.value = state.value;\n this.hidden.disabled = name === undefined || disabled;\n setPopupMode(state, [this.dateInput], this.toggleButton, this.panel);\n this.syncPanel(state.open && !state.inline);\n this.panel.hidden = !state.inline && !this.wasOpen;\n this.panel.style.setProperty(\n '--ndp-panel-width',\n state.inline ? `${String(this.panelWidth())}px` : null,\n );\n }\n\n private panelWidth(): number {\n return (\n (this.store.getState().presets.length > 0\n ? PANEL_WIDTH_WITH_PRESETS\n : PANEL_WIDTH) + TIME_COLUMNS_WIDTH\n );\n }\n\n private syncPanel(open: boolean): void {\n if (open === this.wasOpen) {\n return;\n }\n this.wasOpen = open;\n this.options.onOpenChange?.(open);\n if (open) {\n this.closePanel = openPanel({\n panel: this.panel,\n anchor: this.row,\n inside: [this.field],\n width: this.panelWidth(),\n layout: this.options.panelLayout,\n close: () => {\n this.store.actions.close();\n },\n returnFocus: this.dateInput,\n });\n for (const item of this.time.querySelectorAll<HTMLElement>(\n '[aria-pressed=\"true\"]',\n )) {\n if (typeof item.scrollIntoView === 'function') {\n item.scrollIntoView({ block: 'nearest' });\n }\n }\n this.calendarView.focusGrid();\n } else {\n this.closePanel?.();\n this.closePanel = null;\n }\n }\n\n private readonly onClick = (event: MouseEvent): void => {\n const target = event.target instanceof Element ? event.target : null;\n if (!target || this.calendarView.element.contains(target)) {\n return;\n }\n const item = target.closest<HTMLButtonElement>('.ndp-time-item');\n if (item) {\n const unit = item.parentElement?.dataset['unit'];\n const value = Number(item.dataset['value']);\n if (unit === 'hour') {\n this.store.actions.selectHour(value);\n } else {\n this.store.actions.selectMinute(value);\n }\n return;\n }\n const calendar = target.closest<HTMLElement>('[data-calendar]')?.dataset['calendar'];\n if (calendar === 'BS' || calendar === 'AD') {\n this.store.actions.switchCalendar(calendar);\n return;\n }\n switch (target.closest<HTMLElement>('[data-action]')?.dataset['action']) {\n case 'toggle':\n if (this.store.getState().open) {\n this.close();\n } else {\n this.open();\n }\n break;\n case 'now':\n this.store.actions.selectNow();\n break;\n case 'done':\n this.close();\n this.dateInput.focus();\n break;\n default:\n break;\n }\n };\n}\n\nfunction renderColumn(column: HTMLElement, cells: readonly TimeCell[]): void {\n if (column.children.length !== cells.length) {\n column.replaceChildren(\n ...cells.map((cell) =>\n el('button', {\n type: 'button',\n class: 'ndp-time-item',\n 'data-value': cell.value,\n }),\n ),\n );\n }\n cells.forEach((cell, index) => {\n const button = column.children[index];\n if (button) {\n setText(button, cell.label);\n setAttrs(button, {\n 'data-value': cell.value,\n 'aria-pressed': cell.isSelected ? 'true' : 'false',\n });\n }\n });\n}\n\nfunction storeOptions(\n options: Partial<DateTimePickerViewOptions>,\n): Partial<DateTimePickerOptions> {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(options)) {\n if (!VIEW_KEYS.has(key)) {\n out[key] = value;\n }\n }\n\n return out;\n}\n","import type { SinglePreset } from '@nepdatejs/datepicker';\nimport { DateTimePickerView, type DateTimePickerViewOptions } from './datetime-view';\nimport {\n Base,\n str,\n bool,\n calendarAttr,\n int,\n onUnlessFalse,\n panelLayout,\n theme,\n presetIds,\n swallowInnerChange,\n type RichProps,\n} from './element-utils';\n\n/**\n * <nep-date-time-picker name=\"starts-at\" minute-step=\"15\"></nep-date-time-picker>\n *\n * A form-associated BS/AD date + time field. The form receives one instant as\n * an ISO timestamp with the zone's offset (\"2026-10-18T14:30:00+05:45\").\n * Fires `change` with { value, ad, bs, time }.\n */\nexport class NepDateTimePickerElement extends Base {\n static readonly formAssociated = true;\n static readonly observedAttributes: readonly string[] = [\n 'value',\n 'min',\n 'max',\n 'calendar',\n 'default-calendar',\n 'locale',\n 'name',\n 'required',\n 'disabled',\n 'theme',\n 'panel-layout',\n 'mask',\n 'inline',\n 'time-zone',\n 'hour12',\n 'minute-step',\n 'default-time',\n 'label',\n 'time-label',\n 'presets',\n ];\n\n view: DateTimePickerView | null = null;\n private readonly internals: ElementInternals | null;\n private rich: RichProps = {};\n private unsubscribe: (() => void) | null = null;\n\n constructor() {\n super();\n this.internals =\n typeof this.attachInternals === 'function' ? this.attachInternals() : null;\n swallowInnerChange(this);\n }\n\n get value(): string {\n return this.view?.getState().value ?? '';\n }\n set value(next: string) {\n this.view?.store.actions.setValue(next);\n }\n set holidays(next: RichProps['holidays']) {\n this.rich = { ...this.rich, holidays: next };\n this.view?.setOptions({ holidays: next });\n }\n set isDateDisabled(next: RichProps['isDateDisabled']) {\n this.rich = { ...this.rich, isDateDisabled: next };\n this.view?.setOptions({ isDateDisabled: next });\n }\n\n connectedCallback(): void {\n if (this.view) {\n return;\n }\n const view = new DateTimePickerView(this, {\n ...this.readOptions(),\n defaultValue: str(this, 'value'),\n onChange: (value, detail) => {\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n detail: {\n value,\n ad: detail?.ad ?? null,\n bs: detail?.bs ?? null,\n time: detail?.time ?? null,\n },\n }),\n );\n },\n onOpenChange: (open) => {\n this.dispatchEvent(\n new CustomEvent(open ? 'nep-open' : 'nep-close', { bubbles: true }),\n );\n },\n });\n this.view = view;\n this.unsubscribe = view.store.subscribe(() => {\n this.syncForm();\n });\n this.syncForm();\n }\n\n disconnectedCallback(): void {\n this.unsubscribe?.();\n this.view?.destroy();\n this.view = null;\n }\n\n attributeChangedCallback(\n name: string,\n previous: string | null,\n next: string | null,\n ): void {\n if (!this.view || previous === next) {\n return;\n }\n if (name === 'value') {\n this.view.store.actions.setValue(next ?? '');\n }\n this.view.setOptions(this.readOptions());\n this.syncForm();\n }\n\n formResetCallback(): void {\n this.view?.store.actions.reset();\n }\n\n formDisabledCallback(disabled: boolean): void {\n this.view?.setOptions({ disabled: disabled || bool(this, 'disabled') });\n }\n\n override focus(options?: FocusOptions): void {\n this.view?.dateInput.focus(options);\n }\n\n private readOptions(): DateTimePickerViewOptions {\n return {\n ...this.rich,\n min: str(this, 'min'),\n max: str(this, 'max'),\n calendar: calendarAttr(this, 'calendar'),\n defaultCalendar: calendarAttr(this, 'default-calendar'),\n locale: str(this, 'locale'),\n name: str(this, 'name'),\n hiddenInput: this.internals === null,\n required: bool(this, 'required'),\n disabled: bool(this, 'disabled'),\n theme: theme(this),\n panelLayout: panelLayout(this),\n mask: onUnlessFalse(this, 'mask'),\n inline: this.hasAttribute('inline'),\n timeZone: str(this, 'time-zone'),\n hour12: bool(this, 'hour12'),\n minuteStep: int(this, 'minute-step'),\n defaultTime: str(this, 'default-time'),\n ariaLabel: str(this, 'label'),\n timeLabel: str(this, 'time-label'),\n presets: presetIds(this) as readonly SinglePreset[] | undefined,\n };\n }\n\n private syncForm(): void {\n const view = this.view;\n if (!view || !this.internals) {\n return;\n }\n const state = view.getState();\n this.internals.setFormValue(state.value === '' ? null : state.value);\n if (state.error) {\n this.internals.setValidity(\n { customError: true },\n state.error.message,\n state.error.field === 'time' ? view.timeInput : view.dateInput,\n );\n } else if (bool(this, 'required') && state.value === '') {\n this.internals.setValidity(\n { valueMissing: true },\n 'Please choose a date and time.',\n view.dateInput,\n );\n } else {\n this.internals.setValidity({});\n }\n }\n}\n","/** `@nepdatejs/vanilla/date-time-picker`: just the date + time picker. */\nimport { NepDateTimePickerElement } from './date-time-picker-element';\nimport { DateTimePickerView, type DateTimePickerViewOptions } from './datetime-view';\nimport { defineElement, ELEMENT_NAMES } from './registry';\n\nexport { NepDateTimePickerElement };\nexport { DateTimePickerView, type DateTimePickerViewOptions } from './datetime-view';\n\n/** Register <nep-date-time-picker> (skipped if already defined). */\nexport function defineDateTimePicker(registry?: CustomElementRegistry): void {\n defineElement(ELEMENT_NAMES.dateTimePicker, NepDateTimePickerElement, registry);\n}\n\n/** Mount a date + time picker into a container. */\nexport function createDateTimePicker(\n container: HTMLElement,\n options: DateTimePickerViewOptions = {},\n): DateTimePickerView {\n return new DateTimePickerView(container, options);\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_date_time_picker = require("./date-time-picker-
|
|
2
|
+
const require_date_time_picker = require("./date-time-picker-ChHIBTBw.cjs");
|
|
3
3
|
exports.DateTimePickerView = require_date_time_picker.DateTimePickerView;
|
|
4
4
|
exports.NepDateTimePickerElement = require_date_time_picker.NepDateTimePickerElement;
|
|
5
5
|
exports.createDateTimePicker = require_date_time_picker.createDateTimePicker;
|
package/dist/date-time-picker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { i as DateTimePickerView, r as NepDateTimePickerElement, t as createDateTimePicker, n as defineDateTimePicker } from "./date-time-picker-
|
|
1
|
+
export { i as DateTimePickerView, r as NepDateTimePickerElement, t as createDateTimePicker, n as defineDateTimePicker } from "./date-time-picker-CxqC95aM.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const require_date_picker = require("./date-picker-
|
|
1
|
+
const require_date_picker = require("./date-picker-CgjYsf1w.cjs");
|
|
2
2
|
const require_calendar = require("./calendar-C1LZI7XN.cjs");
|
|
3
|
-
const require_date_range_picker = require("./date-range-picker-
|
|
4
|
-
const require_date_time_picker = require("./date-time-picker-
|
|
5
|
-
const require_multi_date_picker = require("./multi-date-picker-
|
|
3
|
+
const require_date_range_picker = require("./date-range-picker-VrQZFZED.cjs");
|
|
4
|
+
const require_date_time_picker = require("./date-time-picker-ChHIBTBw.cjs");
|
|
5
|
+
const require_multi_date_picker = require("./multi-date-picker-DUyuO-nH.cjs");
|
|
6
6
|
//#region src/define.ts
|
|
7
7
|
/** Register all five custom elements (skips any already defined). Safe to call more than once. */
|
|
8
8
|
function defineElements(registry) {
|
|
@@ -20,4 +20,4 @@ Object.defineProperty(exports, "defineElements", {
|
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=define-
|
|
23
|
+
//# sourceMappingURL=define-BbTIFHtH.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-
|
|
1
|
+
{"version":3,"file":"define-BbTIFHtH.cjs","names":[],"sources":["../src/define.ts"],"sourcesContent":["import { defineCalendar } from './calendar';\nimport { defineDatePicker } from './date-picker';\nimport { defineDateRangePicker } from './date-range-picker';\nimport { defineDateTimePicker } from './date-time-picker';\nimport { defineMultiDatePicker } from './multi-date-picker';\n\nexport { ELEMENT_NAMES } from './registry';\n\n/** Register all five custom elements (skips any already defined). Safe to call more than once. */\nexport function defineElements(registry?: CustomElementRegistry): void {\n defineDatePicker(registry);\n defineCalendar(registry);\n defineDateRangePicker(registry);\n defineDateTimePicker(registry);\n defineMultiDatePicker(registry);\n}\n"],"mappings":";;;;;;;AASA,SAAgB,eAAe,UAAwC;CACrE,oBAAA,iBAAiB,QAAQ;CACzB,iBAAA,eAAe,QAAQ;CACvB,0BAAA,sBAAsB,QAAQ;CAC9B,yBAAA,qBAAqB,QAAQ;CAC7B,0BAAA,sBAAsB,QAAQ;AAChC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as defineDatePicker } from "./date-picker-
|
|
1
|
+
import { n as defineDatePicker } from "./date-picker-BwlrlU5Y.js";
|
|
2
2
|
import { n as defineCalendar } from "./calendar-BAcO-jYq.js";
|
|
3
|
-
import { n as defineDateRangePicker } from "./date-range-picker-
|
|
4
|
-
import { n as defineDateTimePicker } from "./date-time-picker-
|
|
5
|
-
import { n as defineMultiDatePicker } from "./multi-date-picker-
|
|
3
|
+
import { n as defineDateRangePicker } from "./date-range-picker-NwetXUC-.js";
|
|
4
|
+
import { n as defineDateTimePicker } from "./date-time-picker-CxqC95aM.js";
|
|
5
|
+
import { n as defineMultiDatePicker } from "./multi-date-picker-C3Lr0Dq-.js";
|
|
6
6
|
//#region src/define.ts
|
|
7
7
|
/** Register all five custom elements (skips any already defined). Safe to call more than once. */
|
|
8
8
|
function defineElements(registry) {
|
|
@@ -15,4 +15,4 @@ function defineElements(registry) {
|
|
|
15
15
|
//#endregion
|
|
16
16
|
export { defineElements as t };
|
|
17
17
|
|
|
18
|
-
//# sourceMappingURL=define-
|
|
18
|
+
//# sourceMappingURL=define-D96w8Zu2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-
|
|
1
|
+
{"version":3,"file":"define-D96w8Zu2.js","names":[],"sources":["../src/define.ts"],"sourcesContent":["import { defineCalendar } from './calendar';\nimport { defineDatePicker } from './date-picker';\nimport { defineDateRangePicker } from './date-range-picker';\nimport { defineDateTimePicker } from './date-time-picker';\nimport { defineMultiDatePicker } from './multi-date-picker';\n\nexport { ELEMENT_NAMES } from './registry';\n\n/** Register all five custom elements (skips any already defined). Safe to call more than once. */\nexport function defineElements(registry?: CustomElementRegistry): void {\n defineDatePicker(registry);\n defineCalendar(registry);\n defineDateRangePicker(registry);\n defineDateTimePicker(registry);\n defineMultiDatePicker(registry);\n}\n"],"mappings":";;;;;;;AASA,SAAgB,eAAe,UAAwC;CACrE,iBAAiB,QAAQ;CACzB,eAAe,QAAQ;CACvB,sBAAsB,QAAQ;CAC9B,qBAAqB,QAAQ;CAC7B,sBAAsB,QAAQ;AAChC"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_registry = require("./registry-3qzdVB7H.cjs");
|
|
3
|
-
const require_date_picker = require("./date-picker-
|
|
3
|
+
const require_date_picker = require("./date-picker-CgjYsf1w.cjs");
|
|
4
4
|
const require_calendar = require("./calendar-C1LZI7XN.cjs");
|
|
5
|
-
const require_date_range_picker = require("./date-range-picker-
|
|
6
|
-
const require_date_time_picker = require("./date-time-picker-
|
|
7
|
-
const require_multi_date_picker = require("./multi-date-picker-
|
|
8
|
-
const require_define = require("./define-
|
|
5
|
+
const require_date_range_picker = require("./date-range-picker-VrQZFZED.cjs");
|
|
6
|
+
const require_date_time_picker = require("./date-time-picker-ChHIBTBw.cjs");
|
|
7
|
+
const require_multi_date_picker = require("./multi-date-picker-DUyuO-nH.cjs");
|
|
8
|
+
const require_define = require("./define-BbTIFHtH.cjs");
|
|
9
9
|
exports.CalendarView = require_registry.CalendarView;
|
|
10
10
|
exports.DatePickerView = require_date_picker.DatePickerView;
|
|
11
11
|
exports.DateRangePickerView = require_date_range_picker.DateRangePickerView;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { h as CalendarView, t as ELEMENT_NAMES } from "./registry-BvkGnkvV.js";
|
|
2
|
-
import { i as DatePickerView, n as defineDatePicker, r as NepDatePickerElement, t as createDatePicker } from "./date-picker-
|
|
2
|
+
import { i as DatePickerView, n as defineDatePicker, r as NepDatePickerElement, t as createDatePicker } from "./date-picker-BwlrlU5Y.js";
|
|
3
3
|
import { n as defineCalendar, r as NepCalendarElement, t as createCalendar } from "./calendar-BAcO-jYq.js";
|
|
4
|
-
import { i as DateRangePickerView, n as defineDateRangePicker, r as NepDateRangePickerElement, t as createDateRangePicker } from "./date-range-picker-
|
|
5
|
-
import { i as DateTimePickerView, n as defineDateTimePicker, r as NepDateTimePickerElement, t as createDateTimePicker } from "./date-time-picker-
|
|
6
|
-
import { i as MultiDatePickerView, n as defineMultiDatePicker, r as NepMultiDatePickerElement, t as createMultiDatePicker } from "./multi-date-picker-
|
|
7
|
-
import { t as defineElements } from "./define-
|
|
4
|
+
import { i as DateRangePickerView, n as defineDateRangePicker, r as NepDateRangePickerElement, t as createDateRangePicker } from "./date-range-picker-NwetXUC-.js";
|
|
5
|
+
import { i as DateTimePickerView, n as defineDateTimePicker, r as NepDateTimePickerElement, t as createDateTimePicker } from "./date-time-picker-CxqC95aM.js";
|
|
6
|
+
import { i as MultiDatePickerView, n as defineMultiDatePicker, r as NepMultiDatePickerElement, t as createMultiDatePicker } from "./multi-date-picker-C3Lr0Dq-.js";
|
|
7
|
+
import { t as defineElements } from "./define-D96w8Zu2.js";
|
|
8
8
|
export { CalendarView, DatePickerView, DateRangePickerView, DateTimePickerView, ELEMENT_NAMES, MultiDatePickerView, NepCalendarElement, NepDatePickerElement, NepDateRangePickerElement, NepDateTimePickerElement, NepMultiDatePickerElement, createCalendar, createDatePicker, createDateRangePicker, createDateTimePicker, createMultiDatePicker, defineCalendar, defineDatePicker, defineDateRangePicker, defineDateTimePicker, defineElements, defineMultiDatePicker };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { _ as icon, a as calendarAttr, b as setText, c as onUnlessFalse, d as str, f as swallowInnerChange, g as el, h as CalendarView, i as bool, l as panelLayout, n as defineElement, o as int, p as theme, r as Base, t as ELEMENT_NAMES, v as setAttrs, x as uid, y as setPopupMode } from "./registry-BvkGnkvV.js";
|
|
2
|
+
import { n as openPanel, r as renderSegment } from "./preset-list-DmE6fJjr.js";
|
|
2
3
|
import { getLocale } from "@nepdatejs/core";
|
|
3
4
|
import { createMultiDatePicker } from "@nepdatejs/datepicker";
|
|
4
|
-
import {
|
|
5
|
+
import { restoreFocus } from "@nepdatejs/dom";
|
|
5
6
|
//#region src/multi-view.ts
|
|
6
7
|
const VIEW_KEYS = /* @__PURE__ */ new Set([
|
|
7
8
|
"name",
|
|
@@ -195,13 +196,7 @@ var MultiDatePickerView = class {
|
|
|
195
196
|
});
|
|
196
197
|
this.hint.hidden = state.error === null;
|
|
197
198
|
setText(this.hint, state.error?.message ?? "");
|
|
198
|
-
this.segment
|
|
199
|
-
setAttrs(this.segment, { "aria-label": locale.labels.calendar });
|
|
200
|
-
for (const button of this.segment.querySelectorAll("button")) {
|
|
201
|
-
const calendar = button.dataset["calendar"] === "AD" ? "AD" : "BS";
|
|
202
|
-
setText(button, locale.calendarNames[calendar]);
|
|
203
|
-
setAttrs(button, { "aria-pressed": String(calendar === state.calendar) });
|
|
204
|
-
}
|
|
199
|
+
renderSegment(this.segment, state, locale);
|
|
205
200
|
setText(this.doneButton, locale.labels.done);
|
|
206
201
|
this.doneButton.hidden = state.inline;
|
|
207
202
|
const name = this.options.hiddenInput === false ? void 0 : this.options.name;
|
|
@@ -221,27 +216,17 @@ var MultiDatePickerView = class {
|
|
|
221
216
|
this.wasOpen = open;
|
|
222
217
|
this.options.onOpenChange?.(open);
|
|
223
218
|
if (open) {
|
|
224
|
-
this.
|
|
225
|
-
|
|
219
|
+
this.closePanel = openPanel({
|
|
220
|
+
panel: this.panel,
|
|
221
|
+
anchor: this.box,
|
|
222
|
+
inside: [this.field, this.panel],
|
|
226
223
|
width: 320,
|
|
227
|
-
layout: this.options.panelLayout
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
const stopOutside = onOutsidePointer([this.field, this.panel], close);
|
|
233
|
-
const stopBackdrop = onBackdropPointer(this.panel, close);
|
|
234
|
-
const stopEscape = onEscape(() => {
|
|
235
|
-
close();
|
|
236
|
-
restoreFocus(this.input);
|
|
224
|
+
layout: this.options.panelLayout,
|
|
225
|
+
close: () => {
|
|
226
|
+
this.store.actions.close();
|
|
227
|
+
},
|
|
228
|
+
returnFocus: this.input
|
|
237
229
|
});
|
|
238
|
-
this.closePanel = () => {
|
|
239
|
-
stopTracking();
|
|
240
|
-
stopOutside();
|
|
241
|
-
stopBackdrop();
|
|
242
|
-
stopEscape();
|
|
243
|
-
this.panel.hidden = true;
|
|
244
|
-
};
|
|
245
230
|
this.calendarView.focusGrid();
|
|
246
231
|
} else {
|
|
247
232
|
this.closePanel?.();
|
|
@@ -436,4 +421,4 @@ function createMultiDatePicker$1(container, options = {}) {
|
|
|
436
421
|
//#endregion
|
|
437
422
|
export { MultiDatePickerView as i, defineMultiDatePicker as n, NepMultiDatePickerElement as r, createMultiDatePicker$1 as t };
|
|
438
423
|
|
|
439
|
-
//# sourceMappingURL=multi-date-picker-
|
|
424
|
+
//# sourceMappingURL=multi-date-picker-C3Lr0Dq-.js.map
|