DuyTa's picture
Upload folder using huggingface_hub
bc20498 verified
raw
history blame
1.83 kB
import { createDatePicker } from "@melt-ui/svelte";
import { getContext, setContext } from "svelte";
import { removeUndefined, getOptionUpdater, createBitAttrs } from "../../internal/index.js";
import { getCalendarData } from "../calendar/ctx.js";
import { getDateFieldData } from "../date-field/ctx.js";
import { getPopoverData } from "../popover/ctx.js";
import { getPositioningUpdater } from "../floating/helpers.js";
function getDatePickerData() {
const NAME = "date-picker";
return {
NAME,
};
}
export function setCtx(props) {
const { NAME } = getDatePickerData();
const { NAME: CALENDAR_NAME, PARTS: CALENDAR_PARTS } = getCalendarData();
const getCalendarAttrs = createBitAttrs(CALENDAR_NAME, CALENDAR_PARTS);
const { NAME: FIELD_NAME, PARTS: FIELD_PARTS } = getDateFieldData();
const getFieldAttrs = createBitAttrs(FIELD_NAME, FIELD_PARTS);
const { NAME: POPOVER_NAME, PARTS: POPOVER_PARTS } = getPopoverData();
const getPopoverAttrs = createBitAttrs(POPOVER_NAME, POPOVER_PARTS);
const datePicker = {
...createDatePicker({ ...removeUndefined(props), forceVisible: true }),
getCalendarAttrs,
getFieldAttrs,
getPopoverAttrs,
};
const updateOption = getOptionUpdater(datePicker.options);
setContext(NAME, { ...datePicker, updateOption });
return {
...datePicker,
updateOption,
};
}
export function getCtx() {
const { NAME } = getDatePickerData();
return getContext(NAME);
}
export function updatePositioning(props) {
const defaultPlacement = {
side: "bottom",
align: "center",
};
const withDefaults = { ...defaultPlacement, ...props };
const { options: { positioning }, } = getCtx();
const updater = getPositioningUpdater(positioning);
updater(withDefaults);
}