@skbkontur/react-ui 5.4.2 → 5.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +6 -0
  3. package/cjs/components/DateRangePicker/DateRangePicker.js +24 -1
  4. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  5. package/cjs/components/DateRangePicker/DateRangePickerInput.js +2 -2
  6. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  7. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  8. package/cjs/components/Textarea/Textarea.js +14 -2
  9. package/cjs/components/Textarea/Textarea.js.map +1 -1
  10. package/cjs/components/TokenInput/TokenInput.d.ts +6 -3
  11. package/cjs/components/TokenInput/TokenInput.js +43 -28
  12. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  13. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  14. package/cjs/internal/ResizeDetector/ResizeDetector.js +8 -1
  15. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  16. package/cjs/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
  17. package/cjs/internal/ResizeDetector/ResizeDetector.styles.js +7 -1
  18. package/cjs/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
  19. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  20. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  21. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  22. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  23. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +14 -1
  24. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  25. package/components/DateRangePicker/DateRangePicker.d.ts +6 -0
  26. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +2 -2
  27. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  28. package/components/Textarea/Textarea/Textarea.js +12 -6
  29. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  30. package/components/Textarea/Textarea.d.ts +1 -0
  31. package/components/TokenInput/TokenInput/TokenInput.js +64 -48
  32. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  33. package/components/TokenInput/TokenInput.d.ts +6 -3
  34. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +1 -1
  35. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
  36. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  37. package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js +4 -1
  38. package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js.map +1 -1
  39. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
  40. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  41. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  42. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  43. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  44. package/package.json +6 -4
  45. package/cjs/lib/__stories__/Blink.creevey.mts +0 -90
  46. package/lib/__stories__/Blink.creevey.mts +0 -90
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","reactUIFeatureFlagsDefault","exports","dateInputFixSameNumberTypingOnRefocus","dateInputAllowInvalidValuesInDays","comboBoxAllowValueChangeInEditingState","stickyReduceLayoutEvents","radioGroupRemoveBaselineSpacer","groupAddHintAndTooltipSupport","popupFixPinTearing","autocompleteUseMaskedInput","fxInputUseMaskedInput","sidePageDisableHeaderShrink","sidePageNotCutTitleOnStuckByDefault","tokenInputCreateTokenOnBlurInWithoutReferenceMode","ReactUIFeatureFlagsContext","React","createContext","displayName","__KONTUR_REACT_UI__"],"sources":["ReactUIFeatureFlagsContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n dateInputFixSameNumberTypingOnRefocus?: boolean;\n dateInputAllowInvalidValuesInDays?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n stickyReduceLayoutEvents?: boolean;\n radioGroupRemoveBaselineSpacer?: boolean;\n groupAddHintAndTooltipSupport?: boolean;\n popupFixPinTearing?: boolean;\n autocompleteUseMaskedInput?: boolean;\n fxInputUseMaskedInput?: boolean;\n sidePageDisableHeaderShrink?: boolean;\n sidePageNotCutTitleOnStuckByDefault?: boolean;\n tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n dateInputFixSameNumberTypingOnRefocus: false,\n dateInputAllowInvalidValuesInDays: false,\n comboBoxAllowValueChangeInEditingState: false,\n stickyReduceLayoutEvents: false,\n radioGroupRemoveBaselineSpacer: false,\n groupAddHintAndTooltipSupport: false,\n popupFixPinTearing: false,\n autocompleteUseMaskedInput: false,\n fxInputUseMaskedInput: false,\n sidePageDisableHeaderShrink: false,\n sidePageNotCutTitleOnStuckByDefault: false,\n tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\n\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\nReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';\n"],"mappings":"qNAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;;;;;;;;;;;;;;;;AAiBO,IAAMC,0BAA+C,GAAAC,OAAA,CAAAD,0BAAA,GAAG;EAC7DE,qCAAqC,EAAE,KAAK;EAC5CC,iCAAiC,EAAE,KAAK;EACxCC,sCAAsC,EAAE,KAAK;EAC7CC,wBAAwB,EAAE,KAAK;EAC/BC,8BAA8B,EAAE,KAAK;EACrCC,6BAA6B,EAAE,KAAK;EACpCC,kBAAkB,EAAE,KAAK;EACzBC,0BAA0B,EAAE,KAAK;EACjCC,qBAAqB,EAAE,KAAK;EAC5BC,2BAA2B,EAAE,KAAK;EAClCC,mCAAmC,EAAE,KAAK;EAC1CC,iDAAiD,EAAE;AACrD,CAAC;;AAEM,IAAMC,0BAA0B,GAAAb,OAAA,CAAAa,0BAAA,gBAAGC,cAAK,CAACC,aAAa,CAAsBhB,0BAA0B,CAAC;;AAE9Gc,0BAA0B,CAACG,WAAW,GAAG,4BAA4B;AACrEH,0BAA0B,CAACI,mBAAmB,GAAG,4BAA4B","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","reactUIFeatureFlagsDefault","exports","dateInputFixSameNumberTypingOnRefocus","dateInputAllowInvalidValuesInDays","comboBoxAllowValueChangeInEditingState","stickyReduceLayoutEvents","radioGroupRemoveBaselineSpacer","groupAddHintAndTooltipSupport","popupFixPinTearing","autocompleteUseMaskedInput","fxInputUseMaskedInput","sidePageDisableHeaderShrink","sidePageNotCutTitleOnStuckByDefault","tokenInputCreateTokenOnBlurInWithoutReferenceMode","textareaBaselineAlign","ReactUIFeatureFlagsContext","React","createContext","displayName","__KONTUR_REACT_UI__"],"sources":["ReactUIFeatureFlagsContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n dateInputFixSameNumberTypingOnRefocus?: boolean;\n dateInputAllowInvalidValuesInDays?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n stickyReduceLayoutEvents?: boolean;\n radioGroupRemoveBaselineSpacer?: boolean;\n groupAddHintAndTooltipSupport?: boolean;\n popupFixPinTearing?: boolean;\n autocompleteUseMaskedInput?: boolean;\n fxInputUseMaskedInput?: boolean;\n sidePageDisableHeaderShrink?: boolean;\n sidePageNotCutTitleOnStuckByDefault?: boolean;\n tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;\n textareaBaselineAlign?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n dateInputFixSameNumberTypingOnRefocus: false,\n dateInputAllowInvalidValuesInDays: false,\n comboBoxAllowValueChangeInEditingState: false,\n stickyReduceLayoutEvents: false,\n radioGroupRemoveBaselineSpacer: false,\n groupAddHintAndTooltipSupport: false,\n popupFixPinTearing: false,\n autocompleteUseMaskedInput: false,\n fxInputUseMaskedInput: false,\n sidePageDisableHeaderShrink: false,\n sidePageNotCutTitleOnStuckByDefault: false,\n tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,\n textareaBaselineAlign: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\n\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\nReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';\n"],"mappings":"qNAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;;;;;;;;;;;;;;;;;AAkBO,IAAMC,0BAA+C,GAAAC,OAAA,CAAAD,0BAAA,GAAG;EAC7DE,qCAAqC,EAAE,KAAK;EAC5CC,iCAAiC,EAAE,KAAK;EACxCC,sCAAsC,EAAE,KAAK;EAC7CC,wBAAwB,EAAE,KAAK;EAC/BC,8BAA8B,EAAE,KAAK;EACrCC,6BAA6B,EAAE,KAAK;EACpCC,kBAAkB,EAAE,KAAK;EACzBC,0BAA0B,EAAE,KAAK;EACjCC,qBAAqB,EAAE,KAAK;EAC5BC,2BAA2B,EAAE,KAAK;EAClCC,mCAAmC,EAAE,KAAK;EAC1CC,iDAAiD,EAAE,KAAK;EACxDC,qBAAqB,EAAE;AACzB,CAAC;;AAEM,IAAMC,0BAA0B,GAAAd,OAAA,CAAAc,0BAAA,gBAAGC,cAAK,CAACC,aAAa,CAAsBjB,0BAA0B,CAAC;;AAE9Ge,0BAA0B,CAACG,WAAW,GAAG,4BAA4B;AACrEH,0BAA0B,CAACI,mBAAmB,GAAG,4BAA4B","ignoreList":[]}
@@ -305,6 +305,19 @@ export var DateRangePicker = Object.assign({
305
305
  }, renderCalendar(theme, true)))
306
306
  );
307
307
  };
