{"version":3,"file":"YearPickerInput.mjs","names":[],"sources":["../../../src/components/YearPickerInput/YearPickerInput.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 { DateInputSharedProps, PickerInputBase } from '../PickerInputBase';\nimport { YearPicker, YearPickerBaseProps, YearPickerStylesNames } from '../YearPicker';\n\nexport type YearPickerInputStylesNames = __InputStylesNames | 'placeholder' | YearPickerStylesNames;\n\nexport interface YearPickerInputProps<Type extends DatePickerType = 'default'>\n  extends\n    BoxProps,\n    DateInputSharedProps,\n    YearPickerBaseProps<Type>,\n    StylesApiProps<YearPickerInputFactory> {\n  /** `dayjs` format to display input value @default \"YYYY\" */\n  valueFormat?: string;\n}\n\nexport type YearPickerInputFactory = Factory<{\n  props: YearPickerInputProps;\n  ref: HTMLButtonElement;\n  stylesNames: YearPickerInputStylesNames;\n  variant: InputVariant;\n}>;\n\nconst defaultProps = {\n  type: 'default',\n  size: 'sm',\n  valueFormat: 'YYYY',\n  closeOnChange: true,\n  sortDates: true,\n  dropdownType: 'popover',\n} satisfies Partial<YearPickerInputProps>;\n\ntype YearPickerInputComponent = (<Type extends DatePickerType = 'default'>(\n  props: YearPickerInputProps<Type> & { ref?: React.Ref<HTMLButtonElement> }\n) => React.JSX.Element) & {\n  displayName?: string;\n} & MantineComponentStaticProperties<YearPickerInputFactory>;\n\nexport const YearPickerInput: YearPickerInputComponent = factory<YearPickerInputFactory>(\n  (_props) => {\n    const props = useProps(['Input', 'InputWrapper', 'YearPickerInput'], 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      valueFormatter,\n      presets,\n      attributes,\n      ...rest\n    } = props;\n\n    const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<YearPickerInputFactory>({\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    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=\"YearPickerInput\"\n        attributes={attributes}\n      >\n        <YearPicker\n          {...calendarProps}\n          size={size}\n          variant={variant}\n          type={type}\n          value={_value}\n          defaultDate={\n            calendarProps.defaultDate ||\n            (Array.isArray(_value)\n              ? _value[0] || getDefaultClampedDate({ maxDate, minDate })\n              : _value || getDefaultClampedDate({ maxDate, minDate }))\n          }\n          onChange={setValue}\n          locale={locale}\n          classNames={resolvedClassNames}\n          styles={resolvedStyles}\n          unstyled={unstyled}\n          __staticSelector=\"YearPickerInput\"\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\nYearPickerInput.classes = { ...PickerInputBase.classes, ...YearPicker.classes };\nYearPickerInput.displayName = '@mantine/dates/YearPickerInput';\n\nexport namespace YearPickerInput {\n  export type Props<Type extends DatePickerType = 'default'> = YearPickerInputProps<Type>;\n  export type StylesNames = YearPickerInputStylesNames;\n  export type Factory = YearPickerInputFactory;\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,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,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,aACE,cAAc,gBACb,MAAM,QAAQ,MAAM,IACjB,OAAO,MAAM,sBAAsB;IAAE;IAAS;GAAQ,CAAC,IACvD,UAAU,sBAAsB;IAAE;IAAS;GAAQ,CAAC;GAE1D,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"}