@dnb/eufemia 10.70.1 → 10.71.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/cjs/components/date-picker/DatePickerContext.d.ts +0 -1
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerFooter.d.ts +2 -2
- package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.js +25 -81
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +0 -2
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/hooks/useDates.d.ts +1 -12
- package/cjs/components/date-picker/hooks/useDates.js +1 -39
- package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
- package/cjs/components/date-picker/hooks/useInputDates.d.ts +14 -0
- package/cjs/components/date-picker/hooks/useInputDates.js +80 -0
- package/cjs/components/date-picker/hooks/useInputDates.js.map +1 -0
- package/cjs/components/input-masked/InputMaskedHooks.js +11 -7
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.d.ts +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +2 -1
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/input-masked/text-mask/adjustCaretPosition.js +2 -2
- package/cjs/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
- package/cjs/components/modal/ModalDocs.d.ts +2 -0
- package/cjs/components/modal/ModalDocs.js +11 -1
- package/cjs/components/modal/ModalDocs.js.map +1 -1
- package/cjs/components/tooltip/TooltipContainer.js +2 -1
- package/cjs/components/tooltip/TooltipContainer.js.map +1 -1
- package/cjs/components/upload/Upload.js +6 -3
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadDocs.d.ts +1 -0
- package/cjs/components/upload/UploadDocs.js +43 -1
- package/cjs/components/upload/UploadDocs.js.map +1 -1
- package/cjs/components/upload/UploadFileListCell.js +32 -12
- package/cjs/components/upload/UploadFileListCell.js.map +1 -1
- package/cjs/components/upload/types.d.ts +7 -0
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +3 -6
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +8 -3
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +3 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +11 -4
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +50 -17
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/types.d.ts +8 -5
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/FormError.d.ts +20 -13
- package/cjs/extensions/forms/utils/FormError.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/locales/en-GB.js +2 -2
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/components/date-picker/DatePickerContext.d.ts +0 -1
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerFooter.d.ts +2 -2
- package/components/date-picker/DatePickerFooter.js.map +1 -1
- package/components/date-picker/DatePickerInput.js +25 -81
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +0 -2
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/hooks/useDates.d.ts +1 -12
- package/components/date-picker/hooks/useDates.js +2 -38
- package/components/date-picker/hooks/useDates.js.map +1 -1
- package/components/date-picker/hooks/useInputDates.d.ts +14 -0
- package/components/date-picker/hooks/useInputDates.js +72 -0
- package/components/date-picker/hooks/useInputDates.js.map +1 -0
- package/components/input-masked/InputMaskedHooks.js +11 -7
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.d.ts +1 -1
- package/components/input-masked/InputMaskedUtils.js +2 -1
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/input-masked/text-mask/adjustCaretPosition.js +2 -2
- package/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
- package/components/modal/ModalDocs.d.ts +2 -0
- package/components/modal/ModalDocs.js +10 -0
- package/components/modal/ModalDocs.js.map +1 -1
- package/components/tooltip/TooltipContainer.js +2 -1
- package/components/tooltip/TooltipContainer.js.map +1 -1
- package/components/upload/Upload.js +6 -3
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadDocs.d.ts +1 -0
- package/components/upload/UploadDocs.js +42 -0
- package/components/upload/UploadDocs.js.map +1 -1
- package/components/upload/UploadFileListCell.js +32 -12
- package/components/upload/UploadFileListCell.js.map +1 -1
- package/components/upload/types.d.ts +7 -0
- package/components/upload/types.js.map +1 -1
- package/es/components/date-picker/DatePickerContext.d.ts +0 -1
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerFooter.d.ts +2 -2
- package/es/components/date-picker/DatePickerFooter.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.js +20 -75
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +0 -2
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/hooks/useDates.d.ts +1 -12
- package/es/components/date-picker/hooks/useDates.js +2 -38
- package/es/components/date-picker/hooks/useDates.js.map +1 -1
- package/es/components/date-picker/hooks/useInputDates.d.ts +14 -0
- package/es/components/date-picker/hooks/useInputDates.js +70 -0
- package/es/components/date-picker/hooks/useInputDates.js.map +1 -0
- package/es/components/input-masked/InputMaskedHooks.js +11 -7
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.d.ts +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +2 -1
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/input-masked/text-mask/adjustCaretPosition.js +2 -2
- package/es/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
- package/es/components/modal/ModalDocs.d.ts +2 -0
- package/es/components/modal/ModalDocs.js +6 -0
- package/es/components/modal/ModalDocs.js.map +1 -1
- package/es/components/tooltip/TooltipContainer.js +2 -1
- package/es/components/tooltip/TooltipContainer.js.map +1 -1
- package/es/components/upload/Upload.js +6 -3
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadDocs.d.ts +1 -0
- package/es/components/upload/UploadDocs.js +42 -0
- package/es/components/upload/UploadDocs.js.map +1 -1
- package/es/components/upload/UploadFileListCell.js +32 -12
- package/es/components/upload/UploadFileListCell.js.map +1 -1
- package/es/components/upload/types.d.ts +7 -0
- package/es/components/upload/types.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +3 -6
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +24 -16
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +3 -1
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +11 -4
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +51 -18
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/types.d.ts +8 -5
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/FormError.d.ts +20 -13
- package/es/extensions/forms/utils/FormError.js +1 -0
- package/es/extensions/forms/utils/FormError.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/locales/en-GB.js +2 -2
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +3 -6
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/extensions/forms/Field/Upload/Upload.js +3 -1
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +11 -4
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +51 -18
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/types.d.ts +8 -5
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/FormError.d.ts +20 -13
- package/extensions/forms/utils/FormError.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/locales/en-GB.js +2 -2
- package/shared/locales/en-GB.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/components/icon/lib/SvgComparison.d.ts +0 -2
- package/cjs/components/icon/lib/SvgComparison.js +0 -56
- package/cjs/components/icon/lib/SvgComparison.js.map +0 -1
- package/components/icon/lib/SvgComparison.d.ts +0 -2
- package/components/icon/lib/SvgComparison.js +0 -49
- package/components/icon/lib/SvgComparison.js.map +0 -1
- package/es/components/icon/lib/SvgComparison.d.ts +0 -2
- package/es/components/icon/lib/SvgComparison.js +0 -49
- package/es/components/icon/lib/SvgComparison.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerInput.js","names":["_react","_interopRequireWildcard","require","_addDays","_interopRequireDefault","_addMonths","_addYears","_isValid","_parseISO","_classnames","_TextMask","_Button","_Input","_componentHelper","_helpers","_DatePickerCalc","_DatePickerContext","_shared","_usePartialDates","_span","_excluded","_excluded2","_excluded3","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultProps","maskOrder","maskPlaceholder","separatorRegExp","statusState","opened","DatePickerInput","externalProps","props","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","focusState","setFocusState","useState","partialDatesRef","setPartialDates","usePartialDates","invalidDatesRef","useRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","correctInvalidDate","useContext","DatePickerContext","translation","useTranslation","DatePicker","modeDate","useMemo","inputDates","inputRefs","startDayRef","current","undefined","startMonthRef","startYearRef","endDayRef","endMonthRef","endYearRef","dateRefs","startDay","startMonth","startYear","endDay","endMonth","endYear","syncDateRefs","temporaryDates","refList","focusMode","maskList","separators","match","split","reduce","acc","cur","shift","pasteHandler","useCallback","event","success","clipboardData","window","getData","preventDefault","possibleFormats","date","sep","replace","reverse","join","index","convertStringToDate","dateFormat","mode","error","warn","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","isValid","callOnType","_ref2","getDates","partialStartDate","partialEndDate","parsedStartDate","parseISO","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","typedDates","start_date","end_date","prepareCounting","_ref3","keyCode","target","isDate","getAttribute","isInRange","count","addDays","addMonths","addYears","setDate","type","persist","fallback","year","getFullYear","month","getMonth","day","getDate","Date","parseFloat","isValidDate","test","dateString","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","onFocusHandler","isNaN","setCursorPosition","onBlurHandler","onKeyDownHandler","key","selectionStart","selectionEnd","firstSelectionStart","firstSelectionEnd","wait","IS_IOS","secondSelectionStart","refListArray","findIndex","_ref4","isLastChar","isFirstChar","isMovingForward","isExplicitForward","hasNextField","_refListArray","nextSibling","withoutDelay","name","toCapitalized","slice","isMovingBackward","isPressingBackspace","_refListArray2","prevSibling","endPos","onInputHandler","currentTarget","IS_ANDROID","nativeEvent","inputType","getPlaceholderChar","generateDateList","element","map","placeholderChar","isRangeLabel","onInput","onKeyDown","onPaste","DateField","React","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","className","classnames","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","ariaLabel","openPickerText","validateDOMAttributes","SubmitElement","SubmitButton","Button","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","_default","exports","position","options","focus","select","setSelectionRange","process","env","NODE_ENV","setTimeout","_ref5","guide","inputMode","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","dateRefValue","inputDateValue","duration","Promise"],"sources":["../../../../src/components/date-picker/DatePickerInput.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n MutableRefObject,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\n// date-fns\nimport addDays from 'date-fns/addDays'\nimport addMonths from 'date-fns/addMonths'\nimport addYears from 'date-fns/addYears'\nimport isValid from 'date-fns/isValid'\nimport parseISO from 'date-fns/parseISO'\n\nimport classnames from 'classnames'\nimport TextMask, { TextMaskProps } from '../input-masked/TextMask'\nimport Button from '../button/Button'\nimport Input, { SubmitButton } from '../input/Input'\nimport type { InputInputElement, InputSize } from '../Input'\nimport {\n warn,\n validateDOMAttributes,\n toCapitalized,\n} from '../../shared/component-helper'\nimport { IS_ANDROID, IS_IOS } from '../../shared/helpers'\nimport { convertStringToDate } from './DatePickerCalc'\nimport DatePickerContext from './DatePickerContext'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport { ReturnObject } from './DatePickerProvider'\nimport { DatePickerEventAttributes } from './DatePicker'\nimport { useTranslation } from '../../shared'\nimport { DatePickerInputDates } from './hooks/useDates'\nimport usePartialDates from './hooks/usePartialDates'\n\nexport type DatePickerInputProps = Omit<\n React.HTMLProps<HTMLInputElement>,\n | 'children'\n | 'ref'\n | 'value'\n | 'size'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'label'\n> & {\n selectedDateTitle?: string\n maskOrder?: string\n maskPlaceholder?: string\n separatorRegExp?: RegExp\n submitAttributes?: Record<string, unknown>\n isRange?: boolean\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 /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `input_element=\"input\"`, a React element, or a render function `input_element={(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 * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n showInput?: boolean\n onSubmit?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onChange?: (\n event: ReturnObject<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n}\n\nexport type InvalidDates = {\n invalidDate?: string\n invalidStartDate?: string\n invalidEndDate?: string\n}\n\nconst defaultProps: DatePickerInputProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRegExp: /[-/ ]/g,\n statusState: 'error',\n opened: false,\n}\n\nfunction DatePickerInput(externalProps: DatePickerInputProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n isRange,\n maskOrder,\n separatorRegExp,\n id,\n title,\n submitAttributes,\n maskPlaceholder, // eslint-disable-line\n onFocus,\n onBlur,\n onChange, // eslint-disable-line\n onSubmit, // eslint-disable-line\n selectedDateTitle, // eslint-disable-line\n showInput, // eslint-disable-line\n inputElement,\n lang,\n disabled,\n skeleton,\n opened,\n size,\n status,\n statusState,\n statusProps,\n\n ...attributes\n } = props\n const [focusState, setFocusState] = useState<string>('virgin')\n\n const { partialDatesRef, setPartialDates } = usePartialDates()\n\n const invalidDatesRef = useRef<InvalidDates>({\n invalidStartDate: null,\n invalidEndDate: null,\n })\n const isDateFullyFilledOutRef = useRef(false)\n\n const {\n updateDates,\n callOnChangeHandler,\n hasHadValidDate,\n getReturnObject,\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n startDate,\n endDate,\n props: { onType, label, correctInvalidDate },\n } = useContext(DatePickerContext)\n\n const translation = useTranslation().DatePicker\n\n const modeDate = useMemo(\n () => ({\n startDate,\n endDate,\n }),\n [startDate, endDate]\n )\n\n const inputDates = useMemo(\n () => ({\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n }),\n [\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n ]\n )\n\n const inputRefs = useRef<\n Record<string, MutableRefObject<HTMLInputElement>>\n >({\n startDayRef: { current: undefined },\n startMonthRef: { current: undefined },\n startYearRef: { current: undefined },\n endDayRef: { current: undefined },\n endMonthRef: { current: undefined },\n endYearRef: { current: undefined },\n })\n\n const dateRefs = useRef<Record<string, string>>({\n startDay: '',\n startMonth: '',\n startYear: '',\n endDay: '',\n endMonth: '',\n endYear: '',\n })\n\n // Keep dateRefs in sync with inputDates on re-render\n syncDateRefs(dateRefs, inputDates)\n\n const temporaryDates = useRef<Record<string, Date>>({\n startDate: undefined,\n endDate: undefined,\n })\n\n const refList = useRef<Array<MutableRefObject<HTMLInputElement>>>()\n\n const focusMode = useRef<string>()\n\n const maskList = useMemo(() => {\n const separators = maskOrder.match(separatorRegExp)\n\n return maskOrder\n .split(separatorRegExp)\n .reduce<Array<string>>((acc, cur) => {\n if (!cur) {\n return acc\n }\n\n acc.push(cur)\n\n if (separators.length > 0) {\n // makes sure that separators are added at the correct places and removed from array when added\n acc.push(separators.shift())\n }\n\n return acc\n }, [])\n }, [maskOrder, separatorRegExp])\n\n const pasteHandler = useCallback(\n async (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!focusMode.current) {\n return // Stop here\n }\n\n const success = (\n event.clipboardData ||\n (typeof window !== 'undefined' && window['clipboardData'])\n ).getData('text')\n\n if (!success) {\n return // Stop here\n }\n\n event.preventDefault()\n\n try {\n const separators = ['.', '/']\n const possibleFormats = ['yyyy-MM-dd']\n\n // TODO: Merge these loops\n possibleFormats.forEach((date) => {\n separators.forEach((sep) => {\n possibleFormats.push(date.replace(/-/g, sep))\n })\n })\n\n possibleFormats.forEach((date) => {\n possibleFormats.push(date.split('').reverse().join(''))\n })\n\n let date: Date\n let index = 0\n\n for (index; index < possibleFormats.length; ++index) {\n date = convertStringToDate(success, {\n dateFormat: possibleFormats[index],\n })\n\n if (date) {\n break\n }\n }\n\n const mode =\n focusMode.current === 'start' ? 'startDate' : 'endDate'\n\n if (date) {\n updateDates({\n [mode]: date,\n })\n }\n } catch (error: unknown) {\n warn(error)\n }\n },\n [updateDates]\n )\n\n const callOnChangeAsInvalid = useCallback(\n (state: {\n endDate?: Date\n starDate?: Date\n event: React.ChangeEvent<HTMLInputElement>\n }) => {\n updateDates(\n {\n hoverDate: null,\n },\n (dates) => {\n // Should fire if user has filled out an invalid date,\n // or if the date was valid. Like if the user has pressed backspace or removed the valid date.\n if (isDateFullyFilledOutRef.current || hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...state,\n ...dates,\n }\n callOnChangeHandler({\n startDate,\n endDate,\n event,\n ...invalidDatesRef.current,\n })\n }\n }\n )\n },\n [updateDates, callOnChangeHandler, hasHadValidDate]\n )\n\n const callOnChange = useCallback(\n ({\n startDate,\n endDate,\n event,\n }: {\n startDate?: Date\n endDate?: Date\n event:\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n }) => {\n const state = {}\n if (typeof startDate !== 'undefined' && isValid(startDate)) {\n state['startDate'] = startDate\n }\n if (!isRange) {\n endDate = startDate\n }\n if (typeof endDate !== 'undefined' && isValid(endDate)) {\n state['endDate'] = endDate\n }\n\n updateDates(state, (dates) => {\n if (\n (typeof startDate !== 'undefined' && isValid(startDate)) ||\n (typeof endDate !== 'undefined' && isValid(endDate))\n ) {\n callOnChangeHandler({\n event,\n ...dates,\n ...invalidDatesRef.current,\n })\n }\n })\n },\n [updateDates, callOnChangeHandler, isRange]\n )\n\n const callOnType = useCallback(\n ({ event }: { event: React.ChangeEvent<HTMLInputElement> }) => {\n const getDates = () =>\n ['start', 'end'].reduce(\n (acc, mode) => {\n acc[`${mode}Date`] = [\n dateRefs.current[`${mode}Year`] ||\n inputDates[`__${mode}Year`] ||\n 'yyyy',\n dateRefs.current[`${mode}Month`] ||\n inputDates[`__${mode}Month`] ||\n 'mm',\n dateRefs.current[`${mode}Day`] ||\n inputDates[`__${mode}Day`] ||\n 'dd',\n ].join('-')\n return acc\n },\n { startDate: undefined, endDate: undefined }\n )\n\n // Get the typed dates, so we can ...\n const { startDate, endDate } = getDates()\n\n // Get the partial dates, so we can know if something was typed or not in an optional date field\n setPartialDates({\n partialStartDate: startDate,\n // Only set endDate if in range mode\n ...(isRange && { partialEndDate: endDate }),\n })\n\n const parsedStartDate = parseISO(startDate)\n const parsedEndDate = parseISO(endDate)\n\n const isStartDateValid = isValid(parsedStartDate)\n const isEndDateValid = isValid(parsedEndDate)\n\n const {\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject\n } = getReturnObject({\n startDate: isStartDateValid ? parsedStartDate : null,\n endDate: isEndDateValid ? parsedEndDate : null,\n event,\n ...partialDatesRef.current,\n ...invalidDatesRef.current,\n })\n\n // Re-assigns dates to the typed date, instead of `null` from getReturnObject, if dates are invalid\n const typedDates = {\n ...(!isRange && is_valid === false && { date: startDate }),\n ...(isRange &&\n is_valid_start_date === false && { start_date: startDate }),\n ...(isRange &&\n is_valid_end_date === false && { end_date: endDate }),\n }\n\n onType?.({\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject,\n ...typedDates,\n })\n },\n [\n setPartialDates,\n isRange,\n getReturnObject,\n partialDatesRef,\n onType,\n inputDates,\n ]\n )\n\n const prepareCounting = useCallback(\n async ({\n keyCode,\n target,\n event,\n }: {\n keyCode: string\n target: HTMLInputElement\n event: React.KeyboardEvent<HTMLInputElement>\n }) => {\n try {\n const isDate = target\n .getAttribute('class')\n .match(/__input--(day|month|year)($|\\s)/)[1]\n\n const isInRange = target\n .getAttribute('id')\n .match(/-(start|end)-(day|month|year)/)[1]\n\n let date = isInRange === 'start' ? startDate : endDate\n\n // do nothing if date is not set yet\n if (!date) {\n return\n }\n\n const count = keyCode === 'ArrowUp' ? 1 : -1\n\n if (keyCode === 'ArrowUp' || keyCode === 'ArrowDown') {\n switch (isDate) {\n case 'day':\n date = addDays(date, count)\n break\n case 'month':\n date = addMonths(date, count)\n break\n case 'year':\n date = addYears(date, count)\n break\n }\n }\n\n callOnChange({\n [isInRange === 'start' ? 'startDate' : 'endDate']: date,\n event,\n })\n } catch (e) {\n warn(e)\n }\n },\n [startDate, endDate, callOnChange]\n )\n\n const setDate = useCallback(\n (\n event: React.ChangeEvent<HTMLInputElement>,\n mode: 'start' | 'end',\n type: 'Day' | 'Month' | 'Year'\n ) => {\n event.persist() // since we have later a state update and afterwards the callback\n\n const value = (event.target as HTMLInputElement).value\n\n dateRefs.current[`${mode}${type}`] = value\n\n if (modeDate[`${mode}Date`]) {\n temporaryDates.current[`${mode}Date`] = modeDate[`${mode}Date`]\n }\n\n const fallback = temporaryDates.current[`${mode}Date`]\n\n // provide fallbacks to create a temp fallback\n const year =\n dateRefs.current[`${mode}Year`] ||\n (fallback && fallback.getFullYear())\n const month =\n dateRefs.current[`${mode}Month`] ||\n (fallback && fallback.getMonth() + 1)\n const day =\n dateRefs.current[`${mode}Day`] || (fallback && fallback.getDate())\n\n // calculate new date\n const date = new Date(\n parseFloat(String(year)),\n parseFloat(String(month)) - 1,\n parseFloat(String(day))\n )\n\n const isValidDate =\n !/[^0-9]/.test(String(day)) &&\n !/[^0-9]/.test(String(month)) &&\n !/[^0-9]/.test(String(year)) &&\n isValid(date) &&\n date.getDate() == parseFloat(String(day)) &&\n date.getMonth() + 1 == parseFloat(String(month)) &&\n date.getFullYear() == parseFloat(String(year))\n\n const dateString = `${year}-${month}-${day}`\n\n isDateFullyFilledOutRef.current =\n /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(dateString)\n\n // update the date\n if (isValidDate) {\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: null }\n : { invalidEndDate: null }),\n }\n\n callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n updateDates({\n [`${mode}Date`]: null,\n [`__${mode}${type}`]: value,\n })\n\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: dateString }\n : { invalidEndDate: dateString }),\n }\n\n callOnChangeAsInvalid({\n [`${mode}Date`]: null,\n event,\n })\n }\n\n callOnType({ event })\n },\n [\n updateDates,\n callOnChange,\n callOnChangeAsInvalid,\n callOnType,\n modeDate,\n dateRefs,\n temporaryDates,\n ]\n )\n\n const dateSetters = useMemo(\n () => ({\n set_startDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Day')\n },\n\n set_startMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Month')\n },\n\n set_startYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Year')\n },\n\n set_endDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Day')\n },\n\n set_endMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Month')\n },\n\n set_endYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Year')\n },\n }),\n [setDate]\n )\n\n const onFocusHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setFocusState('focus')\n\n onFocus?.({\n ...event,\n ...getReturnObject({ event }),\n })\n\n if (isNaN(parseFloat(event.target.value))) {\n setCursorPosition(event.target)\n }\n },\n [getReturnObject, onFocus]\n )\n\n const onBlurHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n focusMode.current = null\n setFocusState('blur')\n\n onBlur?.({\n ...event,\n ...getReturnObject({ event, ...partialDatesRef.current }),\n })\n },\n [onBlur, getReturnObject, partialDatesRef]\n )\n\n const onKeyDownHandler = useCallback(\n async (event: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode = event.key\n const target = event.target as HTMLInputElement\n\n if (\n correctInvalidDate &&\n target.selectionStart !== target.selectionEnd\n ) {\n setCursorPosition(target)\n }\n\n // Only to process key up and down press\n switch (keyCode) {\n case 'ArrowUp':\n case 'ArrowDown':\n event.persist()\n event.preventDefault()\n prepareCounting({ event, keyCode, target })\n return false\n case 'Tab':\n return false\n }\n\n // The rest is for value entry\n\n const size = parseFloat(target.getAttribute('size'))\n const firstSelectionStart = target.selectionStart\n const firstSelectionEnd = target.selectionEnd\n\n // To get the correct position afterwards.\n // Use 10ms in order to make it work on iOS Safari\n await wait(IS_IOS ? 10 : 1)\n\n const secondSelectionStart = target.selectionStart\n\n // Always false (since the old keycode function set number keys to undefined) but needed to not break tests\n const isValid = /[0-9]/g.test(keyCode)\n const refListArray = refList.current\n\n const index = refListArray.findIndex(\n ({ current }) => current === target\n )\n\n const isLastChar = secondSelectionStart === size\n const isFirstChar = firstSelectionStart === size\n\n const isMovingForward =\n keyCode !== 'ArrowLeft' &&\n keyCode !== 'Backspace' &&\n isValid &&\n isLastChar\n\n const isExplicitForward =\n (keyCode === 'ArrowRight' || keyCode === 'Enter') && isFirstChar\n\n const hasNextField = index < refListArray.length - 1\n\n if (hasNextField && (isMovingForward || isExplicitForward)) {\n // stop in case there is no next input element\n if (!refListArray[index + 1].current) {\n return // stop here\n }\n const nextSibling = refListArray[index + 1]?.current\n\n if (nextSibling) {\n setCursorPosition(nextSibling, 0, { withoutDelay: true })\n }\n\n // When the cursor is at the end of the input\n // and the user types a number, we want to set the value on the next input.\n if (\n parseFloat(keyCode) <= 9 &&\n firstSelectionStart === target.size\n ) {\n const name = toCapitalized(\n nextSibling\n .getAttribute('class')\n .match(/__input--(day|month|year)($|\\s)/)[1]\n )\n const mode = nextSibling\n .getAttribute('id')\n .match(/-(start|end)-(day|month|year)/)[1]\n\n dateSetters[`set_${mode}${name}`]({\n persist: () => null,\n ...event,\n target: {\n value: keyCode + nextSibling.value.slice(1),\n },\n })\n\n setCursorPosition(nextSibling, 1)\n }\n } else if (index > 0 && firstSelectionStart === firstSelectionEnd) {\n const isMovingBackward =\n keyCode === 'ArrowLeft' && firstSelectionStart === 0\n const isPressingBackspace =\n keyCode === 'Backspace' && firstSelectionStart <= 1\n\n if (isMovingBackward || isPressingBackspace) {\n const prevSibling = refListArray[index - 1]?.current\n if (prevSibling) {\n const endPos = prevSibling.value.length\n setCursorPosition(prevSibling, endPos, {\n withoutDelay: true,\n })\n }\n }\n }\n },\n [correctInvalidDate, dateSetters, prepareCounting]\n )\n\n const onInputHandler = useCallback(\n (event) => {\n const target = event.currentTarget\n\n // Add support for \"backspace\" on Android virtual keyboard\n if (\n IS_ANDROID &&\n event.nativeEvent.inputType === 'deleteContentBackward' &&\n target.selectionStart === 0 &&\n target.selectionEnd === 0\n ) {\n onKeyDownHandler({\n ...event,\n key: 'Backspace',\n })\n }\n },\n [onKeyDownHandler]\n )\n\n const getPlaceholderChar = useCallback(\n (value: string) => {\n const index = maskOrder.indexOf(value)\n return maskPlaceholder[index]\n },\n [maskOrder, maskPlaceholder]\n )\n\n // TODO: Replace with MultiInputMask\n const generateDateList = useCallback(\n (\n element: Omit<React.HTMLProps<HTMLInputElement>, 'size'> &\n DatePickerEventAttributes,\n mode: 'start' | 'end'\n ) => {\n return maskList.map((value, i) => {\n const state = value.slice(0, 1)\n const placeholderChar = getPlaceholderChar(value)\n const { day, month, year } = translation\n const isRangeLabel = isRange ? `${translation[mode]} ` : ''\n\n if (!separatorRegExp.test(value)) {\n if (!inputElement) {\n element = {\n ...element,\n onInput: onInputHandler,\n onKeyDown: onKeyDownHandler,\n onPaste: pasteHandler,\n onFocus: (e) => {\n focusMode.current = mode\n onFocusHandler(e)\n },\n onBlur: onBlurHandler,\n placeholderChar,\n }\n }\n\n // this makes it possible to use a vanilla <input /> like: input_element=\"input\"\n const DateField =\n inputElement && React.isValidElement(inputElement)\n ? inputElement.type\n : InputElement\n\n const inputSizeClassName =\n size && `dnb-date-picker__input--${size}`\n\n switch (state) {\n case 'd':\n refList.current.push(inputRefs.current[`${mode}DayRef`])\n\n return (\n <React.Fragment key={'dd' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-day`}\n key={'di' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--day',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}DayRef`]}\n onChange={dateSetters[`set_${mode}Day`]}\n value={inputDates[`__${mode}Day`] || ''}\n aria-labelledby={`${id}-${mode}-day-label`}\n />\n <label\n key={'dl' + i}\n hidden\n id={`${id}-${mode}-day-label`}\n htmlFor={`${id}-${mode}-day`}\n >\n {isRangeLabel + day}\n </label>\n </React.Fragment>\n )\n case 'm':\n refList.current.push(inputRefs.current[`${mode}MonthRef`])\n\n return (\n <React.Fragment key={'mm' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-month`}\n key={'mi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--month',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}MonthRef`]}\n onChange={dateSetters[`set_${mode}Month`]}\n value={inputDates[`__${mode}Month`] || ''}\n aria-labelledby={`${id}-${mode}-month-label`}\n />\n <label\n key={'ml' + i}\n hidden\n id={`${id}-${mode}-month-label`}\n htmlFor={`${id}-${mode}-month`}\n >\n {isRangeLabel + month}\n </label>\n </React.Fragment>\n )\n case 'y':\n refList.current.push(inputRefs.current[`${mode}YearRef`])\n\n return (\n <React.Fragment key={'yy' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-year`}\n key={'yi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--year',\n inputSizeClassName\n )}\n size={4}\n mask={[/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}YearRef`]}\n onChange={dateSetters[`set_${mode}Year`]}\n value={inputDates[`__${mode}Year`] || ''}\n aria-labelledby={`${id}-${mode}-year-label`}\n />\n <label\n key={'yl' + i}\n hidden\n id={`${id}-${mode}-year-label`}\n htmlFor={`${id}-${mode}-year`}\n >\n {isRangeLabel + year}\n </label>\n </React.Fragment>\n )\n }\n }\n return (\n <span\n key={'s' + i}\n className=\"dnb-date-picker--separator\"\n aria-hidden\n >\n {placeholderChar}\n </span>\n )\n })\n },\n [\n maskList,\n getPlaceholderChar,\n translation,\n isRange,\n separatorRegExp,\n inputElement,\n size,\n onInputHandler,\n onKeyDownHandler,\n pasteHandler,\n onBlurHandler,\n onFocusHandler,\n id,\n dateSetters,\n inputDates,\n ]\n )\n\n const renderInputElement = useCallback(\n (\n element: React.HTMLProps<HTMLInputElement> &\n DatePickerEventAttributes\n ) => {\n refList.current = []\n const startDateList = generateDateList(element, 'start')\n const endDateList = generateDateList(element, 'end')\n\n return (\n <span\n id={`${id}-input`}\n className=\"dnb-date-picker__input__wrapper\"\n >\n {startDateList}\n {isRange && (\n <span className=\"dnb-date-picker--separator\" aria-hidden>\n {' – '}\n </span>\n )}\n {isRange && endDateList}\n </span>\n )\n },\n [id, isRange, generateDateList]\n )\n\n const ariaLabel = useMemo(\n () =>\n selectedDateTitle\n ? `${selectedDateTitle}, ${translation.openPickerText}`\n : translation.openPickerText,\n [selectedDateTitle, translation]\n )\n\n validateDOMAttributes(props, attributes)\n validateDOMAttributes(null, submitAttributes)\n\n const SubmitElement: React.ElementType = useMemo(\n () => (showInput ? SubmitButton : Button),\n [showInput]\n )\n\n if (!showInput) {\n // Use Button inner ref\n submitAttributes.innerRef = submitAttributes.ref\n submitAttributes.ref = null\n }\n\n return (\n <fieldset className=\"dnb-date-picker__fieldset\" lang={lang}>\n {label && <legend className=\"dnb-sr-only\">{label}</legend>}\n <Input\n id={`${id}__input`}\n input_state={disabled ? 'disabled' : focusState}\n input_element={\n inputElement && typeof inputElement !== 'string'\n ? typeof inputElement === 'function'\n ? inputElement(props)\n : inputElement\n : renderInputElement\n }\n disabled={disabled || skeleton}\n skeleton={skeleton}\n size={size}\n status={!opened ? status : null}\n status_state={statusState}\n {...statusProps}\n submit_element={\n <SubmitElement\n id={id}\n disabled={disabled}\n skeleton={skeleton}\n className={classnames(\n showInput && 'dnb-button--input-button',\n opened ? 'dnb-button--active' : null\n )}\n aria-label={ariaLabel}\n title={title}\n size={size}\n status={status}\n status_state={statusState}\n type=\"button\"\n icon=\"calendar\"\n variant=\"secondary\"\n on_submit={onSubmit}\n on_click={onSubmit}\n {...submitAttributes}\n {...statusProps}\n />\n }\n lang={lang}\n {...attributes}\n />\n </fieldset>\n )\n}\n\nexport default DatePickerInput\n\nfunction setCursorPosition(\n target: HTMLInputElement,\n position = 0,\n options?: { withoutDelay?: boolean }\n) {\n target.focus()\n\n const select = () => {\n target.setSelectionRange(position, position)\n }\n\n // Delay for correct iOS Safari appearance\n if (!options?.withoutDelay && process.env.NODE_ENV !== 'test') {\n setTimeout(select, 0)\n } else {\n select()\n }\n}\n\nfunction InputElement({ className, value, ...props }: TextMaskProps) {\n return (\n <TextMask\n guide={true}\n inputMode=\"numeric\"\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n spellCheck={false}\n autoCorrect=\"off\"\n className={classnames(\n className,\n /\\d+/.test(String(value)) && 'dnb-date-picker__input--highlight'\n )}\n value={value}\n {...props}\n />\n )\n}\n\nfunction syncDateRefs(\n dateRefs: React.MutableRefObject<Record<string, string>>,\n inputDates: DatePickerInputDates\n) {\n for (const date in dateRefs.current) {\n const dateRefValue = dateRefs.current[date]\n const inputDateValue = inputDates[`__${date}`]\n\n if (dateRefValue !== inputDateValue) {\n dateRefs.current[date] = inputDateValue\n }\n }\n}\n\nconst wait = (duration: number) =>\n new Promise((r) => setTimeout(r, duration))\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DatePickerInput.js","names":["_react","_interopRequireWildcard","require","_isValid","_interopRequireDefault","_parseISO","_classnames","_TextMask","_Button","_Input","_componentHelper","_helpers","_DatePickerCalc","_DatePickerContext","_shared","_usePartialDates","_useInputDates","_span","_excluded","_excluded2","_excluded3","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultProps","maskOrder","maskPlaceholder","separatorRegExp","statusState","opened","DatePickerInput","externalProps","props","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","focusState","setFocusState","useState","partialDatesRef","setPartialDates","usePartialDates","invalidDatesRef","useRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","getReturnObject","startDate","endDate","onType","label","correctInvalidDate","useContext","DatePickerContext","inputDates","updateInputDates","useInputDates","translation","useTranslation","DatePicker","hasHadValidDate","isValid","modeDate","useMemo","inputRefs","startDayRef","current","undefined","startMonthRef","startYearRef","endDayRef","endMonthRef","endYearRef","dateRefs","startDay","startMonth","startYear","endDay","endMonth","endYear","syncDateRefs","temporaryDates","refList","focusMode","maskList","separators","match","split","reduce","acc","cur","shift","pasteHandler","useCallback","event","success","clipboardData","window","getData","preventDefault","possibleFormats","date","sep","replace","reverse","join","index","convertStringToDate","dateFormat","mode","error","warn","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","callOnType","_ref2","getDates","partialStartDate","partialEndDate","parsedStartDate","parseISO","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","typedDates","start_date","end_date","setDate","type","persist","target","fallback","year","getFullYear","month","getMonth","day","getDate","Date","parseFloat","isValidDate","test","dateString","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","onFocusHandler","isNaN","setCursorPosition","onBlurHandler","onKeyDownHandler","keyCode","key","selectionStart","selectionEnd","getAttribute","firstSelectionStart","firstSelectionEnd","wait","IS_IOS","secondSelectionStart","refListArray","findIndex","_ref3","isLastChar","isFirstChar","isMovingForward","isExplicitForward","hasNextField","_refListArray","nextSibling","withoutDelay","name","toCapitalized","slice","isMovingBackward","isPressingBackspace","_refListArray2","prevSibling","endPos","onInputHandler","currentTarget","IS_ANDROID","nativeEvent","inputType","getPlaceholderChar","generateDateList","element","map","placeholderChar","isRangeLabel","onInput","onKeyDown","onPaste","DateField","React","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","className","classnames","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","ariaLabel","openPickerText","validateDOMAttributes","SubmitElement","SubmitButton","Button","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","_default","exports","position","options","focus","select","setSelectionRange","process","env","NODE_ENV","setTimeout","_ref4","guide","inputMode","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","dateRefValue","inputDateValue","duration","Promise"],"sources":["../../../../src/components/date-picker/DatePickerInput.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n MutableRefObject,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\n// date-fns\nimport isValid from 'date-fns/isValid'\nimport parseISO from 'date-fns/parseISO'\n\nimport classnames from 'classnames'\nimport TextMask, { TextMaskProps } from '../input-masked/TextMask'\nimport Button from '../button/Button'\nimport Input, { SubmitButton } from '../input/Input'\nimport type { InputInputElement, InputSize } from '../Input'\nimport {\n warn,\n validateDOMAttributes,\n toCapitalized,\n} from '../../shared/component-helper'\nimport { IS_ANDROID, IS_IOS } from '../../shared/helpers'\nimport { convertStringToDate } from './DatePickerCalc'\nimport DatePickerContext from './DatePickerContext'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport { ReturnObject } from './DatePickerProvider'\nimport { DatePickerEventAttributes } from './DatePicker'\nimport { useTranslation } from '../../shared'\nimport usePartialDates from './hooks/usePartialDates'\nimport useInputDates, { DatePickerInputDates } from './hooks/useInputDates'\n\nexport type DatePickerInputProps = Omit<\n React.HTMLProps<HTMLInputElement>,\n | 'children'\n | 'ref'\n | 'value'\n | 'size'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'label'\n> & {\n selectedDateTitle?: string\n maskOrder?: string\n maskPlaceholder?: string\n separatorRegExp?: RegExp\n submitAttributes?: Record<string, unknown>\n isRange?: boolean\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 /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `input_element=\"input\"`, a React element, or a render function `input_element={(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 * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n showInput?: boolean\n onSubmit?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onChange?: (\n event: ReturnObject<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n}\n\nexport type InvalidDates = {\n invalidDate?: string\n invalidStartDate?: string\n invalidEndDate?: string\n}\n\nconst defaultProps: DatePickerInputProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRegExp: /[-/ ]/g,\n statusState: 'error',\n opened: false,\n}\n\nfunction DatePickerInput(externalProps: DatePickerInputProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n isRange,\n maskOrder,\n separatorRegExp,\n id,\n title,\n submitAttributes,\n maskPlaceholder, // eslint-disable-line\n onFocus,\n onBlur,\n onChange, // eslint-disable-line\n onSubmit, // eslint-disable-line\n selectedDateTitle, // eslint-disable-line\n showInput, // eslint-disable-line\n inputElement,\n lang,\n disabled,\n skeleton,\n opened,\n size,\n status,\n statusState,\n statusProps,\n\n ...attributes\n } = props\n const [focusState, setFocusState] = useState<string>('virgin')\n\n const { partialDatesRef, setPartialDates } = usePartialDates()\n\n const invalidDatesRef = useRef<InvalidDates>({\n invalidStartDate: null,\n invalidEndDate: null,\n })\n const isDateFullyFilledOutRef = useRef(false)\n\n const {\n updateDates,\n callOnChangeHandler,\n getReturnObject,\n startDate,\n endDate,\n props: { onType, label, correctInvalidDate },\n } = useContext(DatePickerContext)\n\n const { inputDates, updateInputDates } = useInputDates({\n startDate,\n endDate,\n })\n\n const translation = useTranslation().DatePicker\n\n const hasHadValidDate = isValid(startDate) || isValid(endDate)\n\n const modeDate = useMemo(\n () => ({\n startDate,\n endDate,\n }),\n [startDate, endDate]\n )\n\n const inputRefs = useRef<\n Record<string, MutableRefObject<HTMLInputElement>>\n >({\n startDayRef: { current: undefined },\n startMonthRef: { current: undefined },\n startYearRef: { current: undefined },\n endDayRef: { current: undefined },\n endMonthRef: { current: undefined },\n endYearRef: { current: undefined },\n })\n\n const dateRefs = useRef<DatePickerInputDates>({\n startDay: '',\n startMonth: '',\n startYear: '',\n endDay: '',\n endMonth: '',\n endYear: '',\n })\n\n // Keep dateRefs in sync with inputDates on re-render\n syncDateRefs(dateRefs, inputDates)\n\n const temporaryDates = useRef<Record<string, Date>>({\n startDate: undefined,\n endDate: undefined,\n })\n\n const refList = useRef<Array<MutableRefObject<HTMLInputElement>>>()\n\n const focusMode = useRef<string>()\n\n const maskList = useMemo(() => {\n const separators = maskOrder.match(separatorRegExp)\n\n return maskOrder\n .split(separatorRegExp)\n .reduce<Array<string>>((acc, cur) => {\n if (!cur) {\n return acc\n }\n\n acc.push(cur)\n\n if (separators.length > 0) {\n // makes sure that separators are added at the correct places and removed from array when added\n acc.push(separators.shift())\n }\n\n return acc\n }, [])\n }, [maskOrder, separatorRegExp])\n\n const pasteHandler = useCallback(\n async (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!focusMode.current) {\n return // Stop here\n }\n\n const success = (\n event.clipboardData ||\n (typeof window !== 'undefined' && window['clipboardData'])\n ).getData('text')\n\n if (!success) {\n return // Stop here\n }\n\n event.preventDefault()\n\n try {\n const separators = ['.', '/']\n const possibleFormats = ['yyyy-MM-dd']\n\n // TODO: Merge these loops\n possibleFormats.forEach((date) => {\n separators.forEach((sep) => {\n possibleFormats.push(date.replace(/-/g, sep))\n })\n })\n\n possibleFormats.forEach((date) => {\n possibleFormats.push(date.split('').reverse().join(''))\n })\n\n let date: Date\n let index = 0\n\n for (index; index < possibleFormats.length; ++index) {\n date = convertStringToDate(success, {\n dateFormat: possibleFormats[index],\n })\n\n if (date) {\n break\n }\n }\n\n const mode =\n focusMode.current === 'start' ? 'startDate' : 'endDate'\n\n if (date) {\n updateDates({\n [mode]: date,\n })\n }\n } catch (error: unknown) {\n warn(error)\n }\n },\n [updateDates]\n )\n\n const callOnChangeAsInvalid = useCallback(\n (state: {\n endDate?: Date\n starDate?: Date\n event: React.ChangeEvent<HTMLInputElement>\n }) => {\n updateDates(\n {\n hoverDate: null,\n },\n (dates) => {\n // Should fire if user has filled out an invalid date,\n // or if the date was valid. Like if the user has pressed backspace or removed the valid date.\n if (isDateFullyFilledOutRef.current || hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...state,\n ...dates,\n }\n callOnChangeHandler({\n startDate,\n endDate,\n event,\n ...invalidDatesRef.current,\n })\n }\n }\n )\n },\n [updateDates, callOnChangeHandler, hasHadValidDate]\n )\n\n const callOnChange = useCallback(\n ({\n startDate,\n endDate,\n event,\n }: {\n startDate?: Date\n endDate?: Date\n event:\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n }) => {\n const state = {}\n if (typeof startDate !== 'undefined' && isValid(startDate)) {\n state['startDate'] = startDate\n }\n if (!isRange) {\n endDate = startDate\n }\n if (typeof endDate !== 'undefined' && isValid(endDate)) {\n state['endDate'] = endDate\n }\n\n updateDates(state, (dates) => {\n if (\n (typeof startDate !== 'undefined' && isValid(startDate)) ||\n (typeof endDate !== 'undefined' && isValid(endDate))\n ) {\n callOnChangeHandler({\n event,\n ...dates,\n ...invalidDatesRef.current,\n })\n }\n })\n },\n [updateDates, callOnChangeHandler, isRange]\n )\n\n const callOnType = useCallback(\n ({ event }: { event: React.ChangeEvent<HTMLInputElement> }) => {\n const getDates = () =>\n ['start', 'end'].reduce(\n (acc, mode) => {\n acc[`${mode}Date`] = [\n dateRefs.current[`${mode}Year`] ||\n inputDates[`${mode}Year`] ||\n 'yyyy',\n dateRefs.current[`${mode}Month`] ||\n inputDates[`${mode}Month`] ||\n 'mm',\n dateRefs.current[`${mode}Day`] ||\n inputDates[`${mode}Day`] ||\n 'dd',\n ].join('-')\n return acc\n },\n { startDate: undefined, endDate: undefined }\n )\n\n // Get the typed dates, so we can ...\n const { startDate, endDate } = getDates()\n\n // Get the partial dates, so we can know if something was typed or not in an optional date field\n setPartialDates({\n partialStartDate: startDate,\n // Only set endDate if in range mode\n ...(isRange && { partialEndDate: endDate }),\n })\n\n const parsedStartDate = parseISO(startDate)\n const parsedEndDate = parseISO(endDate)\n\n const isStartDateValid = isValid(parsedStartDate)\n const isEndDateValid = isValid(parsedEndDate)\n\n const {\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject\n } = getReturnObject({\n startDate: isStartDateValid ? parsedStartDate : null,\n endDate: isEndDateValid ? parsedEndDate : null,\n event,\n ...partialDatesRef.current,\n ...invalidDatesRef.current,\n })\n\n // Re-assigns dates to the typed date, instead of `null` from getReturnObject, if dates are invalid\n const typedDates = {\n ...(!isRange && is_valid === false && { date: startDate }),\n ...(isRange &&\n is_valid_start_date === false && { start_date: startDate }),\n ...(isRange &&\n is_valid_end_date === false && { end_date: endDate }),\n }\n\n onType?.({\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject,\n ...typedDates,\n })\n },\n [\n setPartialDates,\n isRange,\n getReturnObject,\n partialDatesRef,\n onType,\n inputDates,\n ]\n )\n\n const setDate = useCallback(\n (\n event: React.ChangeEvent<HTMLInputElement>,\n mode: 'start' | 'end',\n type: 'Day' | 'Month' | 'Year'\n ) => {\n event.persist() // since we have later a state update and afterwards the callback\n\n const value = (event.target as HTMLInputElement).value\n\n dateRefs.current[`${mode}${type}`] = value\n\n if (modeDate[`${mode}Date`]) {\n temporaryDates.current[`${mode}Date`] = modeDate[`${mode}Date`]\n }\n\n const fallback = temporaryDates.current[`${mode}Date`]\n\n // provide fallbacks to create a temp fallback\n const year =\n dateRefs.current[`${mode}Year`] ||\n (fallback && fallback.getFullYear())\n const month =\n dateRefs.current[`${mode}Month`] ||\n (fallback && fallback.getMonth() + 1)\n const day =\n dateRefs.current[`${mode}Day`] || (fallback && fallback.getDate())\n\n // calculate new date\n const date = new Date(\n parseFloat(String(year)),\n parseFloat(String(month)) - 1,\n parseFloat(String(day))\n )\n\n const isValidDate =\n !/[^0-9]/.test(String(day)) &&\n !/[^0-9]/.test(String(month)) &&\n !/[^0-9]/.test(String(year)) &&\n isValid(date) &&\n date.getDate() == parseFloat(String(day)) &&\n date.getMonth() + 1 == parseFloat(String(month)) &&\n date.getFullYear() == parseFloat(String(year))\n\n const dateString = `${year}-${month}-${day}`\n\n isDateFullyFilledOutRef.current =\n /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(dateString)\n\n // update the date\n if (isValidDate) {\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: null }\n : { invalidEndDate: null }),\n }\n\n callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n updateDates({\n [`${mode}Date`]: null,\n })\n updateInputDates({ [`${mode}${type}`]: value })\n\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: dateString }\n : { invalidEndDate: dateString }),\n }\n\n callOnChangeAsInvalid({\n [`${mode}Date`]: null,\n event,\n })\n }\n\n callOnType({ event })\n },\n [\n updateDates,\n callOnChange,\n callOnChangeAsInvalid,\n callOnType,\n modeDate,\n dateRefs,\n temporaryDates,\n updateInputDates,\n ]\n )\n\n const dateSetters = useMemo(\n () => ({\n set_startDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Day')\n },\n\n set_startMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Month')\n },\n\n set_startYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Year')\n },\n\n set_endDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Day')\n },\n\n set_endMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Month')\n },\n\n set_endYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Year')\n },\n }),\n [setDate]\n )\n\n const onFocusHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setFocusState('focus')\n\n onFocus?.({\n ...event,\n ...getReturnObject({ event }),\n })\n\n if (isNaN(parseFloat(event.target.value))) {\n setCursorPosition(event.target)\n }\n },\n [getReturnObject, onFocus]\n )\n\n const onBlurHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n focusMode.current = null\n setFocusState('blur')\n\n onBlur?.({\n ...event,\n ...getReturnObject({ event, ...partialDatesRef.current }),\n })\n },\n [onBlur, getReturnObject, partialDatesRef]\n )\n\n const onKeyDownHandler = useCallback(\n async (event: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode = event.key\n const target = event.target as HTMLInputElement\n\n if (\n correctInvalidDate &&\n target.selectionStart !== target.selectionEnd\n ) {\n setCursorPosition(target)\n }\n\n // The rest is for value entry\n\n const size = parseFloat(target.getAttribute('size'))\n const firstSelectionStart = target.selectionStart\n const firstSelectionEnd = target.selectionEnd\n\n // To get the correct position afterwards.\n // Use 10ms in order to make it work on iOS Safari\n await wait(IS_IOS ? 10 : 1)\n\n const secondSelectionStart = target.selectionStart\n\n // Always false (since the old keycode function set number keys to undefined) but needed to not break tests\n const isValid = /[0-9]/g.test(keyCode)\n const refListArray = refList.current\n\n const index = refListArray.findIndex(\n ({ current }) => current === target\n )\n\n const isLastChar = secondSelectionStart === size\n const isFirstChar = firstSelectionStart === size\n\n const isMovingForward =\n keyCode !== 'ArrowLeft' &&\n keyCode !== 'Backspace' &&\n isValid &&\n isLastChar\n\n const isExplicitForward =\n (keyCode === 'ArrowRight' || keyCode === 'Enter') && isFirstChar\n\n const hasNextField = index < refListArray.length - 1\n\n if (hasNextField && (isMovingForward || isExplicitForward)) {\n // stop in case there is no next input element\n if (!refListArray[index + 1].current) {\n return // stop here\n }\n const nextSibling = refListArray[index + 1]?.current\n\n if (nextSibling) {\n setCursorPosition(nextSibling, 0, { withoutDelay: true })\n }\n\n // When the cursor is at the end of the input\n // and the user types a number, we want to set the value on the next input.\n if (\n parseFloat(keyCode) <= 9 &&\n firstSelectionStart === target.size\n ) {\n const name = toCapitalized(\n nextSibling\n .getAttribute('class')\n .match(/__input--(day|month|year)($|\\s)/)[1]\n )\n const mode = nextSibling\n .getAttribute('id')\n .match(/-(start|end)-(day|month|year)/)[1]\n\n dateSetters[`set_${mode}${name}`]({\n persist: () => null,\n ...event,\n target: {\n value: keyCode + nextSibling.value.slice(1),\n },\n })\n\n setCursorPosition(nextSibling, 1)\n }\n } else if (index > 0 && firstSelectionStart === firstSelectionEnd) {\n const isMovingBackward =\n keyCode === 'ArrowLeft' && firstSelectionStart === 0\n const isPressingBackspace =\n keyCode === 'Backspace' && firstSelectionStart <= 1\n\n if (isMovingBackward || isPressingBackspace) {\n const prevSibling = refListArray[index - 1]?.current\n if (prevSibling) {\n const endPos = prevSibling.value.length\n setCursorPosition(prevSibling, endPos, {\n withoutDelay: true,\n })\n }\n }\n }\n },\n [correctInvalidDate, dateSetters]\n )\n\n const onInputHandler = useCallback(\n (event) => {\n const target = event.currentTarget\n\n // Add support for \"backspace\" on Android virtual keyboard\n if (\n IS_ANDROID &&\n event.nativeEvent.inputType === 'deleteContentBackward' &&\n target.selectionStart === 0 &&\n target.selectionEnd === 0\n ) {\n onKeyDownHandler({\n ...event,\n key: 'Backspace',\n })\n }\n },\n [onKeyDownHandler]\n )\n\n const getPlaceholderChar = useCallback(\n (value: string) => {\n const index = maskOrder.indexOf(value)\n return maskPlaceholder[index]\n },\n [maskOrder, maskPlaceholder]\n )\n\n // TODO: Replace with MultiInputMask\n const generateDateList = useCallback(\n (\n element: Omit<React.HTMLProps<HTMLInputElement>, 'size'> &\n DatePickerEventAttributes,\n mode: 'start' | 'end'\n ) => {\n return maskList.map((value, i) => {\n const state = value.slice(0, 1)\n const placeholderChar = getPlaceholderChar(value)\n const { day, month, year } = translation\n const isRangeLabel = isRange ? `${translation[mode]} ` : ''\n\n if (!separatorRegExp.test(value)) {\n if (!inputElement) {\n element = {\n ...element,\n onInput: onInputHandler,\n onKeyDown: onKeyDownHandler,\n onPaste: pasteHandler,\n onFocus: (e) => {\n focusMode.current = mode\n onFocusHandler(e)\n },\n onBlur: onBlurHandler,\n placeholderChar,\n }\n }\n\n // this makes it possible to use a vanilla <input /> like: input_element=\"input\"\n const DateField =\n inputElement && React.isValidElement(inputElement)\n ? inputElement.type\n : InputElement\n\n const inputSizeClassName =\n size && `dnb-date-picker__input--${size}`\n\n switch (state) {\n case 'd':\n refList.current.push(inputRefs.current[`${mode}DayRef`])\n\n return (\n <React.Fragment key={'dd' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-day`}\n key={'di' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--day',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}DayRef`]}\n onChange={dateSetters[`set_${mode}Day`]}\n value={inputDates[`${mode}Day`] || ''}\n aria-labelledby={`${id}-${mode}-day-label`}\n />\n <label\n key={'dl' + i}\n hidden\n id={`${id}-${mode}-day-label`}\n htmlFor={`${id}-${mode}-day`}\n >\n {isRangeLabel + day}\n </label>\n </React.Fragment>\n )\n case 'm':\n refList.current.push(inputRefs.current[`${mode}MonthRef`])\n\n return (\n <React.Fragment key={'mm' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-month`}\n key={'mi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--month',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}MonthRef`]}\n onChange={dateSetters[`set_${mode}Month`]}\n value={inputDates[`${mode}Month`] || ''}\n aria-labelledby={`${id}-${mode}-month-label`}\n />\n <label\n key={'ml' + i}\n hidden\n id={`${id}-${mode}-month-label`}\n htmlFor={`${id}-${mode}-month`}\n >\n {isRangeLabel + month}\n </label>\n </React.Fragment>\n )\n case 'y':\n refList.current.push(inputRefs.current[`${mode}YearRef`])\n\n return (\n <React.Fragment key={'yy' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-year`}\n key={'yi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--year',\n inputSizeClassName\n )}\n size={4}\n mask={[/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}YearRef`]}\n onChange={dateSetters[`set_${mode}Year`]}\n value={inputDates[`${mode}Year`] || ''}\n aria-labelledby={`${id}-${mode}-year-label`}\n />\n <label\n key={'yl' + i}\n hidden\n id={`${id}-${mode}-year-label`}\n htmlFor={`${id}-${mode}-year`}\n >\n {isRangeLabel + year}\n </label>\n </React.Fragment>\n )\n }\n }\n return (\n <span\n key={'s' + i}\n className=\"dnb-date-picker--separator\"\n aria-hidden\n >\n {placeholderChar}\n </span>\n )\n })\n },\n [\n maskList,\n getPlaceholderChar,\n translation,\n isRange,\n separatorRegExp,\n inputElement,\n size,\n onInputHandler,\n onKeyDownHandler,\n pasteHandler,\n onBlurHandler,\n onFocusHandler,\n id,\n dateSetters,\n inputDates,\n ]\n )\n\n const renderInputElement = useCallback(\n (\n element: React.HTMLProps<HTMLInputElement> &\n DatePickerEventAttributes\n ) => {\n refList.current = []\n const startDateList = generateDateList(element, 'start')\n const endDateList = generateDateList(element, 'end')\n\n return (\n <span\n id={`${id}-input`}\n className=\"dnb-date-picker__input__wrapper\"\n >\n {startDateList}\n {isRange && (\n <span className=\"dnb-date-picker--separator\" aria-hidden>\n {' – '}\n </span>\n )}\n {isRange && endDateList}\n </span>\n )\n },\n [id, isRange, generateDateList]\n )\n\n const ariaLabel = useMemo(\n () =>\n selectedDateTitle\n ? `${selectedDateTitle}, ${translation.openPickerText}`\n : translation.openPickerText,\n [selectedDateTitle, translation]\n )\n\n validateDOMAttributes(props, attributes)\n validateDOMAttributes(null, submitAttributes)\n\n const SubmitElement: React.ElementType = useMemo(\n () => (showInput ? SubmitButton : Button),\n [showInput]\n )\n\n if (!showInput) {\n // Use Button inner ref\n submitAttributes.innerRef = submitAttributes.ref\n submitAttributes.ref = null\n }\n\n return (\n <fieldset className=\"dnb-date-picker__fieldset\" lang={lang}>\n {label && <legend className=\"dnb-sr-only\">{label}</legend>}\n <Input\n id={`${id}__input`}\n input_state={disabled ? 'disabled' : focusState}\n input_element={\n inputElement && typeof inputElement !== 'string'\n ? typeof inputElement === 'function'\n ? inputElement(props)\n : inputElement\n : renderInputElement\n }\n disabled={disabled || skeleton}\n skeleton={skeleton}\n size={size}\n status={!opened ? status : null}\n status_state={statusState}\n {...statusProps}\n submit_element={\n <SubmitElement\n id={id}\n disabled={disabled}\n skeleton={skeleton}\n className={classnames(\n showInput && 'dnb-button--input-button',\n opened ? 'dnb-button--active' : null\n )}\n aria-label={ariaLabel}\n title={title}\n size={size}\n status={status}\n status_state={statusState}\n type=\"button\"\n icon=\"calendar\"\n variant=\"secondary\"\n on_submit={onSubmit}\n on_click={onSubmit}\n {...submitAttributes}\n {...statusProps}\n />\n }\n lang={lang}\n {...attributes}\n />\n </fieldset>\n )\n}\n\nexport default DatePickerInput\n\nfunction setCursorPosition(\n target: HTMLInputElement,\n position = 0,\n options?: { withoutDelay?: boolean }\n) {\n target.focus()\n\n const select = () => {\n target.setSelectionRange(position, position)\n }\n\n // Delay for correct iOS Safari appearance\n if (!options?.withoutDelay && process.env.NODE_ENV !== 'test') {\n setTimeout(select, 0)\n } else {\n select()\n }\n}\n\nfunction InputElement({ className, value, ...props }: TextMaskProps) {\n return (\n <TextMask\n guide={true}\n inputMode=\"numeric\"\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n spellCheck={false}\n autoCorrect=\"off\"\n className={classnames(\n className,\n /\\d+/.test(String(value)) && 'dnb-date-picker__input--highlight'\n )}\n value={value}\n {...props}\n />\n )\n}\n\nfunction syncDateRefs(\n dateRefs: React.MutableRefObject<DatePickerInputDates>,\n inputDates: DatePickerInputDates\n) {\n for (const date in dateRefs.current) {\n const dateRefValue = dateRefs.current[date]\n const inputDateValue = inputDates[date]\n\n if (dateRefValue !== inputDateValue) {\n dateRefs.current[date] = inputDateValue\n }\n }\n}\n\nconst wait = (duration: number) =>\n new Promise((r) => setTimeout(r, duration))\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -54,7 +54,6 @@ function DatePickerProvider(externalProps) {
|
|
|
54
54
|
const {
|
|
55
55
|
dates,
|
|
56
56
|
updateDates,
|
|
57
|
-
hasHadValidDate,
|
|
58
57
|
previousDateProps
|
|
59
58
|
} = (0, _useDates.default)({
|
|
60
59
|
date,
|
|
@@ -148,7 +147,6 @@ function DatePickerProvider(externalProps) {
|
|
|
148
147
|
props
|
|
149
148
|
}, dates), {}, {
|
|
150
149
|
previousDateProps,
|
|
151
|
-
hasHadValidDate,
|
|
152
150
|
views,
|
|
153
151
|
setViews,
|
|
154
152
|
setHasClickedCalendarDay
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerProvider.js","names":["_react","_interopRequireWildcard","require","_isValid","_interopRequireDefault","_format","_differenceInCalendarDays","_Context","_DatePickerCalc","_DatePickerContext","_useViews","_useDates","_useLastEventCallCache","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultProps","returnFormat","DatePickerProvider","externalProps","props","date","startDate","endDate","startMonth","endMonth","minDate","maxDate","dateFormat","range","correctInvalidDate","attributes","returnFormatProp","children","onChange","setReturnObject","hidePicker","sharedContext","useContext","SharedContext","dates","updateDates","hasHadValidDate","previousDateProps","useDates","isRange","shouldCorrectDate","views","setViews","setHasClickedCalendarDay","useViews","lastEventCallCache","setLastEventCallCache","useLastEventCallCache","getReturnObject","useCallback","_ref","undefined","event","rest","partialStartDate","partialEndDate","invalidStartDate","invalidEndDate","correctV1Format","startDateIsValid","Boolean","isValid","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","differenceInCalendarDays","start_date","format","end_date","is_valid_start_date","isDisabled","is_valid_end_date","partialDate","invalidDate","is_valid","callOnChangeHandler","createElement","Provider","translation","_default","exports"],"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'\nimport { InvalidDates } from './DatePickerInput'\nimport { PartialDates } from './hooks/usePartialDates'\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 InvalidDates & {\n nr?: number\n hidePicker?: boolean\n event?: E\n }\n\nexport type GetReturnObjectParams<E> = DatePickerDates &\n PartialDates &\n InvalidDates & {\n event?: E\n }\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = InvalidDates &\n PartialDates & {\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 }\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, setHasClickedCalendarDay } = 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 {\n startDate,\n endDate,\n partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n } = {\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 }\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 partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\n partialDate: partialStartDate,\n // Can be removed in v11, in favor to partialDate,\n // to keep the naming logic the same as with date and invalidDate when not in range mode\n partialStartDate,\n invalidDate: invalidStartDate,\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 setHasClickedCalendarDay,\n }}\n >\n {children}\n </DatePickerContext.Provider>\n )\n}\n\nexport default DatePickerProvider\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DatePickerProvider.js","names":["_react","_interopRequireWildcard","require","_isValid","_interopRequireDefault","_format","_differenceInCalendarDays","_Context","_DatePickerCalc","_DatePickerContext","_useViews","_useDates","_useLastEventCallCache","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultProps","returnFormat","DatePickerProvider","externalProps","props","date","startDate","endDate","startMonth","endMonth","minDate","maxDate","dateFormat","range","correctInvalidDate","attributes","returnFormatProp","children","onChange","setReturnObject","hidePicker","sharedContext","useContext","SharedContext","dates","updateDates","previousDateProps","useDates","isRange","shouldCorrectDate","views","setViews","setHasClickedCalendarDay","useViews","lastEventCallCache","setLastEventCallCache","useLastEventCallCache","getReturnObject","useCallback","_ref","undefined","event","rest","partialStartDate","partialEndDate","invalidStartDate","invalidEndDate","correctV1Format","startDateIsValid","Boolean","isValid","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","differenceInCalendarDays","start_date","format","end_date","is_valid_start_date","isDisabled","is_valid_end_date","partialDate","invalidDate","is_valid","callOnChangeHandler","createElement","Provider","translation","_default","exports"],"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'\nimport { InvalidDates } from './DatePickerInput'\nimport { PartialDates } from './hooks/usePartialDates'\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 InvalidDates & {\n nr?: number\n hidePicker?: boolean\n event?: E\n }\n\nexport type GetReturnObjectParams<E> = DatePickerDates &\n PartialDates &\n InvalidDates & {\n event?: E\n }\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = InvalidDates &\n PartialDates & {\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 }\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, previousDateProps } = 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, setHasClickedCalendarDay } = 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 {\n startDate,\n endDate,\n partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n } = {\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 }\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 partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\n partialDate: partialStartDate,\n // Can be removed in v11, in favor to partialDate,\n // to keep the naming logic the same as with date and invalidDate when not in range mode\n partialStartDate,\n invalidDate: invalidStartDate,\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 views,\n setViews,\n setHasClickedCalendarDay,\n }}\n >\n {children}\n </DatePickerContext.Provider>\n )\n}\n\nexport default DatePickerProvider\n"],"mappings":";;;;;;;;AAKA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAOA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,yBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAEA,IAAAK,QAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAL,sBAAA,CAAAF,OAAA;AAGA,IAAAQ,SAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,SAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,sBAAA,GAAAR,sBAAA,CAAAF,OAAA;AAEsC,MAAAW,SAAA;AAAA,SAAAT,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAAA,SAAAW,yBAAApB,CAAA,EAAAM,CAAA,gBAAAN,CAAA,iBAAAqB,CAAA,EAAAhB,CAAA,EAAAa,CAAA,GAAAI,6BAAA,CAAAtB,CAAA,EAAAM,CAAA,OAAAM,MAAA,CAAAW,qBAAA,QAAAd,CAAA,GAAAG,MAAA,CAAAW,qBAAA,CAAAvB,CAAA,QAAAK,CAAA,MAAAA,CAAA,GAAAI,CAAA,CAAAe,MAAA,EAAAnB,CAAA,IAAAgB,CAAA,GAAAZ,CAAA,CAAAJ,CAAA,UAAAC,CAAA,CAAAmB,OAAA,CAAAJ,CAAA,QAAAK,oBAAA,CAAAT,IAAA,CAAAjB,CAAA,EAAAqB,CAAA,MAAAH,CAAA,CAAAG,CAAA,IAAArB,CAAA,CAAAqB,CAAA,aAAAH,CAAA;AAAA,SAAAI,8BAAAjB,CAAA,EAAAL,CAAA,gBAAAK,CAAA,iBAAAC,CAAA,gBAAAG,CAAA,IAAAJ,CAAA,SAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAI,CAAA,gBAAAT,CAAA,CAAAyB,OAAA,CAAAhB,CAAA,aAAAH,CAAA,CAAAG,CAAA,IAAAJ,CAAA,CAAAI,CAAA,YAAAH,CAAA;AAAA,SAAAqB,QAAA3B,CAAA,EAAAK,CAAA,QAAAC,CAAA,GAAAM,MAAA,CAAAgB,IAAA,CAAA5B,CAAA,OAAAY,MAAA,CAAAW,qBAAA,QAAAF,CAAA,GAAAT,MAAA,CAAAW,qBAAA,CAAAvB,CAAA,GAAAK,CAAA,KAAAgB,CAAA,GAAAA,CAAA,CAAAQ,MAAA,WAAAxB,CAAA,WAAAO,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAK,CAAA,EAAAyB,UAAA,OAAAxB,CAAA,CAAAyB,IAAA,CAAAC,KAAA,CAAA1B,CAAA,EAAAe,CAAA,YAAAf,CAAA;AAAA,SAAA2B,cAAAjC,CAAA,aAAAK,CAAA,MAAAA,CAAA,GAAA6B,SAAA,CAAAV,MAAA,EAAAnB,CAAA,UAAAC,CAAA,WAAA4B,SAAA,CAAA7B,CAAA,IAAA6B,SAAA,CAAA7B,CAAA,QAAAA,CAAA,OAAAsB,OAAA,CAAAf,MAAA,CAAAN,CAAA,OAAA6B,OAAA,WAAA9B,CAAA,IAAA+B,eAAA,CAAApC,CAAA,EAAAK,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAO,MAAA,CAAAyB,yBAAA,GAAAzB,MAAA,CAAA0B,gBAAA,CAAAtC,CAAA,EAAAY,MAAA,CAAAyB,yBAAA,CAAA/B,CAAA,KAAAqB,OAAA,CAAAf,MAAA,CAAAN,CAAA,GAAA6B,OAAA,WAAA9B,CAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,EAAAO,MAAA,CAAAE,wBAAA,CAAAR,CAAA,EAAAD,CAAA,iBAAAL,CAAA;AAAA,SAAAoC,gBAAApC,CAAA,EAAAK,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAkC,cAAA,CAAAlC,CAAA,MAAAL,CAAA,GAAAY,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,IAAAmC,KAAA,EAAAlC,CAAA,EAAAwB,UAAA,MAAAW,YAAA,MAAAC,QAAA,UAAA1C,CAAA,CAAAK,CAAA,IAAAC,CAAA,EAAAN,CAAA;AAAA,SAAAuC,eAAAjC,CAAA,QAAAY,CAAA,GAAAyB,YAAA,CAAArC,CAAA,uCAAAY,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAyB,aAAArC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAN,CAAA,GAAAM,CAAA,CAAAsC,MAAA,CAAAC,WAAA,kBAAA7C,CAAA,QAAAkB,CAAA,GAAAlB,CAAA,CAAAiB,IAAA,CAAAX,CAAA,EAAAD,CAAA,uCAAAa,CAAA,SAAAA,CAAA,YAAA4B,SAAA,yEAAAzC,CAAA,GAAA0C,MAAA,GAAAC,MAAA,EAAA1C,CAAA;AA4CtC,MAAM2C,YAAsC,GAAG;EAC7CC,YAAY,EAAE;AAChB,CAAC;AAED,SAASC,kBAAkBA,CAACC,aAAsC,EAAE;EAClE,MAAMC,KAAK,GAAApB,aAAA,CAAAA,aAAA,KAAQgB,YAAY,GAAKG,aAAa,CAAE;EAEnD,MAAM;IACJE,IAAI;IACJC,SAAS;IACTC,OAAO;IACPC,UAAU;IACVC,QAAQ;IACRC,OAAO;IACPC,OAAO;IACPC,UAAU;IACVC,KAAK;IACLC,kBAAkB;IAClBC,UAAU;IACVd,YAAY,EAAEe,gBAAgB;IAC9BC,QAAQ;IACRC,QAAQ;IACRC,eAAe;IACfC;EACF,CAAC,GAAGhB,KAAK;EAET,MAAMiB,aAAa,GAAG,IAAAC,iBAAU,EAACC,gBAAa,CAAC;EAE/C,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAkB,CAAC,GAAG,IAAAC,iBAAQ,EACxD;IACEtB,IAAI;IACJC,SAAS;IACTC,OAAO;IACPC,UAAU;IACVC,QAAQ;IACRC,OAAO;IACPC;EACF,CAAC,EACD;IACEC,UAAU,EAAEA,UAAU;IACtBgB,OAAO,EAAEf,KAAK;IACdgB,iBAAiB,EAAEf;EACrB,CACF,CAAC;EAED,MAAM;IAAEgB,KAAK;IAAEC,QAAQ;IAAEC;EAAyB,CAAC,GAAG,IAAAC,iBAAQ,EAAC;IAC7DzB,UAAU,EAAEgB,KAAK,CAAChB,UAAU;IAC5BC,QAAQ,EAAEe,KAAK,CAACf,QAAQ;IACxBmB,OAAO,EAAEf;EACX,CAAC,CAAC;EAEF,MAAM,CAACqB,kBAAkB,EAAEC,qBAAqB,CAAC,GAC/C,IAAAC,8BAAqB,EAAC;IACpB9B,SAAS,EAAEkB,KAAK,CAAClB,SAAS;IAC1BC,OAAO,EAAEiB,KAAK,CAACjB;EACjB,CAAC,CAAC;EAEJ,MAAM8B,eAAe,GAAG,IAAAC,kBAAW,EACjC,YAAkE;IAAA,IAAAC,IAAA,GAAAtD,SAAA,CAAAV,MAAA,QAAAU,SAAA,QAAAuD,SAAA,GAAAvD,SAAA,MAAP,CAAC,CAAC;IAAA,IAAxD;QAAEwD,KAAK,GAAG;MAAwC,CAAC,GAAAF,IAAA;MAAhCG,IAAI,GAAAvE,wBAAA,CAAAoE,IAAA,EAAAzF,SAAA;IAC1B,MAAM;MACJwD,SAAS;MACTC,OAAO;MACPoC,gBAAgB;MAChBC,cAAc;MACdC,gBAAgB;MAChBC;IACF,CAAC,GAAA9D,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACI8C,KAAK,GACLN,KAAK,GACLkB,IAAI,CACR;IAED,MAAMzC,YAAY,GAAG,IAAA8C,+BAAe,EAAC/B,gBAAgB,CAAC;IACtD,MAAMgC,gBAAgB,GAAGC,OAAO,CAAC3C,SAAS,IAAI,IAAA4C,gBAAO,EAAC5C,SAAS,CAAC,CAAC;IACjE,MAAM6C,cAAc,GAAGF,OAAO,CAAC1C,OAAO,IAAI,IAAA2C,gBAAO,EAAC3C,OAAO,CAAC,CAAC;IAC3D,MAAM6C,gBAAgB,GAAG1C,OAAO,IAAIC,OAAO;IAE3C,MAAM0C,YAA6B,GAAG;MACpCZ,KAAK;MACL1B,UAAU,EAAEA,UAAU,IAAI,CAAC;IAC7B,CAAC;IAGD,IAAIF,KAAK,EAAE;MACT,OAAA7B,aAAA,CAAAA,aAAA,KACKqE,YAAY;QACfC,YAAY,EACVN,gBAAgB,IAAIG,cAAc,GAC9B,IAAAI,iCAAwB,EAAChD,OAAO,EAAED,SAAS,CAAC,GAC5C,IAAI;QACVkD,UAAU,EAAER,gBAAgB,GACxB,IAAAS,eAAM,EAACnD,SAAS,EAAEL,YAAY,CAAC,GAC/B,IAAI;QACRyD,QAAQ,EAAEP,cAAc,GAAG,IAAAM,eAAM,EAAClD,OAAO,EAAEN,YAAY,CAAC,GAAG,IAAI;QAC/D0D,mBAAmB,EACjBP,gBAAgB,IAChBJ,gBAAgB,IAChB,IAAAY,0BAAU,EAACtD,SAAS,EAAEkB,KAAK,CAACd,OAAO,EAAEc,KAAK,CAACb,OAAO,CAAC,GAC/C,KAAK,GACLqC,gBAAgB;QACtBa,iBAAiB,EACfT,gBAAgB,IAChBD,cAAc,IACd,IAAAS,0BAAU,EAACrD,OAAO,EAAEiB,KAAK,CAACd,OAAO,EAAEc,KAAK,CAACb,OAAO,CAAC,GAC7C,KAAK,GACLwC,cAAc;QACpBR,gBAAgB;QAChBC,cAAc;QACdC,gBAAgB;QAChBC;MAAc;IAElB;IAEA,OAAA9D,aAAA,CAAAA,aAAA,KACKqE,YAAY;MACfhD,IAAI,EAAE2C,gBAAgB,GAAG,IAAAS,eAAM,EAACnD,SAAS,EAAEL,YAAY,CAAC,GAAG,IAAI;MAC/D6D,WAAW,EAAEnB,gBAAgB;MAG7BA,gBAAgB;MAChBoB,WAAW,EAAElB,gBAAgB;MAC7BmB,QAAQ,EACNZ,gBAAgB,IAChBJ,gBAAgB,IAChB,IAAAY,0BAAU,EAACtD,SAAS,EAAEkB,KAAK,CAACd,OAAO,EAAEc,KAAK,CAACb,OAAO,CAAC,GAC/C,KAAK,GACLqC;IAAgB;EAE1B,CAAC,EACD,CAACxB,KAAK,EAAEM,KAAK,EAAEf,UAAU,EAAEJ,OAAO,EAAED,OAAO,EAAEG,KAAK,EAAEG,gBAAgB,CACtE,CAAC;EAED,MAAMiD,mBAAmB,GAAG,IAAA3B,kBAAW,EAChCG,KAA0B,IAAK;IAIlC,IACEP,kBAAkB,IAClBA,kBAAkB,CAAC5B,SAAS,KAAKmC,KAAK,CAACnC,SAAS,IAChD4B,kBAAkB,CAAC3B,OAAO,KAAKkC,KAAK,CAAClC,OAAO,EAC5C;MACA;IACF;IAEAW,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGmB,eAAe,CAAArD,aAAA,CAAAA,aAAA,KAAMwC,KAAK,GAAKiB,KAAK,CAAE,CAAC,CAAC;IAEnDN,qBAAqB,CAAC;MACpB7B,SAAS,EAAEmC,KAAK,CAACnC,SAAS;MAC1BC,OAAO,EAAEkC,KAAK,CAAClC;IACjB,CAAC,CAAC;EACJ,CAAC,EACD,CACE8B,eAAe,EACfb,KAAK,EACLN,QAAQ,EACRgB,kBAAkB,EAClBC,qBAAqB,CAEzB,CAAC;EAGD,IAAI,OAAOhB,eAAe,KAAK,UAAU,EAAE;IACzCA,eAAe,CAACkB,eAAe,CAAC;EAClC;EAEA,OACEpG,MAAA,CAAAgB,OAAA,CAAAiH,aAAA,CAACxH,kBAAA,CAAAO,OAAiB,CAACkH,QAAQ;IACzB5E,KAAK,EAAAP,aAAA,CAAAA,aAAA;MACHoF,WAAW,EAAE/C,aAAa,CAAC+C,WAAW;MACtC3C,WAAW;MACXY,eAAe;MACf4B,mBAAmB;MACnB7C,UAAU,EAAEA,UAAU;MACtBhB;IAAK,GACFoB,KAAK;MACRE,iBAAiB;MACjBI,KAAK;MACLC,QAAQ;MACRC;IAAwB;EACxB,GAEDf,QACyB,CAAC;AAEjC;AAAC,IAAAoD,QAAA,GAAAC,OAAA,CAAArH,OAAA,GAEciD,kBAAkB","ignoreList":[]}
|
|
@@ -14,14 +14,6 @@ type UseDatesOptions = {
|
|
|
14
14
|
isRange: boolean;
|
|
15
15
|
shouldCorrectDate: boolean;
|
|
16
16
|
};
|
|
17
|
-
export type DatePickerInputDates = {
|
|
18
|
-
__startDay?: string;
|
|
19
|
-
__startMonth?: string;
|
|
20
|
-
__startYear?: string;
|
|
21
|
-
__endDay?: string;
|
|
22
|
-
__endMonth?: string;
|
|
23
|
-
__endYear?: string;
|
|
24
|
-
};
|
|
25
17
|
export type DatePickerDates = {
|
|
26
18
|
date?: DateType;
|
|
27
19
|
startDate?: Date;
|
|
@@ -30,14 +22,11 @@ export type DatePickerDates = {
|
|
|
30
22
|
maxDate?: Date;
|
|
31
23
|
startMonth?: Date;
|
|
32
24
|
endMonth?: Date;
|
|
33
|
-
hasHadValidDate?: boolean;
|
|
34
25
|
hoverDate?: Date;
|
|
35
|
-
}
|
|
26
|
+
};
|
|
36
27
|
export default function useDates(dateProps: DatePickerDateProps, { dateFormat, isRange, shouldCorrectDate, }: UseDatesOptions): {
|
|
37
28
|
readonly dates: DatePickerDates;
|
|
38
29
|
readonly updateDates: (newDates: DatePickerDates, callback?: (dates: DatePickerDates) => void) => void;
|
|
39
|
-
readonly hasHadValidDate: boolean;
|
|
40
30
|
readonly previousDateProps: DatePickerDateProps;
|
|
41
31
|
};
|
|
42
|
-
export declare function pad(date: string, size: number): string;
|
|
43
32
|
export {};
|
|
@@ -5,14 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = useDates;
|
|
8
|
-
exports.pad = pad;
|
|
9
8
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
9
|
var _react = require("react");
|
|
11
10
|
var _DatePickerCalc = require("../DatePickerCalc");
|
|
12
|
-
var _isValid = _interopRequireDefault(require("date-fns/isValid"));
|
|
13
|
-
var _format = _interopRequireDefault(require("date-fns/format"));
|
|
14
11
|
var _dateFns = require("date-fns");
|
|
15
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
13
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
14
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -55,7 +51,6 @@ function useDates(dateProps, _ref) {
|
|
|
55
51
|
setDates(currentDates => _objectSpread(_objectSpread({}, currentDates), derivedDates));
|
|
56
52
|
setPreviousDateProps(dateProps);
|
|
57
53
|
}
|
|
58
|
-
const hasHadValidDate = (0, _react.useRef)(false);
|
|
59
54
|
const updateDates = (0, _react.useCallback)((newDates, callback) => {
|
|
60
55
|
var _newDates$startDate, _newDates$endDate;
|
|
61
56
|
const correctedDates = shouldCorrectDate ? correctDates({
|
|
@@ -74,32 +69,12 @@ function useDates(dateProps, _ref) {
|
|
|
74
69
|
});
|
|
75
70
|
callback === null || callback === void 0 ? void 0 : callback(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, dates), newDates), months), correctedDates));
|
|
76
71
|
}, [dates, shouldCorrectDate, isRange]);
|
|
77
|
-
(0, _react.useEffect)(() => {
|
|
78
|
-
const startDates = updateInputDates('start', dates.startDate);
|
|
79
|
-
const endDates = updateInputDates('end', dates.endDate);
|
|
80
|
-
hasHadValidDate.current = (0, _isValid.default)(dates.startDate) || (0, _isValid.default)(dates.endDate);
|
|
81
|
-
setDates(currentDates => _objectSpread(_objectSpread(_objectSpread({}, currentDates), startDates), endDates));
|
|
82
|
-
}, [dates.startDate, dates.endDate]);
|
|
83
72
|
return {
|
|
84
73
|
dates,
|
|
85
74
|
updateDates,
|
|
86
|
-
hasHadValidDate: hasHadValidDate.current,
|
|
87
75
|
previousDateProps
|
|
88
76
|
};
|
|
89
77
|
}
|
|
90
|
-
function updateInputDates(type, date) {
|
|
91
|
-
const updatedDates = {};
|
|
92
|
-
if ((0, _isValid.default)(date)) {
|
|
93
|
-
updatedDates[`__${type}Day`] = pad((0, _format.default)(date, 'dd'), 2);
|
|
94
|
-
updatedDates[`__${type}Month`] = pad((0, _format.default)(date, 'MM'), 2);
|
|
95
|
-
updatedDates[`__${type}Year`] = (0, _format.default)(date, 'yyyy');
|
|
96
|
-
} else if (date === undefined) {
|
|
97
|
-
updatedDates[`__${type}Day`] = null;
|
|
98
|
-
updatedDates[`__${type}Month`] = null;
|
|
99
|
-
updatedDates[`__${type}Year`] = null;
|
|
100
|
-
}
|
|
101
|
-
return updatedDates;
|
|
102
|
-
}
|
|
103
78
|
function mapDates(dateProps, _ref2) {
|
|
104
79
|
var _ref3, _convertStringToDate, _convertStringToDate2;
|
|
105
80
|
let {
|
|
@@ -140,16 +115,7 @@ function mapDates(dateProps, _ref2) {
|
|
|
140
115
|
minDate,
|
|
141
116
|
maxDate
|
|
142
117
|
}, correctedDates);
|
|
143
|
-
|
|
144
|
-
const hasValidEndDate = (0, _isValid.default)(dates.endDate);
|
|
145
|
-
return _objectSpread(_objectSpread({}, dates), {}, {
|
|
146
|
-
__startDay: hasValidStartDate ? pad((0, _format.default)(dates.startDate, 'dd'), 2) : null,
|
|
147
|
-
__startMonth: hasValidStartDate ? pad((0, _format.default)(dates.startDate, 'MM'), 2) : null,
|
|
148
|
-
__startYear: hasValidStartDate ? (0, _format.default)(dates.startDate, 'yyyy') : null,
|
|
149
|
-
__endDay: hasValidEndDate ? pad((0, _format.default)(dates.endDate, 'dd'), 2) : null,
|
|
150
|
-
__endMonth: hasValidEndDate ? pad((0, _format.default)(dates.endDate, 'MM'), 2) : null,
|
|
151
|
-
__endYear: hasValidEndDate ? (0, _format.default)(dates.endDate, 'yyyy') : null
|
|
152
|
-
});
|
|
118
|
+
return _objectSpread({}, dates);
|
|
153
119
|
}
|
|
154
120
|
function deriveDatesFromProps(_ref4) {
|
|
155
121
|
let {
|
|
@@ -247,8 +213,4 @@ function getStartDate(dateProps, previousDateProps) {
|
|
|
247
213
|
}
|
|
248
214
|
return undefined;
|
|
249
215
|
}
|
|
250
|
-
function pad(date, size) {
|
|
251
|
-
const dateWithPadding = '000000000' + date;
|
|
252
|
-
return dateWithPadding.substring(dateWithPadding.length - size);
|
|
253
|
-
}
|
|
254
216
|
//# sourceMappingURL=useDates.js.map
|