308
+ var getAnchorElement = function getAnchorElement() {
309
+ var menuAnchorElement = props.menuAnchorElement;
310
+ if (menuAnchorElement === 'focused') {
311
+ return getRootNode(focusInput === 'start' ? startRef.current : endRef.current);
312
+ }
313
+ if ( /*#__PURE__*/React.isValidElement(menuAnchorElement)) {
314
+ return menuAnchorElement;
315
+ }
316
+ if (menuAnchorElement && typeof menuAnchorElement === 'object' && 'current' in menuAnchorElement) {
317
+ return getRootNode(menuAnchorElement.current);
318
+ }
319
+ return getRootNode(startRef.current) || getRootNode(endRef.current) || getRootNode(dateRangePickerRef.current);
320
+ };
308
321
  var renderDesktopCalendar = function renderDesktopCalendar(theme) {
309
322
  return /*#__PURE__*/(
310
323
  React.createElement(Popup, {
@@ -313,7 +326,7 @@ export var DateRangePicker = Object.assign({
313
326
  priority: ZIndex.priorities.PopupMenu,
314
327
  positions: getMenuPositions(props.menuPos, props.menuAlign),
315
328
  "data-tid": DateRangePickerDataTids.root,
316
- anchorElement: getRootNode(dateRangePickerRef.current),
329
+ anchorElement: getAnchorElement(),
317
330
  margin: parseInt(theme.datePickerMenuOffsetY)
318
331
  }, /*#__PURE__*/
319
332
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","useImperativeHandle","useRef","useState","useLayoutEffect","MobilePopup","useLocaleForControl","css","cx","ThemeContext","CommonWrapper","Calendar","CalendarDay","Popup","DateInput","isBetween","isGreater","isGreaterOrEqual","isLess","isLessOrEqual","ZIndex","getRootNode","getMenuPositions","Button","useResponsiveLayout","InternalDate","InternalDateGetter","ArrowAUpIcon16Light","NativeDateInput","forwardRefAndName","LocaleContext","isIOS","getFontSize","styles","DateRangePickerSeparator","DateRangePickerContext","DateRangePickerEnd","DateRangePickerStart","getDateRangePickerTheme","getMobileDateRangePickerTheme","DateRangePickerLocaleHelper","validateDateRangePicker","getStateForValue","DateRangePickerDataTids","root","start","end","popup","calendar","todayButton","startOptionalButton","endOptionalButton","mobileStart","mobileEnd","rangeStart","rangeEnd","DayDateAttribute","DateRangePicker","Object","assign","Start","End","Separator","validate","props","ref","_useResponsiveLayout","isMobile","locale","_useState","startValue","setStartValue","_useState2","startOptional","setStartOptional","_useState3","startDisabled","setStartDisabled","_useState4","endValue","setEndValue","_useState5","endOptional","setEndOptional","_useState6","endDisabled","setEndDisabled","_useState7","minDate","setMinDate","_useState8","maxDate","setMaxDate","_useState9","hoveredDay","setHoveredDay","_useState10","showCalendar","setShowCalendar","_useState11","focusInput","setFocusInput","dateRangePickerRef","calendarRef","startRef","endRef","mobileStartRef","mobileEndRef","mobileNativeStartRef","mobileNativeEndRef","isCalendarOpen","updateDateRangeValues","value","currentValues","currentStart","currentEnd","updatedState","isOpen","focus","close","open","inputType","setEmpty","type","_calendarRef$current","scrollToMonth","current","setTimeout","_currentFieldRef$curr4","isStart","currentFieldRef","useMobileNativeDatePicker","_currentFieldRef$curr","_currentFieldRef$curr2","click","_currentFieldRef$curr3","dateRangePickerContextProps","size","renderCalendar","theme","widthAuto","_cx","createElement","Provider","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","renderDay","dayProps","renderCalendarRange","onValueChange","onMonthChange","className","calendarWidthAuto","renderMobileCalendar","_cx2","_cx3","opened","headerChildComponent","inputWrapperWidthFull","withIcon","width","inputVisuallyFocus","disabled","onFocus","onCloseRequest","footerChildComponent","renderButtons","renderDesktopCalendar","hasShadow","priority","priorities","PopupMenu","positions","menuPos","menuAlign","anchorElement","margin","parseInt","datePickerMenuOffsetY","calendarWrapper","onMouseDown","e","preventDefault","onMouseMove","handleCalendarRangeMouseMove","today","setComponents","getTodayComponents","toString","withPad","withSeparator","hasOptionalButtons","buttonWrap","Fragment","onClick","startDateEmpty","endDateEmpty","enableTodayLink","icon","todayAriaLabel","renderMobileNativeDateInput","Consumer","inputWrapperWidth","_templateObject","_taggedTemplateLiteralLoose","role","style","children","hoveredElement","target","hasAttribute","date","String","getAttribute","t","renderDayFn","_extends2","_cx4","day","isDayFirst","isDayLast","isDayInPeriod","Boolean","hasHoveredDay","isDayInHoveredPeriod","hasLeftRoundings","hasRightRoundings","isDayBeforeFirstInPeriod","isDayAfterLastInPeriod","isDayHovered","renderDayProps","_extends","dataTid","rangeCalendarDay","_templateObject2","rangeCalendarCellBg","calendarCellBorderRadius","rangeCalendarDayEnd","rangeCalendarDayHoverInPeriod","rangeCalendarDayInHoveredPeriod"],"sources":["DateRangePicker.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useLayoutEffect, type AriaAttributes } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { css, cx } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { CalendarDayProps } from '../Calendar';\nimport { Calendar, CalendarDay } from '../Calendar';\nimport { Popup } from '../../internal/Popup';\nimport { DateInput } from '../DateInput';\nimport { isBetween, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '../../lib/date/comparison';\nimport type { DatePickerProps } from '../DatePicker';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getRootNode } from '../../lib/rootNode';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { Button } from '../Button';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { LocaleContext } from '../../lib/locale';\nimport { isIOS } from '../../lib/client';\n\nimport { getFontSize, styles } from './DateRangePicker.styles';\nimport { DateRangePickerSeparator } from './DateRangePickerSeparator';\nimport type { DateRangePickerContextProps } from './DateRangePickerContext';\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport type { DateRangePickerInputType } from './DateRangePickerInput';\nimport { DateRangePickerEnd, DateRangePickerStart } from './DateRangePickerInput';\nimport { getDateRangePickerTheme, getMobileDateRangePickerTheme } from './DateRangePickerTheme';\nimport { DateRangePickerLocaleHelper } from './locale';\nimport { validateDateRangePicker } from './helpers/validateDateRangePicker';\nimport { getStateForValue } from './helpers/getStateForValue';\n\nexport const DateRangePickerDataTids = {\n root: 'DateRangePicker__root',\n start: 'DateRangePicker__start',\n end: 'DateRangePicker__end',\n popup: 'DateRangePicker__popup',\n calendar: 'DateRangePicker__calendar',\n todayButton: 'DateRangePicker__todayButton',\n startOptionalButton: 'DateRangePicker__startOptionalButton',\n endOptionalButton: 'DateRangePicker__endOptionalButton',\n mobileStart: 'DateRangePicker__mobileStart',\n mobileEnd: 'DateRangePicker__mobileEnd',\n rangeStart: 'DateRangePicker__rangeStart',\n rangeEnd: 'DateRangePicker__rangeEnd',\n} as const;\n\nconst DayDateAttribute = 'data-date-range-picker-day';\n\nexport interface DateRangePickerProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<\n DatePickerProps,\n | 'size'\n | 'width'\n | 'renderDay'\n | 'menuPos'\n | 'menuAlign'\n | 'useMobileNativeDatePicker'\n | 'enableTodayLink'\n | 'onMonthChange'\n > {\n /**\n * Элементы DateRangePicker:\n * `<DateRangePicker.Start />`\n * `<DateRangePicker.Separator />`\n * `<DateRangePicker.End />`\n */\n children: React.ReactNode;\n}\n\nexport const DateRangePicker = Object.assign(\n {\n Start: DateRangePickerStart,\n End: DateRangePickerEnd,\n Separator: DateRangePickerSeparator,\n validate: validateDateRangePicker,\n },\n forwardRefAndName('DateRangePicker', (props: DateRangePickerProps, ref) => {\n const { isMobile } = useResponsiveLayout();\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const [startValue, setStartValue] = useState<string>();\n const [startOptional, setStartOptional] = useState(false);\n const [startDisabled, setStartDisabled] = useState(false);\n\n const [endValue, setEndValue] = useState<string>();\n const [endOptional, setEndOptional] = useState(false);\n const [endDisabled, setEndDisabled] = useState(false);\n\n const [minDate, setMinDate] = useState('');\n const [maxDate, setMaxDate] = useState('');\n\n const [hoveredDay, setHoveredDay] = useState<string | null>(null);\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\n const [focusInput, setFocusInput] = useState<DateRangePickerInputType | null>(null);\n\n const dateRangePickerRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<Calendar>(null);\n const startRef = useRef<DateInput>(null);\n const endRef = useRef<DateInput>(null);\n const mobileStartRef = useRef<DateInput>(null);\n const mobileEndRef = useRef<DateInput>(null);\n const mobileNativeStartRef = useRef<NativeDateInput>(null);\n const mobileNativeEndRef = useRef<NativeDateInput>(null);\n const isCalendarOpen = !startDisabled && !endDisabled && showCalendar;\n\n const updateDateRangeValues = (value = '') => {\n const currentValues = {\n currentStart: startValue,\n currentEnd: endValue,\n minDate,\n maxDate,\n };\n const updatedState = getStateForValue(focusInput, value, currentValues);\n\n setStartValue(updatedState.start);\n setEndValue(updatedState.end);\n\n if (updatedState.isOpen && updatedState.focus) {\n focus(updatedState.focus);\n }\n\n if (!updatedState.isOpen) {\n close();\n }\n };\n\n const open = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n setShowCalendar(true);\n };\n\n const close = () => {\n setShowCalendar(false);\n setHoveredDay(null);\n };\n\n const focus = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n };\n\n const setEmpty = (type: DateRangePickerInputType) => {\n switch (type) {\n case 'start':\n setStartValue('');\n focus('end');\n break;\n\n case 'end':\n setEndValue('');\n close();\n break;\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n open,\n close,\n scrollToMonth: calendarRef.current?.scrollToMonth,\n getRootNode: () => dateRangePickerRef.current,\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!focusInput) {\n return;\n }\n\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n const isStart = focusInput === 'start';\n let currentFieldRef;\n\n // Mobile Native Picker\n if (isMobile && props.useMobileNativeDatePicker) {\n currentFieldRef = isStart ? mobileNativeStartRef : mobileNativeEndRef;\n if (isIOS) {\n currentFieldRef.current?.focus();\n } else {\n // Android open native datepicker only via click\n currentFieldRef.current?.click();\n }\n return;\n }\n\n // Mobile\n if (isMobile) {\n currentFieldRef = isStart ? mobileStartRef : mobileEndRef;\n currentFieldRef.current?.focus();\n return;\n }\n\n // Desktop\n currentFieldRef = isStart ? startRef : endRef;\n currentFieldRef.current?.focus();\n });\n }, [focusInput]);\n\n const dateRangePickerContextProps: DateRangePickerContextProps = {\n startValue,\n startOptional,\n startDisabled,\n endValue,\n endOptional,\n endDisabled,\n minDate,\n maxDate,\n size: props.size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n };\n\n const renderCalendar = (theme: Theme, widthAuto = false) => (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: locale.months,\n dayCellChooseDateAriaLabel: locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: locale.selectMonthAriaLabel,\n selectYearAriaLabel: locale.selectYearAriaLabel,\n selectChosenAriaLabel: locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Calendar\n value={focusInput === 'start' ? startValue : endValue}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={(dayProps) => renderCalendarRange(dayProps, theme, props.renderDay)}\n onValueChange={(value) => updateDateRangeValues(value)}\n ref={calendarRef}\n onMonthChange={props.onMonthChange}\n className={cx({ [styles.calendarWidthAuto()]: widthAuto })}\n />\n </LocaleContext.Provider>\n );\n\n const renderMobileCalendar = (theme: Theme) => (\n <MobilePopup\n opened\n headerChildComponent={\n <div className={cx(styles.root(theme), styles.inputWrapperWidthFull())}>\n <DateInput\n withIcon\n value={startValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'start' })}\n disabled={startDisabled}\n onValueChange={setStartValue}\n onFocus={() => setFocusInput('start')}\n ref={mobileStartRef}\n data-tid={DateRangePickerDataTids.mobileStart}\n />\n <DateRangePicker.Separator />\n <DateInput\n withIcon\n value={endValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'end' })}\n disabled={endDisabled}\n onValueChange={setEndValue}\n onFocus={() => setFocusInput('end')}\n ref={mobileEndRef}\n data-tid={DateRangePickerDataTids.mobileEnd}\n />\n </div>\n }\n onCloseRequest={() => close()}\n footerChildComponent={renderButtons()}\n >\n <ThemeContext.Provider value={getMobileDateRangePickerTheme(theme)}>\n {renderCalendar(theme, true)}\n </ThemeContext.Provider>\n </MobilePopup>\n );\n\n const renderDesktopCalendar = (theme: Theme) => (\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(props.menuPos, props.menuAlign)}\n data-tid={DateRangePickerDataTids.root}\n anchorElement={getRootNode(dateRangePickerRef.current)}\n margin={parseInt(theme.datePickerMenuOffsetY)}\n >\n <div\n className={styles.calendarWrapper(theme)}\n onMouseDown={(e) => e.preventDefault()}\n onMouseMove={handleCalendarRangeMouseMove}\n >\n {renderCalendar(theme)}\n {renderButtons()}\n </div>\n </Popup>\n );\n\n const renderButtons = () => {\n const today = new InternalDate(locale)\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n const hasOptionalButtons = startOptional || endOptional;\n return (\n <div className={cx(styles.buttonWrap())}>\n {hasOptionalButtons && (\n <>\n {focusInput === 'start' && startOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.startOptionalButton}\n onClick={() => setEmpty('start')}\n >\n {locale.startDateEmpty}\n </Button>\n )}\n {focusInput === 'end' && endOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.endOptionalButton}\n onClick={() => setEmpty('end')}\n >\n {locale.endDateEmpty}\n </Button>\n )}\n </>\n )}\n\n {props.enableTodayLink && (\n <Button\n icon={<ArrowAUpIcon16Light />}\n aria-label={locale.todayAriaLabel}\n data-tid={DateRangePickerDataTids.todayButton}\n onClick={() => updateDateRangeValues(today)}\n >\n {!hasOptionalButtons && locale.today}\n </Button>\n )}\n </div>\n );\n };\n\n const renderMobileNativeDateInput = () => (\n <>\n <NativeDateInput\n value={startValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setStartValue}\n disabled={startDisabled}\n ref={mobileNativeStartRef}\n />\n <NativeDateInput\n value={endValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setEndValue}\n disabled={endDisabled}\n ref={mobileNativeEndRef}\n />\n </>\n );\n\n return (\n <ThemeContext.Consumer>\n {(theme) => (\n <ThemeContext.Provider value={getDateRangePickerTheme(theme)}>\n <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <CommonWrapper {...props}>\n <div\n className={cx(\n styles.root(theme),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\n role=\"group\"\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n data-tid={DateRangePickerDataTids.root}\n ref={dateRangePickerRef}\n style={{ width: props.width }}\n >\n {props.children}\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </div>\n </CommonWrapper>\n </DateRangePickerContext.Provider>\n </ThemeContext.Provider>\n )}\n </ThemeContext.Consumer>\n );\n\n // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover\n function handleCalendarRangeMouseMove(e: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (!startValue && !endValue) {\n return;\n }\n\n const hoveredElement = e.target as HTMLElement;\n if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {\n return;\n }\n\n const date = String(hoveredElement?.getAttribute(DayDateAttribute)) || null;\n setHoveredDay(date);\n }\n\n function renderCalendarRange(\n props: CalendarDayProps,\n t: Theme,\n renderDayFn: ((props: CalendarDayProps) => React.ReactElement) | undefined,\n ) {\n const day = props.date;\n\n const isDayFirst = startValue === day;\n const isDayLast = endValue === day;\n const isDayInPeriod = Boolean(startValue && endValue && isBetween(day, startValue, endValue));\n\n const hasHoveredDay = hoveredDay !== null;\n const isDayInHoveredPeriod =\n hasHoveredDay &&\n Boolean(\n (focusInput === 'start' && endValue && isBetween(day, hoveredDay, endValue)) ||\n (focusInput === 'end' && startValue && isBetween(day, startValue, hoveredDay)),\n );\n\n let hasLeftRoundings;\n let hasRightRoundings;\n\n if (hasHoveredDay) {\n const isDayBeforeFirstInPeriod = startValue ? isLess(hoveredDay, startValue) : endValue;\n const isDayAfterLastInPeriod = endValue ? isGreater(hoveredDay, endValue) : startValue;\n\n if (isDayFirst && (isGreaterOrEqual(hoveredDay, startValue) || focusInput === 'end')) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast && (isLessOrEqual(hoveredDay, endValue) || focusInput === 'start')) {\n hasRightRoundings = true;\n }\n\n const isDayHovered = hoveredDay === day;\n if (isDayHovered) {\n if (isDayBeforeFirstInPeriod) {\n hasLeftRoundings = true;\n }\n\n if (isDayAfterLastInPeriod) {\n hasRightRoundings = true;\n }\n }\n } else {\n if (isDayFirst) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast) {\n hasRightRoundings = true;\n }\n }\n\n const renderDayProps = {\n ...props,\n [DayDateAttribute]: props.date,\n };\n\n let dataTid = null;\n if (isDayFirst) {\n dataTid = DateRangePickerDataTids.rangeStart;\n } else if (isDayLast) {\n dataTid = DateRangePickerDataTids.rangeEnd;\n }\n\n return (\n <div\n className={cx(\n styles.rangeCalendarDay(),\n css`\n background: ${isDayInPeriod && t.rangeCalendarCellBg};\n border-top-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-bottom-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-top-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n border-bottom-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n `,\n {\n [styles.rangeCalendarDayEnd(t)]: isDayFirst || isDayLast,\n [styles.rangeCalendarDayHoverInPeriod(t)]: isDayInPeriod,\n [styles.rangeCalendarDayInHoveredPeriod(t)]: isDayInHoveredPeriod,\n },\n )}\n data-tid={dataTid}\n >\n {renderDayFn ? renderDayFn(renderDayProps) : <CalendarDay {...renderDayProps} />}\n </div>\n );\n }\n }),\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useImperativeHandle","useRef","useState","useLayoutEffect","MobilePopup","useLocaleForControl","css","cx","ThemeContext","CommonWrapper","Calendar","CalendarDay","Popup","DateInput","isBetween","isGreater","isGreaterOrEqual","isLess","isLessOrEqual","ZIndex","getRootNode","getMenuPositions","Button","useResponsiveLayout","InternalDate","InternalDateGetter","ArrowAUpIcon16Light","NativeDateInput","forwardRefAndName","LocaleContext","isIOS","getFontSize","styles","DateRangePickerSeparator","DateRangePickerContext","DateRangePickerEnd","DateRangePickerStart","getDateRangePickerTheme","getMobileDateRangePickerTheme","DateRangePickerLocaleHelper","validateDateRangePicker","getStateForValue","DateRangePickerDataTids","root","start","end","popup","calendar","todayButton","startOptionalButton","endOptionalButton","mobileStart","mobileEnd","rangeStart","rangeEnd","DayDateAttribute","DateRangePicker","Object","assign","Start","End","Separator","validate","props","ref","_useResponsiveLayout","isMobile","locale","_useState","startValue","setStartValue","_useState2","startOptional","setStartOptional","_useState3","startDisabled","setStartDisabled","_useState4","endValue","setEndValue","_useState5","endOptional","setEndOptional","_useState6","endDisabled","setEndDisabled","_useState7","minDate","setMinDate","_useState8","maxDate","setMaxDate","_useState9","hoveredDay","setHoveredDay","_useState10","showCalendar","setShowCalendar","_useState11","focusInput","setFocusInput","dateRangePickerRef","calendarRef","startRef","endRef","mobileStartRef","mobileEndRef","mobileNativeStartRef","mobileNativeEndRef","isCalendarOpen","updateDateRangeValues","value","currentValues","currentStart","currentEnd","updatedState","isOpen","focus","close","open","inputType","setEmpty","type","_calendarRef$current","scrollToMonth","current","setTimeout","_currentFieldRef$curr4","isStart","currentFieldRef","useMobileNativeDatePicker","_currentFieldRef$curr","_currentFieldRef$curr2","click","_currentFieldRef$curr3","dateRangePickerContextProps","size","renderCalendar","theme","widthAuto","_cx","createElement","Provider","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","renderDay","dayProps","renderCalendarRange","onValueChange","onMonthChange","className","calendarWidthAuto","renderMobileCalendar","_cx2","_cx3","opened","headerChildComponent","inputWrapperWidthFull","withIcon","width","inputVisuallyFocus","disabled","onFocus","onCloseRequest","footerChildComponent","renderButtons","getAnchorElement","menuAnchorElement","isValidElement","renderDesktopCalendar","hasShadow","priority","priorities","PopupMenu","positions","menuPos","menuAlign","anchorElement","margin","parseInt","datePickerMenuOffsetY","calendarWrapper","onMouseDown","e","preventDefault","onMouseMove","handleCalendarRangeMouseMove","today","setComponents","getTodayComponents","toString","withPad","withSeparator","hasOptionalButtons","buttonWrap","Fragment","onClick","startDateEmpty","endDateEmpty","enableTodayLink","icon","todayAriaLabel","renderMobileNativeDateInput","Consumer","inputWrapperWidth","_templateObject","_taggedTemplateLiteralLoose","role","style","children","hoveredElement","target","hasAttribute","date","String","getAttribute","t","renderDayFn","_extends2","_cx4","day","isDayFirst","isDayLast","isDayInPeriod","Boolean","hasHoveredDay","isDayInHoveredPeriod","hasLeftRoundings","hasRightRoundings","isDayBeforeFirstInPeriod","isDayAfterLastInPeriod","isDayHovered","renderDayProps","_extends","dataTid","rangeCalendarDay","_templateObject2","rangeCalendarCellBg","calendarCellBorderRadius","rangeCalendarDayEnd","rangeCalendarDayHoverInPeriod","rangeCalendarDayInHoveredPeriod"],"sources":["DateRangePicker.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useLayoutEffect, type AriaAttributes } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { css, cx } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { CalendarDayProps } from '../Calendar';\nimport { Calendar, CalendarDay } from '../Calendar';\nimport { Popup } from '../../internal/Popup';\nimport { DateInput } from '../DateInput';\nimport { isBetween, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '../../lib/date/comparison';\nimport type { DatePickerProps } from '../DatePicker';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getRootNode } from '../../lib/rootNode';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { Button } from '../Button';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { LocaleContext } from '../../lib/locale';\nimport { isIOS } from '../../lib/client';\n\nimport { getFontSize, styles } from './DateRangePicker.styles';\nimport { DateRangePickerSeparator } from './DateRangePickerSeparator';\nimport type { DateRangePickerContextProps } from './DateRangePickerContext';\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport type { DateRangePickerInputType } from './DateRangePickerInput';\nimport { DateRangePickerEnd, DateRangePickerStart } from './DateRangePickerInput';\nimport { getDateRangePickerTheme, getMobileDateRangePickerTheme } from './DateRangePickerTheme';\nimport { DateRangePickerLocaleHelper } from './locale';\nimport { validateDateRangePicker } from './helpers/validateDateRangePicker';\nimport { getStateForValue } from './helpers/getStateForValue';\n\nexport const DateRangePickerDataTids = {\n root: 'DateRangePicker__root',\n start: 'DateRangePicker__start',\n end: 'DateRangePicker__end',\n popup: 'DateRangePicker__popup',\n calendar: 'DateRangePicker__calendar',\n todayButton: 'DateRangePicker__todayButton',\n startOptionalButton: 'DateRangePicker__startOptionalButton',\n endOptionalButton: 'DateRangePicker__endOptionalButton',\n mobileStart: 'DateRangePicker__mobileStart',\n mobileEnd: 'DateRangePicker__mobileEnd',\n rangeStart: 'DateRangePicker__rangeStart',\n rangeEnd: 'DateRangePicker__rangeEnd',\n} as const;\n\nconst DayDateAttribute = 'data-date-range-picker-day';\n\nexport interface DateRangePickerProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<\n DatePickerProps,\n | 'size'\n | 'width'\n | 'renderDay'\n | 'menuPos'\n | 'menuAlign'\n | 'useMobileNativeDatePicker'\n | 'enableTodayLink'\n | 'onMonthChange'\n > {\n /**\n * Элемент относительно которого открывается календарь,\n * Если передать значение `focused` - меню будет открываться у зафокусированного элемента.\n * Если передать ссылку на DOM элемент или ref - меню откроется относительно переданного элемента.\n */\n menuAnchorElement?: 'focused' | Element | React.ReactNode | React.RefObject<any>;\n /**\n * Элементы DateRangePicker:\n * `<DateRangePicker.Start />`\n * `<DateRangePicker.Separator />`\n * `<DateRangePicker.End />`\n */\n children: React.ReactNode;\n}\n\nexport const DateRangePicker = Object.assign(\n {\n Start: DateRangePickerStart,\n End: DateRangePickerEnd,\n Separator: DateRangePickerSeparator,\n validate: validateDateRangePicker,\n },\n forwardRefAndName('DateRangePicker', (props: DateRangePickerProps, ref) => {\n const { isMobile } = useResponsiveLayout();\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const [startValue, setStartValue] = useState<string>();\n const [startOptional, setStartOptional] = useState(false);\n const [startDisabled, setStartDisabled] = useState(false);\n\n const [endValue, setEndValue] = useState<string>();\n const [endOptional, setEndOptional] = useState(false);\n const [endDisabled, setEndDisabled] = useState(false);\n\n const [minDate, setMinDate] = useState('');\n const [maxDate, setMaxDate] = useState('');\n\n const [hoveredDay, setHoveredDay] = useState<string | null>(null);\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\n const [focusInput, setFocusInput] = useState<DateRangePickerInputType | null>(null);\n\n const dateRangePickerRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<Calendar>(null);\n const startRef = useRef<DateInput>(null);\n const endRef = useRef<DateInput>(null);\n const mobileStartRef = useRef<DateInput>(null);\n const mobileEndRef = useRef<DateInput>(null);\n const mobileNativeStartRef = useRef<NativeDateInput>(null);\n const mobileNativeEndRef = useRef<NativeDateInput>(null);\n const isCalendarOpen = !startDisabled && !endDisabled && showCalendar;\n\n const updateDateRangeValues = (value = '') => {\n const currentValues = {\n currentStart: startValue,\n currentEnd: endValue,\n minDate,\n maxDate,\n };\n const updatedState = getStateForValue(focusInput, value, currentValues);\n\n setStartValue(updatedState.start);\n setEndValue(updatedState.end);\n\n if (updatedState.isOpen && updatedState.focus) {\n focus(updatedState.focus);\n }\n\n if (!updatedState.isOpen) {\n close();\n }\n };\n\n const open = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n setShowCalendar(true);\n };\n\n const close = () => {\n setShowCalendar(false);\n setHoveredDay(null);\n };\n\n const focus = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n };\n\n const setEmpty = (type: DateRangePickerInputType) => {\n switch (type) {\n case 'start':\n setStartValue('');\n focus('end');\n break;\n\n case 'end':\n setEndValue('');\n close();\n break;\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n open,\n close,\n scrollToMonth: calendarRef.current?.scrollToMonth,\n getRootNode: () => dateRangePickerRef.current,\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!focusInput) {\n return;\n }\n\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n const isStart = focusInput === 'start';\n let currentFieldRef;\n\n // Mobile Native Picker\n if (isMobile && props.useMobileNativeDatePicker) {\n currentFieldRef = isStart ? mobileNativeStartRef : mobileNativeEndRef;\n if (isIOS) {\n currentFieldRef.current?.focus();\n } else {\n // Android open native datepicker only via click\n currentFieldRef.current?.click();\n }\n return;\n }\n\n // Mobile\n if (isMobile) {\n currentFieldRef = isStart ? mobileStartRef : mobileEndRef;\n currentFieldRef.current?.focus();\n return;\n }\n\n // Desktop\n currentFieldRef = isStart ? startRef : endRef;\n currentFieldRef.current?.focus();\n });\n }, [focusInput]);\n\n const dateRangePickerContextProps: DateRangePickerContextProps = {\n startValue,\n startOptional,\n startDisabled,\n endValue,\n endOptional,\n endDisabled,\n minDate,\n maxDate,\n size: props.size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n };\n\n const renderCalendar = (theme: Theme, widthAuto = false) => (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: locale.months,\n dayCellChooseDateAriaLabel: locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: locale.selectMonthAriaLabel,\n selectYearAriaLabel: locale.selectYearAriaLabel,\n selectChosenAriaLabel: locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Calendar\n value={focusInput === 'start' ? startValue : endValue}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={(dayProps) => renderCalendarRange(dayProps, theme, props.renderDay)}\n onValueChange={(value) => updateDateRangeValues(value)}\n ref={calendarRef}\n onMonthChange={props.onMonthChange}\n className={cx({ [styles.calendarWidthAuto()]: widthAuto })}\n />\n </LocaleContext.Provider>\n );\n\n const renderMobileCalendar = (theme: Theme) => (\n <MobilePopup\n opened\n headerChildComponent={\n <div className={cx(styles.root(theme), styles.inputWrapperWidthFull())}>\n <DateInput\n withIcon\n value={startValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'start' })}\n disabled={startDisabled}\n onValueChange={setStartValue}\n onFocus={() => setFocusInput('start')}\n ref={mobileStartRef}\n data-tid={DateRangePickerDataTids.mobileStart}\n />\n <DateRangePicker.Separator />\n <DateInput\n withIcon\n value={endValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'end' })}\n disabled={endDisabled}\n onValueChange={setEndValue}\n onFocus={() => setFocusInput('end')}\n ref={mobileEndRef}\n data-tid={DateRangePickerDataTids.mobileEnd}\n />\n </div>\n }\n onCloseRequest={() => close()}\n footerChildComponent={renderButtons()}\n >\n <ThemeContext.Provider value={getMobileDateRangePickerTheme(theme)}>\n {renderCalendar(theme, true)}\n </ThemeContext.Provider>\n </MobilePopup>\n );\n\n const getAnchorElement = () => {\n const { menuAnchorElement } = props;\n if (menuAnchorElement === 'focused') {\n return getRootNode(focusInput === 'start' ? startRef.current : endRef.current);\n }\n\n if (React.isValidElement(menuAnchorElement)) {\n return menuAnchorElement;\n }\n\n if (menuAnchorElement && typeof menuAnchorElement === 'object' && 'current' in menuAnchorElement) {\n return getRootNode(menuAnchorElement.current);\n }\n\n return getRootNode(startRef.current) || getRootNode(endRef.current) || getRootNode(dateRangePickerRef.current);\n };\n\n const renderDesktopCalendar = (theme: Theme) => (\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(props.menuPos, props.menuAlign)}\n data-tid={DateRangePickerDataTids.root}\n anchorElement={getAnchorElement()}\n margin={parseInt(theme.datePickerMenuOffsetY)}\n >\n <div\n className={styles.calendarWrapper(theme)}\n onMouseDown={(e) => e.preventDefault()}\n onMouseMove={handleCalendarRangeMouseMove}\n >\n {renderCalendar(theme)}\n {renderButtons()}\n </div>\n </Popup>\n );\n\n const renderButtons = () => {\n const today = new InternalDate(locale)\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n const hasOptionalButtons = startOptional || endOptional;\n return (\n <div className={cx(styles.buttonWrap())}>\n {hasOptionalButtons && (\n <>\n {focusInput === 'start' && startOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.startOptionalButton}\n onClick={() => setEmpty('start')}\n >\n {locale.startDateEmpty}\n </Button>\n )}\n {focusInput === 'end' && endOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.endOptionalButton}\n onClick={() => setEmpty('end')}\n >\n {locale.endDateEmpty}\n </Button>\n )}\n </>\n )}\n\n {props.enableTodayLink && (\n <Button\n icon={<ArrowAUpIcon16Light />}\n aria-label={locale.todayAriaLabel}\n data-tid={DateRangePickerDataTids.todayButton}\n onClick={() => updateDateRangeValues(today)}\n >\n {!hasOptionalButtons && locale.today}\n </Button>\n )}\n </div>\n );\n };\n\n const renderMobileNativeDateInput = () => (\n <>\n <NativeDateInput\n value={startValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setStartValue}\n disabled={startDisabled}\n ref={mobileNativeStartRef}\n />\n <NativeDateInput\n value={endValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setEndValue}\n disabled={endDisabled}\n ref={mobileNativeEndRef}\n />\n </>\n );\n\n return (\n <ThemeContext.Consumer>\n {(theme) => (\n <ThemeContext.Provider value={getDateRangePickerTheme(theme)}>\n <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <CommonWrapper {...props}>\n <div\n className={cx(\n styles.root(theme),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\n role=\"group\"\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n data-tid={DateRangePickerDataTids.root}\n ref={dateRangePickerRef}\n style={{ width: props.width }}\n >\n {props.children}\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </div>\n </CommonWrapper>\n </DateRangePickerContext.Provider>\n </ThemeContext.Provider>\n )}\n </ThemeContext.Consumer>\n );\n\n // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover\n function handleCalendarRangeMouseMove(e: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (!startValue && !endValue) {\n return;\n }\n\n const hoveredElement = e.target as HTMLElement;\n if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {\n return;\n }\n\n const date = String(hoveredElement?.getAttribute(DayDateAttribute)) || null;\n setHoveredDay(date);\n }\n\n function renderCalendarRange(\n props: CalendarDayProps,\n t: Theme,\n renderDayFn: ((props: CalendarDayProps) => React.ReactElement) | undefined,\n ) {\n const day = props.date;\n\n const isDayFirst = startValue === day;\n const isDayLast = endValue === day;\n const isDayInPeriod = Boolean(startValue && endValue && isBetween(day, startValue, endValue));\n\n const hasHoveredDay = hoveredDay !== null;\n const isDayInHoveredPeriod =\n hasHoveredDay &&\n Boolean(\n (focusInput === 'start' && endValue && isBetween(day, hoveredDay, endValue)) ||\n (focusInput === 'end' && startValue && isBetween(day, startValue, hoveredDay)),\n );\n\n let hasLeftRoundings;\n let hasRightRoundings;\n\n if (hasHoveredDay) {\n const isDayBeforeFirstInPeriod = startValue ? isLess(hoveredDay, startValue) : endValue;\n const isDayAfterLastInPeriod = endValue ? isGreater(hoveredDay, endValue) : startValue;\n\n if (isDayFirst && (isGreaterOrEqual(hoveredDay, startValue) || focusInput === 'end')) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast && (isLessOrEqual(hoveredDay, endValue) || focusInput === 'start')) {\n hasRightRoundings = true;\n }\n\n const isDayHovered = hoveredDay === day;\n if (isDayHovered) {\n if (isDayBeforeFirstInPeriod) {\n hasLeftRoundings = true;\n }\n\n if (isDayAfterLastInPeriod) {\n hasRightRoundings = true;\n }\n }\n } else {\n if (isDayFirst) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast) {\n hasRightRoundings = true;\n }\n }\n\n const renderDayProps = {\n ...props,\n [DayDateAttribute]: props.date,\n };\n\n let dataTid = null;\n if (isDayFirst) {\n dataTid = DateRangePickerDataTids.rangeStart;\n } else if (isDayLast) {\n dataTid = DateRangePickerDataTids.rangeEnd;\n }\n\n return (\n <div\n className={cx(\n styles.rangeCalendarDay(),\n css`\n background: ${isDayInPeriod && t.rangeCalendarCellBg};\n border-top-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-bottom-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-top-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n border-bottom-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n `,\n {\n [styles.rangeCalendarDayEnd(t)]: isDayFirst || isDayLast,\n [styles.rangeCalendarDayHoverInPeriod(t)]: isDayInPeriod,\n [styles.rangeCalendarDayInHoveredPeriod(t)]: isDayInHoveredPeriod,\n },\n )}\n data-tid={dataTid}\n >\n {renderDayFn ? renderDayFn(renderDayProps) : <CalendarDay {...renderDayProps} />}\n </div>\n );\n }\n }),\n);\n"],"mappings":"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","ignoreList":[]}
@@ -18,6 +18,12 @@ export declare const DateRangePickerDataTids: {
18
18
  readonly rangeEnd: "DateRangePicker__rangeEnd";
19
19
  };
20
20
  export interface DateRangePickerProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>, Pick<DatePickerProps, 'size' | 'width' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'> {
21
+ /**
22
+ * Элемент относительно которого открывается календарь,
23
+ * Если передать значение `focused` - меню будет открываться у зафокусированного элемента.
24
+ * Если передать ссылку на DOM элемент или ref - меню откроется относительно переданного элемента.
25
+ */
26
+ menuAnchorElement?: 'focused' | Element | React.ReactNode | React.RefObject<any>;
21
27
  /**
22
28
  * Элементы DateRangePicker:
23
29
  * `<DateRangePicker.Start />`
@@ -106,7 +106,7 @@ var DateRangePickerInput = /*#__PURE__*/forwardRef(function (props, ref) {
106
106
  return /*#__PURE__*/(
107
107
  React.createElement(DateInput, _extends({}, commonProps, {
108
108
  value: props.value || '',
109
- "data-tid": DateRangePickerDataTids.start,
109
+ "data-tid": props['data-tid'] || DateRangePickerDataTids.start,
110
110
  "aria-label": props['aria-label'] || locale.startDateLabel,
111
111
  ref: startRef
112
112
  }))
@@ -115,7 +115,7 @@ var DateRangePickerInput = /*#__PURE__*/forwardRef(function (props, ref) {
115
115
  return /*#__PURE__*/(
116
116
  React.createElement(DateInput, _extends({}, commonProps, {
117
117
  value: props.value || '',
118
- "data-tid": DateRangePickerDataTids.end,
118
+ "data-tid": props['data-tid'] || DateRangePickerDataTids.end,
119
119
  "aria-label": props['aria-label'] || locale.endDateLabel,
120
120
  ref: endRef
121
121
  }))
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useContext","useEffect","useImperativeHandle","useLocaleForControl","DateInput","useResponsiveLayout","forwardRefAndName","isNonNullable","DateRangePickerContext","DateRangePickerDataTids","DateRangePickerLocaleHelper","DateRangePickerInput","props","ref","_useContext","minDate","maxDate","startValue","endValue","size","setStartValue","setStartOptional","setStartDisabled","setEndValue","setEndOptional","setEndDisabled","setMinDate","setMaxDate","setFocusInput","open","close","dateRangePickerRef","startRef","endRef","isStart","type","isEnd","locale","_useResponsiveLayout","isMobile","current","value","optional","disabled","onValueChange","commonProps","_extends","withIcon","onClick","onFocus","e","onBlur","_dateRangePickerRef$c","nextFocusedElement","relatedTarget","contains","createElement","start","startDateLabel","end","endDateLabel","DateRangePickerStart","DateRangePickerEnd"],"sources":["DateRangePickerInput.tsx"],"sourcesContent":["import type { Ref } from 'react';\nimport React, { forwardRef, useContext, useEffect, useImperativeHandle } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport type { DateInputProps } from '../DateInput';\nimport { DateInput } from '../DateInput';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport { DateRangePickerDataTids } from './DateRangePicker';\nimport { DateRangePickerLocaleHelper } from './locale';\n\nexport type DateRangePickerInputType = 'start' | 'end';\n\nexport interface DateRangePickerInputProps extends Omit<DateInputProps, 'value'> {\n type: DateRangePickerInputType;\n value?: string | null;\n optional?: boolean;\n}\n\ntype DateRangePickerInputWithoutType = Omit<DateRangePickerInputProps, 'type'>;\n\nconst DateRangePickerInput = forwardRef((props: DateRangePickerInputProps, ref: Ref<DateInput | null>) => {\n const {\n minDate,\n maxDate,\n startValue,\n endValue,\n size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n } = useContext(DateRangePickerContext);\n const isStart = props.type === 'start';\n const isEnd = props.type === 'end';\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const { isMobile } = useResponsiveLayout();\n\n useImperativeHandle(ref, () => (isStart ? startRef.current : endRef.current), []);\n\n useEffect(() => {\n if (isStart && startValue !== props.value) {\n setStartValue(props.value || '');\n } else if (isEnd && endValue !== props.value) {\n setEndValue(props.value || '');\n }\n }, [props.value]);\n\n useEffect(() => {\n if (isStart) {\n setStartOptional(props.optional || false);\n setStartDisabled(props.disabled || false);\n setMinDate(props.minDate || '');\n } else if (isEnd) {\n setEndOptional(props.optional || false);\n setEndDisabled(props.disabled || false);\n setMaxDate(props.maxDate || '');\n }\n }, [props.optional, props.disabled, props.minDate, props.maxDate]);\n\n useEffect(() => {\n if (isStart && startValue !== props.value && isNonNullable(startValue)) {\n props.onValueChange?.(startValue);\n }\n }, [startValue]);\n\n useEffect(() => {\n if (isEnd && endValue !== props.value && isNonNullable(endValue)) {\n props.onValueChange?.(endValue);\n }\n }, [endValue]);\n\n const commonProps: DateRangePickerInputProps = {\n withIcon: true,\n size,\n minDate,\n maxDate,\n ...props,\n onValueChange: (value) => {\n if (isStart) {\n setStartValue(value || '');\n } else if (isEnd) {\n setEndValue(value || '');\n }\n },\n onClick: () => {\n if (props.disabled) {\n return;\n }\n open(props.type);\n },\n onFocus: (e) => {\n open(props.type);\n props.onFocus?.(e);\n },\n onBlur: (e) => {\n props.onBlur?.(e);\n\n if (isMobile) {\n return;\n }\n const nextFocusedElement = e.relatedTarget;\n if (!dateRangePickerRef.current?.contains(nextFocusedElement)) {\n close();\n }\n setFocusInput(null);\n },\n };\n\n switch (props.type) {\n case 'start':\n return (\n <DateInput\n {...commonProps}\n value={props.value || ''}\n data-tid={DateRangePickerDataTids.start}\n aria-label={props['aria-label'] || locale.startDateLabel}\n ref={startRef}\n />\n );\n case 'end':\n return (\n <DateInput\n {...commonProps}\n value={props.value || ''}\n data-tid={DateRangePickerDataTids.end}\n aria-label={props['aria-label'] || locale.endDateLabel}\n ref={endRef}\n />\n );\n }\n});\n\nexport const DateRangePickerStart = forwardRefAndName(\n 'DateRangePickerStart',\n (props: DateRangePickerInputWithoutType, ref: Ref<DateInput>) => (\n <DateRangePickerInput type=\"start\" {...props} ref={ref} />\n ),\n);\n\nexport const DateRangePickerEnd = forwardRefAndName(\n 'DateRangePickerEnd',\n (props: DateRangePickerInputWithoutType, ref: Ref<DateInput>) => (\n <DateRangePickerInput type=\"end\" {...props} ref={ref} />\n ),\n);\n"],"mappings":";AACA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,mBAAmB,QAAQ,OAAO;;AAErF,SAASC,mBAAmB,QAAQ,sCAAsC;;AAE1E,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,mBAAmB,QAAQ,qBAAqB;AACzD,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C,SAASC,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,uBAAuB,QAAQ,mBAAmB;AAC3D,SAASC,2BAA2B,QAAQ,UAAU;;;;;;;;;;;;AAYtD,IAAMC,oBAAoB,gBAAGZ,UAAU,CAAC,UAACa,KAAgC,EAAEC,GAA0B,EAAK;EACxG,IAAAC,WAAA;;;;;;;;;;;;;;;;;;;;IAoBId,UAAU,CAACQ,sBAAsB,CAAC,CAnBpCO,OAAO,GAAAD,WAAA,CAAPC,OAAO,CACPC,OAAO,GAAAF,WAAA,CAAPE,OAAO,CACPC,UAAU,GAAAH,WAAA,CAAVG,UAAU,CACVC,QAAQ,GAAAJ,WAAA,CAARI,QAAQ,CACRC,IAAI,GAAAL,WAAA,CAAJK,IAAI,CACJC,aAAa,GAAAN,WAAA,CAAbM,aAAa,CACbC,gBAAgB,GAAAP,WAAA,CAAhBO,gBAAgB,CAChBC,gBAAgB,GAAAR,WAAA,CAAhBQ,gBAAgB,CAChBC,WAAW,GAAAT,WAAA,CAAXS,WAAW,CACXC,cAAc,GAAAV,WAAA,CAAdU,cAAc,CACdC,cAAc,GAAAX,WAAA,CAAdW,cAAc,CACdC,UAAU,GAAAZ,WAAA,CAAVY,UAAU,CACVC,UAAU,GAAAb,WAAA,CAAVa,UAAU,CACVC,aAAa,GAAAd,WAAA,CAAbc,aAAa,CACbC,IAAI,GAAAf,WAAA,CAAJe,IAAI,CACJC,KAAK,GAAAhB,WAAA,CAALgB,KAAK,CACLC,kBAAkB,GAAAjB,WAAA,CAAlBiB,kBAAkB,CAClBC,QAAQ,GAAAlB,WAAA,CAARkB,QAAQ,CACRC,MAAM,GAAAnB,WAAA,CAANmB,MAAM;EAER,IAAMC,OAAO,GAAGtB,KAAK,CAACuB,IAAI,KAAK,OAAO;EACtC,IAAMC,KAAK,GAAGxB,KAAK,CAACuB,IAAI,KAAK,KAAK;EAClC,IAAME,MAAM,GAAGlC,mBAAmB,CAAC,iBAAiB,EAAEO,2BAA2B,CAAC;;EAElF,IAAA4B,oBAAA,GAAqBjC,mBAAmB,CAAC,CAAC,CAAlCkC,QAAQ,GAAAD,oBAAA,CAARC,QAAQ;;EAEhBrC,mBAAmB,CAACW,GAAG,EAAE,oBAAOqB,OAAO,GAAGF,QAAQ,CAACQ,OAAO,GAAGP,MAAM,CAACO,OAAO,EAAC,EAAE,EAAE,CAAC;;EAEjFvC,SAAS,CAAC,YAAM;IACd,IAAIiC,OAAO,IAAIjB,UAAU,KAAKL,KAAK,CAAC6B,KAAK,EAAE;MACzCrB,aAAa,CAACR,KAAK,CAAC6B,KAAK,IAAI,EAAE,CAAC;IAClC,CAAC,MAAM,IAAIL,KAAK,IAAIlB,QAAQ,KAAKN,KAAK,CAAC6B,KAAK,EAAE;MAC5ClB,WAAW,CAACX,KAAK,CAAC6B,KAAK,IAAI,EAAE,CAAC;IAChC;EACF,CAAC,EAAE,CAAC7B,KAAK,CAAC6B,KAAK,CAAC,CAAC;;EAEjBxC,SAAS,CAAC,YAAM;IACd,IAAIiC,OAAO,EAAE;MACXb,gBAAgB,CAACT,KAAK,CAAC8B,QAAQ,IAAI,KAAK,CAAC;MACzCpB,gBAAgB,CAACV,KAAK,CAAC+B,QAAQ,IAAI,KAAK,CAAC;MACzCjB,UAAU,CAACd,KAAK,CAACG,OAAO,IAAI,EAAE,CAAC;IACjC,CAAC,MAAM,IAAIqB,KAAK,EAAE;MAChBZ,cAAc,CAACZ,KAAK,CAAC8B,QAAQ,IAAI,KAAK,CAAC;MACvCjB,cAAc,CAACb,KAAK,CAAC+B,QAAQ,IAAI,KAAK,CAAC;MACvChB,UAAU,CAACf,KAAK,CAACI,OAAO,IAAI,EAAE,CAAC;IACjC;EACF,CAAC,EAAE,CAACJ,KAAK,CAAC8B,QAAQ,EAAE9B,KAAK,CAAC+B,QAAQ,EAAE/B,KAAK,CAACG,OAAO,EAAEH,KAAK,CAACI,OAAO,CAAC,CAAC;;EAElEf,SAAS,CAAC,YAAM;IACd,IAAIiC,OAAO,IAAIjB,UAAU,KAAKL,KAAK,CAAC6B,KAAK,IAAIlC,aAAa,CAACU,UAAU,CAAC,EAAE;MACtEL,KAAK,CAACgC,aAAa,YAAnBhC,KAAK,CAACgC,aAAa,CAAG3B,UAAU,CAAC;IACnC;EACF,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;;EAEhBhB,SAAS,CAAC,YAAM;IACd,IAAImC,KAAK,IAAIlB,QAAQ,KAAKN,KAAK,CAAC6B,KAAK,IAAIlC,aAAa,CAACW,QAAQ,CAAC,EAAE;MAChEN,KAAK,CAACgC,aAAa,YAAnBhC,KAAK,CAACgC,aAAa,CAAG1B,QAAQ,CAAC;IACjC;EACF,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAEd,IAAM2B,WAAsC,GAAAC,QAAA;IAC1CC,QAAQ,EAAE,IAAI;IACd5B,IAAI,EAAJA,IAAI;IACJJ,OAAO,EAAPA,OAAO;IACPC,OAAO,EAAPA,OAAO;EACJJ,KAAK;IACRgC,aAAa,EAAE,SAAAA,cAACH,KAAK,EAAK;MACxB,IAAIP,OAAO,EAAE;QACXd,aAAa,CAACqB,KAAK,IAAI,EAAE,CAAC;MAC5B,CAAC,MAAM,IAAIL,KAAK,EAAE;QAChBb,WAAW,CAACkB,KAAK,IAAI,EAAE,CAAC;MAC1B;IACF,CAAC;IACDO,OAAO,EAAE,SAAAA,QAAA,EAAM;MACb,IAAIpC,KAAK,CAAC+B,QAAQ,EAAE;QAClB;MACF;MACAd,IAAI,CAACjB,KAAK,CAACuB,IAAI,CAAC;IAClB,CAAC;IACDc,OAAO,EAAE,SAAAA,QAACC,CAAC,EAAK;MACdrB,IAAI,CAACjB,KAAK,CAACuB,IAAI,CAAC;MAChBvB,KAAK,CAACqC,OAAO,YAAbrC,KAAK,CAACqC,OAAO,CAAGC,CAAC,CAAC;IACpB,CAAC;IACDC,MAAM,EAAE,SAAAA,OAACD,CAAC,EAAK,KAAAE,qBAAA;MACbxC,KAAK,CAACuC,MAAM,YAAZvC,KAAK,CAACuC,MAAM,CAAGD,CAAC,CAAC;;MAEjB,IAAIX,QAAQ,EAAE;QACZ;MACF;MACA,IAAMc,kBAAkB,GAAGH,CAAC,CAACI,aAAa;MAC1C,IAAI,GAAAF,qBAAA,GAACrB,kBAAkB,CAACS,OAAO,aAA1BY,qBAAA,CAA4BG,QAAQ,CAACF,kBAAkB,CAAC,GAAE;QAC7DvB,KAAK,CAAC,CAAC;MACT;MACAF,aAAa,CAAC,IAAI,CAAC;IACrB,CAAC,GACF;;;EAED,QAAQhB,KAAK,CAACuB,IAAI;IAChB,KAAK,OAAO;MACV;QACErC,KAAA,CAAA0D,aAAA,CAACpD,SAAS,EAAA0C,QAAA;QACJD,WAAW;UACfJ,KAAK,EAAE7B,KAAK,CAAC6B,KAAK,IAAI,EAAG;UACzB,YAAUhC,uBAAuB,CAACgD,KAAM;UACxC,cAAY7C,KAAK,CAAC,YAAY,CAAC,IAAIyB,MAAM,CAACqB,cAAe;UACzD7C,GAAG,EAAEmB,QAAS;QACf,CAAC;;IAEN,KAAK,KAAK;MACR;QACElC,KAAA,CAAA0D,aAAA,CAACpD,SAAS,EAAA0C,QAAA;QACJD,WAAW;UACfJ,KAAK,EAAE7B,KAAK,CAAC6B,KAAK,IAAI,EAAG;UACzB,YAAUhC,uBAAuB,CAACkD,GAAI;UACtC,cAAY/C,KAAK,CAAC,YAAY,CAAC,IAAIyB,MAAM,CAACuB,YAAa;UACvD/C,GAAG,EAAEoB,MAAO;QACb,CAAC;;EAER;AACF,CAAC,CAAC;;AAEF,OAAO,IAAM4B,oBAAoB,GAAGvD,iBAAiB;EACnD,sBAAsB;EACtB,UAACM,KAAsC,EAAEC,GAAmB;MAC1Df,KAAA,CAAA0D,aAAA,CAAC7C,oBAAoB,EAAAmC,QAAA,GAACX,IAAI,EAAC,OAAO,IAAKvB,KAAK,IAAEC,GAAG,EAAEA,GAAI,GAAE,CAAC;;AAE9D,CAAC;;AAED,OAAO,IAAMiD,kBAAkB,GAAGxD,iBAAiB;EACjD,oBAAoB;EACpB,UAACM,KAAsC,EAAEC,GAAmB;MAC1Df,KAAA,CAAA0D,aAAA,CAAC7C,oBAAoB,EAAAmC,QAAA,GAACX,IAAI,EAAC,KAAK,IAAKvB,KAAK,IAAEC,GAAG,EAAEA,GAAI,GAAE,CAAC;;AAE5D,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useContext","useEffect","useImperativeHandle","useLocaleForControl","DateInput","useResponsiveLayout","forwardRefAndName","isNonNullable","DateRangePickerContext","DateRangePickerDataTids","DateRangePickerLocaleHelper","DateRangePickerInput","props","ref","_useContext","minDate","maxDate","startValue","endValue","size","setStartValue","setStartOptional","setStartDisabled","setEndValue","setEndOptional","setEndDisabled","setMinDate","setMaxDate","setFocusInput","open","close","dateRangePickerRef","startRef","endRef","isStart","type","isEnd","locale","_useResponsiveLayout","isMobile","current","value","optional","disabled","onValueChange","commonProps","_extends","withIcon","onClick","onFocus","e","onBlur","_dateRangePickerRef$c","nextFocusedElement","relatedTarget","contains","createElement","start","startDateLabel","end","endDateLabel","DateRangePickerStart","DateRangePickerEnd"],"sources":["DateRangePickerInput.tsx"],"sourcesContent":["import type { Ref } from 'react';\nimport React, { forwardRef, useContext, useEffect, useImperativeHandle } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport type { DateInputProps } from '../DateInput';\nimport { DateInput } from '../DateInput';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport { DateRangePickerDataTids } from './DateRangePicker';\nimport { DateRangePickerLocaleHelper } from './locale';\n\nexport type DateRangePickerInputType = 'start' | 'end';\n\nexport interface DateRangePickerInputProps extends Omit<DateInputProps, 'value'> {\n type: DateRangePickerInputType;\n value?: string | null;\n optional?: boolean;\n}\n\ntype DateRangePickerInputWithoutType = Omit<DateRangePickerInputProps, 'type'>;\n\nconst DateRangePickerInput = forwardRef((props: DateRangePickerInputProps, ref: Ref<DateInput | null>) => {\n const {\n minDate,\n maxDate,\n startValue,\n endValue,\n size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n } = useContext(DateRangePickerContext);\n const isStart = props.type === 'start';\n const isEnd = props.type === 'end';\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const { isMobile } = useResponsiveLayout();\n\n useImperativeHandle(ref, () => (isStart ? startRef.current : endRef.current), []);\n\n useEffect(() => {\n if (isStart && startValue !== props.value) {\n setStartValue(props.value || '');\n } else if (isEnd && endValue !== props.value) {\n setEndValue(props.value || '');\n }\n }, [props.value]);\n\n useEffect(() => {\n if (isStart) {\n setStartOptional(props.optional || false);\n setStartDisabled(props.disabled || false);\n setMinDate(props.minDate || '');\n } else if (isEnd) {\n setEndOptional(props.optional || false);\n setEndDisabled(props.disabled || false);\n setMaxDate(props.maxDate || '');\n }\n }, [props.optional, props.disabled, props.minDate, props.maxDate]);\n\n useEffect(() => {\n if (isStart && startValue !== props.value && isNonNullable(startValue)) {\n props.onValueChange?.(startValue);\n }\n }, [startValue]);\n\n useEffect(() => {\n if (isEnd && endValue !== props.value && isNonNullable(endValue)) {\n props.onValueChange?.(endValue);\n }\n }, [endValue]);\n\n const commonProps: DateRangePickerInputProps = {\n withIcon: true,\n size,\n minDate,\n maxDate,\n ...props,\n onValueChange: (value) => {\n if (isStart) {\n setStartValue(value || '');\n } else if (isEnd) {\n setEndValue(value || '');\n }\n },\n onClick: () => {\n if (props.disabled) {\n return;\n }\n open(props.type);\n },\n onFocus: (e) => {\n open(props.type);\n props.onFocus?.(e);\n },\n onBlur: (e) => {\n props.onBlur?.(e);\n\n if (isMobile) {\n return;\n }\n const nextFocusedElement = e.relatedTarget;\n if (!dateRangePickerRef.current?.contains(nextFocusedElement)) {\n close();\n }\n setFocusInput(null);\n },\n };\n\n switch (props.type) {\n case 'start':\n return (\n <DateInput\n {...commonProps}\n value={props.value || ''}\n data-tid={props['data-tid'] || DateRangePickerDataTids.start}\n aria-label={props['aria-label'] || locale.startDateLabel}\n ref={startRef}\n />\n );\n case 'end':\n return (\n <DateInput\n {...commonProps}\n value={props.value || ''}\n data-tid={props['data-tid'] || DateRangePickerDataTids.end}\n aria-label={props['aria-label'] || locale.endDateLabel}\n ref={endRef}\n />\n );\n }\n});\n\nexport const DateRangePickerStart = forwardRefAndName(\n 'DateRangePickerStart',\n (props: DateRangePickerInputWithoutType, ref: Ref<DateInput>) => (\n <DateRangePickerInput type=\"start\" {...props} ref={ref} />\n ),\n);\n\nexport const DateRangePickerEnd = forwardRefAndName(\n 'DateRangePickerEnd',\n (props: DateRangePickerInputWithoutType, ref: Ref<DateInput>) => (\n <DateRangePickerInput type=\"end\" {...props} ref={ref} />\n ),\n);\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,8 @@ import { cx } from "../../../lib/theming/Emotion";
19
19
  import { rootNode } from "../../../lib/rootNode";
20
20
  import { createPropsGetter } from "../../../lib/createPropsGetter";
21
21
  import { withSize } from "../../../lib/size/SizeDecorator";
22
+ import { ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext/ReactUIFeatureFlagsContext";
23
+ import { getFullReactUIFlagsContext } from "../../../lib/featureFlagsContext/FeatureFlagsHelpers";
22
24
  import { getTextAreaHeight } from "../TextareaHelpers";
23
25
  import { styles } from "../Textarea.styles";
24
26
  import { TextareaCounter } from "../TextareaCounter";
@@ -176,7 +178,8 @@ export var Textarea = rootNode(_class = withSize(_class = (_Textarea = /*#__PURE
176
178
  className: cx(_this.getRootSizeClassName(), (_cx2 = {}, _cx2[styles.root()] = true, _cx2))
177
179
  }), placeholderPolyfill, /*#__PURE__*/
178
180
  React.createElement(ResizeDetector, {
179
- onResize: _this.reflowCounter
181
+ onResize: _this.reflowCounter,
182
+ alignBaseline: _this.featureFlags.textareaBaselineAlign
180
183
  }, /*#__PURE__*/
181
184
  React.createElement(Component, _extends({}, textareaProps, {
182
185
  className: textareaClassNames,
@@ -375,11 +378,14 @@ export var Textarea = rootNode(_class = withSize(_class = (_Textarea = /*#__PURE
375
378
  };
376
379
  _proto.render = function render() {
377
380
  var _this2 = this;
378
- return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
379
- _this2.theme = theme;
380
- return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
381
- rootNodeRef: _this2.setRootNode
382
- }, _this2.getProps()), _this2.renderMain);
381
+ return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
382
+ _this2.featureFlags = getFullReactUIFlagsContext(flags);
383
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
384
+ _this2.theme = theme;
385
+ return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
386
+ rootNodeRef: _this2.setRootNode
387
+ }, _this2.getProps()), _this2.renderMain);
388
+ });
383
389
  });
384
390
  } /**
385
391
  * @public
@@ -1 +1 @@
1
- {"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","withSize","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","withSize","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","flags","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport {\n ReactUIFeatureFlagsContext,\n type ReactUIFeatureFlags,\n} from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n private featureFlags!: ReactUIFeatureFlags;\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter} alignBaseline={this.featureFlags.textareaBaselineAlign}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -82,6 +82,7 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
82
82
  };
83
83
  private size;
84
84
  private reflowCounter;
85
+ private featureFlags;
85
86
  private theme;
86
87
  private selectAllId;
87
88
  private node;