@salutejs/plasma-new-hope 0.113.1-canary.1325.10178064945.0 → 0.114.0-canary.1326.10178816804.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. package/cjs/components/DatePicker/RangeDate/RangeDate.js +14 -2
  2. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  3. package/cjs/components/DatePicker/SingleDate/SingleDate.js +14 -2
  4. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  5. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +30 -0
  6. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -0
  7. package/cjs/components/Modal/hooks/useModal.js +15 -0
  8. package/cjs/components/Modal/hooks/useModal.js.map +1 -1
  9. package/cjs/components/Popup/PopupContext.js +8 -23
  10. package/cjs/components/Popup/PopupContext.js.map +1 -1
  11. package/cjs/components/Popup/hooks/usePopup.js +0 -5
  12. package/cjs/components/Popup/hooks/usePopup.js.map +1 -1
  13. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +14 -2
  14. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +14 -2
  15. package/emotion/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +32 -0
  16. package/emotion/cjs/components/Modal/hooks/useModal.js +15 -0
  17. package/emotion/cjs/components/Popup/PopupContext.js +8 -23
  18. package/emotion/cjs/components/Popup/hooks/usePopup.js +0 -5
  19. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +14 -2
  20. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +15 -3
  21. package/emotion/es/components/DatePicker/hooks/useKeyboardNavigation.js +26 -0
  22. package/emotion/es/components/Modal/hooks/useModal.js +17 -2
  23. package/emotion/es/components/Popup/PopupContext.js +9 -24
  24. package/emotion/es/components/Popup/hooks/usePopup.js +0 -5
  25. package/es/components/DatePicker/RangeDate/RangeDate.js +14 -2
  26. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  27. package/es/components/DatePicker/SingleDate/SingleDate.js +15 -3
  28. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  29. package/es/components/DatePicker/hooks/useKeyboardNavigation.js +25 -0
  30. package/es/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -0
  31. package/es/components/Modal/hooks/useModal.js +17 -2
  32. package/es/components/Modal/hooks/useModal.js.map +1 -1
  33. package/es/components/Popup/PopupContext.js +9 -24
  34. package/es/components/Popup/PopupContext.js.map +1 -1
  35. package/es/components/Popup/hooks/usePopup.js +0 -5
  36. package/es/components/Popup/hooks/usePopup.js.map +1 -1
  37. package/package.json +2 -2
  38. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +14 -2
  39. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +14 -2
  40. package/styled-components/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +32 -0
  41. package/styled-components/cjs/components/Modal/hooks/useModal.js +15 -0
  42. package/styled-components/cjs/components/Popup/PopupContext.js +8 -23
  43. package/styled-components/cjs/components/Popup/hooks/usePopup.js +0 -5
  44. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +14 -2
  45. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +15 -3
  46. package/styled-components/es/components/DatePicker/hooks/useKeyboardNavigation.js +26 -0
  47. package/styled-components/es/components/Modal/hooks/useModal.js +17 -2
  48. package/styled-components/es/components/Popup/PopupContext.js +9 -24
  49. package/styled-components/es/components/Popup/hooks/usePopup.js +0 -5
  50. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  51. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  52. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts +13 -0
  53. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts.map +1 -0
  54. package/types/components/Modal/hooks/useModal.d.ts +1 -1
  55. package/types/components/Modal/hooks/useModal.d.ts.map +1 -1
  56. package/types/components/Popup/PopupContext.d.ts.map +1 -1
  57. package/types/components/Popup/hooks/usePopup.d.ts.map +1 -1
@@ -8,6 +8,7 @@ var index = require('../../../utils/index.js');
8
8
  var dateHelper = require('../utils/dateHelper.js');
9
9
  var useDatePicker = require('../hooks/useDatePicker.js');
10
10
  var DatePicker_tokens = require('../DatePicker.tokens.js');
11
+ var useKeyboardNavigation = require('../hooks/useKeyboardNavigation.js');
11
12
  var base$1 = require('./variations/_size/base.js');
12
13
  var base = require('./variations/_view/base.js');
13
14
  var base$2 = require('./variations/_disabled/base.js');
@@ -169,6 +170,11 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
169
170
  }
170
171
  setIsInnerOpen(isCalendarOpen);
171
172
  };
173
+ var _useKeyNavigation = useKeyboardNavigation.useKeyNavigation({
174
+ isCalendarOpen: isInnerOpen,
175
+ onToggle: handleToggle
176
+ }),
177
+ onKeyDown = _useKeyNavigation.onKeyDown;
172
178
  var RangeComponent = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RangeDate_styles.StyledRange, {
173
179
  ref: rangeRef,
174
180
  dividerIcon: dividerIcon,
@@ -212,13 +218,19 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
212
218
  onFocusFirstTextfield: onFocusFirstTextfield,
213
219
  onFocusSecondTextfield: onFocusSecondTextfield,
214
220
  onBlurFirstTextfield: onBlurFirstTextfield,
215
- onBlurSecondTextfield: onBlurSecondTextfield
221
+ onBlurSecondTextfield: onBlurSecondTextfield,
222
+ onKeyDown: onKeyDown
216
223
  }));
217
224
  React.useEffect(function () {
218
225
  var _rangeRef$current5, _rangeRef$current6;
219
226
  setFirstInputRef((_rangeRef$current5 = rangeRef.current) === null || _rangeRef$current5 === void 0 ? void 0 : _rangeRef$current5.firstTextField());
220
227
  setSecondInputRef((_rangeRef$current6 = rangeRef.current) === null || _rangeRef$current6 === void 0 ? void 0 : _rangeRef$current6.secondTextField());
221
228
  }, [rangeRef.current]);
