@dnb/eufemia 10.62.0 → 10.62.2

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.
Files changed (87) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/cjs/components/date-picker/DatePicker.d.ts +1 -1
  3. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  4. package/cjs/components/date-picker/DatePickerProvider.d.ts +2 -2
  5. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  6. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  7. package/cjs/components/upload/UploadFileListLink.js +3 -1
  8. package/cjs/components/upload/UploadFileListLink.js.map +1 -1
  9. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -0
  10. package/cjs/extensions/forms/Field/Upload/Upload.js +32 -15
  11. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  12. package/cjs/extensions/forms/Value/Upload/Upload.js +12 -4
  13. package/cjs/extensions/forms/Value/Upload/Upload.js.map +1 -1
  14. package/cjs/extensions/forms/hooks/useExternalValue.d.ts +1 -1
  15. package/cjs/extensions/forms/hooks/useExternalValue.js +8 -6
  16. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  17. package/cjs/shared/Eufemia.d.ts +1 -1
  18. package/cjs/shared/Eufemia.js +2 -2
  19. package/cjs/shared/Eufemia.js.map +1 -1
  20. package/cjs/style/core/scopes.scss +1 -1
  21. package/cjs/style/dnb-ui-basis.css +1 -1
  22. package/cjs/style/dnb-ui-basis.min.css +1 -1
  23. package/cjs/style/dnb-ui-body.css +1 -1
  24. package/cjs/style/dnb-ui-body.min.css +1 -1
  25. package/cjs/style/dnb-ui-core.css +1 -1
  26. package/cjs/style/dnb-ui-core.min.css +1 -1
  27. package/components/date-picker/DatePicker.d.ts +1 -1
  28. package/components/date-picker/DatePicker.js.map +1 -1
  29. package/components/date-picker/DatePickerProvider.d.ts +2 -2
  30. package/components/date-picker/DatePickerProvider.js.map +1 -1
  31. package/components/date-picker/hooks/useDates.js.map +1 -1
  32. package/components/upload/UploadFileListLink.js +3 -1
  33. package/components/upload/UploadFileListLink.js.map +1 -1
  34. package/es/components/date-picker/DatePicker.d.ts +1 -1
  35. package/es/components/date-picker/DatePicker.js.map +1 -1
  36. package/es/components/date-picker/DatePickerProvider.d.ts +2 -2
  37. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  38. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  39. package/es/components/upload/UploadFileListLink.js +3 -1
  40. package/es/components/upload/UploadFileListLink.js.map +1 -1
  41. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -0
  42. package/es/extensions/forms/Field/Upload/Upload.js +27 -8
  43. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  44. package/es/extensions/forms/Value/Upload/Upload.js +10 -4
  45. package/es/extensions/forms/Value/Upload/Upload.js.map +1 -1
  46. package/es/extensions/forms/hooks/useExternalValue.d.ts +1 -1
  47. package/es/extensions/forms/hooks/useExternalValue.js +8 -6
  48. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  49. package/es/shared/Eufemia.d.ts +1 -1
  50. package/es/shared/Eufemia.js +2 -2
  51. package/es/shared/Eufemia.js.map +1 -1
  52. package/es/style/core/scopes.scss +1 -1
  53. package/es/style/dnb-ui-basis.css +1 -1
  54. package/es/style/dnb-ui-basis.min.css +1 -1
  55. package/es/style/dnb-ui-body.css +1 -1
  56. package/es/style/dnb-ui-body.min.css +1 -1
  57. package/es/style/dnb-ui-core.css +1 -1
  58. package/es/style/dnb-ui-core.min.css +1 -1
  59. package/esm/dnb-ui-basis.min.mjs +1 -1
  60. package/esm/dnb-ui-components.min.mjs +1 -1
  61. package/esm/dnb-ui-elements.min.mjs +1 -1
  62. package/esm/dnb-ui-extensions.min.mjs +1 -1
  63. package/esm/dnb-ui-lib.min.mjs +1 -1
  64. package/extensions/forms/Field/Upload/Upload.d.ts +1 -0
  65. package/extensions/forms/Field/Upload/Upload.js +31 -15
  66. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  67. package/extensions/forms/Value/Upload/Upload.js +10 -4
  68. package/extensions/forms/Value/Upload/Upload.js.map +1 -1
  69. package/extensions/forms/hooks/useExternalValue.d.ts +1 -1
  70. package/extensions/forms/hooks/useExternalValue.js +8 -6
  71. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  72. package/package.json +1 -1
  73. package/shared/Eufemia.d.ts +1 -1
  74. package/shared/Eufemia.js +2 -2
  75. package/shared/Eufemia.js.map +1 -1
  76. package/style/core/scopes.scss +1 -1
  77. package/style/dnb-ui-basis.css +1 -1
  78. package/style/dnb-ui-basis.min.css +1 -1
  79. package/style/dnb-ui-body.css +1 -1
  80. package/style/dnb-ui-body.min.css +1 -1
  81. package/style/dnb-ui-core.css +1 -1
  82. package/style/dnb-ui-core.min.css +1 -1
  83. package/umd/dnb-ui-basis.min.js +1 -1
  84. package/umd/dnb-ui-components.min.js +1 -1
  85. package/umd/dnb-ui-elements.min.js +1 -1
  86. package/umd/dnb-ui-extensions.min.js +2 -2
  87. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","classnames","warn","makeUniqueId","extendPropsWithContext","detectOutsideClick","getStatusState","combineDescribedBy","validateDOMAttributes","AlignmentHelper","createSpacingClasses","skeletonDOMAttributes","format","Context","Suffix","FormLabel","FormStatus","DatePickerProvider","DatePickerRange","DatePickerInput","DatePickerAddon","DatePickerFooter","pickFormElementProps","useTranslation","convertSnakeCaseProps","defaultProps","maskOrder","maskPlaceholder","dateFormat","returnFormat","hideNavigation","hideNavigationButtons","hideDays","onlyMonth","hideLastWeek","disableAutofocus","enableKeyboardNav","showInput","submitButtonText","cancelButtonText","resetButtonText","resetDate","firstDay","range","link","sync","statusState","opened","noAnimation","direction","DatePicker","externalProps","props","_objectSpread","preventClose","onHide","onShow","onSubmit","onCancel","onReset","alignPicker","showSubmitButton","showCancelButton","openedProp","endDate","endDateProp","setOpened","hidden","setHidden","dates","setDates","context","blurDelay","id","innerRef","triangleRef","submitButtonRef","getReturnObject","hideTimeout","outsideClick","translation","removeOutsideClickHandler","current","remove","hidePicker","args","event","persist","setTimeout","focus","preventScroll","e","setOutsideClickHandler","_ref","focusOnHide","setTrianglePosition","triangleWidth","shellWidth","querySelector","getBoundingClientRect","width","buttonWidth","distance","style","marginRight","marginLeft","showPicker","clearTimeout","onPickerChange","_ref2","shouldHidePicker","_objectWithoutProperties","_excluded","startDate","onSubmitHandler","onCancelHandler","onResetHandler","togglePicker","formatSelectedDateTitle","selectedDate","start","end","currentDate","replace","extendedProps","skeleton","getTranslation","FormRow","formElement","label","title","labelDirection","labelSrOnly","inputElement","addonElement","shortcuts","disabled","stretch","size","status","statusProps","statusNoAnimation","globalStatus","suffix","showResetButton","className","tooltip","restProps","_excluded2","attributes","filterOutNonAttributes","shouldHideDays","shouldHideNavigation","showStatus","pickerParams","submitParams","ref","tabIndex","selectedDateTitle","mainParams","lang","locale","remainingDOMProps","remainingSubmitProps","remainingPickerProps","createElement","_extends","setReturnObject","fn","forId","text","srOnly","_AlignmentHelper","show","String","text_id","width_selector","state","no_animation","isRange","submitAttributes","Fragment","firstDayOfWeek","isLink","isSync","hideNav","views","nextBtn","prevBtn","hideNextMonthWeek","noAutoFocus","onChange","renderElement","NonAttributes","Object","keys","reduce","key","includes","_supportsSpacingProps"],"sources":["../../../../src/components/date-picker/DatePicker.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n HTMLProps,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n warn,\n makeUniqueId,\n extendPropsWithContext,\n detectOutsideClick,\n getStatusState,\n combineDescribedBy,\n validateDOMAttributes,\n DetectOutsideClickClass,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { skeletonDOMAttributes } from '../skeleton/SkeletonHelper'\n\n// date-fns\nimport format from 'date-fns/format'\n\nimport Context, { Locale } from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus, {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../form-status/FormStatus'\nimport DatePickerProvider, {\n DatePickerChangeEvent,\n type ReturnObject,\n} from './DatePickerProvider'\nimport DatePickerRange from './DatePickerRange'\nimport DatePickerInput from './DatePickerInput'\nimport DatePickerAddon, { DatePickerAddonProps } from './DatePickerAddon'\nimport DatePickerFooter from './DatePickerFooter'\nimport { SpacingProps } from '../space/types'\nimport { InputInputElement, InputSize } from '../Input'\nimport { SkeletonShow } from '../Skeleton'\nimport { GlobalStatusConfigObject } from '../GlobalStatus'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport { CalendarDay, DatePickerCalendarProps } from './DatePickerCalendar'\nimport { DatePickerContextValues, DateType } from './DatePickerContext'\nimport { DatePickerDates } from './hooks/useDates'\nimport { useTranslation } from '../../shared'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nexport type DatePickerEventAttributes = {\n day?: string\n year?: string\n start?: string\n end?: string\n} & Record<string, unknown>\n\n// Takes the return object from DatePickerProvider and extends it with the event\nexport type DatePickerEvent<T> = ReturnObject<T>\n\nexport type DisplayPickerEvent = (\n | React.MouseEvent<HTMLButtonElement | HTMLAnchorElement | HTMLElement>\n | MouseEvent\n | KeyboardEvent\n) &\n DatePickerDates & {\n focusOnHide?: boolean | string\n event?: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n }\n\nexport type DatePickerProps = {\n /**\n * Defines the pre-filled date by either a JavaScript DateInstance or (ISO 8601) like `date=\"2019-05-05\"`.\n */\n date?: DateType\n /**\n * To set the pre-filled starting date. Is used if `range={true}` is set to `true`. Defaults to `null`, showing the `maskPlaceholder`.\n */\n startDate?: DateType\n /**\n * To set the pre-filled ending date. Is used if `range={true}` is set to `true`. Defaults to `null`, showing the `maskPlaceholder`.\n */\n endDate?: DateType\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n month?: DateType\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n startMonth?: DateType\n /**\n * To display what month should be shown in the second calendar by default. Defaults to the `date` respective `startDate`.\n */\n endMonth?: DateType\n /**\n * To limit a date range to a minimum `startDate`. Defaults to `null`.\n */\n minDate?: DateType\n /**\n * To limit a date range to a maximum `endDate`. Defaults to `null`.\n */\n maxDate?: DateType\n /**\n * Corrects the input date value to be the same as either `minDate` or `maxDate`, when the user types in a date that is either before or after one of these. Defaults to `false`.\n */\n correctInvalidDate?: boolean\n /**\n * To define the order of the masked placeholder input fields. Defaults to `dd/mm/yyyy`\n */\n maskOrder?: string\n /**\n * To display the placeholder on input. Defaults to `dd/mm/åååå`.\n */\n maskPlaceholder?: string\n /**\n * Defines how the prop dates (`date`, `startDate` and `endDate`) should be parsed, e.g. `yyyy/MM/dd`. Defaults to `yyyy-MM-dd`.\n */\n dateFormat?: string\n /**\n * Defines how the returned date, as a string, should be formatted as. Defaults to `yyyy-MM-dd`.\n */\n returnFormat?: string\n /**\n * If set to `true`, the navigation will be hidden. Defaults to `false`.\n */\n hideNavigation?: boolean\n hideNavigationButtons?: boolean\n /**\n * If set to `true`, the week days will be hidden. Defaults to `false`.\n */\n hideDays?: boolean\n /**\n * Use `true` to only show the defined month. Disables the month navigation possibility. Defaults to `false`.\n */\n onlyMonth?: boolean\n /**\n * Use `true` to only show the last week in the current month if it needs to be shown. The result is that there will mainly be shows five (5) weeks (rows) instead of six (6). Defaults to `false`.\n */\n hideLastWeek?: boolean\n /**\n * Once the date picker gets opened, there is a focus handling to ensure good accessibility. can be disabled with property. Defaults to `false`.\n */\n disableAutofocus?: boolean\n enableKeyboardNav?: boolean\n /**\n * If the input fields with the mask should be visible. Defaults to `false`.\n */\n showInput?: boolean\n /**\n * If set to `true`, a submit button will be shown. You can change the default text by using `submitButtonText=\"Ok\"`. Defaults to `false`. If the `range` prop is `true`, then the submit button is shown.\n */\n showSubmitButton?: boolean\n /**\n * If set to `true`, a cancel button will be shown. You can change the default text by using `cancelButtonText=\"Avbryt\"` Defaults to `false`. If the `range` prop is `true`, then the cancel button is shown.\n */\n showCancelButton?: boolean\n /**\n * If set to `true`, a reset button will be shown. You can change the default text by using `resetButtonText=\"Tilbakestill\"` Defaults to `false`.\n */\n showResetButton?: boolean\n submitButtonText?: string\n cancelButtonText?: string\n resetButtonText?: string\n resetDate?: boolean\n /**\n * To define the first day of the week. Defaults to `monday`.\n */\n firstDay?:\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday'\n | 'sunday'\n /**\n * If the date picker should support a range of two dates (starting and ending date). Defaults to `false`.\n */\n range?: boolean\n /**\n * Link both calendars, once to the user is navigating between months. Only meant to use if the range is set to `true`. Defaults to `false`.\n */\n link?: boolean\n /**\n * Sync input values with the calendars views. Once the input values get changed, the calendar changes its views in sync. Defaults to `true`.\n */\n sync?: boolean\n /**\n * A prepending label in sync with the date input field.\n */\n label?: React.ReactNode\n /**\n * Use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `inputElement=\"input\"`, a React element, or a render function `inputElement={(internalProps) => (<Return />)}`. Can also be used in circumstances where the `react-text-mask` not should be used, e.g. in testing environments. Defaults to custom masked input.\n */\n inputElement?: InputInputElement\n /**\n * Gives you the possibility to inject a React element showing up over the footer. Use it to customize `shortcuts`.\n */\n addonElement?: React.ReactNode\n /**\n * Gives you the possibility to set predefined dates and date ranges so the user can select these by one click. Define either a JSON or an object with the defined shortcuts. More info is below.\n */\n shortcuts?: DatePickerAddonProps['shortcuts']\n disabled?: boolean\n /**\n * If set to `true`, then the date-picker input field will be 100% in `width`.\n */\n stretch?: boolean\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * The sizes you can choose is `small` (1.5rem), `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`.\n */\n size?: InputSize\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties.\n */\n statusProps?: FormStatusProps\n statusNoAnimation?: boolean\n /**\n * The <a href=\"/uilib/components/global-status/properties/#configuration-object\">configuration</a> used for the target <a href=\"/uilib/components/global-status\">GlobalStatus</a>.\n */\n globalStatus?: GlobalStatusConfigObject\n /**\n * Text describing the content of the DatePicker more than the label. You can also send in a React component, so it gets wrapped inside the DatePicker component.\n */\n suffix?: React.ReactNode\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n /**\n * Provide a short Tooltip content that shows up on the picker button.\n */\n tooltip?: React.ReactNode\n tabIndex?: number\n preventClose?: boolean\n noAnimation?: boolean\n direction?: 'auto' | 'top' | 'bottom'\n /**\n * Use `right` to change the calendar alignment direction. Defaults to `left`.\n */\n alignPicker?: 'auto' | 'left' | 'right'\n className?: string\n /**\n * Will be called right before every new calendar view gets rendered. See the example above.\n */\n onDaysRender?: (\n days: Array<CalendarDay>,\n nr?: DatePickerCalendarProps['nr']\n ) => void\n /**\n * Will be called on a date change event. Returns an `object`. See Returned Object below.\n */\n onChange?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called on every input and date picker interaction. Returns an `object`. See Returned Object below.\n */\n onType?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once date-picker is visible.\n */\n onShow?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * Will be called once date-picker is hidden.\n */\n onHide?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * Will be called once a user presses the submit button.\n */\n onSubmit?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once a user presses the cancel button.\n */\n onCancel?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once a user presses the reset button.\n */\n onReset?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (event: DatePickerEvent<React.FocusEvent<HTMLElement>>) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (event: DatePickerEvent<React.FocusEvent<HTMLElement>>) => void\n}\n// Can be removed in v11\ntype DatePickerDeprecatedProps = {\n /**\n * @deprecated use `startDate` instead.\n */\n start_date?: DateType\n /**\n * @deprecated use `endDate` instead.\n */\n end_date?: DateType\n /**\n * @deprecated use `startMonth` instead.\n */\n start_month?: DateType\n /**\n * @deprecated use `endMonth` instead.\n */\n end_month?: DateType\n /**\n * @deprecated use `minDate` instead.\n */\n min_date?: DateType\n /**\n * @deprecated use `maxDate` instead.\n */\n max_date?: DateType\n /**\n * @deprecated use `correctInvalidDate` instead.\n */\n correct_invalid_date?: boolean\n /**\n * @deprecated use `maskOrder` instead.\n */\n mask_order?: string\n /**\n * @deprecated use `maskPlaceholder` instead.\n */\n mask_placeholder?: string\n /**\n * @deprecated use `dateFormat` instead.\n */\n date_format?: string\n /**\n * @deprecated use `returnFormat` instead.\n */\n return_format?: string\n /**\n * @deprecated use `hideNavigation` instead.\n */\n hide_navigation?: boolean\n /**\n * @deprecated use `hideNavigationButtons` instead.\n */\n hide_navigation_buttons?: boolean\n /**\n * @deprecated use `hideDays` instead.\n */\n hide_days?: boolean\n /**\n * @deprecated use `onlyMonth` instead.\n */\n only_month?: boolean\n /**\n * @deprecated use `hideLastWeek` instead.\n */\n hide_last_week?: boolean\n /**\n * @deprecated use `disableAutofocus` instead.\n */\n disable_autofocus?: boolean\n /**\n * @deprecated use `enableKeyboardNav` instead.\n */\n enable_keyboard_nav?: boolean\n /**\n * @deprecated use `showInput` instead.\n */\n show_input?: boolean\n /**\n * @deprecated use `showSubmitButton` instead.\n */\n show_submit_button?: boolean\n /**\n * @deprecated use `showCancelButton` instead.\n */\n show_cancel_button?: boolean\n /**\n * @deprecated\n */\n show_reset_button?: boolean\n /**\n * @deprecated use `submitButtonText` instead.\n */\n submit_button_text?: string\n /**\n * @deprecated use `cancelButtonText` instead.\n */\n cancel_button_text?: string\n /**\n * @deprecated use `resetButtonText` instead.\n */\n reset_button_text?: string\n /**\n * @deprecated use `resetDate` instead.\n */\n reset_date?: boolean\n /**\n * @deprecated use `firstDay` instead.\n */\n first_day?: string\n /**\n * @deprecated set locale with `Provider` instead.\n */\n locale?: Locale\n /**\n * @deprecated use `labelDirection` instead.\n */\n label_direction?: 'vertical' | 'horizontal'\n /**\n * @deprecated use `labelSrOnly` instead.\n */\n label_sr_only?: boolean\n /**\n * @deprecated use `inputElement` instead.\n */\n input_element?: InputInputElement\n /**\n * @deprecated use `addonElement` instead.\n */\n addon_element?: React.ReactNode\n /**\n * @deprecated use `statusState` instead.\n */\n status_state?: FormStatusState\n /**\n * @deprecated use `statusProps` instead.\n */\n status_props?: FormStatusProps\n /**\n * @deprecated use `statusNoAnimation` instead.\n */\n status_no_animation?: boolean\n /**\n * @deprecated use `preventClose` instead.\n */\n prevent_close?: boolean\n /**\n * @deprecated use `no_animation` instead.\n */\n no_animation?: boolean\n /**\n * @deprecated use `alignPicker` instead.\n */\n align_picker?: 'auto' | 'left' | 'right'\n /**\n * @deprecated use `onDaysRender` instead.\n */\n on_days_render?: (\n days: Array<CalendarDay>,\n nr?: DatePickerCalendarProps['nr']\n ) => void\n /**\n * @deprecated use `onChange` instead.\n */\n on_change?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * @deprecated use `onType` instead.\n */\n on_type?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * @deprecated use `onShow` instead.\n */\n on_show?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * @deprecated use `onHide` instead.\n */\n on_hide?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * @deprecated use `onSubmit` instead.\n */\n on_submit?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * @deprecated use `onCancel` instead.\n */\n on_cancel?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * @deprecated use `onReset` instead.\n */\n on_reset?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n}\n\nexport type DatePickerAllProps = DatePickerProps &\n DatePickerDeprecatedProps &\n SpacingProps &\n Omit<\n React.HTMLProps<HTMLElement>,\n | 'ref'\n | 'children'\n | 'label'\n | 'size'\n | 'onChange'\n | 'onBlur'\n | 'onFocus'\n | 'onSubmit'\n | 'start'\n >\n\nconst defaultProps: DatePickerProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå', // have to be same setup as \"mask\" - but can be like\n dateFormat: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1\n hideNavigation: false,\n hideNavigationButtons: false,\n hideDays: false,\n onlyMonth: false,\n hideLastWeek: false,\n disableAutofocus: false,\n enableKeyboardNav: false,\n showInput: false,\n submitButtonText: 'Ok',\n cancelButtonText: 'Avbryt',\n resetButtonText: 'Tilbakestill',\n resetDate: true,\n firstDay: 'monday',\n range: false,\n link: false,\n sync: true,\n statusState: 'error',\n opened: false,\n noAnimation: false,\n direction: 'auto',\n}\n\nfunction DatePicker(externalProps: DatePickerAllProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n preventClose,\n onHide,\n onShow,\n onSubmit,\n onCancel,\n onReset,\n noAnimation,\n showInput,\n alignPicker,\n showSubmitButton,\n showCancelButton,\n range,\n hideDays,\n hideNavigation,\n opened: openedProp,\n endDate: endDateProp,\n } = convertSnakeCaseProps(props) // convertSnakeCaseProps - can be removed in v11\n\n const [opened, setOpened] = useState<boolean>(openedProp)\n const [hidden, setHidden] = useState(!opened)\n const [dates, setDates] = useState<\n Pick<DatePickerDates, 'startDate' | 'endDate'>\n >({})\n\n const context = useContext(Context)\n const blurDelay = 201 // some ms more than \"dropdownSlideDown 200ms\"\n const id = props.id || makeUniqueId()\n\n const innerRef = useRef<HTMLSpanElement>()\n const triangleRef = useRef<HTMLSpanElement>()\n const submitButtonRef = useRef<HTMLButtonElement>()\n const getReturnObject =\n useRef<DatePickerContextValues['getReturnObject']>()\n const hideTimeout = useRef<NodeJS.Timeout>()\n const outsideClick = useRef<DetectOutsideClickClass>()\n\n const translation = useTranslation().DatePicker\n\n if (endDateProp && !range) {\n warn(\n `The DatePicker got a \"endDate\". You have to set range={true} as well!.`\n )\n }\n\n const removeOutsideClickHandler = useCallback(() => {\n if (outsideClick.current) {\n outsideClick.current.remove()\n }\n }, [])\n\n const hidePicker = useCallback(\n (args?: DisplayPickerEvent) => {\n if (preventClose) {\n return // stop here\n }\n\n if (args && args.event && args.event.persist) {\n args.event.persist()\n }\n\n setOpened(false)\n\n // Double check and compare return\n onHide?.({\n ...getReturnObject.current(args),\n })\n\n hideTimeout.current = setTimeout(\n () => {\n setHidden(true)\n if (args?.['focusOnHide']) {\n try {\n submitButtonRef.current.focus({\n preventScroll: true,\n })\n } catch (e) {\n warn(e)\n }\n }\n },\n noAnimation ? 1 : blurDelay\n ) // wait until animation is over\n\n removeOutsideClickHandler()\n },\n [noAnimation, preventClose, onHide, removeOutsideClickHandler]\n )\n\n const setOutsideClickHandler = useCallback(() => {\n outsideClick.current = detectOutsideClick(\n innerRef.current,\n ({ event }: { event: MouseEvent | KeyboardEvent }) => {\n hidePicker({ ...event, focusOnHide: event?.['code'] })\n }\n )\n }, [hidePicker])\n\n const setTrianglePosition = useCallback(() => {\n const triangleWidth = 16\n if (showInput && triangleRef.current && innerRef.current) {\n try {\n const shellWidth = innerRef.current\n .querySelector('.dnb-input__shell')\n .getBoundingClientRect().width\n\n const buttonWidth = innerRef.current\n .querySelector('.dnb-input__submit-button__button')\n .getBoundingClientRect().width\n\n if (alignPicker === 'right') {\n const distance = buttonWidth / 2 - triangleWidth / 2\n triangleRef.current.style.marginRight = `${distance / 16}rem`\n } else {\n const distance = shellWidth - buttonWidth / 2 - triangleWidth / 2\n triangleRef.current.style.marginLeft = `${distance / 16}rem`\n }\n } catch (e) {\n warn(e)\n }\n }\n }, [showInput, alignPicker])\n\n const showPicker = useCallback(\n (event?: DisplayPickerEvent) => {\n if (hideTimeout.current) {\n clearTimeout(hideTimeout.current)\n }\n\n setOpened(true)\n setHidden(false)\n\n onShow?.({ ...getReturnObject.current(event) })\n\n setTrianglePosition()\n setOutsideClickHandler()\n },\n [setTrianglePosition, setOutsideClickHandler, onShow]\n )\n\n // React to opened prop changes\n useEffect(() => {\n if (openedProp) {\n showPicker()\n }\n\n return () => {\n clearTimeout(hideTimeout.current)\n removeOutsideClickHandler()\n }\n }, [openedProp, removeOutsideClickHandler, showPicker])\n\n const onPickerChange = useCallback(\n ({\n hidePicker: shouldHidePicker = true,\n ...args\n }: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement>\n >) => {\n if (shouldHidePicker && !showSubmitButton && !showCancelButton) {\n hidePicker()\n }\n\n setDates({ startDate: args.startDate, endDate: args.endDate })\n },\n [hidePicker, showSubmitButton, showCancelButton]\n )\n\n const onSubmitHandler = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n hidePicker(event)\n onSubmit?.({\n ...getReturnObject.current({ event }),\n })\n },\n [hidePicker, onSubmit]\n )\n\n const onCancelHandler = useCallback(\n (\n event: DatePickerChangeEvent<React.MouseEvent<HTMLButtonElement>>\n ) => {\n hidePicker()\n onCancel?.({ ...getReturnObject.current(event) })\n },\n [hidePicker, onCancel]\n )\n\n const onResetHandler = useCallback(\n (\n event: DatePickerChangeEvent<React.MouseEvent<HTMLButtonElement>>\n ) => {\n hidePicker()\n onReset?.({ ...getReturnObject.current(event) })\n },\n [hidePicker, onReset]\n )\n\n const togglePicker = useCallback(\n (args: React.MouseEvent<HTMLButtonElement>) => {\n !opened ? showPicker(args) : hidePicker(args)\n },\n [opened, showPicker, hidePicker]\n )\n\n const formatSelectedDateTitle = useCallback(() => {\n const { selectedDate, start, end } = translation\n const { startDate, endDate } = dates\n\n let currentDate = startDate ? format(startDate, 'PPPP') : null\n\n if (range && startDate && endDate) {\n currentDate = `${start} ${currentDate} - ${end} ${format(\n endDate,\n 'PPPP'\n )}`\n }\n\n return currentDate ? selectedDate.replace(/%s/, currentDate) : ''\n }, [range, translation, dates])\n\n // use only the props from context, who are available here anyway\n const extendedProps = extendPropsWithContext(\n props,\n defaultProps,\n { skeleton: context?.skeleton },\n convertSnakeCaseProps(context.getTranslation(props).DatePicker), // convertSnakeCaseProps - can be removed in v11\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n convertSnakeCaseProps(pickFormElementProps(context?.formElement)), // Deprecated – can be removed in v11\n context.DatePicker\n )\n\n const {\n label,\n title,\n labelDirection,\n labelSrOnly,\n onlyMonth,\n hideLastWeek,\n disableAutofocus,\n hideNavigationButtons,\n firstDay,\n resetDate,\n link,\n sync,\n inputElement,\n addonElement,\n shortcuts,\n disabled,\n stretch,\n skeleton,\n size,\n status,\n statusState,\n statusProps,\n statusNoAnimation,\n globalStatus,\n suffix,\n maskOrder,\n maskPlaceholder,\n submitButtonText,\n cancelButtonText,\n resetButtonText,\n showResetButton,\n className,\n tooltip,\n ...restProps\n } = extendedProps\n\n const attributes = useMemo(\n () => filterOutNonAttributes(restProps),\n [restProps]\n )\n\n const shouldHideDays = onlyMonth ? true : hideDays\n const shouldHideNavigation = onlyMonth\n ? hideNavigationButtons\n ? false\n : true\n : hideNavigation\n\n const showStatus = getStatusState(status)\n\n const pickerParams = {} as HTMLProps<HTMLSpanElement>\n\n if (showStatus || suffix) {\n pickerParams['aria-describedby'] = combineDescribedBy(\n pickerParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n\n const submitParams = {\n ['aria-expanded']: opened,\n ref: submitButtonRef,\n tabIndex: extendedProps.tabIndex,\n tooltip,\n }\n\n const selectedDateTitle = formatSelectedDateTitle()\n\n const mainParams = {\n className: classnames(\n 'dnb-date-picker',\n status && `dnb-date-picker__status--${statusState}`,\n labelDirection && `dnb-date-picker--${labelDirection}`,\n opened && 'dnb-date-picker--opened',\n hidden && 'dnb-date-picker--hidden',\n showInput && 'dnb-date-picker--show-input',\n (range || showSubmitButton || showCancelButton || showResetButton) &&\n 'dnb-date-picker--show-footer',\n alignPicker && `dnb-date-picker--${alignPicker}`,\n stretch && `dnb-date-picker--stretch`,\n 'dnb-form-component',\n size && `dnb-date-picker--${size}`,\n createSpacingClasses(props),\n className\n ),\n lang: context.locale,\n } as HTMLProps<HTMLSpanElement>\n\n const remainingDOMProps = validateDOMAttributes(props, attributes)\n const remainingSubmitProps = validateDOMAttributes(null, submitParams)\n const remainingPickerProps = validateDOMAttributes(\n null,\n skeletonDOMAttributes(pickerParams, skeleton, context)\n )\n\n return (\n <DatePickerProvider\n {...props}\n attributes={remainingDOMProps}\n setReturnObject={(fn) => (getReturnObject.current = fn)}\n hidePicker={hidePicker}\n >\n <span {...mainParams}>\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n labelDirection={labelDirection}\n srOnly={labelSrOnly}\n disabled={disabled}\n skeleton={skeleton}\n />\n )}\n\n <span\n className=\"dnb-date-picker__inner\"\n ref={innerRef}\n {...remainingPickerProps}\n >\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={String(label)}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + '-shell'}\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n\n <span className=\"dnb-date-picker__row\">\n <span className=\"dnb-date-picker__shell\" id={`${id}-shell`}>\n <DatePickerInput\n id={id}\n title={title}\n disabled={disabled}\n stretch={stretch}\n skeleton={skeleton}\n maskOrder={maskOrder}\n maskPlaceholder={maskPlaceholder}\n isRange={range}\n showInput={showInput}\n selectedDateTitle={selectedDateTitle}\n inputElement={inputElement}\n opened={opened}\n hidden={hidden}\n size={size}\n status={status ? 'error' : null}\n statusState={statusState}\n lang={context.locale}\n {...attributes}\n submitAttributes={remainingSubmitProps}\n onSubmit={togglePicker}\n {...statusProps}\n />\n <span className=\"dnb-date-picker__container\">\n <span\n className=\"dnb-date-picker__triangle\"\n ref={triangleRef}\n />\n {!hidden && (\n <>\n <DatePickerRange\n id={id}\n firstDayOfWeek={firstDay}\n resetDate={resetDate}\n isRange={range}\n isLink={link}\n isSync={sync}\n hideDays={shouldHideDays}\n hideNav={shouldHideNavigation}\n views={\n hideNavigationButtons\n ? [{ nextBtn: false, prevBtn: false }]\n : null\n }\n onlyMonth={onlyMonth}\n hideNextMonthWeek={hideLastWeek}\n noAutoFocus={disableAutofocus}\n onChange={onPickerChange}\n locale={context.locale}\n />\n {(addonElement || shortcuts) && (\n <DatePickerAddon\n renderElement={addonElement}\n shortcuts={shortcuts}\n />\n )}\n <DatePickerFooter\n isRange={range}\n onSubmit={onSubmitHandler}\n onCancel={onCancelHandler}\n onReset={onResetHandler}\n submitButtonText={submitButtonText}\n cancelButtonText={cancelButtonText}\n resetButtonText={resetButtonText}\n />\n </>\n )}\n </span>\n </span>\n {suffix && (\n <Suffix\n className=\"dnb-date-picker__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n </span>\n\n <p className=\"dnb-sr-only\" aria-live=\"assertive\">\n {selectedDateTitle}\n </p>\n </span>\n </DatePickerProvider>\n )\n}\n\nconst NonAttributes = [\n 'locale',\n 'id',\n 'month',\n 'date',\n 'startDate',\n 'endDate',\n 'minDate',\n 'maxDate',\n 'enableKeyboardNav',\n 'hideNavigation',\n 'returnFormat',\n 'dateFormat',\n 'hideDays',\n 'correctInvalidDate',\n 'opened',\n 'direction',\n 'range',\n 'showInput',\n 'noAnimation',\n 'onDaysRender',\n 'onShow',\n 'onType',\n 'onHide',\n 'showSubmitButton',\n 'showCancelButton',\n 'selectedDate',\n 'selectedMonth',\n 'selectedYear',\n 'nextMonth',\n 'nextYear',\n 'openPickerText',\n 'placeholderCharacters',\n 'prevMonth',\n 'prevYear',\n 'endMonth',\n 'startMonth',\n 'alignPicker',\n]\n\nfunction filterOutNonAttributes(props: DatePickerProps) {\n return Object.keys(props).reduce((attributes, key) => {\n if (!NonAttributes.includes(key)) {\n attributes[key] = props[key]\n }\n return attributes\n }, {})\n}\n\nexport default DatePicker\n\nDatePicker._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","classnames","warn","makeUniqueId","extendPropsWithContext","detectOutsideClick","getStatusState","combineDescribedBy","validateDOMAttributes","AlignmentHelper","createSpacingClasses","skeletonDOMAttributes","format","Context","Suffix","FormLabel","FormStatus","DatePickerProvider","DatePickerRange","DatePickerInput","DatePickerAddon","DatePickerFooter","pickFormElementProps","useTranslation","convertSnakeCaseProps","defaultProps","maskOrder","maskPlaceholder","dateFormat","returnFormat","hideNavigation","hideNavigationButtons","hideDays","onlyMonth","hideLastWeek","disableAutofocus","enableKeyboardNav","showInput","submitButtonText","cancelButtonText","resetButtonText","resetDate","firstDay","range","link","sync","statusState","opened","noAnimation","direction","DatePicker","externalProps","props","_objectSpread","preventClose","onHide","onShow","onSubmit","onCancel","onReset","alignPicker","showSubmitButton","showCancelButton","openedProp","endDate","endDateProp","setOpened","hidden","setHidden","dates","setDates","context","blurDelay","id","innerRef","triangleRef","submitButtonRef","getReturnObject","hideTimeout","outsideClick","translation","removeOutsideClickHandler","current","remove","hidePicker","args","event","persist","setTimeout","focus","preventScroll","e","setOutsideClickHandler","_ref","focusOnHide","setTrianglePosition","triangleWidth","shellWidth","querySelector","getBoundingClientRect","width","buttonWidth","distance","style","marginRight","marginLeft","showPicker","clearTimeout","onPickerChange","_ref2","shouldHidePicker","_objectWithoutProperties","_excluded","startDate","onSubmitHandler","onCancelHandler","onResetHandler","togglePicker","formatSelectedDateTitle","selectedDate","start","end","currentDate","replace","extendedProps","skeleton","getTranslation","FormRow","formElement","label","title","labelDirection","labelSrOnly","inputElement","addonElement","shortcuts","disabled","stretch","size","status","statusProps","statusNoAnimation","globalStatus","suffix","showResetButton","className","tooltip","restProps","_excluded2","attributes","filterOutNonAttributes","shouldHideDays","shouldHideNavigation","showStatus","pickerParams","submitParams","ref","tabIndex","selectedDateTitle","mainParams","lang","locale","remainingDOMProps","remainingSubmitProps","remainingPickerProps","createElement","_extends","setReturnObject","fn","forId","text","srOnly","_AlignmentHelper","show","String","text_id","width_selector","state","no_animation","isRange","submitAttributes","Fragment","firstDayOfWeek","isLink","isSync","hideNav","views","nextBtn","prevBtn","hideNextMonthWeek","noAutoFocus","onChange","renderElement","NonAttributes","Object","keys","reduce","key","includes","_supportsSpacingProps"],"sources":["../../../../src/components/date-picker/DatePicker.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n HTMLProps,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n warn,\n makeUniqueId,\n extendPropsWithContext,\n detectOutsideClick,\n getStatusState,\n combineDescribedBy,\n validateDOMAttributes,\n DetectOutsideClickClass,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { skeletonDOMAttributes } from '../skeleton/SkeletonHelper'\n\n// date-fns\nimport format from 'date-fns/format'\n\nimport Context, { Locale } from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus, {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../form-status/FormStatus'\nimport DatePickerProvider, {\n DatePickerChangeEvent,\n type ReturnObject,\n} from './DatePickerProvider'\nimport DatePickerRange from './DatePickerRange'\nimport DatePickerInput from './DatePickerInput'\nimport DatePickerAddon, { DatePickerAddonProps } from './DatePickerAddon'\nimport DatePickerFooter from './DatePickerFooter'\nimport { SpacingProps } from '../space/types'\nimport { InputInputElement, InputSize } from '../Input'\nimport { SkeletonShow } from '../Skeleton'\nimport { GlobalStatusConfigObject } from '../GlobalStatus'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport { CalendarDay, DatePickerCalendarProps } from './DatePickerCalendar'\nimport { DatePickerContextValues, DateType } from './DatePickerContext'\nimport { DatePickerDates } from './hooks/useDates'\nimport { useTranslation } from '../../shared'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nexport type DatePickerEventAttributes = {\n day?: string\n year?: string\n start?: string\n end?: string\n} & Record<string, unknown>\n\n// Takes the return object from DatePickerProvider and extends it with the event\nexport type DatePickerEvent<T> = ReturnObject<T>\n\nexport type DisplayPickerEvent = (\n | React.MouseEvent<HTMLButtonElement | HTMLAnchorElement | HTMLElement>\n | MouseEvent\n | KeyboardEvent\n) &\n DatePickerDates & {\n focusOnHide?: boolean | string\n event?: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n }\n\nexport type DatePickerProps = {\n /**\n * Defines the pre-filled date by either a JavaScript DateInstance or (ISO 8601) like `date=\"2019-05-05\"`.\n */\n date?: DateType\n /**\n * To set the pre-filled starting date. Is used if `range={true}` is set to `true`. Defaults to `null`, showing the `maskPlaceholder`.\n */\n startDate?: DateType\n /**\n * To set the pre-filled ending date. Is used if `range={true}` is set to `true`. Defaults to `null`, showing the `maskPlaceholder`.\n */\n endDate?: DateType\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n month?: DateType\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n startMonth?: DateType\n /**\n * To display what month should be shown in the second calendar by default. Defaults to the `date` respective `startDate`.\n */\n endMonth?: DateType\n /**\n * To limit a date range to a minimum `startDate`. Defaults to `null`.\n */\n minDate?: DateType\n /**\n * To limit a date range to a maximum `endDate`. Defaults to `null`.\n */\n maxDate?: DateType\n /**\n * Corrects the input date value to be the same as either `minDate` or `maxDate`, when the user types in a date that is either before or after one of these. Defaults to `false`.\n */\n correctInvalidDate?: boolean\n /**\n * To define the order of the masked placeholder input fields. Defaults to `dd/mm/yyyy`\n */\n maskOrder?: string\n /**\n * To display the placeholder on input. Defaults to `dd/mm/åååå`.\n */\n maskPlaceholder?: string\n /**\n * Defines how the prop dates (`date`, `startDate` and `endDate`) should be parsed, e.g. `yyyy/MM/dd`. Defaults to `yyyy-MM-dd`.\n */\n dateFormat?: string\n /**\n * Defines how the returned date, as a string, should be formatted as. Defaults to `yyyy-MM-dd`.\n */\n returnFormat?: string\n /**\n * If set to `true`, the navigation will be hidden. Defaults to `false`.\n */\n hideNavigation?: boolean\n hideNavigationButtons?: boolean\n /**\n * If set to `true`, the week days will be hidden. Defaults to `false`.\n */\n hideDays?: boolean\n /**\n * Use `true` to only show the defined month. Disables the month navigation possibility. Defaults to `false`.\n */\n onlyMonth?: boolean\n /**\n * Use `true` to only show the last week in the current month if it needs to be shown. The result is that there will mainly be shows five (5) weeks (rows) instead of six (6). Defaults to `false`.\n */\n hideLastWeek?: boolean\n /**\n * Once the date picker gets opened, there is a focus handling to ensure good accessibility. can be disabled with property. Defaults to `false`.\n */\n disableAutofocus?: boolean\n enableKeyboardNav?: boolean\n /**\n * If the input fields with the mask should be visible. Defaults to `false`.\n */\n showInput?: boolean\n /**\n * If set to `true`, a submit button will be shown. You can change the default text by using `submitButtonText=\"Ok\"`. Defaults to `false`. If the `range` prop is `true`, then the submit button is shown.\n */\n showSubmitButton?: boolean\n /**\n * If set to `true`, a cancel button will be shown. You can change the default text by using `cancelButtonText=\"Avbryt\"` Defaults to `false`. If the `range` prop is `true`, then the cancel button is shown.\n */\n showCancelButton?: boolean\n /**\n * If set to `true`, a reset button will be shown. You can change the default text by using `resetButtonText=\"Tilbakestill\"` Defaults to `false`.\n */\n showResetButton?: boolean\n submitButtonText?: string\n cancelButtonText?: string\n resetButtonText?: string\n resetDate?: boolean\n /**\n * To define the first day of the week. Defaults to `monday`.\n */\n firstDay?:\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday'\n | 'sunday'\n /**\n * If the date picker should support a range of two dates (starting and ending date). Defaults to `false`.\n */\n range?: boolean\n /**\n * Link both calendars, once to the user is navigating between months. Only meant to use if the range is set to `true`. Defaults to `false`.\n */\n link?: boolean\n /**\n * Sync input values with the calendars views. Once the input values get changed, the calendar changes its views in sync. Defaults to `true`.\n */\n sync?: boolean\n /**\n * A prepending label in sync with the date input field.\n */\n label?: React.ReactNode\n /**\n * Use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `inputElement=\"input\"`, a React element, or a render function `inputElement={(internalProps) => (<Return />)}`. Can also be used in circumstances where the `react-text-mask` not should be used, e.g. in testing environments. Defaults to custom masked input.\n */\n inputElement?: InputInputElement\n /**\n * Gives you the possibility to inject a React element showing up over the footer. Use it to customize `shortcuts`.\n */\n addonElement?: React.ReactNode\n /**\n * Gives you the possibility to set predefined dates and date ranges so the user can select these by one click. Define either a JSON or an object with the defined shortcuts. More info is below.\n */\n shortcuts?: DatePickerAddonProps['shortcuts']\n disabled?: boolean\n /**\n * If set to `true`, then the date-picker input field will be 100% in `width`.\n */\n stretch?: boolean\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * The sizes you can choose is `small` (1.5rem), `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`.\n */\n size?: InputSize\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties.\n */\n statusProps?: FormStatusProps\n statusNoAnimation?: boolean\n /**\n * The <a href=\"/uilib/components/global-status/properties/#configuration-object\">configuration</a> used for the target <a href=\"/uilib/components/global-status\">GlobalStatus</a>.\n */\n globalStatus?: GlobalStatusConfigObject\n /**\n * Text describing the content of the DatePicker more than the label. You can also send in a React component, so it gets wrapped inside the DatePicker component.\n */\n suffix?: React.ReactNode\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n /**\n * Provide a short Tooltip content that shows up on the picker button.\n */\n tooltip?: React.ReactNode\n tabIndex?: number\n preventClose?: boolean\n noAnimation?: boolean\n direction?: 'auto' | 'top' | 'bottom'\n /**\n * Use `right` to change the calendar alignment direction. Defaults to `left`.\n */\n alignPicker?: 'auto' | 'left' | 'right'\n className?: string\n /**\n * Will be called right before every new calendar view gets rendered. See the example above.\n */\n onDaysRender?: (\n days: Array<CalendarDay>,\n nr?: DatePickerCalendarProps['nr']\n ) => void\n /**\n * Will be called on a date change event. Returns an `object`. See Returned Object below.\n */\n onChange?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called on every input and date picker interaction. Returns an `object`. See Returned Object below.\n */\n onType?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once date-picker is visible.\n */\n onShow?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * Will be called once date-picker is hidden.\n */\n onHide?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * Will be called once a user presses the submit button.\n */\n onSubmit?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once a user presses the cancel button.\n */\n onCancel?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once a user presses the reset button.\n */\n onReset?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (event: DatePickerEvent<React.FocusEvent<HTMLElement>>) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (event: DatePickerEvent<React.FocusEvent<HTMLElement>>) => void\n}\n// Can be removed in v11\ntype DatePickerDeprecatedProps = {\n /**\n * @deprecated use `startDate` instead.\n */\n start_date?: DateType\n /**\n * @deprecated use `endDate` instead.\n */\n end_date?: DateType\n /**\n * @deprecated use `startMonth` instead.\n */\n start_month?: DateType\n /**\n * @deprecated use `endMonth` instead.\n */\n end_month?: DateType\n /**\n * @deprecated use `minDate` instead.\n */\n min_date?: DateType\n /**\n * @deprecated use `maxDate` instead.\n */\n max_date?: DateType\n /**\n * @deprecated use `correctInvalidDate` instead.\n */\n correct_invalid_date?: boolean\n /**\n * @deprecated use `maskOrder` instead.\n */\n mask_order?: string\n /**\n * @deprecated use `maskPlaceholder` instead.\n */\n mask_placeholder?: string\n /**\n * @deprecated use `dateFormat` instead.\n */\n date_format?: string\n /**\n * @deprecated use `returnFormat` instead.\n */\n return_format?: string\n /**\n * @deprecated use `hideNavigation` instead.\n */\n hide_navigation?: boolean\n /**\n * @deprecated use `hideNavigationButtons` instead.\n */\n hide_navigation_buttons?: boolean\n /**\n * @deprecated use `hideDays` instead.\n */\n hide_days?: boolean\n /**\n * @deprecated use `onlyMonth` instead.\n */\n only_month?: boolean\n /**\n * @deprecated use `hideLastWeek` instead.\n */\n hide_last_week?: boolean\n /**\n * @deprecated use `disableAutofocus` instead.\n */\n disable_autofocus?: boolean\n /**\n * @deprecated use `enableKeyboardNav` instead.\n */\n enable_keyboard_nav?: boolean\n /**\n * @deprecated use `showInput` instead.\n */\n show_input?: boolean\n /**\n * @deprecated use `showSubmitButton` instead.\n */\n show_submit_button?: boolean\n /**\n * @deprecated use `showCancelButton` instead.\n */\n show_cancel_button?: boolean\n /**\n * @deprecated\n */\n show_reset_button?: boolean\n /**\n * @deprecated use `submitButtonText` instead.\n */\n submit_button_text?: string\n /**\n * @deprecated use `cancelButtonText` instead.\n */\n cancel_button_text?: string\n /**\n * @deprecated use `resetButtonText` instead.\n */\n reset_button_text?: string\n /**\n * @deprecated use `resetDate` instead.\n */\n reset_date?: boolean\n /**\n * @deprecated use `firstDay` instead.\n */\n first_day?: string\n /**\n * @deprecated set locale with `Provider` instead.\n */\n locale?: Locale\n /**\n * @deprecated use `labelDirection` instead.\n */\n label_direction?: 'vertical' | 'horizontal'\n /**\n * @deprecated use `labelSrOnly` instead.\n */\n label_sr_only?: boolean\n /**\n * @deprecated use `inputElement` instead.\n */\n input_element?: InputInputElement\n /**\n * @deprecated use `addonElement` instead.\n */\n addon_element?: React.ReactNode\n /**\n * @deprecated use `statusState` instead.\n */\n status_state?: FormStatusState\n /**\n * @deprecated use `statusProps` instead.\n */\n status_props?: FormStatusProps\n /**\n * @deprecated use `statusNoAnimation` instead.\n */\n status_no_animation?: boolean\n /**\n * @deprecated use `preventClose` instead.\n */\n prevent_close?: boolean\n /**\n * @deprecated use `no_animation` instead.\n */\n no_animation?: boolean\n /**\n * @deprecated use `alignPicker` instead.\n */\n align_picker?: 'auto' | 'left' | 'right'\n /**\n * @deprecated use `onDaysRender` instead.\n */\n on_days_render?: (\n days: Array<CalendarDay>,\n nr?: DatePickerCalendarProps['nr']\n ) => void\n /**\n * @deprecated use `onChange` instead.\n */\n on_change?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * @deprecated use `onType` instead.\n */\n on_type?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * @deprecated use `onShow` instead.\n */\n on_show?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * @deprecated use `onHide` instead.\n */\n on_hide?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * @deprecated use `onSubmit` instead.\n */\n on_submit?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * @deprecated use `onCancel` instead.\n */\n on_cancel?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * @deprecated use `onReset` instead.\n */\n on_reset?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n}\n\nexport type DatePickerAllProps = DatePickerProps &\n DatePickerDeprecatedProps &\n SpacingProps &\n Omit<\n React.HTMLProps<HTMLElement>,\n | 'ref'\n | 'children'\n | 'label'\n | 'size'\n | 'onChange'\n | 'onBlur'\n | 'onFocus'\n | 'onSubmit'\n | 'onReset'\n | 'start'\n >\n\nconst defaultProps: DatePickerProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå', // have to be same setup as \"mask\" - but can be like\n dateFormat: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1\n hideNavigation: false,\n hideNavigationButtons: false,\n hideDays: false,\n onlyMonth: false,\n hideLastWeek: false,\n disableAutofocus: false,\n enableKeyboardNav: false,\n showInput: false,\n submitButtonText: 'Ok',\n cancelButtonText: 'Avbryt',\n resetButtonText: 'Tilbakestill',\n resetDate: true,\n firstDay: 'monday',\n range: false,\n link: false,\n sync: true,\n statusState: 'error',\n opened: false,\n noAnimation: false,\n direction: 'auto',\n}\n\nfunction DatePicker(externalProps: DatePickerAllProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n preventClose,\n onHide,\n onShow,\n onSubmit,\n onCancel,\n onReset,\n noAnimation,\n showInput,\n alignPicker,\n showSubmitButton,\n showCancelButton,\n range,\n hideDays,\n hideNavigation,\n opened: openedProp,\n endDate: endDateProp,\n } = convertSnakeCaseProps(props) // convertSnakeCaseProps - can be removed in v11\n\n const [opened, setOpened] = useState<boolean>(openedProp)\n const [hidden, setHidden] = useState(!opened)\n const [dates, setDates] = useState<\n Pick<DatePickerDates, 'startDate' | 'endDate'>\n >({})\n\n const context = useContext(Context)\n const blurDelay = 201 // some ms more than \"dropdownSlideDown 200ms\"\n const id = props.id || makeUniqueId()\n\n const innerRef = useRef<HTMLSpanElement>()\n const triangleRef = useRef<HTMLSpanElement>()\n const submitButtonRef = useRef<HTMLButtonElement>()\n const getReturnObject =\n useRef<DatePickerContextValues['getReturnObject']>()\n const hideTimeout = useRef<NodeJS.Timeout>()\n const outsideClick = useRef<DetectOutsideClickClass>()\n\n const translation = useTranslation().DatePicker\n\n if (endDateProp && !range) {\n warn(\n `The DatePicker got a \"endDate\". You have to set range={true} as well!.`\n )\n }\n\n const removeOutsideClickHandler = useCallback(() => {\n if (outsideClick.current) {\n outsideClick.current.remove()\n }\n }, [])\n\n const hidePicker = useCallback(\n (args?: DisplayPickerEvent) => {\n if (preventClose) {\n return // stop here\n }\n\n if (args && args.event && args.event.persist) {\n args.event.persist()\n }\n\n setOpened(false)\n\n // Double check and compare return\n onHide?.({\n ...getReturnObject.current(args),\n })\n\n hideTimeout.current = setTimeout(\n () => {\n setHidden(true)\n if (args?.['focusOnHide']) {\n try {\n submitButtonRef.current.focus({\n preventScroll: true,\n })\n } catch (e) {\n warn(e)\n }\n }\n },\n noAnimation ? 1 : blurDelay\n ) // wait until animation is over\n\n removeOutsideClickHandler()\n },\n [noAnimation, preventClose, onHide, removeOutsideClickHandler]\n )\n\n const setOutsideClickHandler = useCallback(() => {\n outsideClick.current = detectOutsideClick(\n innerRef.current,\n ({ event }: { event: MouseEvent | KeyboardEvent }) => {\n hidePicker({ ...event, focusOnHide: event?.['code'] })\n }\n )\n }, [hidePicker])\n\n const setTrianglePosition = useCallback(() => {\n const triangleWidth = 16\n if (showInput && triangleRef.current && innerRef.current) {\n try {\n const shellWidth = innerRef.current\n .querySelector('.dnb-input__shell')\n .getBoundingClientRect().width\n\n const buttonWidth = innerRef.current\n .querySelector('.dnb-input__submit-button__button')\n .getBoundingClientRect().width\n\n if (alignPicker === 'right') {\n const distance = buttonWidth / 2 - triangleWidth / 2\n triangleRef.current.style.marginRight = `${distance / 16}rem`\n } else {\n const distance = shellWidth - buttonWidth / 2 - triangleWidth / 2\n triangleRef.current.style.marginLeft = `${distance / 16}rem`\n }\n } catch (e) {\n warn(e)\n }\n }\n }, [showInput, alignPicker])\n\n const showPicker = useCallback(\n (event?: DisplayPickerEvent) => {\n if (hideTimeout.current) {\n clearTimeout(hideTimeout.current)\n }\n\n setOpened(true)\n setHidden(false)\n\n onShow?.({ ...getReturnObject.current(event) })\n\n setTrianglePosition()\n setOutsideClickHandler()\n },\n [setTrianglePosition, setOutsideClickHandler, onShow]\n )\n\n // React to opened prop changes\n useEffect(() => {\n if (openedProp) {\n showPicker()\n }\n\n return () => {\n clearTimeout(hideTimeout.current)\n removeOutsideClickHandler()\n }\n }, [openedProp, removeOutsideClickHandler, showPicker])\n\n const onPickerChange = useCallback(\n ({\n hidePicker: shouldHidePicker = true,\n ...args\n }: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement>\n >) => {\n if (shouldHidePicker && !showSubmitButton && !showCancelButton) {\n hidePicker()\n }\n\n setDates({ startDate: args.startDate, endDate: args.endDate })\n },\n [hidePicker, showSubmitButton, showCancelButton]\n )\n\n const onSubmitHandler = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n hidePicker(event)\n onSubmit?.({\n ...getReturnObject.current({ event }),\n })\n },\n [hidePicker, onSubmit]\n )\n\n const onCancelHandler = useCallback(\n (\n event: DatePickerChangeEvent<React.MouseEvent<HTMLButtonElement>>\n ) => {\n hidePicker()\n onCancel?.({ ...getReturnObject.current(event) })\n },\n [hidePicker, onCancel]\n )\n\n const onResetHandler = useCallback(\n (\n event: DatePickerChangeEvent<React.MouseEvent<HTMLButtonElement>>\n ) => {\n hidePicker()\n onReset?.({ ...getReturnObject.current(event) })\n },\n [hidePicker, onReset]\n )\n\n const togglePicker = useCallback(\n (args: React.MouseEvent<HTMLButtonElement>) => {\n !opened ? showPicker(args) : hidePicker(args)\n },\n [opened, showPicker, hidePicker]\n )\n\n const formatSelectedDateTitle = useCallback(() => {\n const { selectedDate, start, end } = translation\n const { startDate, endDate } = dates\n\n let currentDate = startDate ? format(startDate, 'PPPP') : null\n\n if (range && startDate && endDate) {\n currentDate = `${start} ${currentDate} - ${end} ${format(\n endDate,\n 'PPPP'\n )}`\n }\n\n return currentDate ? selectedDate.replace(/%s/, currentDate) : ''\n }, [range, translation, dates])\n\n // use only the props from context, who are available here anyway\n const extendedProps = extendPropsWithContext(\n props,\n defaultProps,\n { skeleton: context?.skeleton },\n convertSnakeCaseProps(context.getTranslation(props).DatePicker), // convertSnakeCaseProps - can be removed in v11\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n convertSnakeCaseProps(pickFormElementProps(context?.formElement)), // Deprecated – can be removed in v11\n context.DatePicker\n )\n\n const {\n label,\n title,\n labelDirection,\n labelSrOnly,\n onlyMonth,\n hideLastWeek,\n disableAutofocus,\n hideNavigationButtons,\n firstDay,\n resetDate,\n link,\n sync,\n inputElement,\n addonElement,\n shortcuts,\n disabled,\n stretch,\n skeleton,\n size,\n status,\n statusState,\n statusProps,\n statusNoAnimation,\n globalStatus,\n suffix,\n maskOrder,\n maskPlaceholder,\n submitButtonText,\n cancelButtonText,\n resetButtonText,\n showResetButton,\n className,\n tooltip,\n ...restProps\n } = extendedProps\n\n const attributes = useMemo(\n () => filterOutNonAttributes(restProps),\n [restProps]\n )\n\n const shouldHideDays = onlyMonth ? true : hideDays\n const shouldHideNavigation = onlyMonth\n ? hideNavigationButtons\n ? false\n : true\n : hideNavigation\n\n const showStatus = getStatusState(status)\n\n const pickerParams = {} as HTMLProps<HTMLSpanElement>\n\n if (showStatus || suffix) {\n pickerParams['aria-describedby'] = combineDescribedBy(\n pickerParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n\n const submitParams = {\n ['aria-expanded']: opened,\n ref: submitButtonRef,\n tabIndex: extendedProps.tabIndex,\n tooltip,\n }\n\n const selectedDateTitle = formatSelectedDateTitle()\n\n const mainParams = {\n className: classnames(\n 'dnb-date-picker',\n status && `dnb-date-picker__status--${statusState}`,\n labelDirection && `dnb-date-picker--${labelDirection}`,\n opened && 'dnb-date-picker--opened',\n hidden && 'dnb-date-picker--hidden',\n showInput && 'dnb-date-picker--show-input',\n (range || showSubmitButton || showCancelButton || showResetButton) &&\n 'dnb-date-picker--show-footer',\n alignPicker && `dnb-date-picker--${alignPicker}`,\n stretch && `dnb-date-picker--stretch`,\n 'dnb-form-component',\n size && `dnb-date-picker--${size}`,\n createSpacingClasses(props),\n className\n ),\n lang: context.locale,\n } as HTMLProps<HTMLSpanElement>\n\n const remainingDOMProps = validateDOMAttributes(props, attributes)\n const remainingSubmitProps = validateDOMAttributes(null, submitParams)\n const remainingPickerProps = validateDOMAttributes(\n null,\n skeletonDOMAttributes(pickerParams, skeleton, context)\n )\n\n return (\n <DatePickerProvider\n {...props}\n attributes={remainingDOMProps}\n setReturnObject={(fn) => (getReturnObject.current = fn)}\n hidePicker={hidePicker}\n >\n <span {...mainParams}>\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n labelDirection={labelDirection}\n srOnly={labelSrOnly}\n disabled={disabled}\n skeleton={skeleton}\n />\n )}\n\n <span\n className=\"dnb-date-picker__inner\"\n ref={innerRef}\n {...remainingPickerProps}\n >\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={String(label)}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + '-shell'}\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n\n <span className=\"dnb-date-picker__row\">\n <span className=\"dnb-date-picker__shell\" id={`${id}-shell`}>\n <DatePickerInput\n id={id}\n title={title}\n disabled={disabled}\n stretch={stretch}\n skeleton={skeleton}\n maskOrder={maskOrder}\n maskPlaceholder={maskPlaceholder}\n isRange={range}\n showInput={showInput}\n selectedDateTitle={selectedDateTitle}\n inputElement={inputElement}\n opened={opened}\n hidden={hidden}\n size={size}\n status={status ? 'error' : null}\n statusState={statusState}\n lang={context.locale}\n {...attributes}\n submitAttributes={remainingSubmitProps}\n onSubmit={togglePicker}\n {...statusProps}\n />\n <span className=\"dnb-date-picker__container\">\n <span\n className=\"dnb-date-picker__triangle\"\n ref={triangleRef}\n />\n {!hidden && (\n <>\n <DatePickerRange\n id={id}\n firstDayOfWeek={firstDay}\n resetDate={resetDate}\n isRange={range}\n isLink={link}\n isSync={sync}\n hideDays={shouldHideDays}\n hideNav={shouldHideNavigation}\n views={\n hideNavigationButtons\n ? [{ nextBtn: false, prevBtn: false }]\n : null\n }\n onlyMonth={onlyMonth}\n hideNextMonthWeek={hideLastWeek}\n noAutoFocus={disableAutofocus}\n onChange={onPickerChange}\n locale={context.locale}\n />\n {(addonElement || shortcuts) && (\n <DatePickerAddon\n renderElement={addonElement}\n shortcuts={shortcuts}\n />\n )}\n <DatePickerFooter\n isRange={range}\n onSubmit={onSubmitHandler}\n onCancel={onCancelHandler}\n onReset={onResetHandler}\n submitButtonText={submitButtonText}\n cancelButtonText={cancelButtonText}\n resetButtonText={resetButtonText}\n />\n </>\n )}\n </span>\n </span>\n {suffix && (\n <Suffix\n className=\"dnb-date-picker__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n </span>\n\n <p className=\"dnb-sr-only\" aria-live=\"assertive\">\n {selectedDateTitle}\n </p>\n </span>\n </DatePickerProvider>\n )\n}\n\nconst NonAttributes = [\n 'locale',\n 'id',\n 'month',\n 'date',\n 'startDate',\n 'endDate',\n 'minDate',\n 'maxDate',\n 'enableKeyboardNav',\n 'hideNavigation',\n 'returnFormat',\n 'dateFormat',\n 'hideDays',\n 'correctInvalidDate',\n 'opened',\n 'direction',\n 'range',\n 'showInput',\n 'noAnimation',\n 'onDaysRender',\n 'onShow',\n 'onType',\n 'onHide',\n 'showSubmitButton',\n 'showCancelButton',\n 'selectedDate',\n 'selectedMonth',\n 'selectedYear',\n 'nextMonth',\n 'nextYear',\n 'openPickerText',\n 'placeholderCharacters',\n 'prevMonth',\n 'prevYear',\n 'endMonth',\n 'startMonth',\n 'alignPicker',\n]\n\nfunction filterOutNonAttributes(props: DatePickerProps) {\n return Object.keys(props).reduce((attributes, key) => {\n if (!NonAttributes.includes(key)) {\n attributes[key] = props[key]\n }\n return attributes\n }, {})\n}\n\nexport default DatePicker\n\nDatePicker._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -27,8 +27,8 @@ export type ReturnObject<E> = {
