UNPKG

@mantine/dates

Version:

Calendars, date and time pickers based on Mantine components

1 lines 5.82 kB
{"version":3,"file":"DatePickerInput.mjs","names":[],"sources":["../../../src/components/DatePickerInput/DatePickerInput.tsx"],"sourcesContent":["import {\n __InputStylesNames,\n BoxProps,\n factory,\n Factory,\n InputVariant,\n MantineComponentStaticProperties,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n} from '@mantine/core';\nimport { useDatesInput } from '../../hooks';\nimport { DatePickerType } from '../../types';\nimport { getDefaultClampedDate } from '../../utils';\nimport { pickCalendarProps } from '../Calendar';\nimport { DatePicker, DatePickerBaseProps, DatePickerStylesNames } from '../DatePicker';\nimport { DateInputSharedProps, PickerInputBase } from '../PickerInputBase';\n\nexport type DatePickerInputStylesNames = __InputStylesNames | 'placeholder' | DatePickerStylesNames;\n\nexport interface DatePickerInputProps<Type extends DatePickerType = 'default'>\n extends\n BoxProps,\n DateInputSharedProps,\n DatePickerBaseProps<Type>,\n StylesApiProps<DatePickerInputFactory> {\n /** `dayjs` format for input value @default \"MMMM D, YYYY\" */\n valueFormat?: string;\n}\n\nexport type DatePickerInputFactory = Factory<{\n props: DatePickerInputProps;\n ref: HTMLButtonElement;\n stylesNames: DatePickerInputStylesNames;\n variant: InputVariant;\n}>;\n\nconst defaultProps = {\n type: 'default',\n size: 'sm',\n valueFormat: 'MMMM D, YYYY',\n closeOnChange: true,\n sortDates: true,\n dropdownType: 'popover',\n} satisfies Partial<DatePickerInputProps>;\n\ntype DatePickerInputComponent = (<Type extends DatePickerType = 'default'>(\n props: DatePickerInputProps<Type> & { ref?: React.Ref<HTMLButtonElement> }\n) => React.JSX.Element) & {\n displayName?: string;\n} & MantineComponentStaticProperties<DatePickerInputFactory>;\n\nexport const DatePickerInput: DatePickerInputComponent = factory<DatePickerInputFactory>(\n (_props) => {\n const props = useProps(['Input', 'InputWrapper', 'DatePickerInput'], defaultProps, _props);\n const {\n type,\n value,\n defaultValue,\n onChange,\n valueFormat,\n labelSeparator,\n locale,\n classNames,\n styles,\n unstyled,\n closeOnChange,\n size,\n variant,\n dropdownType,\n sortDates,\n minDate,\n maxDate,\n vars,\n defaultDate,\n valueFormatter,\n presets,\n attributes,\n ...rest\n } = props;\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<DatePickerInputFactory>({\n classNames,\n styles,\n props,\n });\n\n const { calendarProps, others } = pickCalendarProps(rest);\n\n const {\n _value,\n setValue,\n formattedValue,\n dropdownHandlers,\n dropdownOpened,\n onClear,\n shouldClear,\n } = useDatesInput({\n type: type as any,\n value,\n defaultValue,\n onChange: onChange as any,\n locale,\n format: valueFormat,\n labelSeparator,\n closeOnChange,\n sortDates,\n valueFormatter,\n });\n\n const _defaultDate = Array.isArray(_value) ? _value[0] || defaultDate : _value || defaultDate;\n\n return (\n <PickerInputBase\n formattedValue={formattedValue}\n dropdownOpened={dropdownOpened}\n dropdownHandlers={dropdownHandlers}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n onClear={onClear}\n shouldClear={shouldClear}\n value={_value}\n size={size}\n variant={variant}\n dropdownType={dropdownType}\n {...others}\n type={type as any}\n __staticSelector=\"DatePickerInput\"\n attributes={attributes}\n >\n <DatePicker\n {...calendarProps}\n size={size}\n variant={variant}\n type={type}\n value={_value}\n defaultDate={_defaultDate || getDefaultClampedDate({ maxDate, minDate })}\n onChange={setValue}\n locale={locale}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n __staticSelector=\"DatePickerInput\"\n __stopPropagation={dropdownType === 'popover'}\n minDate={minDate}\n maxDate={maxDate}\n presets={presets}\n attributes={attributes}\n />\n </PickerInputBase>\n );\n }\n) as any;\n\nDatePickerInput.classes = { ...PickerInputBase.classes, ...DatePicker.classes };\nDatePickerInput.displayName = '@mantine/dates/DatePickerInput';\n\nexport namespace DatePickerInput {\n export type Props = DatePickerInputProps;\n export type StylesNames = DatePickerInputStylesNames;\n export type Factory = DatePickerInputFactory;\n}\n"],"mappings":";;;;;;;;;AAqCA,MAAM,eAAe;CACnB,MAAM;CACN,MAAM;CACN,aAAa;CACb,eAAe;CACf,WAAW;CACX,cAAc;AAChB;AAQA,MAAa,kBAA4C,SACtD,WAAW;CACV,MAAM,QAAQ,SAAS;EAAC;EAAS;EAAgB;CAAiB,GAAG,cAAc,MAAM;CACzF,MAAM,EACJ,MACA,OACA,cACA,UACA,aACA,gBACA,QACA,YACA,QACA,UACA,eACA,MACA,SACA,cACA,WACA,SACA,SACA,MACA,aACA,gBACA,SACA,YACA,GAAG,SACD;CAEJ,MAAM,EAAE,oBAAoB,mBAAmB,qBAA6C;EAC1F;EACA;EACA;CACF,CAAC;CAED,MAAM,EAAE,eAAe,WAAW,kBAAkB,IAAI;CAExD,MAAM,EACJ,QACA,UACA,gBACA,kBACA,gBACA,SACA,gBACE,cAAc;EACV;EACN;EACA;EACU;EACV;EACA,QAAQ;EACR;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,eAAe,MAAM,QAAQ,MAAM,IAAI,OAAO,MAAM,cAAc,UAAU;CAElF,OACE,oBAAC,iBAAD;EACkB;EACA;EACE;EAClB,YAAY;EACZ,QAAQ;EACE;EACD;EACI;EACb,OAAO;EACD;EACG;EACK;EACd,GAAI;EACE;EACN,kBAAiB;EACL;YAEZ,oBAAC,YAAD;GACE,GAAI;GACE;GACG;GACH;GACN,OAAO;GACP,aAAa,gBAAgB,sBAAsB;IAAE;IAAS;GAAQ,CAAC;GACvE,UAAU;GACF;GACR,YAAY;GACZ,QAAQ;GACE;GACV,kBAAiB;GACjB,mBAAmB,iBAAiB;GAC3B;GACA;GACA;GACG;EACb,CAAA;CACc,CAAA;AAErB,CACF;AAEA,gBAAgB,UAAU;CAAE,GAAG,gBAAgB;CAAS,GAAG,WAAW;AAAQ;AAC9E,gBAAgB,cAAc"}