229
+ React.useEffect(function () {
230
+ setIsInnerOpen(function (prevOpen) {
231
+ return prevOpen !== isOpen && isOpen;
232
+ });
233
+ }, [isOpen]);
222
234
  return /*#__PURE__*/React.createElement(Root, _rollupPluginBabelHelpers.extends({
223
235
  ref: rootRef,
224
236
  view: view,
@@ -229,7 +241,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
229
241
  }, rest), label && /*#__PURE__*/React.createElement(RangeDate_styles.StyledLabel, null, label), /*#__PURE__*/React.createElement(RangeDatePopover.RangeDatePopover, {
230
242
  calendarValue: [calendarFirstValue, calendarSecondValue],
231
243
  target: RangeComponent,
232
- isOpen: isOpen || isInnerOpen,
244
+ isOpen: isInnerOpen,
233
245
  includeEdgeDates: includeEdgeDates,
234
246
  eventList: eventList,
235
247
  disabledList: disabledList,
@@ -1 +1 @@
1
- {"version":3,"file":"RangeDate.js","sources":["../../../../src/components/DatePicker/RangeDate/RangeDate.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n SyntheticEvent,\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport type { RootProps } from '../../../engines';\nimport { cx } from '../../../utils';\nimport { formatCalendarValue, formatInputValue, getDateFormatDelimiter } from '../utils/dateHelper';\nimport { useDatePicker } from '../hooks/useDatePicker';\nimport type { RangeInputRefs } from '../../Range/Range.types';\nimport { classes } from '../DatePicker.tokens';\n\nimport type { DatePickerRangeProps } from './RangeDate.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readOnlyCSS } from './variations/_readonly/base';\nimport { LeftHelper, StyledLabel, StyledRange, base } from './RangeDate.styles';\nimport { RangeDatePopover } from './RangeDatePopover/RangeDatePopover';\n\nexport const datePickerRangeRoot = (\n Root: RootProps<HTMLDivElement, Omit<DatePickerRangeProps, 'isOpen' | 'defaultValue' | 'onChangeValue'>>,\n) =>\n forwardRef<RangeInputRefs, DatePickerRangeProps>(\n (\n {\n className,\n\n isDoubleCalendar = false,\n isOpen = false,\n\n label,\n leftHelper,\n contentLeft,\n contentRight,\n view,\n size,\n readOnly = false,\n disabled = false,\n\n dividerVariant = 'dash',\n dividerIcon,\n\n defaultFirstDate = '',\n defaultSecondDate = '',\n firstValueError,\n secondValueError,\n firstValueSuccess,\n secondValueSuccess,\n firstPlaceholder,\n secondPlaceholder,\n firstTextfieldContentLeft,\n firstTextfieldContentRight,\n secondTextfieldContentLeft,\n secondTextfieldContentRight,\n firstTextfieldTextBefore,\n secondTextfieldTextBefore,\n firstTextfieldTextAfter,\n secondTextfieldTextAfter,\n\n format = 'DD.MM.YYYY',\n maskWithFormat,\n min,\n max,\n includeEdgeDates = false,\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n type = 'Days',\n\n placement = ['top', 'bottom'],\n closeOnOverlayClick = true,\n closeOnEsc = true,\n offset,\n\n onToggle,\n\n onChangeFirstValue,\n onChangeSecondValue,\n\n onCommitFirstDate,\n onCommitSecondDate,\n\n onFocusFirstTextfield,\n onFocusSecondTextfield,\n onBlurFirstTextfield,\n onBlurSecondTextfield,\n\n ...rest\n },\n ref,\n ) => {\n const rangeRef = ref && 'current' in ref ? ref : createRef<RangeInputRefs>();\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n const [firstInputRef, setFirstInputRef] = useState<MutableRefObject<HTMLInputElement | null> | undefined>(\n rangeRef?.current?.firstTextField(),\n );\n const [secondInputRef, setSecondInputRef] = useState<MutableRefObject<HTMLInputElement | null> | undefined>(\n rangeRef?.current?.secondTextField(),\n );\n const [isInnerOpen, setIsInnerOpen] = useState(isOpen);\n\n const [calendarFirstValue, setCalendarFirstValue] = useState(formatCalendarValue(defaultFirstDate, format));\n const [inputFirstValue, setInputFirstValue] = useState(formatInputValue(defaultFirstDate, format));\n\n const [calendarSecondValue, setCalendarSecondValue] = useState(\n formatCalendarValue(defaultSecondDate, format),\n );\n const [inputSecondValue, setInputSecondValue] = useState(formatInputValue(defaultSecondDate, format));\n\n const dateFormatDelimiter = useCallback(() => getDateFormatDelimiter(format), [format]);\n\n const {\n handleChangeValue: handleChangeFirstValue,\n handleCommitDate: handleCommitFirstDate,\n } = useDatePicker({\n currentValue: inputFirstValue,\n setInputValue: setInputFirstValue,\n setCalendarValue: setCalendarFirstValue,\n setIsInnerOpen,\n dateFormatDelimiter,\n format,\n disabled,\n readOnly,\n maskWithFormat,\n valueError: firstValueError,\n valueSuccess: firstValueSuccess,\n inputRef: firstInputRef,\n onChangeValue: onChangeFirstValue,\n onCommitDate: onCommitFirstDate,\n });\n\n const {\n handleChangeValue: handleChangeSecondValue,\n handleCommitDate: handleCommitSecondDate,\n } = useDatePicker({\n currentValue: inputSecondValue,\n setInputValue: setInputSecondValue,\n setCalendarValue: setCalendarSecondValue,\n setIsInnerOpen,\n dateFormatDelimiter,\n format,\n disabled,\n readOnly,\n maskWithFormat,\n valueError: secondValueError,\n valueSuccess: secondValueSuccess,\n inputRef: secondInputRef,\n onChangeValue: onChangeSecondValue,\n onCommitDate: onCommitSecondDate,\n });\n\n const handleToggle = (opened: boolean, event: SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n const isCalendarOpen =\n firstInputRef?.current?.contains((event.target as Node) || null) ||\n secondInputRef?.current?.contains((event.target as Node) || null)\n ? true\n : opened;\n\n if (onToggle) {\n return onToggle(isCalendarOpen, event);\n }\n\n setIsInnerOpen(isCalendarOpen);\n };\n\n const RangeComponent = (\n <>\n {/* TODO https://github.com/salute-developers/plasma/issues/1227\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore */}\n <StyledRange\n ref={rangeRef}\n dividerIcon={dividerIcon}\n dividerVariant={dividerVariant}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n firstPlaceholder={firstPlaceholder}\n secondPlaceholder={secondPlaceholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n firstTextfieldTextBefore={firstTextfieldTextBefore}\n secondTextfieldTextBefore={secondTextfieldTextBefore}\n firstTextfieldTextAfter={firstTextfieldTextAfter}\n secondTextfieldTextAfter={secondTextfieldTextAfter}\n firstTextfieldContentLeft={firstTextfieldContentLeft}\n firstTextfieldContentRight={firstTextfieldContentRight}\n secondTextfieldContentLeft={secondTextfieldContentLeft}\n secondTextfieldContentRight={secondTextfieldContentRight}\n firstValue={inputFirstValue}\n secondValue={inputSecondValue}\n firstValueError={firstValueError}\n secondValueError={secondValueError}\n firstValueSuccess={firstValueSuccess}\n secondValueSuccess={secondValueSuccess}\n onChangeFirstValue={handleChangeFirstValue}\n onChangeSecondValue={handleChangeSecondValue}\n onSearchFirstValue={(_, date) => {\n handleCommitFirstDate(String(date), true, false);\n if (!calendarSecondValue || secondValueError) {\n rangeRef?.current?.secondTextField()?.current?.focus();\n }\n }}\n onSearchSecondValue={(_, date) => {\n handleCommitSecondDate(String(date), true, false);\n if (!calendarFirstValue || firstValueError) {\n rangeRef?.current?.firstTextField()?.current?.focus();\n }\n }}\n onFocusFirstTextfield={onFocusFirstTextfield}\n onFocusSecondTextfield={onFocusSecondTextfield}\n onBlurFirstTextfield={onBlurFirstTextfield}\n onBlurSecondTextfield={onBlurSecondTextfield}\n />\n </>\n );\n\n useEffect(() => {\n setFirstInputRef(rangeRef.current?.firstTextField());\n setSecondInputRef(rangeRef.current?.secondTextField());\n }, [rangeRef.current]);\n\n return (\n <Root\n ref={rootRef}\n view={view}\n size={size}\n className={cx(classes.datePickerRoot, className)}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n {...rest}\n >\n {label && <StyledLabel>{label}</StyledLabel>}\n <RangeDatePopover\n calendarValue={[calendarFirstValue, calendarSecondValue]}\n target={RangeComponent}\n isOpen={isOpen || isInnerOpen}\n includeEdgeDates={includeEdgeDates}\n eventList={eventList}\n disabledList={disabledList}\n eventMonthList={eventMonthList}\n disabledMonthList={disabledMonthList}\n eventQuarterList={eventQuarterList}\n disabledQuarterList={disabledQuarterList}\n eventYearList={eventYearList}\n disabledYearList={disabledYearList}\n min={min}\n max={max}\n placement={placement}\n closeOnOverlayClick={closeOnOverlayClick}\n closeOnEsc={closeOnEsc}\n offset={offset}\n type={type}\n onToggle={handleToggle}\n isDoubleCalendar={isDoubleCalendar}\n onChangeStartOfRange={(firstDate, dateInfo) => {\n handleCommitFirstDate(firstDate, false, true, dateInfo);\n handleCommitSecondDate('');\n }}\n onChangeValue={([firstDate, secondDate], dateInfo) => {\n firstDate && handleCommitFirstDate(firstDate, false, true, dateInfo);\n secondDate && handleCommitSecondDate(secondDate, false, true, dateInfo);\n if (firstDate && secondDate && !firstValueError && !secondValueError) {\n setIsInnerOpen(false);\n }\n }}\n />\n {leftHelper && <LeftHelper>{leftHelper}</LeftHelper>}\n </Root>\n );\n },\n );\n\nexport const datePickerRangeConfig = {\n name: 'DatePickerRange',\n tag: 'div',\n layout: datePickerRangeRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n css: readOnlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["datePickerRangeRoot","Root","forwardRef","_ref","ref","_rangeRef$current","_rangeRef$current2","className","_ref$isDoubleCalendar","isDoubleCalendar","_ref$isOpen","isOpen","label","leftHelper","contentLeft","contentRight","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","_ref$dividerVariant","dividerVariant","dividerIcon","_ref$defaultFirstDate","defaultFirstDate","_ref$defaultSecondDat","defaultSecondDate","firstValueError","secondValueError","firstValueSuccess","secondValueSuccess","firstPlaceholder","secondPlaceholder","firstTextfieldContentLeft","firstTextfieldContentRight","secondTextfieldContentLeft","secondTextfieldContentRight","firstTextfieldTextBefore","secondTextfieldTextBefore","firstTextfieldTextAfter","secondTextfieldTextAfter","_ref$format","format","maskWithFormat","min","max","_ref$includeEdgeDates","includeEdgeDates","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","_ref$type","type","_ref$placement","placement","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$closeOnEsc","closeOnEsc","offset","onToggle","onChangeFirstValue","onChangeSecondValue","onCommitFirstDate","onCommitSecondDate","onFocusFirstTextfield","onFocusSecondTextfield","onBlurFirstTextfield","onBlurSecondTextfield","rest","_objectWithoutProperties","_excluded","rangeRef","createRef","rootRef","useRef","_useState","useState","current","firstTextField","_useState2","_slicedToArray","firstInputRef","setFirstInputRef","_useState3","secondTextField","_useState4","secondInputRef","setSecondInputRef","_useState5","_useState6","isInnerOpen","setIsInnerOpen","_useState7","formatCalendarValue","_useState8","calendarFirstValue","setCalendarFirstValue","_useState9","formatInputValue","_useState10","inputFirstValue","setInputFirstValue","_useState11","_useState12","calendarSecondValue","setCalendarSecondValue","_useState13","_useState14","inputSecondValue","setInputSecondValue","dateFormatDelimiter","useCallback","getDateFormatDelimiter","_useDatePicker","useDatePicker","currentValue","setInputValue","setCalendarValue","valueError","valueSuccess","inputRef","onChangeValue","onCommitDate","handleChangeFirstValue","handleChangeValue","handleCommitFirstDate","handleCommitDate","_useDatePicker2","handleChangeSecondValue","handleCommitSecondDate","handleToggle","opened","event","_firstInputRef$curren","_secondInputRef$curre","isCalendarOpen","contains","target","RangeComponent","React","createElement","Fragment","StyledRange","firstValue","secondValue","onSearchFirstValue","_","date","String","_rangeRef$current3","focus","onSearchSecondValue","_rangeRef$current4","useEffect","_rangeRef$current5","_rangeRef$current6","_extends","cx","classes","datePickerRoot","StyledLabel","RangeDatePopover","calendarValue","onChangeStartOfRange","firstDate","dateInfo","_ref2","_ref3","secondDate","LeftHelper","datePickerRangeConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readOnlyCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"RangeDate.js","sources":["../../../../src/components/DatePicker/RangeDate/RangeDate.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n SyntheticEvent,\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport type { RootProps } from '../../../engines';\nimport { cx } from '../../../utils';\nimport { formatCalendarValue, formatInputValue, getDateFormatDelimiter } from '../utils/dateHelper';\nimport { useDatePicker } from '../hooks/useDatePicker';\nimport type { RangeInputRefs } from '../../Range/Range.types';\nimport { classes } from '../DatePicker.tokens';\nimport { useKeyNavigation } from '../hooks/useKeyboardNavigation';\n\nimport type { DatePickerRangeProps } from './RangeDate.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readOnlyCSS } from './variations/_readonly/base';\nimport { LeftHelper, StyledLabel, StyledRange, base } from './RangeDate.styles';\nimport { RangeDatePopover } from './RangeDatePopover/RangeDatePopover';\n\nexport const datePickerRangeRoot = (\n Root: RootProps<HTMLDivElement, Omit<DatePickerRangeProps, 'isOpen' | 'defaultValue' | 'onChangeValue'>>,\n) =>\n forwardRef<RangeInputRefs, DatePickerRangeProps>(\n (\n {\n className,\n\n isDoubleCalendar = false,\n isOpen = false,\n\n label,\n leftHelper,\n contentLeft,\n contentRight,\n view,\n size,\n readOnly = false,\n disabled = false,\n\n dividerVariant = 'dash',\n dividerIcon,\n\n defaultFirstDate = '',\n defaultSecondDate = '',\n firstValueError,\n secondValueError,\n firstValueSuccess,\n secondValueSuccess,\n firstPlaceholder,\n secondPlaceholder,\n firstTextfieldContentLeft,\n firstTextfieldContentRight,\n secondTextfieldContentLeft,\n secondTextfieldContentRight,\n firstTextfieldTextBefore,\n secondTextfieldTextBefore,\n firstTextfieldTextAfter,\n secondTextfieldTextAfter,\n\n format = 'DD.MM.YYYY',\n maskWithFormat,\n min,\n max,\n includeEdgeDates = false,\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n type = 'Days',\n\n placement = ['top', 'bottom'],\n closeOnOverlayClick = true,\n closeOnEsc = true,\n offset,\n\n onToggle,\n\n onChangeFirstValue,\n onChangeSecondValue,\n\n onCommitFirstDate,\n onCommitSecondDate,\n\n onFocusFirstTextfield,\n onFocusSecondTextfield,\n onBlurFirstTextfield,\n onBlurSecondTextfield,\n\n ...rest\n },\n ref,\n ) => {\n const rangeRef = ref && 'current' in ref ? ref : createRef<RangeInputRefs>();\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n const [firstInputRef, setFirstInputRef] = useState<MutableRefObject<HTMLInputElement | null> | undefined>(\n rangeRef?.current?.firstTextField(),\n );\n const [secondInputRef, setSecondInputRef] = useState<MutableRefObject<HTMLInputElement | null> | undefined>(\n rangeRef?.current?.secondTextField(),\n );\n const [isInnerOpen, setIsInnerOpen] = useState(isOpen);\n\n const [calendarFirstValue, setCalendarFirstValue] = useState(formatCalendarValue(defaultFirstDate, format));\n const [inputFirstValue, setInputFirstValue] = useState(formatInputValue(defaultFirstDate, format));\n\n const [calendarSecondValue, setCalendarSecondValue] = useState(\n formatCalendarValue(defaultSecondDate, format),\n );\n const [inputSecondValue, setInputSecondValue] = useState(formatInputValue(defaultSecondDate, format));\n\n const dateFormatDelimiter = useCallback(() => getDateFormatDelimiter(format), [format]);\n\n const {\n handleChangeValue: handleChangeFirstValue,\n handleCommitDate: handleCommitFirstDate,\n } = useDatePicker({\n currentValue: inputFirstValue,\n setInputValue: setInputFirstValue,\n setCalendarValue: setCalendarFirstValue,\n setIsInnerOpen,\n dateFormatDelimiter,\n format,\n disabled,\n readOnly,\n maskWithFormat,\n valueError: firstValueError,\n valueSuccess: firstValueSuccess,\n inputRef: firstInputRef,\n onChangeValue: onChangeFirstValue,\n onCommitDate: onCommitFirstDate,\n });\n\n const {\n handleChangeValue: handleChangeSecondValue,\n handleCommitDate: handleCommitSecondDate,\n } = useDatePicker({\n currentValue: inputSecondValue,\n setInputValue: setInputSecondValue,\n setCalendarValue: setCalendarSecondValue,\n setIsInnerOpen,\n dateFormatDelimiter,\n format,\n disabled,\n readOnly,\n maskWithFormat,\n valueError: secondValueError,\n valueSuccess: secondValueSuccess,\n inputRef: secondInputRef,\n onChangeValue: onChangeSecondValue,\n onCommitDate: onCommitSecondDate,\n });\n\n const handleToggle = (opened: boolean, event: SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n const isCalendarOpen =\n firstInputRef?.current?.contains((event.target as Node) || null) ||\n secondInputRef?.current?.contains((event.target as Node) || null)\n ? true\n : opened;\n\n if (onToggle) {\n return onToggle(isCalendarOpen, event);\n }\n\n setIsInnerOpen(isCalendarOpen);\n };\n\n const { onKeyDown } = useKeyNavigation({\n isCalendarOpen: isInnerOpen,\n onToggle: handleToggle,\n });\n\n const RangeComponent = (\n <>\n {/* TODO https://github.com/salute-developers/plasma/issues/1227\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore */}\n <StyledRange\n ref={rangeRef}\n dividerIcon={dividerIcon}\n dividerVariant={dividerVariant}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n firstPlaceholder={firstPlaceholder}\n secondPlaceholder={secondPlaceholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n firstTextfieldTextBefore={firstTextfieldTextBefore}\n secondTextfieldTextBefore={secondTextfieldTextBefore}\n firstTextfieldTextAfter={firstTextfieldTextAfter}\n secondTextfieldTextAfter={secondTextfieldTextAfter}\n firstTextfieldContentLeft={firstTextfieldContentLeft}\n firstTextfieldContentRight={firstTextfieldContentRight}\n secondTextfieldContentLeft={secondTextfieldContentLeft}\n secondTextfieldContentRight={secondTextfieldContentRight}\n firstValue={inputFirstValue}\n secondValue={inputSecondValue}\n firstValueError={firstValueError}\n secondValueError={secondValueError}\n firstValueSuccess={firstValueSuccess}\n secondValueSuccess={secondValueSuccess}\n onChangeFirstValue={handleChangeFirstValue}\n onChangeSecondValue={handleChangeSecondValue}\n onSearchFirstValue={(_, date) => {\n handleCommitFirstDate(String(date), true, false);\n if (!calendarSecondValue || secondValueError) {\n rangeRef?.current?.secondTextField()?.current?.focus();\n }\n }}\n onSearchSecondValue={(_, date) => {\n handleCommitSecondDate(String(date), true, false);\n if (!calendarFirstValue || firstValueError) {\n rangeRef?.current?.firstTextField()?.current?.focus();\n }\n }}\n onFocusFirstTextfield={onFocusFirstTextfield}\n onFocusSecondTextfield={onFocusSecondTextfield}\n onBlurFirstTextfield={onBlurFirstTextfield}\n onBlurSecondTextfield={onBlurSecondTextfield}\n onKeyDown={onKeyDown}\n />\n </>\n );\n\n useEffect(() => {\n setFirstInputRef(rangeRef.current?.firstTextField());\n setSecondInputRef(rangeRef.current?.secondTextField());\n }, [rangeRef.current]);\n\n useEffect(() => {\n setIsInnerOpen((prevOpen) => prevOpen !== isOpen && isOpen);\n }, [isOpen]);\n\n return (\n <Root\n ref={rootRef}\n view={view}\n size={size}\n className={cx(classes.datePickerRoot, className)}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n {...rest}\n >\n {label && <StyledLabel>{label}</StyledLabel>}\n <RangeDatePopover\n calendarValue={[calendarFirstValue, calendarSecondValue]}\n target={RangeComponent}\n isOpen={isInnerOpen}\n includeEdgeDates={includeEdgeDates}\n eventList={eventList}\n disabledList={disabledList}\n eventMonthList={eventMonthList}\n disabledMonthList={disabledMonthList}\n eventQuarterList={eventQuarterList}\n disabledQuarterList={disabledQuarterList}\n eventYearList={eventYearList}\n disabledYearList={disabledYearList}\n min={min}\n max={max}\n placement={placement}\n closeOnOverlayClick={closeOnOverlayClick}\n closeOnEsc={closeOnEsc}\n offset={offset}\n type={type}\n onToggle={handleToggle}\n isDoubleCalendar={isDoubleCalendar}\n onChangeStartOfRange={(firstDate, dateInfo) => {\n handleCommitFirstDate(firstDate, false, true, dateInfo);\n handleCommitSecondDate('');\n }}\n onChangeValue={([firstDate, secondDate], dateInfo) => {\n firstDate && handleCommitFirstDate(firstDate, false, true, dateInfo);\n secondDate && handleCommitSecondDate(secondDate, false, true, dateInfo);\n if (firstDate && secondDate && !firstValueError && !secondValueError) {\n setIsInnerOpen(false);\n }\n }}\n />\n {leftHelper && <LeftHelper>{leftHelper}</LeftHelper>}\n </Root>\n );\n },\n );\n\nexport const datePickerRangeConfig = {\n name: 'DatePickerRange',\n tag: 'div',\n layout: datePickerRangeRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n css: readOnlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["datePickerRangeRoot","Root","forwardRef","_ref","ref","_rangeRef$current","_rangeRef$current2","className","_ref$isDoubleCalendar","isDoubleCalendar","_ref$isOpen","isOpen","label","leftHelper","contentLeft","contentRight","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","_ref$dividerVariant","dividerVariant","dividerIcon","_ref$defaultFirstDate","defaultFirstDate","_ref$defaultSecondDat","defaultSecondDate","firstValueError","secondValueError","firstValueSuccess","secondValueSuccess","firstPlaceholder","secondPlaceholder","firstTextfieldContentLeft","firstTextfieldContentRight","secondTextfieldContentLeft","secondTextfieldContentRight","firstTextfieldTextBefore","secondTextfieldTextBefore","firstTextfieldTextAfter","secondTextfieldTextAfter","_ref$format","format","maskWithFormat","min","max","_ref$includeEdgeDates","includeEdgeDates","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","_ref$type","type","_ref$placement","placement","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$closeOnEsc","closeOnEsc","offset","onToggle","onChangeFirstValue","onChangeSecondValue","onCommitFirstDate","onCommitSecondDate","onFocusFirstTextfield","onFocusSecondTextfield","onBlurFirstTextfield","onBlurSecondTextfield","rest","_objectWithoutProperties","_excluded","rangeRef","createRef","rootRef","useRef","_useState","useState","current","firstTextField","_useState2","_slicedToArray","firstInputRef","setFirstInputRef","_useState3","secondTextField","_useState4","secondInputRef","setSecondInputRef","_useState5","_useState6","isInnerOpen","setIsInnerOpen","_useState7","formatCalendarValue","_useState8","calendarFirstValue","setCalendarFirstValue","_useState9","formatInputValue","_useState10","inputFirstValue","setInputFirstValue","_useState11","_useState12","calendarSecondValue","setCalendarSecondValue","_useState13","_useState14","inputSecondValue","setInputSecondValue","dateFormatDelimiter","useCallback","getDateFormatDelimiter","_useDatePicker","useDatePicker","currentValue","setInputValue","setCalendarValue","valueError","valueSuccess","inputRef","onChangeValue","onCommitDate","handleChangeFirstValue","handleChangeValue","handleCommitFirstDate","handleCommitDate","_useDatePicker2","handleChangeSecondValue","handleCommitSecondDate","handleToggle","opened","event","_firstInputRef$curren","_secondInputRef$curre","isCalendarOpen","contains","target","_useKeyNavigation","useKeyNavigation","onKeyDown","RangeComponent","React","createElement","Fragment","StyledRange","firstValue","secondValue","onSearchFirstValue","_","date","String","_rangeRef$current3","focus","onSearchSecondValue","_rangeRef$current4","useEffect","_rangeRef$current5","_rangeRef$current6","prevOpen","_extends","cx","classes","datePickerRoot","StyledLabel","RangeDatePopover","calendarValue","onChangeStartOfRange","firstDate","dateInfo","_ref2","_ref3","secondDate","LeftHelper","datePickerRangeConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readOnlyCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;IA2BaA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAC5BC,IAAwG,EAAA;AAAA,EAAA,oBAExGC,gBAAU,CACN,UAAAC,IAAA,EAuEIC,GAAG,EACF;IAAA,IAAAC,iBAAA,EAAAC,kBAAA,CAAA;AAAA,IAAA,IAtEGC,SAAS,GAAAJ,IAAA,CAATI,SAAS;MAAAC,qBAAA,GAAAL,IAAA,CAETM,gBAAgB;AAAhBA,MAAAA,gBAAgB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;MAAAE,WAAA,GAAAP,IAAA,CACxBQ,MAAM;AAANA,MAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,WAAA;MAEdE,KAAK,GAAAT,IAAA,CAALS,KAAK;MACLC,UAAU,GAAAV,IAAA,CAAVU,UAAU;MACVC,WAAW,GAAAX,IAAA,CAAXW,WAAW;MACXC,YAAY,GAAAZ,IAAA,CAAZY,YAAY;MACZC,IAAI,GAAAb,IAAA,CAAJa,IAAI;MACJC,IAAI,GAAAd,IAAA,CAAJc,IAAI;MAAAC,aAAA,GAAAf,IAAA,CACJgB,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;MAAAE,aAAA,GAAAjB,IAAA,CAChBkB,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;MAAAE,mBAAA,GAAAnB,IAAA,CAEhBoB,cAAc;AAAdA,MAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,mBAAA;MACvBE,WAAW,GAAArB,IAAA,CAAXqB,WAAW;MAAAC,qBAAA,GAAAtB,IAAA,CAEXuB,gBAAgB;AAAhBA,MAAAA,gBAAgB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;MAAAE,qBAAA,GAAAxB,IAAA,CACrByB,iBAAiB;AAAjBA,MAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;MACtBE,eAAe,GAAA1B,IAAA,CAAf0B,eAAe;MACfC,gBAAgB,GAAA3B,IAAA,CAAhB2B,gBAAgB;MAChBC,iBAAiB,GAAA5B,IAAA,CAAjB4B,iBAAiB;MACjBC,kBAAkB,GAAA7B,IAAA,CAAlB6B,kBAAkB;MAClBC,gBAAgB,GAAA9B,IAAA,CAAhB8B,gBAAgB;MAChBC,iBAAiB,GAAA/B,IAAA,CAAjB+B,iBAAiB;MACjBC,yBAAyB,GAAAhC,IAAA,CAAzBgC,yBAAyB;MACzBC,0BAA0B,GAAAjC,IAAA,CAA1BiC,0BAA0B;MAC1BC,0BAA0B,GAAAlC,IAAA,CAA1BkC,0BAA0B;MAC1BC,2BAA2B,GAAAnC,IAAA,CAA3BmC,2BAA2B;MAC3BC,wBAAwB,GAAApC,IAAA,CAAxBoC,wBAAwB;MACxBC,yBAAyB,GAAArC,IAAA,CAAzBqC,yBAAyB;MACzBC,uBAAuB,GAAAtC,IAAA,CAAvBsC,uBAAuB;MACvBC,wBAAwB,GAAAvC,IAAA,CAAxBuC,wBAAwB;MAAAC,WAAA,GAAAxC,IAAA,CAExByC,MAAM;AAANA,MAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,YAAY,GAAAA,WAAA;MACrBE,cAAc,GAAA1C,IAAA,CAAd0C,cAAc;MACdC,GAAG,GAAA3C,IAAA,CAAH2C,GAAG;MACHC,GAAG,GAAA5C,IAAA,CAAH4C,GAAG;MAAAC,qBAAA,GAAA7C,IAAA,CACH8C,gBAAgB;AAAhBA,MAAAA,gBAAgB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;MACxBE,SAAS,GAAA/C,IAAA,CAAT+C,SAAS;MACTC,YAAY,GAAAhD,IAAA,CAAZgD,YAAY;MACZC,cAAc,GAAAjD,IAAA,CAAdiD,cAAc;MACdC,iBAAiB,GAAAlD,IAAA,CAAjBkD,iBAAiB;MACjBC,gBAAgB,GAAAnD,IAAA,CAAhBmD,gBAAgB;MAChBC,mBAAmB,GAAApD,IAAA,CAAnBoD,mBAAmB;MACnBC,aAAa,GAAArD,IAAA,CAAbqD,aAAa;MACbC,gBAAgB,GAAAtD,IAAA,CAAhBsD,gBAAgB;MAAAC,SAAA,GAAAvD,IAAA,CAChBwD,IAAI;AAAJA,MAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,SAAA;MAAAE,cAAA,GAAAzD,IAAA,CAEb0D,SAAS;MAATA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAAA,cAAA;MAAAE,qBAAA,GAAA3D,IAAA,CAC7B4D,mBAAmB;AAAnBA,MAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;MAAAE,eAAA,GAAA7D,IAAA,CAC1B8D,UAAU;AAAVA,MAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,eAAA;MACjBE,MAAM,GAAA/D,IAAA,CAAN+D,MAAM;MAENC,QAAQ,GAAAhE,IAAA,CAARgE,QAAQ;MAERC,kBAAkB,GAAAjE,IAAA,CAAlBiE,kBAAkB;MAClBC,mBAAmB,GAAAlE,IAAA,CAAnBkE,mBAAmB;MAEnBC,iBAAiB,GAAAnE,IAAA,CAAjBmE,iBAAiB;MACjBC,kBAAkB,GAAApE,IAAA,CAAlBoE,kBAAkB;MAElBC,qBAAqB,GAAArE,IAAA,CAArBqE,qBAAqB;MACrBC,sBAAsB,GAAAtE,IAAA,CAAtBsE,sBAAsB;MACtBC,oBAAoB,GAAAvE,IAAA,CAApBuE,oBAAoB;MACpBC,qBAAqB,GAAAxE,IAAA,CAArBwE,qBAAqB;AAElBC,MAAAA,IAAI,GAAAC,iDAAA,CAAA1E,IAAA,EAAA2E,SAAA,CAAA,CAAA;AAIX,IAAA,IAAMC,QAAQ,GAAG3E,GAAG,IAAI,SAAS,IAAIA,GAAG,GAAGA,GAAG,gBAAG4E,eAAS,EAAkB,CAAA;AAC5E,IAAA,IAAMC,OAAO,GAAGC,YAAM,CAAwB,IAAI,CAAC,CAAA;IAEnD,IAAAC,SAAA,GAA0CC,cAAQ,CAC9CL,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,gBAAA1E,iBAAA,GAAR0E,QAAQ,CAAEM,OAAO,cAAAhF,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAA,CAAmBiF,cAAc,EACrC,CAAC;MAAAC,UAAA,GAAAC,uCAAA,CAAAL,SAAA,EAAA,CAAA,CAAA;AAFMM,MAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,gBAAgB,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;IAGtC,IAAAI,UAAA,GAA4CP,cAAQ,CAChDL,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,gBAAAzE,kBAAA,GAARyE,QAAQ,CAAEM,OAAO,cAAA/E,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,kBAAA,CAAmBsF,eAAe,EACtC,CAAC;MAAAC,UAAA,GAAAL,uCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAFMG,MAAAA,cAAc,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,iBAAiB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAGxC,IAAA,IAAAG,UAAA,GAAsCZ,cAAQ,CAACzE,MAAM,CAAC;MAAAsF,UAAA,GAAAT,uCAAA,CAAAQ,UAAA,EAAA,CAAA,CAAA;AAA/CE,MAAAA,WAAW,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,cAAc,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAElC,IAAAG,UAAA,GAAoDhB,cAAQ,CAACiB,8BAAmB,CAAC3E,gBAAgB,EAAEkB,MAAM,CAAC,CAAC;MAAA0D,UAAA,GAAAd,uCAAA,CAAAY,UAAA,EAAA,CAAA,CAAA;AAApGG,MAAAA,kBAAkB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,qBAAqB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAChD,IAAAG,UAAA,GAA8CrB,cAAQ,CAACsB,2BAAgB,CAAChF,gBAAgB,EAAEkB,MAAM,CAAC,CAAC;MAAA+D,WAAA,GAAAnB,uCAAA,CAAAiB,UAAA,EAAA,CAAA,CAAA;AAA3FG,MAAAA,eAAe,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,kBAAkB,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;IAE1C,IAAAG,WAAA,GAAsD1B,cAAQ,CAC1DiB,8BAAmB,CAACzE,iBAAiB,EAAEgB,MAAM,CACjD,CAAC;MAAAmE,WAAA,GAAAvB,uCAAA,CAAAsB,WAAA,EAAA,CAAA,CAAA;AAFME,MAAAA,mBAAmB,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,sBAAsB,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;IAGlD,IAAAG,WAAA,GAAgD9B,cAAQ,CAACsB,2BAAgB,CAAC9E,iBAAiB,EAAEgB,MAAM,CAAC,CAAC;MAAAuE,WAAA,GAAA3B,uCAAA,CAAA0B,WAAA,EAAA,CAAA,CAAA;AAA9FE,MAAAA,gBAAgB,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,mBAAmB,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;IAE5C,IAAMG,mBAAmB,GAAGC,iBAAW,CAAC,YAAA;MAAA,OAAMC,iCAAsB,CAAC5E,MAAM,CAAC,CAAA;KAAE,EAAA,CAACA,MAAM,CAAC,CAAC,CAAA;IAEvF,IAAA6E,cAAA,GAGIC,2BAAa,CAAC;AACdC,QAAAA,YAAY,EAAEf,eAAe;AAC7BgB,QAAAA,aAAa,EAAEf,kBAAkB;AACjCgB,QAAAA,gBAAgB,EAAErB,qBAAqB;AACvCL,QAAAA,cAAc,EAAdA,cAAc;AACdmB,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnB1E,QAAAA,MAAM,EAANA,MAAM;AACNvB,QAAAA,QAAQ,EAARA,QAAQ;AACRF,QAAAA,QAAQ,EAARA,QAAQ;AACR0B,QAAAA,cAAc,EAAdA,cAAc;AACdiF,QAAAA,UAAU,EAAEjG,eAAe;AAC3BkG,QAAAA,YAAY,EAAEhG,iBAAiB;AAC/BiG,QAAAA,QAAQ,EAAEvC,aAAa;AACvBwC,QAAAA,aAAa,EAAE7D,kBAAkB;AACjC8D,QAAAA,YAAY,EAAE5D,iBAAAA;AAClB,OAAC,CAAC;MAjBqB6D,sBAAsB,GAAAV,cAAA,CAAzCW,iBAAiB;MACCC,qBAAqB,GAAAZ,cAAA,CAAvCa,gBAAgB,CAAA;IAkBpB,IAAAC,eAAA,GAGIb,2BAAa,CAAC;AACdC,QAAAA,YAAY,EAAEP,gBAAgB;AAC9BQ,QAAAA,aAAa,EAAEP,mBAAmB;AAClCQ,QAAAA,gBAAgB,EAAEZ,sBAAsB;AACxCd,QAAAA,cAAc,EAAdA,cAAc;AACdmB,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnB1E,QAAAA,MAAM,EAANA,MAAM;AACNvB,QAAAA,QAAQ,EAARA,QAAQ;AACRF,QAAAA,QAAQ,EAARA,QAAQ;AACR0B,QAAAA,cAAc,EAAdA,cAAc;AACdiF,QAAAA,UAAU,EAAEhG,gBAAgB;AAC5BiG,QAAAA,YAAY,EAAE/F,kBAAkB;AAChCgG,QAAAA,QAAQ,EAAElC,cAAc;AACxBmC,QAAAA,aAAa,EAAE5D,mBAAmB;AAClC6D,QAAAA,YAAY,EAAE3D,kBAAAA;AAClB,OAAC,CAAC;MAjBqBiE,uBAAuB,GAAAD,eAAA,CAA1CH,iBAAiB;MACCK,sBAAsB,GAAAF,eAAA,CAAxCD,gBAAgB,CAAA;IAkBpB,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAAe,EAAEC,KAA6B,EAAK;MAAA,IAAAC,qBAAA,EAAAC,qBAAA,CAAA;MACrE,IAAIzH,QAAQ,IAAIF,QAAQ,EAAE;AACtB,QAAA,OAAA;AACJ,OAAA;MAEA,IAAM4H,cAAc,GAChBtD,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAAoD,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAbpD,aAAa,CAAEJ,OAAO,cAAAwD,qBAAA,KAAA,KAAA,CAAA,IAAtBA,qBAAA,CAAwBG,QAAQ,CAAEJ,KAAK,CAACK,MAAM,IAAa,IAAI,CAAC,IAChEnD,cAAc,KAAdA,IAAAA,IAAAA,cAAc,gBAAAgD,qBAAA,GAAdhD,cAAc,CAAET,OAAO,MAAAyD,IAAAA,IAAAA,qBAAA,KAAvBA,KAAAA,CAAAA,IAAAA,qBAAA,CAAyBE,QAAQ,CAAEJ,KAAK,CAACK,MAAM,IAAa,IAAI,CAAC,GAC3D,IAAI,GACJN,MAAM,CAAA;AAEhB,MAAA,IAAIxE,QAAQ,EAAE;AACV,QAAA,OAAOA,QAAQ,CAAC4E,cAAc,EAAEH,KAAK,CAAC,CAAA;AAC1C,OAAA;MAEAzC,cAAc,CAAC4C,cAAc,CAAC,CAAA;KACjC,CAAA;IAED,IAAAG,iBAAA,GAAsBC,sCAAgB,CAAC;AACnCJ,QAAAA,cAAc,EAAE7C,WAAW;AAC3B/B,QAAAA,QAAQ,EAAEuE,YAAAA;AACd,OAAC,CAAC;MAHMU,SAAS,GAAAF,iBAAA,CAATE,SAAS,CAAA;AAKjB,IAAA,IAAMC,cAAc,gBAChBC,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAIIF,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACE,4BAAW,EAAA;AACRrJ,MAAAA,GAAG,EAAE2E,QAAS;AACdvD,MAAAA,WAAW,EAAEA,WAAY;AACzBD,MAAAA,cAAc,EAAEA,cAAe;AAC/BF,MAAAA,QAAQ,EAAEA,QAAS;AACnBF,MAAAA,QAAQ,EAAE,CAACE,QAAQ,IAAIF,QAAS;AAChCc,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,MAAAA,iBAAiB,EAAEA,iBAAkB;AACrCpB,MAAAA,WAAW,EAAEA,WAAY;AACzBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BwB,MAAAA,wBAAwB,EAAEA,wBAAyB;AACnDC,MAAAA,yBAAyB,EAAEA,yBAA0B;AACrDC,MAAAA,uBAAuB,EAAEA,uBAAwB;AACjDC,MAAAA,wBAAwB,EAAEA,wBAAyB;AACnDP,MAAAA,yBAAyB,EAAEA,yBAA0B;AACrDC,MAAAA,0BAA0B,EAAEA,0BAA2B;AACvDC,MAAAA,0BAA0B,EAAEA,0BAA2B;AACvDC,MAAAA,2BAA2B,EAAEA,2BAA4B;AACzDoH,MAAAA,UAAU,EAAE9C,eAAgB;AAC5B+C,MAAAA,WAAW,EAAEvC,gBAAiB;AAC9BvF,MAAAA,eAAe,EAAEA,eAAgB;AACjCC,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,MAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,MAAAA,kBAAkB,EAAEA,kBAAmB;AACvCoC,MAAAA,kBAAkB,EAAE+D,sBAAuB;AAC3C9D,MAAAA,mBAAmB,EAAEmE,uBAAwB;AAC7CoB,MAAAA,kBAAkB,EAAE,SAAAA,kBAAAA,CAACC,CAAC,EAAEC,IAAI,EAAK;QAC7BzB,qBAAqB,CAAC0B,MAAM,CAACD,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AAChD,QAAA,IAAI,CAAC9C,mBAAmB,IAAIlF,gBAAgB,EAAE;AAAA,UAAA,IAAAkI,kBAAA,CAAA;AAC1CjF,UAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAiF,KAAAA,CAAAA,IAAAA,CAAAA,kBAAA,GAARjF,QAAQ,CAAEM,OAAO,MAAA,IAAA,IAAA2E,kBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,kBAAA,GAAjBA,kBAAA,CAAmBpE,eAAe,EAAE,MAAAoE,IAAAA,IAAAA,kBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,kBAAA,GAApCA,kBAAA,CAAsC3E,OAAO,MAAA,IAAA,IAAA2E,kBAAA,KAA7CA,KAAAA,CAAAA,IAAAA,kBAAA,CAA+CC,KAAK,EAAE,CAAA;AAC1D,SAAA;OACF;AACFC,MAAAA,mBAAmB,EAAE,SAAAA,mBAAAA,CAACL,CAAC,EAAEC,IAAI,EAAK;QAC9BrB,sBAAsB,CAACsB,MAAM,CAACD,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AACjD,QAAA,IAAI,CAACvD,kBAAkB,IAAI1E,eAAe,EAAE;AAAA,UAAA,IAAAsI,kBAAA,CAAA;AACxCpF,UAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAoF,KAAAA,CAAAA,IAAAA,CAAAA,kBAAA,GAARpF,QAAQ,CAAEM,OAAO,MAAA,IAAA,IAAA8E,kBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,kBAAA,GAAjBA,kBAAA,CAAmB7E,cAAc,EAAE,MAAA6E,IAAAA,IAAAA,kBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,kBAAA,GAAnCA,kBAAA,CAAqC9E,OAAO,MAAA,IAAA,IAAA8E,kBAAA,KAA5CA,KAAAA,CAAAA,IAAAA,kBAAA,CAA8CF,KAAK,EAAE,CAAA;AACzD,SAAA;OACF;AACFzF,MAAAA,qBAAqB,EAAEA,qBAAsB;AAC7CC,MAAAA,sBAAsB,EAAEA,sBAAuB;AAC/CC,MAAAA,oBAAoB,EAAEA,oBAAqB;AAC3CC,MAAAA,qBAAqB,EAAEA,qBAAsB;AAC7CyE,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KACxB,CACH,CACL,CAAA;AAEDgB,IAAAA,eAAS,CAAC,YAAM;MAAA,IAAAC,kBAAA,EAAAC,kBAAA,CAAA;AACZ5E,MAAAA,gBAAgB,CAAA2E,CAAAA,kBAAA,GAACtF,QAAQ,CAACM,OAAO,MAAA,IAAA,IAAAgF,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,kBAAA,CAAkB/E,cAAc,EAAE,CAAC,CAAA;AACpDS,MAAAA,iBAAiB,CAAAuE,CAAAA,kBAAA,GAACvF,QAAQ,CAACM,OAAO,MAAA,IAAA,IAAAiF,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,kBAAA,CAAkB1E,eAAe,EAAE,CAAC,CAAA;AAC1D,KAAC,EAAE,CAACb,QAAQ,CAACM,OAAO,CAAC,CAAC,CAAA;AAEtB+E,IAAAA,eAAS,CAAC,YAAM;MACZjE,cAAc,CAAC,UAACoE,QAAQ,EAAA;AAAA,QAAA,OAAKA,QAAQ,KAAK5J,MAAM,IAAIA,MAAM,CAAA;OAAC,CAAA,CAAA;AAC/D,KAAC,EAAE,CAACA,MAAM,CAAC,CAAC,CAAA;AAEZ,IAAA,oBACI2I,KAAA,CAAAC,aAAA,CAACtJ,IAAI,EAAAuK,iCAAA,CAAA;AACDpK,MAAAA,GAAG,EAAE6E,OAAQ;AACbjE,MAAAA,IAAI,EAAEA,IAAK;AACXC,MAAAA,IAAI,EAAEA,IAAK;MACXV,SAAS,EAAEkK,QAAE,CAACC,yBAAO,CAACC,cAAc,EAAEpK,SAAS,CAAE;AACjDc,MAAAA,QAAQ,EAAEA,QAAS;MACnBF,QAAQ,EAAE,CAACE,QAAQ,IAAIF,QAAAA;AAAS,KAAA,EAC5ByD,IAAI,CAEPhE,EAAAA,KAAK,iBAAI0I,KAAA,CAAAC,aAAA,CAACqB,4BAAW,EAAA,IAAA,EAAEhK,KAAmB,CAAC,eAC5C0I,KAAA,CAAAC,aAAA,CAACsB,iCAAgB,EAAA;AACbC,MAAAA,aAAa,EAAE,CAACvE,kBAAkB,EAAES,mBAAmB,CAAE;AACzDiC,MAAAA,MAAM,EAAEI,cAAe;AACvB1I,MAAAA,MAAM,EAAEuF,WAAY;AACpBjD,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,MAAAA,SAAS,EAAEA,SAAU;AACrBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,cAAc,EAAEA,cAAe;AAC/BC,MAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,MAAAA,mBAAmB,EAAEA,mBAAoB;AACzCC,MAAAA,aAAa,EAAEA,aAAc;AAC7BC,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCX,MAAAA,GAAG,EAAEA,GAAI;AACTC,MAAAA,GAAG,EAAEA,GAAI;AACTc,MAAAA,SAAS,EAAEA,SAAU;AACrBE,MAAAA,mBAAmB,EAAEA,mBAAoB;AACzCE,MAAAA,UAAU,EAAEA,UAAW;AACvBC,MAAAA,MAAM,EAAEA,MAAO;AACfP,MAAAA,IAAI,EAAEA,IAAK;AACXQ,MAAAA,QAAQ,EAAEuE,YAAa;AACvBjI,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCsK,MAAAA,oBAAoB,EAAE,SAAAA,oBAAAA,CAACC,SAAS,EAAEC,QAAQ,EAAK;QAC3C5C,qBAAqB,CAAC2C,SAAS,EAAE,KAAK,EAAE,IAAI,EAAEC,QAAQ,CAAC,CAAA;QACvDxC,sBAAsB,CAAC,EAAE,CAAC,CAAA;OAC5B;AACFR,MAAAA,aAAa,EAAE,SAAAA,aAAAA,CAAAiD,KAAA,EAA0BD,QAAQ,EAAK;AAAA,QAAA,IAAAE,KAAA,GAAA3F,uCAAA,CAAA0F,KAAA,EAAA,CAAA,CAAA;AAArCF,UAAAA,SAAS,GAAAG,KAAA,CAAA,CAAA,CAAA;AAAEC,UAAAA,UAAU,GAAAD,KAAA,CAAA,CAAA,CAAA,CAAA;QAClCH,SAAS,IAAI3C,qBAAqB,CAAC2C,SAAS,EAAE,KAAK,EAAE,IAAI,EAAEC,QAAQ,CAAC,CAAA;QACpEG,UAAU,IAAI3C,sBAAsB,CAAC2C,UAAU,EAAE,KAAK,EAAE,IAAI,EAAEH,QAAQ,CAAC,CAAA;QACvE,IAAID,SAAS,IAAII,UAAU,IAAI,CAACvJ,eAAe,IAAI,CAACC,gBAAgB,EAAE;UAClEqE,cAAc,CAAC,KAAK,CAAC,CAAA;AACzB,SAAA;AACJ,OAAA;AAAE,KACL,CAAC,EACDtF,UAAU,iBAAIyI,KAAA,CAAAC,aAAA,CAAC8B,2BAAU,EAAA,IAAA,EAAExK,UAAuB,CACjD,CAAC,CAAA;AAEf,GACJ,CAAC,CAAA;AAAA,EAAA;AAEE,IAAMyK,qBAAqB,GAAG;AACjCC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEzL,mBAAmB;AAC3B0L,EAAAA,IAAI,EAAJA,qBAAI;AACJC,EAAAA,UAAU,EAAE;AACR3K,IAAAA,IAAI,EAAE;AACF4K,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACD5K,IAAAA,IAAI,EAAE;AACF2K,MAAAA,GAAG,EAAEE,WAAAA;KACR;AACDzK,IAAAA,QAAQ,EAAE;AACNuK,MAAAA,GAAG,EAAEG,WAAW;AAChBC,MAAAA,KAAK,EAAE,IAAA;KACV;AACD7K,IAAAA,QAAQ,EAAE;AACNyK,MAAAA,GAAG,EAAEK,WAAW;AAChBD,MAAAA,KAAK,EAAE,IAAA;AACX,KAAA;GACH;AACDE,EAAAA,QAAQ,EAAE;AACNjL,IAAAA,IAAI,EAAE,GAAG;AACTD,IAAAA,IAAI,EAAE,SAAA;AACV,GAAA;AACJ;;;;;"}
@@ -9,6 +9,7 @@ var dateHelper = require('../utils/dateHelper.js');
9
9
  var useDatePicker = require('../hooks/useDatePicker.js');
10
10
  var DatePicker_tokens = require('../DatePicker.tokens.js');
11
11
  var DatePickerBase_styles = require('../DatePickerBase.styles.js');
12
+ var useKeyboardNavigation = require('../hooks/useKeyboardNavigation.js');
12
13
  var base$1 = require('./variations/_size/base.js');
13
14
  var base = require('./variations/_view/base.js');
14
15
  var base$2 = require('./variations/_disabled/base.js');
@@ -108,6 +109,11 @@ var datePickerRoot = function datePickerRoot(Root) {
108
109
  handleToggle = _useDatePicker.handleToggle,
109
110
  handleChangeValue = _useDatePicker.handleChangeValue,
110
111
  handleCommitDate = _useDatePicker.handleCommitDate;
112
+ var _useKeyNavigation = useKeyboardNavigation.useKeyNavigation({
113
+ isCalendarOpen: isInnerOpen,
114
+ onToggle: handleToggle
115
+ }),
116
+ onKeyDown = _useKeyNavigation.onKeyDown;
111
117
  var DatePickerInput = /*#__PURE__*/React.createElement(SingleDate_styles.StyledInput, _rollupPluginBabelHelpers.extends({
112
118
  ref: inputRef,
113
119
  className: index.cx(datePickerErrorClass, datePickerSuccessClass),
@@ -125,11 +131,17 @@ var datePickerRoot = function datePickerRoot(Root) {
125
131
  return handleCommitDate(date, true, false);
126
132
  },
127
133
  onFocus: onFocus,
128
- onBlur: onBlur
134
+ onBlur: onBlur,
135
+ onKeyDown: onKeyDown
129
136
  }, innerLabelPlacement && {
130
137
  label: label,
131
138
  labelPlacement: labelPlacement
132
139
  }));
140
+ React.useEffect(function () {
141
+ setIsInnerOpen(function (prevOpen) {
142
+ return prevOpen !== isOpen && isOpen;
143
+ });
144
+ }, [isOpen]);
133
145
  return /*#__PURE__*/React.createElement(Root, _rollupPluginBabelHelpers.extends({
134
146
  view: view,
135
147
  size: size,
@@ -138,7 +150,7 @@ var datePickerRoot = function datePickerRoot(Root) {
138
150
  readOnly: !disabled && readOnly,
139
151
  ref: ref
140
152
  }, rest), !innerLabelPlacement && label && /*#__PURE__*/React.createElement(SingleDate_styles.StyledLabel, null, label), /*#__PURE__*/React.createElement(SingleDate_styles.StyledPopover, {
141
- isOpen: isOpen || isInnerOpen,
153
+ isOpen: isInnerOpen,
142
154
  usePortal: false,
143
155
  onToggle: handleToggle,
144
156
  offset: offset,
@@ -1 +1 @@
1
- {"version":3,"file":"SingleDate.js","sources":["../../../../src/components/DatePicker/SingleDate/SingleDate.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef, useState } from 'react';\n\nimport type { RootProps } from '../../../engines';\nimport { cx, getPlacements } from '../../../utils';\nimport { formatCalendarValue, formatInputValue, getDateFormatDelimiter } from '../utils/dateHelper';\nimport { useDatePicker } from '../hooks/useDatePicker';\nimport { classes } from '../DatePicker.tokens';\nimport { StyledCalendar } from '../DatePickerBase.styles';\n\nimport type { DatePickerProps } from './SingleDate.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readOnlyCSS } from './variations/_readonly/base';\nimport { LeftHelper, StyledInput, StyledLabel, StyledPopover, base } from './SingleDate.styles';\n\nexport const datePickerRoot = (\n Root: RootProps<HTMLDivElement, Omit<DatePickerProps, 'isOpen' | 'defaultValue' | 'onChangeValue'>>,\n) =>\n forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n className,\n isOpen = false,\n\n label,\n labelPlacement = 'outer',\n placeholder,\n leftHelper,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n view,\n size,\n readOnly = false,\n disabled = false,\n\n defaultDate = '',\n valueError,\n valueSuccess,\n format = 'DD.MM.YYYY',\n maskWithFormat,\n min,\n max,\n includeEdgeDates = false,\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n type = 'Days',\n\n placement = ['top', 'bottom'],\n closeOnOverlayClick = true,\n offset,\n\n onChangeValue,\n onCommitDate,\n onToggle,\n onFocus,\n onBlur,\n\n ...rest\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [isInnerOpen, setIsInnerOpen] = useState(isOpen);\n\n const [calendarValue, setCalendarValue] = useState(formatCalendarValue(defaultDate, format));\n const [inputValue, setInputValue] = useState(formatInputValue(defaultDate, format));\n\n const innerLabelPlacement = labelPlacement === 'inner';\n\n const dateFormatDelimiter = useCallback(() => getDateFormatDelimiter(format), [format]);\n\n const {\n datePickerErrorClass,\n datePickerSuccessClass,\n handleToggle,\n handleChangeValue,\n handleCommitDate,\n } = useDatePicker({\n currentValue: inputValue,\n setInputValue,\n setCalendarValue,\n setIsInnerOpen,\n dateFormatDelimiter,\n format,\n disabled,\n readOnly,\n maskWithFormat,\n valueError,\n valueSuccess,\n inputRef,\n onToggle,\n onChangeValue,\n onCommitDate,\n });\n\n const DatePickerInput = (\n <StyledInput\n ref={inputRef}\n className={cx(datePickerErrorClass, datePickerSuccessClass)}\n value={inputValue}\n size={size}\n readOnly={readOnly}\n disabled={disabled}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onChange={handleChangeValue}\n onSearch={(date) => handleCommitDate(date, true, false)}\n onFocus={onFocus}\n onBlur={onBlur}\n {...(innerLabelPlacement && { label, labelPlacement })}\n />\n );\n\n return (\n <Root\n view={view}\n size={size}\n className={cx(classes.datePickerRoot, className)}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n ref={ref}\n {...rest}\n >\n {!innerLabelPlacement && label && <StyledLabel>{label}</StyledLabel>}\n <StyledPopover\n isOpen={isOpen || isInnerOpen}\n usePortal={false}\n onToggle={handleToggle}\n offset={offset}\n placement={getPlacements(placement)}\n trigger=\"click\"\n closeOnOverlayClick={closeOnOverlayClick}\n isFocusTrapped={false}\n target={DatePickerInput}\n preventOverflow={false}\n >\n <StyledCalendar\n size={size}\n value={calendarValue}\n type={type}\n eventList={eventList}\n disabledList={disabledList}\n eventMonthList={eventMonthList}\n disabledMonthList={disabledMonthList}\n eventQuarterList={eventQuarterList}\n disabledQuarterList={disabledQuarterList}\n eventYearList={eventYearList}\n disabledYearList={disabledYearList}\n min={min}\n max={max}\n includeEdgeDates={includeEdgeDates}\n isRange={false}\n onChangeValue={(date, dateInfo) => handleCommitDate(date, false, true, dateInfo)}\n />\n </StyledPopover>\n {leftHelper && <LeftHelper>{leftHelper}</LeftHelper>}\n </Root>\n );\n },\n );\n\nexport const datePickerConfig = {\n name: 'DatePicker',\n tag: 'div',\n layout: datePickerRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n css: readOnlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["datePickerRoot","Root","forwardRef","_ref","ref","className","_ref$isOpen","isOpen","label","_ref$labelPlacement","labelPlacement","placeholder","leftHelper","contentLeft","contentRight","textBefore","textAfter","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","_ref$defaultDate","defaultDate","valueError","valueSuccess","_ref$format","format","maskWithFormat","min","max","_ref$includeEdgeDates","includeEdgeDates","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","_ref$type","type","_ref$placement","placement","_ref$closeOnOverlayCl","closeOnOverlayClick","offset","onChangeValue","onCommitDate","onToggle","onFocus","onBlur","rest","_objectWithoutProperties","_excluded","inputRef","useRef","_useState","useState","_useState2","_slicedToArray","isInnerOpen","setIsInnerOpen","_useState3","formatCalendarValue","_useState4","calendarValue","setCalendarValue","_useState5","formatInputValue","_useState6","inputValue","setInputValue","innerLabelPlacement","dateFormatDelimiter","useCallback","getDateFormatDelimiter","_useDatePicker","useDatePicker","currentValue","datePickerErrorClass","datePickerSuccessClass","handleToggle","handleChangeValue","handleCommitDate","DatePickerInput","React","createElement","StyledInput","_extends","cx","value","onChange","onSearch","date","classes","StyledLabel","StyledPopover","usePortal","getPlacements","trigger","isFocusTrapped","target","preventOverflow","StyledCalendar","isRange","dateInfo","LeftHelper","datePickerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readOnlyCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;IAgBaA,cAAc,GAAG,SAAjBA,cAAcA,CACvBC,IAAmG,EAAA;AAAA,EAAA,oBAEnGC,gBAAU,CACN,UAAAC,IAAA,EAgDIC,GAAG,EACF;AAAA,IAAA,IA/CGC,SAAS,GAAAF,IAAA,CAATE,SAAS;MAAAC,WAAA,GAAAH,IAAA,CACTI,MAAM;AAANA,MAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,WAAA;MAEdE,KAAK,GAAAL,IAAA,CAALK,KAAK;MAAAC,mBAAA,GAAAN,IAAA,CACLO,cAAc;AAAdA,MAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,mBAAA;MACxBE,WAAW,GAAAR,IAAA,CAAXQ,WAAW;MACXC,UAAU,GAAAT,IAAA,CAAVS,UAAU;MACVC,WAAW,GAAAV,IAAA,CAAXU,WAAW;MACXC,YAAY,GAAAX,IAAA,CAAZW,YAAY;MACZC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;MACVC,SAAS,GAAAb,IAAA,CAATa,SAAS;MACTC,IAAI,GAAAd,IAAA,CAAJc,IAAI;MACJC,IAAI,GAAAf,IAAA,CAAJe,IAAI;MAAAC,aAAA,GAAAhB,IAAA,CACJiB,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;MAAAE,aAAA,GAAAlB,IAAA,CAChBmB,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;MAAAE,gBAAA,GAAApB,IAAA,CAEhBqB,WAAW;AAAXA,MAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;MAChBE,UAAU,GAAAtB,IAAA,CAAVsB,UAAU;MACVC,YAAY,GAAAvB,IAAA,CAAZuB,YAAY;MAAAC,WAAA,GAAAxB,IAAA,CACZyB,MAAM;AAANA,MAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,YAAY,GAAAA,WAAA;MACrBE,cAAc,GAAA1B,IAAA,CAAd0B,cAAc;MACdC,GAAG,GAAA3B,IAAA,CAAH2B,GAAG;MACHC,GAAG,GAAA5B,IAAA,CAAH4B,GAAG;MAAAC,qBAAA,GAAA7B,IAAA,CACH8B,gBAAgB;AAAhBA,MAAAA,gBAAgB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;MACxBE,SAAS,GAAA/B,IAAA,CAAT+B,SAAS;MACTC,YAAY,GAAAhC,IAAA,CAAZgC,YAAY;MACZC,cAAc,GAAAjC,IAAA,CAAdiC,cAAc;MACdC,iBAAiB,GAAAlC,IAAA,CAAjBkC,iBAAiB;MACjBC,gBAAgB,GAAAnC,IAAA,CAAhBmC,gBAAgB;MAChBC,mBAAmB,GAAApC,IAAA,CAAnBoC,mBAAmB;MACnBC,aAAa,GAAArC,IAAA,CAAbqC,aAAa;MACbC,gBAAgB,GAAAtC,IAAA,CAAhBsC,gBAAgB;MAAAC,SAAA,GAAAvC,IAAA,CAChBwC,IAAI;AAAJA,MAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,SAAA;MAAAE,cAAA,GAAAzC,IAAA,CAEb0C,SAAS;MAATA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAAA,cAAA;MAAAE,qBAAA,GAAA3C,IAAA,CAC7B4C,mBAAmB;AAAnBA,MAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;MAC1BE,MAAM,GAAA7C,IAAA,CAAN6C,MAAM;MAENC,aAAa,GAAA9C,IAAA,CAAb8C,aAAa;MACbC,YAAY,GAAA/C,IAAA,CAAZ+C,YAAY;MACZC,QAAQ,GAAAhD,IAAA,CAARgD,QAAQ;MACRC,OAAO,GAAAjD,IAAA,CAAPiD,OAAO;MACPC,MAAM,GAAAlD,IAAA,CAANkD,MAAM;AAEHC,MAAAA,IAAI,GAAAC,iDAAA,CAAApD,IAAA,EAAAqD,SAAA,CAAA,CAAA;AAIX,IAAA,IAAMC,QAAQ,GAAGC,YAAM,CAA0B,IAAI,CAAC,CAAA;AACtD,IAAA,IAAAC,SAAA,GAAsCC,cAAQ,CAACrD,MAAM,CAAC;MAAAsD,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA/CI,MAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;IAElC,IAAAI,UAAA,GAA0CL,cAAQ,CAACM,8BAAmB,CAAC1C,WAAW,EAAEI,MAAM,CAAC,CAAC;MAAAuC,UAAA,GAAAL,uCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAArFG,MAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IACtC,IAAAG,UAAA,GAAoCV,cAAQ,CAACW,2BAAgB,CAAC/C,WAAW,EAAEI,MAAM,CAAC,CAAC;MAAA4C,UAAA,GAAAV,uCAAA,CAAAQ,UAAA,EAAA,CAAA,CAAA;AAA5EG,MAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEhC,IAAA,IAAMG,mBAAmB,GAAGjE,cAAc,KAAK,OAAO,CAAA;IAEtD,IAAMkE,mBAAmB,GAAGC,iBAAW,CAAC,YAAA;MAAA,OAAMC,iCAAsB,CAAClD,MAAM,CAAC,CAAA;KAAE,EAAA,CAACA,MAAM,CAAC,CAAC,CAAA;IAEvF,IAAAmD,cAAA,GAMIC,2BAAa,CAAC;AACdC,QAAAA,YAAY,EAAER,UAAU;AACxBC,QAAAA,aAAa,EAAbA,aAAa;AACbL,QAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBL,QAAAA,cAAc,EAAdA,cAAc;AACdY,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBhD,QAAAA,MAAM,EAANA,MAAM;AACNN,QAAAA,QAAQ,EAARA,QAAQ;AACRF,QAAAA,QAAQ,EAARA,QAAQ;AACRS,QAAAA,cAAc,EAAdA,cAAc;AACdJ,QAAAA,UAAU,EAAVA,UAAU;AACVC,QAAAA,YAAY,EAAZA,YAAY;AACZ+B,QAAAA,QAAQ,EAARA,QAAQ;AACRN,QAAAA,QAAQ,EAARA,QAAQ;AACRF,QAAAA,aAAa,EAAbA,aAAa;AACbC,QAAAA,YAAY,EAAZA,YAAAA;AACJ,OAAC,CAAC;MArBEgC,oBAAoB,GAAAH,cAAA,CAApBG,oBAAoB;MACpBC,sBAAsB,GAAAJ,cAAA,CAAtBI,sBAAsB;MACtBC,YAAY,GAAAL,cAAA,CAAZK,YAAY;MACZC,iBAAiB,GAAAN,cAAA,CAAjBM,iBAAiB;MACjBC,gBAAgB,GAAAP,cAAA,CAAhBO,gBAAgB,CAAA;IAmBpB,IAAMC,eAAe,gBACjBC,KAAA,CAAAC,aAAA,CAACC,6BAAW,EAAAC,iCAAA,CAAA;AACRvF,MAAAA,GAAG,EAAEqD,QAAS;AACdpD,MAAAA,SAAS,EAAEuF,QAAE,CAACV,oBAAoB,EAAEC,sBAAsB,CAAE;AAC5DU,MAAAA,KAAK,EAAEpB,UAAW;AAClBvD,MAAAA,IAAI,EAAEA,IAAK;AACXE,MAAAA,QAAQ,EAAEA,QAAS;AACnBE,MAAAA,QAAQ,EAAEA,QAAS;AACnBX,MAAAA,WAAW,EAAEA,WAAY;AACzBE,MAAAA,WAAW,EAAEA,WAAY;AACzBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,UAAU,EAAEA,UAAW;AACvBC,MAAAA,SAAS,EAAEA,SAAU;AACrB8E,MAAAA,QAAQ,EAAET,iBAAkB;MAC5BU,QAAQ,EAAE,SAAAA,QAAAA,CAACC,IAAI,EAAA;AAAA,QAAA,OAAKV,gBAAgB,CAACU,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;OAAC;AACxD5C,MAAAA,OAAO,EAAEA,OAAQ;AACjBC,MAAAA,MAAM,EAAEA,MAAAA;AAAO,KAAA,EACVsB,mBAAmB,IAAI;AAAEnE,MAAAA,KAAK,EAALA,KAAK;AAAEE,MAAAA,cAAc,EAAdA,cAAAA;AAAe,KAAC,CACxD,CACJ,CAAA;AAED,IAAA,oBACI8E,KAAA,CAAAC,aAAA,CAACxF,IAAI,EAAA0F,iCAAA,CAAA;AACD1E,MAAAA,IAAI,EAAEA,IAAK;AACXC,MAAAA,IAAI,EAAEA,IAAK;MACXb,SAAS,EAAEuF,QAAE,CAACK,yBAAO,CAACjG,cAAc,EAAEK,SAAS,CAAE;AACjDiB,MAAAA,QAAQ,EAAEA,QAAS;AACnBF,MAAAA,QAAQ,EAAE,CAACE,QAAQ,IAAIF,QAAS;AAChChB,MAAAA,GAAG,EAAEA,GAAAA;KACDkD,EAAAA,IAAI,GAEP,CAACqB,mBAAmB,IAAInE,KAAK,iBAAIgF,KAAA,CAAAC,aAAA,CAACS,6BAAW,EAAA,IAAA,EAAE1F,KAAmB,CAAC,eACpEgF,KAAA,CAAAC,aAAA,CAACU,+BAAa,EAAA;MACV5F,MAAM,EAAEA,MAAM,IAAIwD,WAAY;AAC9BqC,MAAAA,SAAS,EAAE,KAAM;AACjBjD,MAAAA,QAAQ,EAAEiC,YAAa;AACvBpC,MAAAA,MAAM,EAAEA,MAAO;AACfH,MAAAA,SAAS,EAAEwD,iCAAa,CAACxD,SAAS,CAAE;AACpCyD,MAAAA,OAAO,EAAC,OAAO;AACfvD,MAAAA,mBAAmB,EAAEA,mBAAoB;AACzCwD,MAAAA,cAAc,EAAE,KAAM;AACtBC,MAAAA,MAAM,EAAEjB,eAAgB;AACxBkB,MAAAA,eAAe,EAAE,KAAA;AAAM,KAAA,eAEvBjB,KAAA,CAAAC,aAAA,CAACiB,oCAAc,EAAA;AACXxF,MAAAA,IAAI,EAAEA,IAAK;AACX2E,MAAAA,KAAK,EAAEzB,aAAc;AACrBzB,MAAAA,IAAI,EAAEA,IAAK;AACXT,MAAAA,SAAS,EAAEA,SAAU;AACrBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,cAAc,EAAEA,cAAe;AAC/BC,MAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,MAAAA,mBAAmB,EAAEA,mBAAoB;AACzCC,MAAAA,aAAa,EAAEA,aAAc;AAC7BC,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCX,MAAAA,GAAG,EAAEA,GAAI;AACTC,MAAAA,GAAG,EAAEA,GAAI;AACTE,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnC0E,MAAAA,OAAO,EAAE,KAAM;AACf1D,MAAAA,aAAa,EAAE,SAAAA,aAAC+C,CAAAA,IAAI,EAAEY,QAAQ,EAAA;QAAA,OAAKtB,gBAAgB,CAACU,IAAI,EAAE,KAAK,EAAE,IAAI,EAAEY,QAAQ,CAAC,CAAA;AAAA,OAAA;AAAC,KACpF,CACU,CAAC,EACfhG,UAAU,iBAAI4E,KAAA,CAAAC,aAAA,CAACoB,4BAAU,EAAEjG,IAAAA,EAAAA,UAAuB,CACjD,CAAC,CAAA;AAEf,GACJ,CAAC,CAAA;AAAA,EAAA;AAEE,IAAMkG,gBAAgB,GAAG;AAC5BC,EAAAA,IAAI,EAAE,YAAY;AAClBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEjH,cAAc;AACtBkH,EAAAA,IAAI,EAAJA,sBAAI;AACJC,EAAAA,UAAU,EAAE;AACRlG,IAAAA,IAAI,EAAE;AACFmG,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDnG,IAAAA,IAAI,EAAE;AACFkG,MAAAA,GAAG,EAAEE,WAAAA;KACR;AACDhG,IAAAA,QAAQ,EAAE;AACN8F,MAAAA,GAAG,EAAEG,WAAW;AAChBC,MAAAA,KAAK,EAAE,IAAA;KACV;AACDpG,IAAAA,QAAQ,EAAE;AACNgG,MAAAA,GAAG,EAAEK,WAAW;AAChBD,MAAAA,KAAK,EAAE,IAAA;AACX,KAAA;GACH;AACDE,EAAAA,QAAQ,EAAE;AACNxG,IAAAA,IAAI,EAAE,GAAG;AACTD,IAAAA,IAAI,EAAE,SAAA;AACV,GAAA;AACJ;;;;;"}
1
+ {"version":3,"file":"SingleDate.js","sources":["../../../../src/components/DatePicker/SingleDate/SingleDate.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport type { RootProps } from '../../../engines';\nimport { cx, getPlacements } from '../../../utils';\nimport { formatCalendarValue, formatInputValue, getDateFormatDelimiter } from '../utils/dateHelper';\nimport { useDatePicker } from '../hooks/useDatePicker';\nimport { classes } from '../DatePicker.tokens';\nimport { StyledCalendar } from '../DatePickerBase.styles';\nimport { useKeyNavigation } from '../hooks/useKeyboardNavigation';\n\nimport type { DatePickerProps } from './SingleDate.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readOnlyCSS } from './variations/_readonly/base';\nimport { LeftHelper, StyledInput, StyledLabel, StyledPopover, base } from './SingleDate.styles';\n\nexport const datePickerRoot = (\n Root: RootProps<HTMLDivElement, Omit<DatePickerProps, 'isOpen' | 'defaultValue' | 'onChangeValue'>>,\n) =>\n forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n className,\n isOpen = false,\n\n label,\n labelPlacement = 'outer',\n placeholder,\n leftHelper,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n view,\n size,\n readOnly = false,\n disabled = false,\n\n defaultDate = '',\n valueError,\n valueSuccess,\n format = 'DD.MM.YYYY',\n maskWithFormat,\n min,\n max,\n includeEdgeDates = false,\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n type = 'Days',\n\n placement = ['top', 'bottom'],\n closeOnOverlayClick = true,\n offset,\n\n onChangeValue,\n onCommitDate,\n onToggle,\n onFocus,\n onBlur,\n\n ...rest\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [isInnerOpen, setIsInnerOpen] = useState(isOpen);\n\n const [calendarValue, setCalendarValue] = useState(formatCalendarValue(defaultDate, format));\n const [inputValue, setInputValue] = useState(formatInputValue(defaultDate, format));\n\n const innerLabelPlacement = labelPlacement === 'inner';\n\n const dateFormatDelimiter = useCallback(() => getDateFormatDelimiter(format), [format]);\n\n const {\n datePickerErrorClass,\n datePickerSuccessClass,\n handleToggle,\n handleChangeValue,\n handleCommitDate,\n } = useDatePicker({\n currentValue: inputValue,\n setInputValue,\n setCalendarValue,\n setIsInnerOpen,\n dateFormatDelimiter,\n format,\n disabled,\n readOnly,\n maskWithFormat,\n valueError,\n valueSuccess,\n inputRef,\n onToggle,\n onChangeValue,\n onCommitDate,\n });\n\n const { onKeyDown } = useKeyNavigation({\n isCalendarOpen: isInnerOpen,\n onToggle: handleToggle,\n });\n\n const DatePickerInput = (\n <StyledInput\n ref={inputRef}\n className={cx(datePickerErrorClass, datePickerSuccessClass)}\n value={inputValue}\n size={size}\n readOnly={readOnly}\n disabled={disabled}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onChange={handleChangeValue}\n onSearch={(date) => handleCommitDate(date, true, false)}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n {...(innerLabelPlacement && { label, labelPlacement })}\n />\n );\n\n useEffect(() => {\n setIsInnerOpen((prevOpen) => prevOpen !== isOpen && isOpen);\n }, [isOpen]);\n\n return (\n <Root\n view={view}\n size={size}\n className={cx(classes.datePickerRoot, className)}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n ref={ref}\n {...rest}\n >\n {!innerLabelPlacement && label && <StyledLabel>{label}</StyledLabel>}\n <StyledPopover\n isOpen={isInnerOpen}\n usePortal={false}\n onToggle={handleToggle}\n offset={offset}\n placement={getPlacements(placement)}\n trigger=\"click\"\n closeOnOverlayClick={closeOnOverlayClick}\n isFocusTrapped={false}\n target={DatePickerInput}\n preventOverflow={false}\n >\n <StyledCalendar\n size={size}\n value={calendarValue}\n type={type}\n eventList={eventList}\n disabledList={disabledList}\n eventMonthList={eventMonthList}\n disabledMonthList={disabledMonthList}\n eventQuarterList={eventQuarterList}\n disabledQuarterList={disabledQuarterList}\n eventYearList={eventYearList}\n disabledYearList={disabledYearList}\n min={min}\n max={max}\n includeEdgeDates={includeEdgeDates}\n isRange={false}\n onChangeValue={(date, dateInfo) => handleCommitDate(date, false, true, dateInfo)}\n />\n </StyledPopover>\n {leftHelper && <LeftHelper>{leftHelper}</LeftHelper>}\n </Root>\n );\n },\n );\n\nexport const datePickerConfig = {\n name: 'DatePicker',\n tag: 'div',\n layout: datePickerRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n css: readOnlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["datePickerRoot","Root","forwardRef","_ref","ref","className","_ref$isOpen","isOpen","label","_ref$labelPlacement","labelPlacement","placeholder","leftHelper","contentLeft","contentRight","textBefore","textAfter","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","_ref$defaultDate","defaultDate","valueError","valueSuccess","_ref$format","format","maskWithFormat","min","max","_ref$includeEdgeDates","includeEdgeDates","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","_ref$type","type","_ref$placement","placement","_ref$closeOnOverlayCl","closeOnOverlayClick","offset","onChangeValue","onCommitDate","onToggle","onFocus","onBlur","rest","_objectWithoutProperties","_excluded","inputRef","useRef","_useState","useState","_useState2","_slicedToArray","isInnerOpen","setIsInnerOpen","_useState3","formatCalendarValue","_useState4","calendarValue","setCalendarValue","_useState5","formatInputValue","_useState6","inputValue","setInputValue","innerLabelPlacement","dateFormatDelimiter","useCallback","getDateFormatDelimiter","_useDatePicker","useDatePicker","currentValue","datePickerErrorClass","datePickerSuccessClass","handleToggle","handleChangeValue","handleCommitDate","_useKeyNavigation","useKeyNavigation","isCalendarOpen","onKeyDown","DatePickerInput","React","createElement","StyledInput","_extends","cx","value","onChange","onSearch","date","useEffect","prevOpen","classes","StyledLabel","StyledPopover","usePortal","getPlacements","trigger","isFocusTrapped","target","preventOverflow","StyledCalendar","isRange","dateInfo","LeftHelper","datePickerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readOnlyCSS","defaults"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var keys = {
6
+ Space: 'Space'
7
+ };
8
+ var useKeyNavigation = function useKeyNavigation(_ref) {
9
+ var isCalendarOpen = _ref.isCalendarOpen,
10
+ onToggle = _ref.onToggle;
11
+ var onKeyDown = function onKeyDown(event) {
12
+ switch (event.code) {
13
+ case keys.Space:
14
+ {
15
+ if (!isCalendarOpen) {
16
+ event.preventDefault();
17
+ onToggle(true, event);
18
+ }
19
+ break;
20
+ }
21
+ }
22
+ };
23
+ return {
24
+ onKeyDown: onKeyDown
25
+ };
26
+ };
27
+
28
+ exports.keys = keys;
29
+ exports.useKeyNavigation = useKeyNavigation;
30
+ //# sourceMappingURL=useKeyboardNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/DatePicker/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import type { ChangeEvent, KeyboardEvent, SyntheticEvent } from 'react';\n\ninterface Props {\n isCalendarOpen: boolean;\n onToggle: (isOpen: boolean, event: SyntheticEvent | Event) => void;\n}\n\nexport const keys = {\n Space: 'Space',\n};\n\nexport const useKeyNavigation = ({ isCalendarOpen, onToggle }: Props) => {\n const onKeyDown = (event: ChangeEvent<HTMLInputElement> & KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case keys.Space: {\n if (!isCalendarOpen) {\n event.preventDefault();\n onToggle(true, event);\n }\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["keys","Space","useKeyNavigation","_ref","isCalendarOpen","onToggle","onKeyDown","event","code","preventDefault"],"mappings":";;;;AAOO,IAAMA,IAAI,GAAG;AAChBC,EAAAA,KAAK,EAAE,OAAA;AACX,EAAC;IAEYC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAA4C;AAAA,EAAA,IAAtCC,cAAc,GAAAD,IAAA,CAAdC,cAAc;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ,CAAA;AACvD,EAAA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAIC,KAAsE,EAAK;IAC1F,QAAQA,KAAK,CAACC,IAAI;MACd,KAAKR,IAAI,CAACC,KAAK;AAAE,QAAA;UACb,IAAI,CAACG,cAAc,EAAE;YACjBG,KAAK,CAACE,cAAc,EAAE,CAAA;AACtBJ,YAAAA,QAAQ,CAAC,IAAI,EAAEE,KAAK,CAAC,CAAA;AACzB,WAAA;AACA,UAAA,MAAA;AACJ,SAAA;AAKJ,KAAA;GACH,CAAA;EAED,OAAO;AAAED,IAAAA,SAAS,EAATA,SAAAA;GAAW,CAAA;AACxB;;;;;"}
@@ -14,12 +14,14 @@ require('@linaria/react');
14
14
  var ESCAPE_KEYCODE = 27;
15
15
  var useModal = function useModal(_ref) {
16
16
  var id = _ref.id,
17
+ isOpen = _ref.isOpen,
17
18
  popupInfo = _ref.popupInfo,
18
19
  onEscKeyDown = _ref.onEscKeyDown,
19
20
  onClose = _ref.onClose,
20
21
  _ref$closeOnEsc = _ref.closeOnEsc,
21
22
  closeOnEsc = _ref$closeOnEsc === void 0 ? true : _ref$closeOnEsc;
22
23
  var popupController = PopupContext.usePopupContext();
24
+ var overflow = React.useRef(document.body.style.overflowY);
23
25
 
24
26
  // При ESC закрывает текущее окно, если это возможно
25
27
  var onKeyDown = React.useCallback(function (event) {
@@ -42,6 +44,19 @@ var useModal = function useModal(_ref) {
42
44
  window.removeEventListener('keydown', onKeyDown);
43
45
  };
44
46
  }, [onClose, onEscKeyDown, popupController.items, closeOnEsc]);
47
+
48
+ // linaria не поддерживает динамический global
49
+ React.useEffect(function () {
50
+ if (isOpen) {
51
+ overflow.current = document.body.style.overflowY;
52
+ document.body.style.overflowY = 'hidden';
53
+ }
54
+ }, [isOpen]);
55
+ React.useEffect(function () {
56
+ if (!isOpen && !ModalContext.hasModals(popupController.items)) {
57
+ document.body.style.overflowY = overflow.current;
58
+ }
59
+ }, [isOpen, overflow.current, popupController.items]);
45
60
  var modalInfo = _rollupPluginBabelHelpers.objectSpread2({
46
61
  id: id,
47
62
  info: {
@@ -1 +1 @@
1
- {"version":3,"file":"useModal.js","sources":["../../../../src/components/Modal/hooks/useModal.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\n\nimport { ModalInfo, getIdLastModal } from '../ModalContext';\nimport { ModalHookArgs } from '../Modal.types';\nimport { usePopupContext } from '../../Popup';\n\nconst ESCAPE_KEYCODE = 27;\n\nexport const useModal = ({ id, popupInfo, onEscKeyDown, onClose, closeOnEsc = true }: ModalHookArgs) => {\n const popupController = usePopupContext();\n\n // При ESC закрывает текущее окно, если это возможно\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (!closeOnEsc) {\n return;\n }\n if (event.keyCode === ESCAPE_KEYCODE && getIdLastModal(popupController.items) === id) {\n if (onEscKeyDown) {\n onEscKeyDown(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n }\n },\n [onClose, onEscKeyDown, popupController.items, closeOnEsc],\n );\n\n useEffect(() => {\n window.addEventListener('keydown', onKeyDown);\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [onClose, onEscKeyDown, popupController.items, closeOnEsc]);\n\n const modalInfo: ModalInfo = {\n id,\n info: {\n isModal: true,\n },\n ...popupInfo,\n };\n\n return { modalInfo };\n};\n"],"names":["ESCAPE_KEYCODE","useModal","_ref","id","popupInfo","onEscKeyDown","onClose","_ref$closeOnEsc","closeOnEsc","popupController","usePopupContext","onKeyDown","useCallback","event","keyCode","getIdLastModal","items","useEffect","window","addEventListener","removeEventListener","modalInfo","_objectSpread","info","isModal"],"mappings":";;;;;;;;;;;;;AAMA,IAAMA,cAAc,GAAG,EAAE,CAAA;IAEZC,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAAmF;AAAA,EAAA,IAA7EC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAEC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAAC,eAAA,GAAAL,IAAA,CAAEM,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,eAAA,CAAA;AAC9E,EAAA,IAAME,eAAe,GAAGC,4BAAe,EAAE,CAAA;;AAEzC;AACA,EAAA,IAAMC,SAAS,GAAGC,iBAAW,CACzB,UAACC,KAAoB,EAAK;IACtB,IAAI,CAACL,UAAU,EAAE;AACb,MAAA,OAAA;AACJ,KAAA;AACA,IAAA,IAAIK,KAAK,CAACC,OAAO,KAAKd,cAAc,IAAIe,2BAAc,CAACN,eAAe,CAACO,KAAK,CAAC,KAAKb,EAAE,EAAE;AAClF,MAAA,IAAIE,YAAY,EAAE;QACdA,YAAY,CAACQ,KAAK,CAAC,CAAA;AACnB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIP,OAAO,EAAE;AACTA,QAAAA,OAAO,EAAE,CAAA;AACb,OAAA;AACJ,KAAA;AACJ,GAAC,EACD,CAACA,OAAO,EAAED,YAAY,EAAEI,eAAe,CAACO,KAAK,EAAER,UAAU,CAC7D,CAAC,CAAA;AAEDS,EAAAA,eAAS,CAAC,YAAM;AACZC,IAAAA,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAER,SAAS,CAAC,CAAA;AAC7C,IAAA,OAAO,YAAM;AACTO,MAAAA,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAET,SAAS,CAAC,CAAA;KACnD,CAAA;AACL,GAAC,EAAE,CAACL,OAAO,EAAED,YAAY,EAAEI,eAAe,CAACO,KAAK,EAAER,UAAU,CAAC,CAAC,CAAA;EAE9D,IAAMa,SAAoB,GAAAC,uCAAA,CAAA;AACtBnB,IAAAA,EAAE,EAAFA,EAAE;AACFoB,IAAAA,IAAI,EAAE;AACFC,MAAAA,OAAO,EAAE,IAAA;AACb,KAAA;AAAC,GAAA,EACEpB,SAAS,CACf,CAAA;EAED,OAAO;AAAEiB,IAAAA,SAAS,EAATA,SAAAA;GAAW,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useModal.js","sources":["../../../../src/components/Modal/hooks/useModal.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { ModalInfo, getIdLastModal, hasModals } from '../ModalContext';\nimport { ModalHookArgs } from '../Modal.types';\nimport { usePopupContext } from '../../Popup';\n\nconst ESCAPE_KEYCODE = 27;\n\nexport const useModal = ({ id, isOpen, popupInfo, onEscKeyDown, onClose, closeOnEsc = true }: ModalHookArgs) => {\n const popupController = usePopupContext();\n const overflow = useRef<string>(document.body.style.overflowY);\n\n // При ESC закрывает текущее окно, если это возможно\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (!closeOnEsc) {\n return;\n }\n if (event.keyCode === ESCAPE_KEYCODE && getIdLastModal(popupController.items) === id) {\n if (onEscKeyDown) {\n onEscKeyDown(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n }\n },\n [onClose, onEscKeyDown, popupController.items, closeOnEsc],\n );\n\n useEffect(() => {\n window.addEventListener('keydown', onKeyDown);\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [onClose, onEscKeyDown, popupController.items, closeOnEsc]);\n\n // linaria не поддерживает динамический global\n useEffect(() => {\n if (isOpen) {\n overflow.current = document.body.style.overflowY;\n document.body.style.overflowY = 'hidden';\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (!isOpen && !hasModals(popupController.items)) {\n document.body.style.overflowY = overflow.current;\n }\n }, [isOpen, overflow.current, popupController.items]);\n\n const modalInfo: ModalInfo = {\n id,\n info: {\n isModal: true,\n },\n ...popupInfo,\n };\n\n return { modalInfo };\n};\n"],"names":["ESCAPE_KEYCODE","useModal","_ref","id","isOpen","popupInfo","onEscKeyDown","onClose","_ref$closeOnEsc","closeOnEsc","popupController","usePopupContext","overflow","useRef","document","body","style","overflowY","onKeyDown","useCallback","event","keyCode","getIdLastModal","items","useEffect","window","addEventListener","removeEventListener","current","hasModals","modalInfo","_objectSpread","info","isModal"],"mappings":";;;;;;;;;;;;;AAMA,IAAMA,cAAc,GAAG,EAAE,CAAA;IAEZC,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAA2F;AAAA,EAAA,IAArFC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;IAAEC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IAAEC,OAAO,GAAAL,IAAA,CAAPK,OAAO;IAAAC,eAAA,GAAAN,IAAA,CAAEO,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,eAAA,CAAA;AACtF,EAAA,IAAME,eAAe,GAAGC,4BAAe,EAAE,CAAA;EACzC,IAAMC,QAAQ,GAAGC,YAAM,CAASC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,SAAS,CAAC,CAAA;;AAE9D;AACA,EAAA,IAAMC,SAAS,GAAGC,iBAAW,CACzB,UAACC,KAAoB,EAAK;IACtB,IAAI,CAACX,UAAU,EAAE;AACb,MAAA,OAAA;AACJ,KAAA;AACA,IAAA,IAAIW,KAAK,CAACC,OAAO,KAAKrB,cAAc,IAAIsB,2BAAc,CAACZ,eAAe,CAACa,KAAK,CAAC,KAAKpB,EAAE,EAAE;AAClF,MAAA,IAAIG,YAAY,EAAE;QACdA,YAAY,CAACc,KAAK,CAAC,CAAA;AACnB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIb,OAAO,EAAE;AACTA,QAAAA,OAAO,EAAE,CAAA;AACb,OAAA;AACJ,KAAA;AACJ,GAAC,EACD,CAACA,OAAO,EAAED,YAAY,EAAEI,eAAe,CAACa,KAAK,EAAEd,UAAU,CAC7D,CAAC,CAAA;AAEDe,EAAAA,eAAS,CAAC,YAAM;AACZC,IAAAA,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAER,SAAS,CAAC,CAAA;AAC7C,IAAA,OAAO,YAAM;AACTO,MAAAA,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAET,SAAS,CAAC,CAAA;KACnD,CAAA;AACL,GAAC,EAAE,CAACX,OAAO,EAAED,YAAY,EAAEI,eAAe,CAACa,KAAK,EAAEd,UAAU,CAAC,CAAC,CAAA;;AAE9D;AACAe,EAAAA,eAAS,CAAC,YAAM;AACZ,IAAA,IAAIpB,MAAM,EAAE;MACRQ,QAAQ,CAACgB,OAAO,GAAGd,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,SAAS,CAAA;AAChDH,MAAAA,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,SAAS,GAAG,QAAQ,CAAA;AAC5C,KAAA;AACJ,GAAC,EAAE,CAACb,MAAM,CAAC,CAAC,CAAA;AAEZoB,EAAAA,eAAS,CAAC,YAAM;IACZ,IAAI,CAACpB,MAAM,IAAI,CAACyB,sBAAS,CAACnB,eAAe,CAACa,KAAK,CAAC,EAAE;MAC9CT,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,SAAS,GAAGL,QAAQ,CAACgB,OAAO,CAAA;AACpD,KAAA;AACJ,GAAC,EAAE,CAACxB,MAAM,EAAEQ,QAAQ,CAACgB,OAAO,EAAElB,eAAe,CAACa,KAAK,CAAC,CAAC,CAAA;EAErD,IAAMO,SAAoB,GAAAC,uCAAA,CAAA;AACtB5B,IAAAA,EAAE,EAAFA,EAAE;AACF6B,IAAAA,IAAI,EAAE;AACFC,MAAAA,OAAO,EAAE,IAAA;AACb,KAAA;AAAC,GAAA,EACE5B,SAAS,CACf,CAAA;EAED,OAAO;AAAEyB,IAAAA,SAAS,EAATA,SAAAA;GAAW,CAAA;AACxB;;;;"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
6
6
  var React = require('react');
7
- var ModalContext = require('../Modal/ModalContext.js');
8
7
 
9
8
  var POPUP_PORTAL_ID = 'plasma-popup-root';
10
9
  var items = [];
@@ -22,36 +21,22 @@ var usePopupContext = function usePopupContext() {
22
21
  };
23
22
  var PopupProvider = function PopupProvider(_ref) {
24
23
  var children = _ref.children;
25
- var prevBodyOverflowY = React.useRef(document.body.style.overflowY);
26
24
  var _useState = React.useState([]),
27
25
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
28
26
  items = _useState2[0],
29
27
  setItems = _useState2[1];
30
28
  var register = function register(info) {
31
- setItems(function (prevItems) {
32
- var _info$info;
33
- if ((_info$info = info.info) !== null && _info$info !== void 0 && _info$info.isModal && !ModalContext.hasModals(prevItems)) {
34
- prevBodyOverflowY.current = document.body.style.overflowY;
35
- document.body.style.overflowY = 'hidden';
36
- }
37
- return [].concat(_rollupPluginBabelHelpers.toConsumableArray(prevItems), [info]);
38
- });
29
+ setItems([].concat(_rollupPluginBabelHelpers.toConsumableArray(items), [info]));
39
30
  };
40
31
  var unregister = function unregister(id) {
41
- setItems(function (prevItems) {
42
- var index = prevItems.findIndex(function (item) {
43
- return id === item.id;
44
- });
45
- if (index === -1) {
46
- return prevItems;
47
- }
48
- var prevHasModals = ModalContext.hasModals(prevItems);
49
- prevItems.splice(index, 1);
50
- if (prevHasModals && !ModalContext.hasModals(prevItems)) {
51
- document.body.style.overflowY = prevBodyOverflowY.current;
52
- }
53
- return prevItems;
32
+ var index = items.findIndex(function (item) {
33
+ return id === item.id;
54
34
  });
35
+ if (index === -1) {
36
+ return;
37
+ }
38
+ items.splice(index, 1);
39
+ setItems(_rollupPluginBabelHelpers.toConsumableArray(items));
55
40
  };
56
41
  var context = {
57
42
  items: items,
@@ -1 +1 @@
1
- {"version":3,"file":"PopupContext.js","sources":["../../../src/components/Popup/PopupContext.tsx"],"sourcesContent":["import React, { createContext, useEffect, useState, useContext, FC, PropsWithChildren, useRef } from 'react';\n\nimport { hasModals } from '../Modal/ModalContext';\n\nimport type { PopupContextType, PopupInfo } from './Popup.types';\n\nexport const POPUP_PORTAL_ID = 'plasma-popup-root';\n\nconst items: PopupInfo[] = [];\n\nconst PopupContext = createContext<PopupContextType>({\n items,\n register(_info: PopupInfo): void {\n throw new Error('Function not implemented. Add PopupProvider');\n },\n unregister(_id: string): void {\n throw new Error('Function not implemented. Add PopupProvider');\n },\n});\n\nexport const usePopupContext = () => useContext(PopupContext);\n\nexport const PopupProvider: FC<PropsWithChildren> = ({ children }) => {\n const prevBodyOverflowY = useRef(document.body.style.overflowY);\n const [items, setItems] = useState<PopupInfo[]>([]);\n\n const register = (info: PopupInfo) => {\n setItems((prevItems) => {\n if (info.info?.isModal && !hasModals(prevItems)) {\n prevBodyOverflowY.current = document.body.style.overflowY;\n document.body.style.overflowY = 'hidden';\n }\n\n return [...prevItems, info];\n });\n };\n\n const unregister = (id: string) => {\n setItems((prevItems) => {\n const index = prevItems.findIndex((item: PopupInfo) => id === item.id);\n\n if (index === -1) {\n return prevItems;\n }\n\n const prevHasModals = hasModals(prevItems);\n prevItems.splice(index, 1);\n\n if (prevHasModals && !hasModals(prevItems)) {\n document.body.style.overflowY = prevBodyOverflowY.current;\n }\n\n return prevItems;\n });\n };\n\n const context = {\n items,\n register,\n unregister,\n };\n\n useEffect(() => {\n return () => {\n const portal = document.createElement('div');\n if (portal && document.body.contains(portal)) {\n document.body.removeChild(portal);\n }\n };\n }, []);\n\n return <PopupContext.Provider value={context}>{children}</PopupContext.Provider>;\n};\n"],"names":["POPUP_PORTAL_ID","items","PopupContext","createContext","register","_info","Error","unregister","_id","usePopupContext","useContext","PopupProvider","_ref","children","prevBodyOverflowY","useRef","document","body","style","overflowY","_useState","useState","_useState2","_slicedToArray","setItems","info","prevItems","_info$info","isModal","hasModals","current","concat","_toConsumableArray","id","index","findIndex","item","prevHasModals","splice","context","useEffect","portal","createElement","contains","removeChild","React","Provider","value"],"mappings":"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"}
1
+ {"version":3,"file":"PopupContext.js","sources":["../../../src/components/Popup/PopupContext.tsx"],"sourcesContent":["import React, { createContext, useEffect, useState, useContext, FC, PropsWithChildren } from 'react';\n\nimport type { PopupContextType, PopupInfo } from './Popup.types';\n\nexport const POPUP_PORTAL_ID = 'plasma-popup-root';\n\nconst items: PopupInfo[] = [];\n\nconst PopupContext = createContext<PopupContextType>({\n items,\n register(_info: PopupInfo): void {\n throw new Error('Function not implemented. Add PopupProvider');\n },\n unregister(_id: string): void {\n throw new Error('Function not implemented. Add PopupProvider');\n },\n});\n\nexport const usePopupContext = () => useContext(PopupContext);\n\nexport const PopupProvider: FC<PropsWithChildren> = ({ children }) => {\n const [items, setItems] = useState<PopupInfo[]>([]);\n\n const register = (info: PopupInfo) => {\n setItems([...items, info]);\n };\n\n const unregister = (id: string) => {\n const index = items.findIndex((item: PopupInfo) => id === item.id);\n\n if (index === -1) {\n return;\n }\n\n items.splice(index, 1);\n setItems([...items]);\n };\n\n const context = {\n items,\n register,\n unregister,\n };\n\n useEffect(() => {\n return () => {\n const portal = document.createElement('div');\n if (portal && document.body.contains(portal)) {\n document.body.removeChild(portal);\n }\n };\n }, []);\n\n return <PopupContext.Provider value={context}>{children}</PopupContext.Provider>;\n};\n"],"names":["POPUP_PORTAL_ID","items","PopupContext","createContext","register","_info","Error","unregister","_id","usePopupContext","useContext","PopupProvider","_ref","children","_useState","useState","_useState2","_slicedToArray","setItems","info","concat","_toConsumableArray","id","index","findIndex","item","splice","context","useEffect","portal","document","createElement","body","contains","removeChild","React","Provider","value"],"mappings":";;;;;;;AAIO,IAAMA,eAAe,GAAG,oBAAmB;AAElD,IAAMC,KAAkB,GAAG,EAAE,CAAA;AAE7B,IAAMC,YAAY,gBAAGC,mBAAa,CAAmB;AACjDF,EAAAA,KAAK,EAALA,KAAK;EACLG,QAAQ,EAAA,SAAAA,QAACC,CAAAA,KAAgB,EAAQ;AAC7B,IAAA,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC,CAAA;GACjE;EACDC,UAAU,EAAA,SAAAA,UAACC,CAAAA,GAAW,EAAQ;AAC1B,IAAA,MAAM,IAAIF,KAAK,CAAC,6CAA6C,CAAC,CAAA;AAClE,GAAA;AACJ,CAAC,CAAC,CAAA;AAEWG,IAAAA,eAAe,GAAG,SAAlBA,eAAeA,GAAA;EAAA,OAASC,gBAAU,CAACR,YAAY,CAAC,CAAA;AAAA,EAAA;IAEhDS,aAAoC,GAAG,SAAvCA,aAAoCA,CAAAC,IAAA,EAAqB;AAAA,EAAA,IAAfC,QAAQ,GAAAD,IAAA,CAARC,QAAQ,CAAA;AAC3D,EAAA,IAAAC,SAAA,GAA0BC,cAAQ,CAAc,EAAE,CAAC;IAAAC,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA5Cb,IAAAA,KAAK,GAAAe,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,IAAMZ,QAAQ,GAAG,SAAXA,QAAQA,CAAIe,IAAe,EAAK;IAClCD,QAAQ,CAAA,EAAA,CAAAE,MAAA,CAAAC,2CAAA,CAAKpB,KAAK,CAAA,EAAA,CAAEkB,IAAI,CAAA,CAAC,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,IAAMZ,UAAU,GAAG,SAAbA,UAAUA,CAAIe,EAAU,EAAK;AAC/B,IAAA,IAAMC,KAAK,GAAGtB,KAAK,CAACuB,SAAS,CAAC,UAACC,IAAe,EAAA;AAAA,MAAA,OAAKH,EAAE,KAAKG,IAAI,CAACH,EAAE,CAAA;KAAC,CAAA,CAAA;AAElE,IAAA,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;AACd,MAAA,OAAA;AACJ,KAAA;AAEAtB,IAAAA,KAAK,CAACyB,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC,CAAA;AACtBL,IAAAA,QAAQ,CAAAG,2CAAA,CAAKpB,KAAK,CAAC,CAAC,CAAA;GACvB,CAAA;AAED,EAAA,IAAM0B,OAAO,GAAG;AACZ1B,IAAAA,KAAK,EAALA,KAAK;AACLG,IAAAA,QAAQ,EAARA,QAAQ;AACRG,IAAAA,UAAU,EAAVA,UAAAA;GACH,CAAA;AAEDqB,EAAAA,eAAS,CAAC,YAAM;AACZ,IAAA,OAAO,YAAM;AACT,MAAA,IAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC,CAAA;MAC5C,IAAIF,MAAM,IAAIC,QAAQ,CAACE,IAAI,CAACC,QAAQ,CAACJ,MAAM,CAAC,EAAE;AAC1CC,QAAAA,QAAQ,CAACE,IAAI,CAACE,WAAW,CAACL,MAAM,CAAC,CAAA;AACrC,OAAA;KACH,CAAA;GACJ,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBAAOM,KAAA,CAAAJ,aAAA,CAAC7B,YAAY,CAACkC,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEV,OAAAA;AAAQ,GAAA,EAAEd,QAAgC,CAAC,CAAA;AACpF;;;;;;"}
@@ -69,11 +69,6 @@ var usePopup = function usePopup(_ref) {
69
69
  popupController.unregister(id);
70
70
  setVisible(false);
71
71
  }, [isOpen, isVisible, animationInfo]);
72
- React.useEffect(function () {
73
- return function () {
74
- popupController.unregister(id);
75
- };
76
- }, [id]);
77
72
  return {
78
73
  isVisible: isVisible,
79
74
  setVisible: setVisible,
@@ -1 +1 @@
1
- {"version":3,"file":"usePopup.js","sources":["../../../../src/components/Popup/hooks/usePopup.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { PopupAnimationInfo, PopupHookArgs } from '../Popup.types';\nimport { usePopupContext } from '../PopupContext';\n\n// Хук для поключения анимации\nconst usePopupAnimation = (): PopupAnimationInfo => {\n const [endAnimation, setEndAnimation] = useState<boolean>(false);\n const [endTransition, setEndTransition] = useState<boolean>(false);\n\n return { endAnimation, endTransition, setEndTransition, setEndAnimation };\n};\n\n// Хук для внутреннего состояния, необходимого для правильного отображения вложенных окон, а также для анимации\nexport const usePopup = ({ isOpen, id, popupInfo, withAnimation }: PopupHookArgs) => {\n const [isVisible, setVisible] = useState<boolean>(false);\n const popupController = usePopupContext();\n const animationInfo = usePopupAnimation();\n\n // для использования transition в качестве анимации\n useEffect(() => {\n if (withAnimation && animationInfo) {\n animationInfo.setEndTransition(!isVisible || animationInfo?.endAnimation);\n }\n }, [animationInfo, withAnimation, isVisible]);\n\n // сначала добавление/удаление из контекста, и только после этого отображение/скрытие\n useEffect(() => {\n // при первом открытии\n if (isOpen && !isVisible) {\n popupController.register({ id, ...popupInfo });\n setVisible(true);\n animationInfo.setEndAnimation(false);\n return;\n }\n\n if (isOpen || !isVisible) {\n return;\n }\n\n // если есть анимация - закрытие по окончании анимации\n if (withAnimation) {\n animationInfo.setEndAnimation(true);\n return;\n }\n\n // иначе обычное закрытие\n popupController.unregister(id);\n setVisible(false);\n }, [isOpen, isVisible, animationInfo]);\n\n useEffect(() => {\n return () => {\n popupController.unregister(id);\n };\n }, [id]);\n\n return { isVisible, setVisible, animationInfo, withAnimation };\n};\n"],"names":["usePopupAnimation","_useState","useState","_useState2","_slicedToArray","endAnimation","setEndAnimation","_useState3","_useState4","endTransition","setEndTransition","usePopup","_ref","isOpen","id","popupInfo","withAnimation","_useState5","_useState6","isVisible","setVisible","popupController","usePopupContext","animationInfo","useEffect","register","_objectSpread","unregister"],"mappings":";;;;;;;;AAKA;AACA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,GAA6B;AAChD,EAAA,IAAAC,SAAA,GAAwCC,cAAQ,CAAU,KAAK,CAAC;IAAAC,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzDI,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,eAAe,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AACpC,EAAA,IAAAI,UAAA,GAA0CL,cAAQ,CAAU,KAAK,CAAC;IAAAM,UAAA,GAAAJ,uCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA3DE,IAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAEtC,OAAO;AAAEH,IAAAA,YAAY,EAAZA,YAAY;AAAEI,IAAAA,aAAa,EAAbA,aAAa;AAAEC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEJ,IAAAA,eAAe,EAAfA,eAAAA;GAAiB,CAAA;AAC7E,CAAC,CAAA;;AAED;IACaK,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAAgE;AAAA,EAAA,IAA1DC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;IAAEC,aAAa,GAAAJ,IAAA,CAAbI,aAAa,CAAA;AAC3D,EAAA,IAAAC,UAAA,GAAgCf,cAAQ,CAAU,KAAK,CAAC;IAAAgB,UAAA,GAAAd,uCAAA,CAAAa,UAAA,EAAA,CAAA,CAAA;AAAjDE,IAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAMG,eAAe,GAAGC,4BAAe,EAAE,CAAA;AACzC,EAAA,IAAMC,aAAa,GAAGvB,iBAAiB,EAAE,CAAA;;AAEzC;AACAwB,EAAAA,eAAS,CAAC,YAAM;IACZ,IAAIR,aAAa,IAAIO,aAAa,EAAE;AAChCA,MAAAA,aAAa,CAACb,gBAAgB,CAAC,CAACS,SAAS,KAAII,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAElB,YAAY,CAAC,CAAA,CAAA;AAC7E,KAAA;GACH,EAAE,CAACkB,aAAa,EAAEP,aAAa,EAAEG,SAAS,CAAC,CAAC,CAAA;;AAE7C;AACAK,EAAAA,eAAS,CAAC,YAAM;AACZ;AACA,IAAA,IAAIX,MAAM,IAAI,CAACM,SAAS,EAAE;MACtBE,eAAe,CAACI,QAAQ,CAAAC,uCAAA,CAAA;AAAGZ,QAAAA,EAAE,EAAFA,EAAAA;OAAOC,EAAAA,SAAS,CAAE,CAAC,CAAA;MAC9CK,UAAU,CAAC,IAAI,CAAC,CAAA;AAChBG,MAAAA,aAAa,CAACjB,eAAe,CAAC,KAAK,CAAC,CAAA;AACpC,MAAA,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIO,MAAM,IAAI,CAACM,SAAS,EAAE;AACtB,MAAA,OAAA;AACJ,KAAA;;AAEA;AACA,IAAA,IAAIH,aAAa,EAAE;AACfO,MAAAA,aAAa,CAACjB,eAAe,CAAC,IAAI,CAAC,CAAA;AACnC,MAAA,OAAA;AACJ,KAAA;;AAEA;AACAe,IAAAA,eAAe,CAACM,UAAU,CAACb,EAAE,CAAC,CAAA;IAC9BM,UAAU,CAAC,KAAK,CAAC,CAAA;GACpB,EAAE,CAACP,MAAM,EAAEM,SAAS,EAAEI,aAAa,CAAC,CAAC,CAAA;AAEtCC,EAAAA,eAAS,CAAC,YAAM;AACZ,IAAA,OAAO,YAAM;AACTH,MAAAA,eAAe,CAACM,UAAU,CAACb,EAAE,CAAC,CAAA;KACjC,CAAA;AACL,GAAC,EAAE,CAACA,EAAE,CAAC,CAAC,CAAA;EAER,OAAO;AAAEK,IAAAA,SAAS,EAATA,SAAS;AAAEC,IAAAA,UAAU,EAAVA,UAAU;AAAEG,IAAAA,aAAa,EAAbA,aAAa;AAAEP,IAAAA,aAAa,EAAbA,aAAAA;GAAe,CAAA;AAClE;;;;"}
1
+ {"version":3,"file":"usePopup.js","sources":["../../../../src/components/Popup/hooks/usePopup.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { PopupAnimationInfo, PopupHookArgs } from '../Popup.types';\nimport { usePopupContext } from '../PopupContext';\n\n// Хук для поключения анимации\nconst usePopupAnimation = (): PopupAnimationInfo => {\n const [endAnimation, setEndAnimation] = useState<boolean>(false);\n const [endTransition, setEndTransition] = useState<boolean>(false);\n\n return { endAnimation, endTransition, setEndTransition, setEndAnimation };\n};\n\n// Хук для внутреннего состояния, необходимого для правильного отображения вложенных окон, а также для анимации\nexport const usePopup = ({ isOpen, id, popupInfo, withAnimation }: PopupHookArgs) => {\n const [isVisible, setVisible] = useState<boolean>(false);\n const popupController = usePopupContext();\n const animationInfo = usePopupAnimation();\n\n // для использования transition в качестве анимации\n useEffect(() => {\n if (withAnimation && animationInfo) {\n animationInfo.setEndTransition(!isVisible || animationInfo?.endAnimation);\n }\n }, [animationInfo, withAnimation, isVisible]);\n\n // сначала добавление/удаление из контекста, и только после этого отображение/скрытие\n useEffect(() => {\n // при первом открытии\n if (isOpen && !isVisible) {\n popupController.register({ id, ...popupInfo });\n setVisible(true);\n animationInfo.setEndAnimation(false);\n return;\n }\n\n if (isOpen || !isVisible) {\n return;\n }\n\n // если есть анимация - закрытие по окончании анимации\n if (withAnimation) {\n animationInfo.setEndAnimation(true);\n return;\n }\n\n // иначе обычное закрытие\n popupController.unregister(id);\n setVisible(false);\n }, [isOpen, isVisible, animationInfo]);\n\n return { isVisible, setVisible, animationInfo, withAnimation };\n};\n"],"names":["usePopupAnimation","_useState","useState","_useState2","_slicedToArray","endAnimation","setEndAnimation","_useState3","_useState4","endTransition","setEndTransition","usePopup","_ref","isOpen","id","popupInfo","withAnimation","_useState5","_useState6","isVisible","setVisible","popupController","usePopupContext","animationInfo","useEffect","register","_objectSpread","unregister"],"mappings":";;;;;;;;AAKA;AACA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,GAA6B;AAChD,EAAA,IAAAC,SAAA,GAAwCC,cAAQ,CAAU,KAAK,CAAC;IAAAC,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzDI,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,eAAe,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AACpC,EAAA,IAAAI,UAAA,GAA0CL,cAAQ,CAAU,KAAK,CAAC;IAAAM,UAAA,GAAAJ,uCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA3DE,IAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAEtC,OAAO;AAAEH,IAAAA,YAAY,EAAZA,YAAY;AAAEI,IAAAA,aAAa,EAAbA,aAAa;AAAEC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEJ,IAAAA,eAAe,EAAfA,eAAAA;GAAiB,CAAA;AAC7E,CAAC,CAAA;;AAED;IACaK,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAAgE;AAAA,EAAA,IAA1DC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;IAAEC,aAAa,GAAAJ,IAAA,CAAbI,aAAa,CAAA;AAC3D,EAAA,IAAAC,UAAA,GAAgCf,cAAQ,CAAU,KAAK,CAAC;IAAAgB,UAAA,GAAAd,uCAAA,CAAAa,UAAA,EAAA,CAAA,CAAA;AAAjDE,IAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAMG,eAAe,GAAGC,4BAAe,EAAE,CAAA;AACzC,EAAA,IAAMC,aAAa,GAAGvB,iBAAiB,EAAE,CAAA;;AAEzC;AACAwB,EAAAA,eAAS,CAAC,YAAM;IACZ,IAAIR,aAAa,IAAIO,aAAa,EAAE;AAChCA,MAAAA,aAAa,CAACb,gBAAgB,CAAC,CAACS,SAAS,KAAII,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAElB,YAAY,CAAC,CAAA,CAAA;AAC7E,KAAA;GACH,EAAE,CAACkB,aAAa,EAAEP,aAAa,EAAEG,SAAS,CAAC,CAAC,CAAA;;AAE7C;AACAK,EAAAA,eAAS,CAAC,YAAM;AACZ;AACA,IAAA,IAAIX,MAAM,IAAI,CAACM,SAAS,EAAE;MACtBE,eAAe,CAACI,QAAQ,CAAAC,uCAAA,CAAA;AAAGZ,QAAAA,EAAE,EAAFA,EAAAA;OAAOC,EAAAA,SAAS,CAAE,CAAC,CAAA;MAC9CK,UAAU,CAAC,IAAI,CAAC,CAAA;AAChBG,MAAAA,aAAa,CAACjB,eAAe,CAAC,KAAK,CAAC,CAAA;AACpC,MAAA,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIO,MAAM,IAAI,CAACM,SAAS,EAAE;AACtB,MAAA,OAAA;AACJ,KAAA;;AAEA;AACA,IAAA,IAAIH,aAAa,EAAE;AACfO,MAAAA,aAAa,CAACjB,eAAe,CAAC,IAAI,CAAC,CAAA;AACnC,MAAA,OAAA;AACJ,KAAA;;AAEA;AACAe,IAAAA,eAAe,CAACM,UAAU,CAACb,EAAE,CAAC,CAAA;IAC9BM,UAAU,CAAC,KAAK,CAAC,CAAA;GACpB,EAAE,CAACP,MAAM,EAAEM,SAAS,EAAEI,aAAa,CAAC,CAAC,CAAA;EAEtC,OAAO;AAAEJ,IAAAA,SAAS,EAATA,SAAS;AAAEC,IAAAA,UAAU,EAAVA,UAAU;AAAEG,IAAAA,aAAa,EAAbA,aAAa;AAAEP,IAAAA,aAAa,EAAbA,aAAAA;GAAe,CAAA;AAClE;;;;"}
@@ -10,6 +10,7 @@ var _utils = /*#__PURE__*/require("../../../utils");
10
10
  var _dateHelper = /*#__PURE__*/require("../utils/dateHelper");
11
11
  var _useDatePicker3 = /*#__PURE__*/require("../hooks/useDatePicker");
12
12
  var _DatePicker = /*#__PURE__*/require("../DatePicker.tokens");
13
+ var _useKeyboardNavigation = /*#__PURE__*/require("../hooks/useKeyboardNavigation");
13
14
  var _base = /*#__PURE__*/require("./variations/_size/base");
14
15
  var _base2 = /*#__PURE__*/require("./variations/_view/base");
15
16
  var _base3 = /*#__PURE__*/require("./variations/_disabled/base");
@@ -181,6 +182,11 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
181
182
  }
182
183
  setIsInnerOpen(isCalendarOpen);
183
184
  };
185
+ var _useKeyNavigation = (0, _useKeyboardNavigation.useKeyNavigation)({
186
+ isCalendarOpen: isInnerOpen,
187
+ onToggle: handleToggle
188
+ }),
189
+ onKeyDown = _useKeyNavigation.onKeyDown;
184
190
  var RangeComponent = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_RangeDate.StyledRange, {
185
191
  ref: rangeRef,
186
192
  dividerIcon: dividerIcon,
@@ -224,13 +230,19 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
224
230
  onFocusFirstTextfield: onFocusFirstTextfield,
225
231
  onFocusSecondTextfield: onFocusSecondTextfield,
226
232
  onBlurFirstTextfield: onBlurFirstTextfield,
227
- onBlurSecondTextfield: onBlurSecondTextfield
233
+ onBlurSecondTextfield: onBlurSecondTextfield,
234
+ onKeyDown: onKeyDown
228
235
  }));
229
236
  (0, _react.useEffect)(function () {
230
237
  var _rangeRef$current5, _rangeRef$current6;
231
238
  setFirstInputRef((_rangeRef$current5 = rangeRef.current) === null || _rangeRef$current5 === void 0 ? void 0 : _rangeRef$current5.firstTextField());
232
239
  setSecondInputRef((_rangeRef$current6 = rangeRef.current) === null || _rangeRef$current6 === void 0 ? void 0 : _rangeRef$current6.secondTextField());
233
240
  }, [rangeRef.current]);
241
+ (0, _react.useEffect)(function () {
242
+ setIsInnerOpen(function (prevOpen) {
243
+ return prevOpen !== isOpen && isOpen;
244
+ });
245
+ }, [isOpen]);
234
246
  return /*#__PURE__*/_react["default"].createElement(Root, _extends({
235
247
  ref: rootRef,
236
248
  view: view,
@@ -241,7 +253,7 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
241
253
  }, rest), label && /*#__PURE__*/_react["default"].createElement(_RangeDate.StyledLabel, null, label), /*#__PURE__*/_react["default"].createElement(_RangeDatePopover.RangeDatePopover, {
242
254
  calendarValue: [calendarFirstValue, calendarSecondValue],
243
255
  target: RangeComponent,
244
- isOpen: isOpen || isInnerOpen,
256
+ isOpen: isInnerOpen,
245
257
  includeEdgeDates: includeEdgeDates,
246
258
  eventList: eventList,
247
259
  disabledList: disabledList,