27
27
  attributes?: Record<string, unknown>;
28
28
  days_between?: number;
29
29
  date?: string | null;
30
- start_date?: string;
31
- end_date?: string;
30
+ start_date?: string | null;
31
+ end_date?: string | null;
32
32
  is_valid?: boolean;
33
33
  is_valid_start_date?: boolean;
34
34
  is_valid_end_date?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerProvider.js","names":["React","useCallback","useContext","isValid","format","differenceInCalendarDays","SharedContext","correctV1Format","isDisabled","DatePickerContext","useViews","useDates","useLastEventCallCache","defaultProps","returnFormat","DatePickerProvider","externalProps","props","_objectSpread","date","startDate","endDate","startMonth","endMonth","minDate","maxDate","dateFormat","range","correctInvalidDate","attributes","returnFormatProp","children","onChange","setReturnObject","hidePicker","sharedContext","dates","updateDates","hasHadValidDate","previousDateProps","isRange","shouldCorrectDate","views","setViews","forceViewMonthChange","lastEventCallCache","setLastEventCallCache","getReturnObject","_ref","arguments","length","undefined","event","rest","_objectWithoutProperties","_excluded","partialStartDate","partialEndDate","startDateIsValid","Boolean","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","start_date","end_date","is_valid_start_date","is_valid_end_date","is_valid","callOnChangeHandler","createElement","Provider","value","translation"],"sources":["../../../../src/components/date-picker/DatePickerProvider.tsx"],"sourcesContent":["/**\n * Web DatePicker Provider\n *\n */\n\nimport React, { useCallback, useContext } from 'react'\nimport type {\n DatePickerEventAttributes,\n DatePickerAllProps,\n DatePickerProps,\n} from './DatePicker'\n\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\n\nimport SharedContext from '../../shared/Context'\nimport { correctV1Format, isDisabled } from './DatePickerCalc'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport useViews, { CalendarView } from './hooks/useViews'\nimport useDates, { DatePickerDates } from './hooks/useDates'\nimport useLastEventCallCache, {\n LastEventCallCache,\n} from './hooks/useLastEventCallCache'\n\ntype DatePickerProviderProps = DatePickerAllProps & {\n setReturnObject: (\n func: DatePickerContextValues['getReturnObject']\n ) => DatePickerContextValues['getReturnObject']\n hidePicker?: DatePickerContextValues['hidePicker']\n attributes?: DatePickerEventAttributes\n children: React.ReactNode\n}\n\nexport type DatePickerChangeEvent<E> = DatePickerDates & {\n nr?: number\n hidePicker?: boolean\n event?: E\n}\n\nexport type GetReturnObjectParams<E> = DatePickerDates & {\n event?: E\n}\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = {\n event?: E\n attributes?: Record<string, unknown>\n days_between?: number\n date?: string | null\n start_date?: string\n end_date?: string\n is_valid?: boolean\n is_valid_start_date?: boolean\n is_valid_end_date?: boolean\n partialStartDate?: string\n partialEndDate?: string\n}\n\nexport type DatePickerProviderState = DatePickerDates &\n Array<CalendarView> &\n LastEventCallCache\n\nconst defaultProps: Partial<DatePickerProps> = {\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n}\n\nfunction DatePickerProvider(externalProps: DatePickerProviderProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n dateFormat,\n range,\n correctInvalidDate,\n attributes,\n returnFormat: returnFormatProp,\n children,\n onChange,\n setReturnObject,\n hidePicker,\n } = props\n\n const sharedContext = useContext(SharedContext)\n\n const { dates, updateDates, hasHadValidDate, previousDateProps } =\n useDates(\n {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n },\n {\n dateFormat: dateFormat,\n isRange: range,\n shouldCorrectDate: correctInvalidDate,\n }\n )\n\n const { views, setViews, forceViewMonthChange } = useViews({\n startMonth: dates.startMonth,\n endMonth: dates.endMonth,\n isRange: range,\n })\n\n const [lastEventCallCache, setLastEventCallCache] =\n useLastEventCallCache({\n startDate: dates.startDate,\n endDate: dates.endDate,\n })\n\n const getReturnObject = useCallback(\n <E,>({ event = null, ...rest }: GetReturnObjectParams<E> = {}) => {\n const { startDate, endDate, partialStartDate, partialEndDate } = {\n ...views,\n ...dates,\n ...rest,\n }\n\n const returnFormat = correctV1Format(returnFormatProp)\n const startDateIsValid = Boolean(startDate && isValid(startDate))\n const endDateIsValid = Boolean(endDate && isValid(endDate))\n const hasMinOrMaxDates = minDate || maxDate\n\n const returnObject: ReturnObject<E> = {\n event,\n attributes: attributes || {},\n partialStartDate,\n }\n\n // Handle range props\n if (range) {\n return {\n ...returnObject,\n days_between:\n startDateIsValid && endDateIsValid\n ? differenceInCalendarDays(endDate, startDate)\n : null,\n start_date: startDateIsValid\n ? format(startDate, returnFormat)\n : null,\n end_date: endDateIsValid ? format(endDate, returnFormat) : null,\n is_valid_start_date:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n is_valid_end_date:\n hasMinOrMaxDates &&\n endDateIsValid &&\n isDisabled(endDate, dates.minDate, dates.maxDate)\n ? false\n : endDateIsValid,\n partialEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\n is_valid:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n }\n },\n [dates, views, attributes, maxDate, minDate, range, returnFormatProp]\n )\n\n const callOnChangeHandler = useCallback(\n <E,>(event: E & DatePickerDates) => {\n /**\n * Prevent on_change to be fired twice if date not has actually changed\n */\n if (\n lastEventCallCache &&\n lastEventCallCache.startDate === event.startDate &&\n lastEventCallCache.endDate === event.endDate\n ) {\n return // stop here\n }\n\n onChange?.(getReturnObject({ ...dates, ...event }))\n\n setLastEventCallCache({\n startDate: event.startDate,\n endDate: event.endDate,\n })\n },\n [\n getReturnObject,\n dates,\n onChange,\n lastEventCallCache,\n setLastEventCallCache,\n ]\n )\n\n // Is this at any point something other than a function?\n if (typeof setReturnObject === 'function') {\n setReturnObject(getReturnObject)\n }\n\n return (\n <DatePickerContext.Provider\n value={{\n translation: sharedContext.translation,\n updateDates,\n getReturnObject,\n callOnChangeHandler,\n hidePicker: hidePicker,\n props,\n ...dates,\n previousDateProps,\n hasHadValidDate,\n views,\n setViews,\n forceViewMonthChange,\n }}\n >\n {children}\n </DatePickerContext.Provider>\n )\n}\n\nexport default DatePickerProvider\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerProvider.js","names":["React","useCallback","useContext","isValid","format","differenceInCalendarDays","SharedContext","correctV1Format","isDisabled","DatePickerContext","useViews","useDates","useLastEventCallCache","defaultProps","returnFormat","DatePickerProvider","externalProps","props","_objectSpread","date","startDate","endDate","startMonth","endMonth","minDate","maxDate","dateFormat","range","correctInvalidDate","attributes","returnFormatProp","children","onChange","setReturnObject","hidePicker","sharedContext","dates","updateDates","hasHadValidDate","previousDateProps","isRange","shouldCorrectDate","views","setViews","forceViewMonthChange","lastEventCallCache","setLastEventCallCache","getReturnObject","_ref","arguments","length","undefined","event","rest","_objectWithoutProperties","_excluded","partialStartDate","partialEndDate","startDateIsValid","Boolean","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","start_date","end_date","is_valid_start_date","is_valid_end_date","is_valid","callOnChangeHandler","createElement","Provider","value","translation"],"sources":["../../../../src/components/date-picker/DatePickerProvider.tsx"],"sourcesContent":["/**\n * Web DatePicker Provider\n *\n */\n\nimport React, { useCallback, useContext } from 'react'\nimport type {\n DatePickerEventAttributes,\n DatePickerAllProps,\n DatePickerProps,\n} from './DatePicker'\n\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\n\nimport SharedContext from '../../shared/Context'\nimport { correctV1Format, isDisabled } from './DatePickerCalc'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport useViews, { CalendarView } from './hooks/useViews'\nimport useDates, { DatePickerDates } from './hooks/useDates'\nimport useLastEventCallCache, {\n LastEventCallCache,\n} from './hooks/useLastEventCallCache'\n\ntype DatePickerProviderProps = DatePickerAllProps & {\n setReturnObject: (\n func: DatePickerContextValues['getReturnObject']\n ) => DatePickerContextValues['getReturnObject']\n hidePicker?: DatePickerContextValues['hidePicker']\n attributes?: DatePickerEventAttributes\n children: React.ReactNode\n}\n\nexport type DatePickerChangeEvent<E> = DatePickerDates & {\n nr?: number\n hidePicker?: boolean\n event?: E\n}\n\nexport type GetReturnObjectParams<E> = DatePickerDates & {\n event?: E\n}\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = {\n event?: E\n attributes?: Record<string, unknown>\n days_between?: number\n date?: string | null\n start_date?: string | null\n end_date?: string | null\n is_valid?: boolean\n is_valid_start_date?: boolean\n is_valid_end_date?: boolean\n partialStartDate?: string\n partialEndDate?: string\n}\n\nexport type DatePickerProviderState = DatePickerDates &\n Array<CalendarView> &\n LastEventCallCache\n\nconst defaultProps: Partial<DatePickerProps> = {\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n}\n\nfunction DatePickerProvider(externalProps: DatePickerProviderProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n dateFormat,\n range,\n correctInvalidDate,\n attributes,\n returnFormat: returnFormatProp,\n children,\n onChange,\n setReturnObject,\n hidePicker,\n } = props\n\n const sharedContext = useContext(SharedContext)\n\n const { dates, updateDates, hasHadValidDate, previousDateProps } =\n useDates(\n {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n },\n {\n dateFormat: dateFormat,\n isRange: range,\n shouldCorrectDate: correctInvalidDate,\n }\n )\n\n const { views, setViews, forceViewMonthChange } = useViews({\n startMonth: dates.startMonth,\n endMonth: dates.endMonth,\n isRange: range,\n })\n\n const [lastEventCallCache, setLastEventCallCache] =\n useLastEventCallCache({\n startDate: dates.startDate,\n endDate: dates.endDate,\n })\n\n const getReturnObject = useCallback(\n <E,>({ event = null, ...rest }: GetReturnObjectParams<E> = {}) => {\n const { startDate, endDate, partialStartDate, partialEndDate } = {\n ...views,\n ...dates,\n ...rest,\n }\n\n const returnFormat = correctV1Format(returnFormatProp)\n const startDateIsValid = Boolean(startDate && isValid(startDate))\n const endDateIsValid = Boolean(endDate && isValid(endDate))\n const hasMinOrMaxDates = minDate || maxDate\n\n const returnObject: ReturnObject<E> = {\n event,\n attributes: attributes || {},\n partialStartDate,\n }\n\n // Handle range props\n if (range) {\n return {\n ...returnObject,\n days_between:\n startDateIsValid && endDateIsValid\n ? differenceInCalendarDays(endDate, startDate)\n : null,\n start_date: startDateIsValid\n ? format(startDate, returnFormat)\n : null,\n end_date: endDateIsValid ? format(endDate, returnFormat) : null,\n is_valid_start_date:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n is_valid_end_date:\n hasMinOrMaxDates &&\n endDateIsValid &&\n isDisabled(endDate, dates.minDate, dates.maxDate)\n ? false\n : endDateIsValid,\n partialEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\n is_valid:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n }\n },\n [dates, views, attributes, maxDate, minDate, range, returnFormatProp]\n )\n\n const callOnChangeHandler = useCallback(\n <E,>(event: E & DatePickerDates) => {\n /**\n * Prevent on_change to be fired twice if date not has actually changed\n */\n if (\n lastEventCallCache &&\n lastEventCallCache.startDate === event.startDate &&\n lastEventCallCache.endDate === event.endDate\n ) {\n return // stop here\n }\n\n onChange?.(getReturnObject({ ...dates, ...event }))\n\n setLastEventCallCache({\n startDate: event.startDate,\n endDate: event.endDate,\n })\n },\n [\n getReturnObject,\n dates,\n onChange,\n lastEventCallCache,\n setLastEventCallCache,\n ]\n )\n\n // Is this at any point something other than a function?\n if (typeof setReturnObject === 'function') {\n setReturnObject(getReturnObject)\n }\n\n return (\n <DatePickerContext.Provider\n value={{\n translation: sharedContext.translation,\n updateDates,\n getReturnObject,\n callOnChangeHandler,\n hidePicker: hidePicker,\n props,\n ...dates,\n previousDateProps,\n hasHadValidDate,\n views,\n setViews,\n forceViewMonthChange,\n }}\n >\n {children}\n </DatePickerContext.Provider>\n )\n}\n\nexport default DatePickerProvider\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDates.js","names":["useCallback","useEffect","useMemo","useRef","useState","convertStringToDate","isDisabled","isValid","format","addMonths","isSameDay","useDates","dateProps","_ref","dateFormat","isRange","shouldCorrectDate","previousDateProps","setPreviousDateProps","dates","setDates","_objectSpread","mapDates","hasDatePropChanges","Object","keys","some","date","dateProp","previousDate","convertedDateProp","convertedPreviousDate","Date","derivedDates","deriveDatesFromProps","currentDates","hasHadValidDate","updateDates","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","startDates","updateInputDates","endDates","current","type","updatedDates","pad","undefined","_ref2","_ref3","_convertStringToDate","_convertStringToDate2","getDate","startMonth","endMonth","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","_ref4","getStartDate","_ref5","_ref6","_ref7","_newDates$startMonth","_ref8","_newDates$endMonth","size","dateWithPadding","substring","length"],"sources":["../../../../../src/components/date-picker/hooks/useDates.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { convertStringToDate, isDisabled } from '../DatePickerCalc'\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport { addMonths, isSameDay } from 'date-fns'\nimport { DateType } from '../DatePickerContext'\n\nexport type DatePickerDateProps = {\n date?: DateType\n startDate?: DateType\n endDate?: DateType\n startMonth?: DateType\n endMonth?: DateType\n minDate?: DateType\n maxDate?: DateType\n hoverDate?: DateType | null\n}\n\ntype UseDatesOptions = {\n dateFormat: string\n isRange: boolean\n shouldCorrectDate: boolean\n}\n// TODO: Move to DatePickerInput\nexport type DatePickerInputDates = {\n __startDay?: string\n __startMonth?: string\n __startYear?: string\n __endDay?: string\n __endMonth?: string\n __endYear?: string\n}\n\nexport type DatePickerDates = {\n date?: DateType\n startDate?: Date\n endDate?: Date\n minDate?: Date\n maxDate?: Date\n startMonth?: Date\n endMonth?: Date\n partialStartDate?: string\n partialEndDate?: string\n hasHadValidDate?: boolean\n hoverDate?: Date\n} & DatePickerInputDates\n\nexport default function useDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange = false,\n shouldCorrectDate = false,\n }: UseDatesOptions\n) {\n const [previousDateProps, setPreviousDateProps] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n const dateProp = dateProps[date]\n const previousDate = previousDateProps[date]\n\n const convertedDateProp = convertStringToDate(dateProp, {\n dateFormat,\n })\n const convertedPreviousDate = convertStringToDate(previousDate, {\n dateFormat,\n })\n // Make sure that same dates does not trigger a change\n // i.e. 2021-01-01 and new Date('2021-01-01')\n if (\n convertedDateProp instanceof Date &&\n convertedPreviousDate instanceof Date\n ) {\n return !isSameDay(convertedDateProp, convertedPreviousDate)\n }\n\n return dateProp !== previousDate\n }),\n [dateProps, previousDateProps, dateFormat]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n const derivedDates = deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n })\n\n setDates((currentDates) => ({ ...currentDates, ...derivedDates }))\n setPreviousDateProps(dateProps)\n }\n\n const hasHadValidDate = useRef<boolean>(false)\n\n const updateDates = useCallback(\n (\n newDates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => {\n // Correct dates based on min and max date\n const correctedDates = shouldCorrectDate\n ? correctDates({\n startDate: newDates.startDate ?? dates.startDate,\n endDate: newDates.endDate ?? dates.endDate,\n minDate: dates.minDate,\n maxDate: dates.maxDate,\n isRange,\n })\n : {}\n\n // Update months based on month or start/end date changes\n const months = updateMonths({\n newDates,\n currentDates: dates,\n })\n\n setDates((currentDates) => {\n return {\n ...currentDates,\n ...newDates,\n ...months,\n ...correctedDates,\n }\n })\n\n callback?.({\n ...dates,\n ...newDates,\n ...months,\n ...correctedDates,\n })\n },\n [dates, shouldCorrectDate, isRange]\n )\n\n // Updated input dates based on start and end dates, move to DatePickerInput\n // TODO: Move to DatePickerInput\n useEffect(() => {\n const startDates = updateInputDates('start', dates.startDate)\n const endDates = updateInputDates('end', dates.endDate)\n\n hasHadValidDate.current =\n isValid(dates.startDate) || isValid(dates.endDate)\n\n setDates((currentDates) => ({\n ...currentDates,\n ...startDates,\n ...endDates,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dates.startDate, dates.endDate])\n\n return {\n dates,\n updateDates,\n hasHadValidDate: hasHadValidDate.current,\n previousDateProps,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', date: Date | undefined) {\n const updatedDates = {}\n\n if (isValid(date)) {\n updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2)\n updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2)\n updatedDates[`__${type}Year`] = format(date, 'yyyy')\n } else if (date === undefined) {\n updatedDates[`__${type}Day`] = null\n updatedDates[`__${type}Month`] = null\n updatedDates[`__${type}Year`] = null\n }\n\n return updatedDates\n}\n\nfunction mapDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date = dateProps.date\n\n const startDate =\n typeof dateProps?.startDate !== 'undefined'\n ? getDate(dateProps.startDate, dateFormat)\n : typeof date !== 'undefined'\n ? getDate(date, dateFormat)\n : undefined\n\n const endDate = !isRange\n ? startDate\n : convertStringToDate(dateProps?.endDate, {\n dateFormat,\n }) || undefined\n\n // Ensure that the calendar view displays the correct start and end months, and to prevent date flickering bug\n const startMonth =\n convertStringToDate(dateProps.startMonth, {\n dateFormat,\n }) ??\n startDate ??\n new Date()\n\n const endMonth =\n convertStringToDate(dateProps.endMonth, {\n dateFormat: dateFormat,\n }) ?? (isRange ? endDate ?? addMonths(startMonth, 1) : startMonth)\n\n const minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n\n const maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\n\n const hasValidStartDate = isValid(dates.startDate)\n const hasValidEndDate = isValid(dates.endDate)\n\n return {\n ...dates,\n __startDay: hasValidStartDate\n ? pad(format(dates.startDate, 'dd'), 2)\n : null,\n __startMonth: hasValidStartDate\n ? pad(format(dates.startDate, 'MM'), 2)\n : null,\n __startYear: hasValidStartDate\n ? format(dates.startDate, 'yyyy')\n : null,\n __endDay: hasValidEndDate ? pad(format(dates.endDate, 'dd'), 2) : null,\n __endMonth: hasValidEndDate\n ? pad(format(dates.endDate, 'MM'), 2)\n : null,\n __endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null,\n }\n}\n\nfunction deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n}: {\n dates: DatePickerDates\n dateProps: DatePickerDateProps\n previousDateProps: DatePickerDateProps\n dateFormat: UseDatesOptions['dateFormat']\n isRange: UseDatesOptions['isRange']\n}) {\n const derivedDates: DatePickerDates = {}\n\n const startDate = getStartDate(dateProps, previousDateProps)\n\n // Handle updates related to date and startDate changes when not in range mode\n if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {\n derivedDates.startDate =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n // Set endDate and startMonth to startDate if not in range mode\n if (!isRange) {\n derivedDates.startMonth =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n derivedDates.endDate = derivedDates.startDate\n }\n }\n\n // update endDate based on endDate prop if in range mode\n if (\n isRange &&\n typeof dateProps.endDate !== 'undefined' &&\n dateProps.endDate !== dates.endDate\n ) {\n derivedDates.endDate =\n convertStringToDate(dateProps.endDate, {\n dateFormat,\n }) || undefined\n }\n\n // Handle startMonth/endMonth\n if (\n typeof dateProps.startMonth !== 'undefined' &&\n dateProps.startMonth !== previousDateProps.startMonth\n ) {\n derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.endMonth !== 'undefined' &&\n dateProps.endMonth !== previousDateProps.endMonth\n ) {\n derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {\n dateFormat,\n })\n }\n\n // Handle minDate/maxDate\n if (\n typeof dateProps.minDate !== 'undefined' &&\n dateProps.minDate !== previousDateProps.minDate\n ) {\n derivedDates.minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.maxDate !== 'undefined' &&\n dateProps.maxDate !== previousDateProps.maxDate\n ) {\n derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n }\n\n return derivedDates\n}\n\nfunction correctDates({\n startDate,\n endDate,\n minDate,\n maxDate,\n isRange,\n}: {\n startDate: Date\n endDate: Date\n minDate: Date\n maxDate: Date\n isRange: boolean\n}) {\n const correctedDates = {}\n\n if (isDisabled(startDate, minDate, maxDate)) {\n correctedDates['startDate'] = minDate\n }\n if (isDisabled(endDate, minDate, maxDate)) {\n // state.endDate is only used by the input if range is set to true.\n // this is done to make maxDate correction work if the input is not a range and only maxDate is defined.\n if (!isRange && !minDate) {\n correctedDates['startDate'] = maxDate\n } else {\n correctedDates['endDate'] = maxDate\n }\n }\n\n return correctedDates\n}\n\nfunction updateMonths({\n newDates,\n currentDates,\n}: {\n newDates: DatePickerDates\n currentDates: DatePickerDates\n}) {\n const startMonth =\n newDates.startMonth ?? newDates.startDate ?? currentDates.startMonth\n const endMonth =\n newDates.endMonth ?? newDates.endDate ?? currentDates.endMonth\n\n return {\n startMonth,\n endMonth,\n }\n}\n\nfunction getDate(date: DateType, dateFormat: string) {\n return date instanceof Date\n ? date\n : convertStringToDate(date ?? '', {\n dateFormat,\n })\n}\n\nfunction getStartDate(\n dateProps: DatePickerDateProps,\n previousDateProps: DatePickerDateProps\n) {\n // priortize startDate over date if provided\n if (\n typeof dateProps.startDate !== 'undefined' &&\n dateProps.startDate !== previousDateProps.startDate\n ) {\n return dateProps.startDate\n }\n\n if (\n typeof dateProps.date !== 'undefined' &&\n dateProps.date !== previousDateProps.date\n ) {\n return dateProps.date\n }\n\n return undefined\n}\n\nexport function pad(date: string, size: number) {\n const dateWithPadding = '000000000' + date\n\n return dateWithPadding.substring(dateWithPadding.length - size)\n}\n"],"mappings":";;;;;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACzE,SAASC,mBAAmB,EAAEC,UAAU,QAAQ,mBAAmB;AACnE,OAAOC,OAAO,MAAM,kBAAkB;AACtC,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,SAAS,EAAEC,SAAS,QAAQ,UAAU;AA2C/C,eAAe,SAASC,QAAQA,CAC9BC,SAA8B,EAAAC,IAAA,EAM9B;EAAA,IALA;IACEC,UAAU;IACVC,OAAO,GAAG,KAAK;IACfC,iBAAiB,GAAG;EACL,CAAC,GAAAH,IAAA;EAElB,MAAM,CAACI,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGd,QAAQ,CAACQ,SAAS,CAAC;EACrE,MAAM,CAACO,KAAK,EAAEC,QAAQ,CAAC,GAAGhB,QAAQ,CAAAiB,aAAA,KAC7BC,QAAQ,CAACV,SAAS,EAAE;IACrBE,UAAU;IACVC,OAAO;IACPC;EACF,CAAC,CAAC,CACH,CAAC;EAEF,MAAMO,kBAAkB,GAAGrB,OAAO,CAChC,MACEsB,MAAM,CAACC,IAAI,CAACb,SAAS,CAAC,CAACc,IAAI,CAAEC,IAAI,IAAK;IACpC,MAAMC,QAAQ,GAAGhB,SAAS,CAACe,IAAI,CAAC;IAChC,MAAME,YAAY,GAAGZ,iBAAiB,CAACU,IAAI,CAAC;IAE5C,MAAMG,iBAAiB,GAAGzB,mBAAmB,CAACuB,QAAQ,EAAE;MACtDd;IACF,CAAC,CAAC;IACF,MAAMiB,qBAAqB,GAAG1B,mBAAmB,CAACwB,YAAY,EAAE;MAC9Df;IACF,CAAC,CAAC;IAGF,IACEgB,iBAAiB,YAAYE,IAAI,IACjCD,qBAAqB,YAAYC,IAAI,EACrC;MACA,OAAO,CAACtB,SAAS,CAACoB,iBAAiB,EAAEC,qBAAqB,CAAC;IAC7D;IAEA,OAAOH,QAAQ,KAAKC,YAAY;EAClC,CAAC,CAAC,EACJ,CAACjB,SAAS,EAAEK,iBAAiB,EAAEH,UAAU,CAC3C,CAAC;EAGD,IAAIS,kBAAkB,EAAE;IACtB,MAAMU,YAAY,GAAGC,oBAAoB,CAAC;MACxCf,KAAK;MACLP,SAAS;MACTK,iBAAiB;MACjBH,UAAU;MACVC;IACF,CAAC,CAAC;IAEFK,QAAQ,CAAEe,YAAY,IAAAd,aAAA,CAAAA,aAAA,KAAWc,YAAY,GAAKF,YAAY,CAAG,CAAC;IAClEf,oBAAoB,CAACN,SAAS,CAAC;EACjC;EAEA,MAAMwB,eAAe,GAAGjC,MAAM,CAAU,KAAK,CAAC;EAE9C,MAAMkC,WAAW,GAAGrC,WAAW,CAC7B,CACEsC,QAAyB,EACzBC,QAA2C,KACxC;IAAA,IAAAC,mBAAA,EAAAC,iBAAA;IAEH,MAAMC,cAAc,GAAG1B,iBAAiB,GACpC2B,YAAY,CAAC;MACXC,SAAS,GAAAJ,mBAAA,GAAEF,QAAQ,CAACM,SAAS,cAAAJ,mBAAA,cAAAA,mBAAA,GAAIrB,KAAK,CAACyB,SAAS;MAChDC,OAAO,GAAAJ,iBAAA,GAAEH,QAAQ,CAACO,OAAO,cAAAJ,iBAAA,cAAAA,iBAAA,GAAItB,KAAK,CAAC0B,OAAO;MAC1CC,OAAO,EAAE3B,KAAK,CAAC2B,OAAO;MACtBC,OAAO,EAAE5B,KAAK,CAAC4B,OAAO;MACtBhC;IACF,CAAC,CAAC,GACF,CAAC,CAAC;IAGN,MAAMiC,MAAM,GAAGC,YAAY,CAAC;MAC1BX,QAAQ;MACRH,YAAY,EAAEhB;IAChB,CAAC,CAAC;IAEFC,QAAQ,CAAEe,YAAY,IAAK;MACzB,OAAAd,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACKc,YAAY,GACZG,QAAQ,GACRU,MAAM,GACNN,cAAc;IAErB,CAAC,CAAC;IAEFH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAAlB,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACHF,KAAK,GACLmB,QAAQ,GACRU,MAAM,GACNN,cAAc,CAClB,CAAC;EACJ,CAAC,EACD,CAACvB,KAAK,EAAEH,iBAAiB,EAAED,OAAO,CACpC,CAAC;EAIDd,SAAS,CAAC,MAAM;IACd,MAAMiD,UAAU,GAAGC,gBAAgB,CAAC,OAAO,EAAEhC,KAAK,CAACyB,SAAS,CAAC;IAC7D,MAAMQ,QAAQ,GAAGD,gBAAgB,CAAC,KAAK,EAAEhC,KAAK,CAAC0B,OAAO,CAAC;IAEvDT,eAAe,CAACiB,OAAO,GACrB9C,OAAO,CAACY,KAAK,CAACyB,SAAS,CAAC,IAAIrC,OAAO,CAACY,KAAK,CAAC0B,OAAO,CAAC;IAEpDzB,QAAQ,CAAEe,YAAY,IAAAd,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACjBc,YAAY,GACZe,UAAU,GACVE,QAAQ,CACX,CAAC;EAEL,CAAC,EAAE,CAACjC,KAAK,CAACyB,SAAS,EAAEzB,KAAK,CAAC0B,OAAO,CAAC,CAAC;EAEpC,OAAO;IACL1B,KAAK;IACLkB,WAAW;IACXD,eAAe,EAAEA,eAAe,CAACiB,OAAO;IACxCpC;EACF,CAAC;AACH;AAGA,SAASkC,gBAAgBA,CAACG,IAAqB,EAAE3B,IAAsB,EAAE;EACvE,MAAM4B,YAAY,GAAG,CAAC,CAAC;EAEvB,IAAIhD,OAAO,CAACoB,IAAI,CAAC,EAAE;IACjB4B,YAAY,CAAE,KAAID,IAAK,KAAI,CAAC,GAAGE,GAAG,CAAChD,MAAM,CAACmB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD4B,YAAY,CAAE,KAAID,IAAK,OAAM,CAAC,GAAGE,GAAG,CAAChD,MAAM,CAACmB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D4B,YAAY,CAAE,KAAID,IAAK,MAAK,CAAC,GAAG9C,MAAM,CAACmB,IAAI,EAAE,MAAM,CAAC;EACtD,CAAC,MAAM,IAAIA,IAAI,KAAK8B,SAAS,EAAE;IAC7BF,YAAY,CAAE,KAAID,IAAK,KAAI,CAAC,GAAG,IAAI;IACnCC,YAAY,CAAE,KAAID,IAAK,OAAM,CAAC,GAAG,IAAI;IACrCC,YAAY,CAAE,KAAID,IAAK,MAAK,CAAC,GAAG,IAAI;EACtC;EAEA,OAAOC,YAAY;AACrB;AAEA,SAASjC,QAAQA,CACfV,SAA8B,EAAA8C,KAAA,EAM9B;EAAA,IAAAC,KAAA,EAAAC,oBAAA,EAAAC,qBAAA;EAAA,IALA;IACE/C,UAAU;IACVC,OAAO;IACPC;EACiC,CAAC,GAAA0C,KAAA;EAEpC,MAAM/B,IAAI,GAAGf,SAAS,CAACe,IAAI;EAE3B,MAAMiB,SAAS,GACb,QAAOhC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEgC,SAAS,MAAK,WAAW,GACvCkB,OAAO,CAAClD,SAAS,CAACgC,SAAS,EAAE9B,UAAU,CAAC,GACxC,OAAOa,IAAI,KAAK,WAAW,GAC3BmC,OAAO,CAACnC,IAAI,EAAEb,UAAU,CAAC,GACzB2C,SAAS;EAEf,MAAMZ,OAAO,GAAG,CAAC9B,OAAO,GACpB6B,SAAS,GACTvC,mBAAmB,CAACO,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEiC,OAAO,EAAE;IACtC/B;EACF,CAAC,CAAC,IAAI2C,SAAS;EAGnB,MAAMM,UAAU,IAAAJ,KAAA,IAAAC,oBAAA,GACdvD,mBAAmB,CAACO,SAAS,CAACmD,UAAU,EAAE;IACxCjD;EACF,CAAC,CAAC,cAAA8C,oBAAA,cAAAA,oBAAA,GACFhB,SAAS,cAAAe,KAAA,cAAAA,KAAA,GACT,IAAI3B,IAAI,CAAC,CAAC;EAEZ,MAAMgC,QAAQ,IAAAH,qBAAA,GACZxD,mBAAmB,CAACO,SAAS,CAACoD,QAAQ,EAAE;IACtClD,UAAU,EAAEA;EACd,CAAC,CAAC,cAAA+C,qBAAA,cAAAA,qBAAA,GAAK9C,OAAO,GAAG8B,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIpC,SAAS,CAACsD,UAAU,EAAE,CAAC,CAAC,GAAGA,UAAW;EAEpE,MAAMjB,OAAO,GAAGzC,mBAAmB,CAACO,SAAS,CAACkC,OAAO,EAAE;IACrDhC;EACF,CAAC,CAAC;EAEF,MAAMiC,OAAO,GAAG1C,mBAAmB,CAACO,SAAS,CAACmC,OAAO,EAAE;IACrDjC;EACF,CAAC,CAAC;EAEF,MAAM4B,cAAc,GAAG1B,iBAAiB,GACpC2B,YAAY,CAAC;IAAEC,SAAS;IAAEC,OAAO;IAAEC,OAAO;IAAEC,OAAO;IAAEhC;EAAQ,CAAC,CAAC,GAC/D,CAAC,CAAC;EAEN,MAAMI,KAAK,GAAAE,aAAA;IACTM,IAAI;IACJiB,SAAS;IACTC,OAAO;IACPkB,UAAU;IACVC,QAAQ;IACRlB,OAAO;IACPC;EAAO,GACJL,cAAc,CAClB;EAED,MAAMuB,iBAAiB,GAAG1D,OAAO,CAACY,KAAK,CAACyB,SAAS,CAAC;EAClD,MAAMsB,eAAe,GAAG3D,OAAO,CAACY,KAAK,CAAC0B,OAAO,CAAC;EAE9C,OAAAxB,aAAA,CAAAA,aAAA,KACKF,KAAK;IACRgD,UAAU,EAAEF,iBAAiB,GACzBT,GAAG,CAAChD,MAAM,CAACW,KAAK,CAACyB,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GACrC,IAAI;IACRwB,YAAY,EAAEH,iBAAiB,GAC3BT,GAAG,CAAChD,MAAM,CAACW,KAAK,CAACyB,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GACrC,IAAI;IACRyB,WAAW,EAAEJ,iBAAiB,GAC1BzD,MAAM,CAACW,KAAK,CAACyB,SAAS,EAAE,MAAM,CAAC,GAC/B,IAAI;IACR0B,QAAQ,EAAEJ,eAAe,GAAGV,GAAG,CAAChD,MAAM,CAACW,KAAK,CAAC0B,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IACtE0B,UAAU,EAAEL,eAAe,GACvBV,GAAG,CAAChD,MAAM,CAACW,KAAK,CAAC0B,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GACnC,IAAI;IACR2B,SAAS,EAAEN,eAAe,GAAG1D,MAAM,CAACW,KAAK,CAAC0B,OAAO,EAAE,MAAM,CAAC,GAAG;EAAI;AAErE;AAEA,SAASX,oBAAoBA,CAAAuC,KAAA,EAY1B;EAAA,IAZ2B;IAC5BtD,KAAK;IACLP,SAAS;IACTK,iBAAiB;IACjBH,UAAU;IACVC;EAOF,CAAC,GAAA0D,KAAA;EACC,MAAMxC,YAA6B,GAAG,CAAC,CAAC;EAExC,MAAMW,SAAS,GAAG8B,YAAY,CAAC9D,SAAS,EAAEK,iBAAiB,CAAC;EAG5D,IAAI,OAAO2B,SAAS,KAAK,WAAW,IAAIA,SAAS,KAAKzB,KAAK,CAACyB,SAAS,EAAE;IACrEX,YAAY,CAACW,SAAS,GACpBvC,mBAAmB,CAACuC,SAAS,EAAE;MAC7B9B;IACF,CAAC,CAAC,IAAI2C,SAAS;IAGjB,IAAI,CAAC1C,OAAO,EAAE;MACZkB,YAAY,CAAC8B,UAAU,GACrB1D,mBAAmB,CAACuC,SAAS,EAAE;QAC7B9B;MACF,CAAC,CAAC,IAAI2C,SAAS;MAEjBxB,YAAY,CAACY,OAAO,GAAGZ,YAAY,CAACW,SAAS;IAC/C;EACF;EAGA,IACE7B,OAAO,IACP,OAAOH,SAAS,CAACiC,OAAO,KAAK,WAAW,IACxCjC,SAAS,CAACiC,OAAO,KAAK1B,KAAK,CAAC0B,OAAO,EACnC;IACAZ,YAAY,CAACY,OAAO,GAClBxC,mBAAmB,CAACO,SAAS,CAACiC,OAAO,EAAE;MACrC/B;IACF,CAAC,CAAC,IAAI2C,SAAS;EACnB;EAGA,IACE,OAAO7C,SAAS,CAACmD,UAAU,KAAK,WAAW,IAC3CnD,SAAS,CAACmD,UAAU,KAAK9C,iBAAiB,CAAC8C,UAAU,EACrD;IACA9B,YAAY,CAAC8B,UAAU,GAAG1D,mBAAmB,CAACO,SAAS,CAACmD,UAAU,EAAE;MAClEjD;IACF,CAAC,CAAC;EACJ;EACA,IACE,OAAOF,SAAS,CAACoD,QAAQ,KAAK,WAAW,IACzCpD,SAAS,CAACoD,QAAQ,KAAK/C,iBAAiB,CAAC+C,QAAQ,EACjD;IACA/B,YAAY,CAAC+B,QAAQ,GAAG3D,mBAAmB,CAACO,SAAS,CAACoD,QAAQ,EAAE;MAC9DlD;IACF,CAAC,CAAC;EACJ;EAGA,IACE,OAAOF,SAAS,CAACkC,OAAO,KAAK,WAAW,IACxClC,SAAS,CAACkC,OAAO,KAAK7B,iBAAiB,CAAC6B,OAAO,EAC/C;IACAb,YAAY,CAACa,OAAO,GAAGzC,mBAAmB,CAACO,SAAS,CAACkC,OAAO,EAAE;MAC5DhC;IACF,CAAC,CAAC;EACJ;EACA,IACE,OAAOF,SAAS,CAACmC,OAAO,KAAK,WAAW,IACxCnC,SAAS,CAACmC,OAAO,KAAK9B,iBAAiB,CAAC8B,OAAO,EAC/C;IACAd,YAAY,CAACc,OAAO,GAAG1C,mBAAmB,CAACO,SAAS,CAACmC,OAAO,EAAE;MAC5DjC;IACF,CAAC,CAAC;EACJ;EAEA,OAAOmB,YAAY;AACrB;AAEA,SAASU,YAAYA,CAAAgC,KAAA,EAYlB;EAAA,IAZmB;IACpB/B,SAAS;IACTC,OAAO;IACPC,OAAO;IACPC,OAAO;IACPhC;EAOF,CAAC,GAAA4D,KAAA;EACC,MAAMjC,cAAc,GAAG,CAAC,CAAC;EAEzB,IAAIpC,UAAU,CAACsC,SAAS,EAAEE,OAAO,EAAEC,OAAO,CAAC,EAAE;IAC3CL,cAAc,CAAC,WAAW,CAAC,GAAGI,OAAO;EACvC;EACA,IAAIxC,UAAU,CAACuC,OAAO,EAAEC,OAAO,EAAEC,OAAO,CAAC,EAAE;IAGzC,IAAI,CAAChC,OAAO,IAAI,CAAC+B,OAAO,EAAE;MACxBJ,cAAc,CAAC,WAAW,CAAC,GAAGK,OAAO;IACvC,CAAC,MAAM;MACLL,cAAc,CAAC,SAAS,CAAC,GAAGK,OAAO;IACrC;EACF;EAEA,OAAOL,cAAc;AACvB;AAEA,SAASO,YAAYA,CAAA2B,KAAA,EAMlB;EAAA,IAAAC,KAAA,EAAAC,oBAAA,EAAAC,KAAA,EAAAC,kBAAA;EAAA,IANmB;IACpB1C,QAAQ;IACRH;EAIF,CAAC,GAAAyC,KAAA;EACC,MAAMb,UAAU,IAAAc,KAAA,IAAAC,oBAAA,GACdxC,QAAQ,CAACyB,UAAU,cAAAe,oBAAA,cAAAA,oBAAA,GAAIxC,QAAQ,CAACM,SAAS,cAAAiC,KAAA,cAAAA,KAAA,GAAI1C,YAAY,CAAC4B,UAAU;EACtE,MAAMC,QAAQ,IAAAe,KAAA,IAAAC,kBAAA,GACZ1C,QAAQ,CAAC0B,QAAQ,cAAAgB,kBAAA,cAAAA,kBAAA,GAAI1C,QAAQ,CAACO,OAAO,cAAAkC,KAAA,cAAAA,KAAA,GAAI5C,YAAY,CAAC6B,QAAQ;EAEhE,OAAO;IACLD,UAAU;IACVC;EACF,CAAC;AACH;AAEA,SAASF,OAAOA,CAACnC,IAAc,EAAEb,UAAkB,EAAE;EACnD,OAAOa,IAAI,YAAYK,IAAI,GACvBL,IAAI,GACJtB,mBAAmB,CAACsB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,EAAE,EAAE;IAC9Bb;EACF,CAAC,CAAC;AACR;AAEA,SAAS4D,YAAYA,CACnB9D,SAA8B,EAC9BK,iBAAsC,EACtC;EAEA,IACE,OAAOL,SAAS,CAACgC,SAAS,KAAK,WAAW,IAC1ChC,SAAS,CAACgC,SAAS,KAAK3B,iBAAiB,CAAC2B,SAAS,EACnD;IACA,OAAOhC,SAAS,CAACgC,SAAS;EAC5B;EAEA,IACE,OAAOhC,SAAS,CAACe,IAAI,KAAK,WAAW,IACrCf,SAAS,CAACe,IAAI,KAAKV,iBAAiB,CAACU,IAAI,EACzC;IACA,OAAOf,SAAS,CAACe,IAAI;EACvB;EAEA,OAAO8B,SAAS;AAClB;AAEA,OAAO,SAASD,GAAGA,CAAC7B,IAAY,EAAEsD,IAAY,EAAE;EAC9C,MAAMC,eAAe,GAAG,WAAW,GAAGvD,IAAI;EAE1C,OAAOuD,eAAe,CAACC,SAAS,CAACD,eAAe,CAACE,MAAM,GAAGH,IAAI,CAAC;AACjE"}
1
+ {"version":3,"file":"useDates.js","names":["useCallback","useEffect","useMemo","useRef","useState","convertStringToDate","isDisabled","isValid","format","addMonths","isSameDay","useDates","dateProps","_ref","dateFormat","isRange","shouldCorrectDate","previousDateProps","setPreviousDateProps","dates","setDates","_objectSpread","mapDates","hasDatePropChanges","Object","keys","some","date","dateProp","previousDate","convertedDateProp","convertedPreviousDate","Date","derivedDates","deriveDatesFromProps","currentDates","hasHadValidDate","updateDates","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","startDates","updateInputDates","endDates","current","type","updatedDates","pad","undefined","_ref2","_ref3","_convertStringToDate","_convertStringToDate2","getDate","startMonth","endMonth","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","_ref4","getStartDate","_ref5","_ref6","_ref7","_newDates$startMonth","_ref8","_newDates$endMonth","size","dateWithPadding","substring","length"],"sources":["../../../../../src/components/date-picker/hooks/useDates.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { convertStringToDate, isDisabled } from '../DatePickerCalc'\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport { addMonths, isSameDay } from 'date-fns'\nimport { DateType } from '../DatePickerContext'\n\nexport type DatePickerDateProps = {\n date?: DateType\n startDate?: DateType\n endDate?: DateType\n startMonth?: DateType\n endMonth?: DateType\n minDate?: DateType\n maxDate?: DateType\n hoverDate?: DateType | null\n}\n\ntype UseDatesOptions = {\n dateFormat: string\n isRange: boolean\n shouldCorrectDate: boolean\n}\n// TODO: Move to DatePickerInput\nexport type DatePickerInputDates = {\n __startDay?: string\n __startMonth?: string\n __startYear?: string\n __endDay?: string\n __endMonth?: string\n __endYear?: string\n}\n\nexport type DatePickerDates = {\n date?: DateType\n startDate?: Date\n endDate?: Date\n minDate?: Date\n maxDate?: Date\n startMonth?: Date\n endMonth?: Date\n partialStartDate?: string\n partialEndDate?: string\n hasHadValidDate?: boolean\n hoverDate?: Date\n} & DatePickerInputDates\n\nexport default function useDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange = false,\n shouldCorrectDate = false,\n }: UseDatesOptions\n) {\n const [previousDateProps, setPreviousDateProps] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n const dateProp = dateProps[date]\n const previousDate = previousDateProps[date]\n\n const convertedDateProp = convertStringToDate(dateProp, {\n dateFormat,\n })\n const convertedPreviousDate = convertStringToDate(previousDate, {\n dateFormat,\n })\n // Make sure that same dates does not trigger a change\n // i.e. 2021-01-01 and new Date('2021-01-01')\n if (\n convertedDateProp instanceof Date &&\n convertedPreviousDate instanceof Date\n ) {\n return !isSameDay(convertedDateProp, convertedPreviousDate)\n }\n\n return dateProp !== previousDate\n }),\n [dateProps, previousDateProps, dateFormat]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n const derivedDates = deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n })\n\n setDates((currentDates) => ({ ...currentDates, ...derivedDates }))\n setPreviousDateProps(dateProps)\n }\n\n const hasHadValidDate = useRef<boolean>(false)\n\n const updateDates = useCallback(\n (\n newDates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => {\n // Correct dates based on min and max date\n const correctedDates = shouldCorrectDate\n ? correctDates({\n startDate: newDates.startDate ?? dates.startDate,\n endDate: newDates.endDate ?? dates.endDate,\n minDate: dates.minDate,\n maxDate: dates.maxDate,\n isRange,\n })\n : {}\n\n // Update months based on month or start/end date changes\n const months = updateMonths({\n newDates,\n currentDates: dates,\n })\n\n setDates((currentDates) => {\n return {\n ...currentDates,\n ...newDates,\n ...months,\n ...correctedDates,\n }\n })\n\n callback?.({\n ...dates,\n ...newDates,\n ...months,\n ...correctedDates,\n })\n },\n [dates, shouldCorrectDate, isRange]\n )\n\n // Updated input dates based on start and end dates, move to DatePickerInput\n // TODO: Move to DatePickerInput\n useEffect(() => {\n const startDates = updateInputDates('start', dates.startDate)\n const endDates = updateInputDates('end', dates.endDate)\n\n hasHadValidDate.current =\n isValid(dates.startDate) || isValid(dates.endDate)\n\n setDates((currentDates) => ({\n ...currentDates,\n ...startDates,\n ...endDates,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dates.startDate, dates.endDate])\n\n return {\n dates,\n updateDates,\n hasHadValidDate: hasHadValidDate.current,\n previousDateProps,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', date: Date | undefined) {\n const updatedDates = {}\n\n if (isValid(date)) {\n updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2)\n updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2)\n updatedDates[`__${type}Year`] = format(date, 'yyyy')\n } else if (date === undefined) {\n updatedDates[`__${type}Day`] = null\n updatedDates[`__${type}Month`] = null\n updatedDates[`__${type}Year`] = null\n }\n\n return updatedDates\n}\n\nfunction mapDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date = dateProps.date\n\n const startDate =\n typeof dateProps?.startDate !== 'undefined'\n ? getDate(dateProps.startDate, dateFormat)\n : typeof date !== 'undefined'\n ? getDate(date, dateFormat)\n : undefined\n\n const endDate = !isRange\n ? startDate\n : convertStringToDate(dateProps?.endDate, {\n dateFormat,\n }) || undefined\n\n // Ensure that the calendar view displays the correct start and end months, and to prevent date flickering bug\n const startMonth =\n convertStringToDate(dateProps.startMonth, {\n dateFormat,\n }) ??\n startDate ??\n new Date()\n\n const endMonth =\n convertStringToDate(dateProps.endMonth, {\n dateFormat: dateFormat,\n }) ?? (isRange ? endDate ?? addMonths(startMonth, 1) : startMonth)\n\n const minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n\n const maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\n\n const hasValidStartDate = isValid(dates.startDate)\n const hasValidEndDate = isValid(dates.endDate)\n\n return {\n ...dates,\n __startDay: hasValidStartDate\n ? pad(format(dates.startDate, 'dd'), 2)\n : null,\n __startMonth: hasValidStartDate\n ? pad(format(dates.startDate, 'MM'), 2)\n : null,\n __startYear: hasValidStartDate\n ? format(dates.startDate, 'yyyy')\n : null,\n __endDay: hasValidEndDate ? pad(format(dates.endDate, 'dd'), 2) : null,\n __endMonth: hasValidEndDate\n ? pad(format(dates.endDate, 'MM'), 2)\n : null,\n __endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null,\n }\n}\n\nfunction deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n}: {\n dates: DatePickerDates\n dateProps: DatePickerDateProps\n previousDateProps: DatePickerDateProps\n dateFormat: UseDatesOptions['dateFormat']\n isRange: UseDatesOptions['isRange']\n}) {\n const derivedDates: DatePickerDates = {}\n\n const startDate = getStartDate(dateProps, previousDateProps)\n\n // Handle updates related to date and startDate changes when not in range mode\n if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {\n derivedDates.startDate =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n // Set endDate and startMonth to startDate if not in range mode\n if (!isRange) {\n derivedDates.startMonth =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n derivedDates.endDate = derivedDates.startDate\n }\n }\n\n // update endDate based on endDate prop if in range mode\n if (\n isRange &&\n typeof dateProps.endDate !== 'undefined' &&\n dateProps.endDate !== dates.endDate\n ) {\n derivedDates.endDate =\n convertStringToDate(dateProps.endDate, {\n dateFormat,\n }) || undefined\n }\n\n // Handle startMonth/endMonth\n if (\n typeof dateProps.startMonth !== 'undefined' &&\n dateProps.startMonth !== previousDateProps.startMonth\n ) {\n derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.endMonth !== 'undefined' &&\n dateProps.endMonth !== previousDateProps.endMonth\n ) {\n derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {\n dateFormat,\n })\n }\n\n // Handle minDate/maxDate\n if (\n typeof dateProps.minDate !== 'undefined' &&\n dateProps.minDate !== previousDateProps.minDate\n ) {\n derivedDates.minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.maxDate !== 'undefined' &&\n dateProps.maxDate !== previousDateProps.maxDate\n ) {\n derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n }\n\n return derivedDates\n}\n\nfunction correctDates({\n startDate,\n endDate,\n minDate,\n maxDate,\n isRange,\n}: {\n startDate: Date\n endDate: Date\n minDate: Date\n maxDate: Date\n isRange: boolean\n}) {\n const correctedDates = {}\n\n if (isDisabled(startDate, minDate, maxDate)) {\n correctedDates['startDate'] = minDate\n }\n if (isDisabled(endDate, minDate, maxDate)) {\n // state.endDate is only used by the input if range is set to true.\n // this is done to make maxDate correction work if the input is not a range and only maxDate is defined.\n if (!isRange && !minDate) {\n correctedDates['startDate'] = maxDate\n } else {\n correctedDates['endDate'] = maxDate\n }\n }\n\n return correctedDates\n}\n\nfunction updateMonths({\n newDates,\n currentDates,\n}: {\n newDates: DatePickerDates\n currentDates: DatePickerDates\n}) {\n const startMonth =\n newDates.startMonth ?? newDates.startDate ?? currentDates.startMonth\n const endMonth =\n newDates.endMonth ?? newDates.endDate ?? currentDates.endMonth\n\n return {\n startMonth,\n endMonth,\n }\n}\n\nfunction getDate(date: DateType, dateFormat: string) {\n return date instanceof Date\n ? date\n : convertStringToDate(date ?? '', {\n dateFormat,\n })\n}\n\nfunction getStartDate(\n dateProps: DatePickerDateProps,\n previousDateProps: DatePickerDateProps\n) {\n // prioritize startDate over date if provided\n if (\n typeof dateProps.startDate !== 'undefined' &&\n dateProps.startDate !== previousDateProps.startDate\n ) {\n return dateProps.startDate\n }\n\n if (\n typeof dateProps.date !== 'undefined' &&\n dateProps.date !== previousDateProps.date\n ) {\n return dateProps.date\n }\n\n return undefined\n}\n\nexport function pad(date: string, size: number) {\n const dateWithPadding = '000000000' + date\n\n return dateWithPadding.substring(dateWithPadding.length - size)\n}\n"],"mappings":"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"}
@@ -16,7 +16,9 @@ export const UploadFileLink = props => {
16
16
  } = props,
17
17
  rest = _objectWithoutProperties(props, _excluded);
18
18
  if (!onClick && !href) {
19
- return React.createElement(Span, rest, text);
19
+ return React.createElement(Span, _extends({
20
+ className: "dnb-p"
21
+ }, rest), text);
20
22
  }
21
23
  if (onClick) {
22
24
  return React.createElement(UploadFileButton, _extends({
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFileListLink.js","names":["React","classNames","Anchor","Button","Span","createSpacingClasses","UploadFileLink","props","onClick","text","href","download","rest","_objectWithoutProperties","_excluded","createElement","UploadFileButton","_extends","UploadFileAnchor","spacingClasses","size","icon","variant","className","target","rel"],"sources":["../../../../src/components/upload/UploadFileListLink.tsx"],"sourcesContent":["import React from 'react'\nimport classNames from 'classnames'\nimport Anchor from '../../components/Anchor'\nimport Button from '../button/Button'\nimport Span from '../../elements/Span'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingUtils'\n\nexport type UploadFileLinkProps = UploadFileAnchorProps &\n UploadFileButtonProps\n\nexport const UploadFileLink = (props: UploadFileLinkProps) => {\n const { onClick, text, href, download, ...rest } = props\n\n if (!onClick && !href) {\n return <Span {...rest}>{text}</Span>\n }\n\n if (onClick) {\n return <UploadFileButton text={text} onClick={onClick} {...rest} />\n }\n\n return (\n <UploadFileAnchor\n text={text}\n href={href}\n download={download}\n {...rest}\n />\n )\n}\n\nexport default UploadFileLink\n\ntype UploadFileButtonProps = {\n text: string\n onClick?: () => void\n} & SpacingProps\n\nconst UploadFileButton = (props: UploadFileButtonProps) => {\n const { text, onClick } = props\n\n const spacingClasses = createSpacingClasses(props)\n return (\n <Button\n size=\"small\"\n icon={false}\n variant=\"tertiary\"\n onClick={onClick}\n className={classNames(spacingClasses)}\n >\n {text}\n </Button>\n )\n}\n\ntype UploadFileAnchorProps = {\n text: string\n href: string\n download?: boolean\n} & SpacingProps\n\nconst UploadFileAnchor = (props: UploadFileAnchorProps) => {\n const { text, href, download } = props\n\n const spacingClasses = createSpacingClasses(props)\n\n return (\n <Anchor\n target=\"_blank\"\n href={href}\n download={download ? text : null}\n className={classNames('dnb-anchor--no-launch-icon', spacingClasses)}\n rel=\"noopener noreferrer\"\n >\n {text}\n </Anchor>\n )\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,OAAOC,MAAM,MAAM,kBAAkB;AACrC,OAAOC,IAAI,MAAM,qBAAqB;AAEtC,SAASC,oBAAoB,QAAQ,uBAAuB;AAK5D,OAAO,MAAMC,cAAc,GAAIC,KAA0B,IAAK;EAC5D,MAAM;MAAEC,OAAO;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAkB,CAAC,GAAGJ,KAAK;IAAdK,IAAI,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,SAAA;EAExD,IAAI,CAACN,OAAO,IAAI,CAACE,IAAI,EAAE;IACrB,OAAOV,KAAA,CAAAe,aAAA,CAACX,IAAI,EAAKQ,IAAI,EAAGH,IAAW,CAAC;EACtC;EAEA,IAAID,OAAO,EAAE;IACX,OAAOR,KAAA,CAAAe,aAAA,CAACC,gBAAgB,EAAAC,QAAA;MAACR,IAAI,EAAEA,IAAK;MAACD,OAAO,EAAEA;IAAQ,GAAKI,IAAI,CAAG,CAAC;EACrE;EAEA,OACEZ,KAAA,CAAAe,aAAA,CAACG,gBAAgB,EAAAD,QAAA;IACfR,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA;EAAS,GACfC,IAAI,CACT,CAAC;AAEN,CAAC;AAED,eAAeN,cAAc;AAO7B,MAAMU,gBAAgB,GAAIT,KAA4B,IAAK;EACzD,MAAM;IAAEE,IAAI;IAAED;EAAQ,CAAC,GAAGD,KAAK;EAE/B,MAAMY,cAAc,GAAGd,oBAAoB,CAACE,KAAK,CAAC;EAClD,OACEP,KAAA,CAAAe,aAAA,CAACZ,MAAM;IACLiB,IAAI,EAAC,OAAO;IACZC,IAAI,EAAE,KAAM;IACZC,OAAO,EAAC,UAAU;IAClBd,OAAO,EAAEA,OAAQ;IACjBe,SAAS,EAAEtB,UAAU,CAACkB,cAAc;EAAE,GAErCV,IACK,CAAC;AAEb,CAAC;AAQD,MAAMS,gBAAgB,GAAIX,KAA4B,IAAK;EACzD,MAAM;IAAEE,IAAI;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGJ,KAAK;EAEtC,MAAMY,cAAc,GAAGd,oBAAoB,CAACE,KAAK,CAAC;EAElD,OACEP,KAAA,CAAAe,aAAA,CAACb,MAAM;IACLsB,MAAM,EAAC,QAAQ;IACfd,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAQ,GAAGF,IAAI,GAAG,IAAK;IACjCc,SAAS,EAAEtB,UAAU,CAAC,4BAA4B,EAAEkB,cAAc,CAAE;IACpEM,GAAG,EAAC;EAAqB,GAExBhB,IACK,CAAC;AAEb,CAAC"}
1
+ {"version":3,"file":"UploadFileListLink.js","names":["React","classNames","Anchor","Button","Span","createSpacingClasses","UploadFileLink","props","onClick","text","href","download","rest","_objectWithoutProperties","_excluded","createElement","_extends","className","UploadFileButton","UploadFileAnchor","spacingClasses","size","icon","variant","target","rel"],"sources":["../../../../src/components/upload/UploadFileListLink.tsx"],"sourcesContent":["import React from 'react'\nimport classNames from 'classnames'\nimport Anchor from '../../components/Anchor'\nimport Button from '../button/Button'\nimport Span from '../../elements/Span'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingUtils'\n\nexport type UploadFileLinkProps = UploadFileAnchorProps &\n UploadFileButtonProps\n\nexport const UploadFileLink = (props: UploadFileLinkProps) => {\n const { onClick, text, href, download, ...rest } = props\n\n if (!onClick && !href) {\n return (\n <Span className=\"dnb-p\" {...rest}>\n {text}\n </Span>\n )\n }\n\n if (onClick) {\n return <UploadFileButton text={text} onClick={onClick} {...rest} />\n }\n\n return (\n <UploadFileAnchor\n text={text}\n href={href}\n download={download}\n {...rest}\n />\n )\n}\n\nexport default UploadFileLink\n\ntype UploadFileButtonProps = {\n text: string\n onClick?: () => void\n} & SpacingProps\n\nconst UploadFileButton = (props: UploadFileButtonProps) => {\n const { text, onClick } = props\n\n const spacingClasses = createSpacingClasses(props)\n return (\n <Button\n size=\"small\"\n icon={false}\n variant=\"tertiary\"\n onClick={onClick}\n className={classNames(spacingClasses)}\n >\n {text}\n </Button>\n )\n}\n\ntype UploadFileAnchorProps = {\n text: string\n href: string\n download?: boolean\n} & SpacingProps\n\nconst UploadFileAnchor = (props: UploadFileAnchorProps) => {\n const { text, href, download } = props\n\n const spacingClasses = createSpacingClasses(props)\n\n return (\n <Anchor\n target=\"_blank\"\n href={href}\n download={download ? text : null}\n className={classNames('dnb-anchor--no-launch-icon', spacingClasses)}\n rel=\"noopener noreferrer\"\n >\n {text}\n </Anchor>\n )\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,OAAOC,MAAM,MAAM,kBAAkB;AACrC,OAAOC,IAAI,MAAM,qBAAqB;AAEtC,SAASC,oBAAoB,QAAQ,uBAAuB;AAK5D,OAAO,MAAMC,cAAc,GAAIC,KAA0B,IAAK;EAC5D,MAAM;MAAEC,OAAO;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAkB,CAAC,GAAGJ,KAAK;IAAdK,IAAI,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,SAAA;EAExD,IAAI,CAACN,OAAO,IAAI,CAACE,IAAI,EAAE;IACrB,OACEV,KAAA,CAAAe,aAAA,CAACX,IAAI,EAAAY,QAAA;MAACC,SAAS,EAAC;IAAO,GAAKL,IAAI,GAC7BH,IACG,CAAC;EAEX;EAEA,IAAID,OAAO,EAAE;IACX,OAAOR,KAAA,CAAAe,aAAA,CAACG,gBAAgB,EAAAF,QAAA;MAACP,IAAI,EAAEA,IAAK;MAACD,OAAO,EAAEA;IAAQ,GAAKI,IAAI,CAAG,CAAC;EACrE;EAEA,OACEZ,KAAA,CAAAe,aAAA,CAACI,gBAAgB,EAAAH,QAAA;IACfP,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA;EAAS,GACfC,IAAI,CACT,CAAC;AAEN,CAAC;AAED,eAAeN,cAAc;AAO7B,MAAMY,gBAAgB,GAAIX,KAA4B,IAAK;EACzD,MAAM;IAAEE,IAAI;IAAED;EAAQ,CAAC,GAAGD,KAAK;EAE/B,MAAMa,cAAc,GAAGf,oBAAoB,CAACE,KAAK,CAAC;EAClD,OACEP,KAAA,CAAAe,aAAA,CAACZ,MAAM;IACLkB,IAAI,EAAC,OAAO;IACZC,IAAI,EAAE,KAAM;IACZC,OAAO,EAAC,UAAU;IAClBf,OAAO,EAAEA,OAAQ;IACjBS,SAAS,EAAEhB,UAAU,CAACmB,cAAc;EAAE,GAErCX,IACK,CAAC;AAEb,CAAC;AAQD,MAAMU,gBAAgB,GAAIZ,KAA4B,IAAK;EACzD,MAAM;IAAEE,IAAI;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGJ,KAAK;EAEtC,MAAMa,cAAc,GAAGf,oBAAoB,CAACE,KAAK,CAAC;EAElD,OACEP,KAAA,CAAAe,aAAA,CAACb,MAAM;IACLsB,MAAM,EAAC,QAAQ;IACfd,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAQ,GAAGF,IAAI,GAAG,IAAK;IACjCQ,SAAS,EAAEhB,UAAU,CAAC,4BAA4B,EAAEmB,cAAc,CAAE;IACpEK,GAAG,EAAC;EAAqB,GAExBhB,IACK,CAAC;AAEb,CAAC"}
@@ -438,7 +438,7 @@ type DatePickerDeprecatedProps = {
438
438
  */
439
439
  on_reset?: (event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>) => void;
440
440
  };
441
- export type DatePickerAllProps = DatePickerProps & DatePickerDeprecatedProps & SpacingProps & Omit<React.HTMLProps<HTMLElement>, 'ref' | 'children' | 'label' | 'size' | 'onChange' | 'onBlur' | 'onFocus' | 'onSubmit' | 'start'>;
441
+ export type DatePickerAllProps = DatePickerProps & DatePickerDeprecatedProps & SpacingProps & Omit<React.HTMLProps<HTMLElement>, 'ref' | 'children' | 'label' | 'size' | 'onChange' | 'onBlur' | 'onFocus' | 'onSubmit' | 'onReset' | 'start'>;
442
442
  declare function DatePicker(externalProps: DatePickerAllProps): import("react/jsx-runtime").JSX.Element;
443
443
  declare namespace DatePicker {
444
444
  var _supportsSpacingProps: boolean;