@skbkontur/react-ui 6.1.2-bea94.0 → 6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/components/Button/Button.d.ts +5 -0
  3. package/components/Button/Button.js +7 -5
  4. package/components/Button/Button.js.map +1 -1
  5. package/components/Input/Input.d.ts +1 -1
  6. package/components/Input/Input.js.map +1 -1
  7. package/components/Input/Input.styles.js +1 -1
  8. package/components/Input/Input.styles.js.map +1 -1
  9. package/components/Input/InputLayout/InputLayoutAsideCounter.js +2 -1
  10. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
  11. package/components/Select/Select.d.ts +1 -0
  12. package/components/Select/Select.js +14 -7
  13. package/components/Select/Select.js.map +1 -1
  14. package/components/Select/selectTheme.js +2 -0
  15. package/components/Select/selectTheme.js.map +1 -1
  16. package/components/Textarea/TextareaCounter.js +2 -1
  17. package/components/Textarea/TextareaCounter.js.map +1 -1
  18. package/index.d.ts +0 -1
  19. package/index.js +0 -1
  20. package/index.js.map +1 -1
  21. package/internal/InputLikeText/InputLikeText.js +1 -1
  22. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  23. package/internal/themes/BasicTheme.d.ts +0 -34
  24. package/internal/themes/BasicTheme.js +0 -96
  25. package/internal/themes/BasicTheme.js.map +1 -1
  26. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  27. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  28. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  29. package/package.json +1 -5
  30. package/components/TimePicker/TimeClockIcon.d.ts +0 -3
  31. package/components/TimePicker/TimeClockIcon.js +0 -11
  32. package/components/TimePicker/TimeClockIcon.js.map +0 -1
  33. package/components/TimePicker/TimeFragmentsView.d.ts +0 -15
  34. package/components/TimePicker/TimeFragmentsView.js +0 -72
  35. package/components/TimePicker/TimeFragmentsView.js.map +0 -1
  36. package/components/TimePicker/TimeFragmentsView.styles.d.ts +0 -12
  37. package/components/TimePicker/TimeFragmentsView.styles.js +0 -43
  38. package/components/TimePicker/TimeFragmentsView.styles.js.map +0 -1
  39. package/components/TimePicker/TimeInput.d.ts +0 -22
  40. package/components/TimePicker/TimeInput.js +0 -103
  41. package/components/TimePicker/TimeInput.js.map +0 -1
  42. package/components/TimePicker/TimePicker.d.ts +0 -70
  43. package/components/TimePicker/TimePicker.js +0 -506
  44. package/components/TimePicker/TimePicker.js.map +0 -1
  45. package/components/TimePicker/TimePicker.styles.d.ts +0 -14
  46. package/components/TimePicker/TimePicker.styles.js +0 -45
  47. package/components/TimePicker/TimePicker.styles.js.map +0 -1
  48. package/components/TimePicker/TimePickerMobilePopup.d.ts +0 -38
  49. package/components/TimePicker/TimePickerMobilePopup.js +0 -21
  50. package/components/TimePicker/TimePickerMobilePopup.js.map +0 -1
  51. package/components/TimePicker/TimePickerPopup.d.ts +0 -20
  52. package/components/TimePicker/TimePickerPopup.js +0 -18
  53. package/components/TimePicker/TimePickerPopup.js.map +0 -1
  54. package/components/TimePicker/TimePickerSlots.d.ts +0 -17
  55. package/components/TimePicker/TimePickerSlots.js +0 -80
  56. package/components/TimePicker/TimePickerSlots.js.map +0 -1
  57. package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -22
  58. package/components/TimePicker/helpers/TimePicker.constants.js +0 -31
  59. package/components/TimePicker/helpers/TimePicker.constants.js.map +0 -1
  60. package/components/TimePicker/helpers/TimePicker.editing.d.ts +0 -23
  61. package/components/TimePicker/helpers/TimePicker.editing.js +0 -101
  62. package/components/TimePicker/helpers/TimePicker.editing.js.map +0 -1
  63. package/components/TimePicker/helpers/TimePicker.layout.d.ts +0 -6
  64. package/components/TimePicker/helpers/TimePicker.layout.js +0 -49
  65. package/components/TimePicker/helpers/TimePicker.layout.js.map +0 -1
  66. package/components/TimePicker/helpers/TimePicker.selection.d.ts +0 -5
  67. package/components/TimePicker/helpers/TimePicker.selection.js +0 -23
  68. package/components/TimePicker/helpers/TimePicker.selection.js.map +0 -1
  69. package/components/TimePicker/helpers/TimePicker.shared.d.ts +0 -47
  70. package/components/TimePicker/helpers/TimePicker.shared.js +0 -70
  71. package/components/TimePicker/helpers/TimePicker.shared.js.map +0 -1
  72. package/components/TimePicker/helpers/TimePicker.value.d.ts +0 -23
  73. package/components/TimePicker/helpers/TimePicker.value.js +0 -71
  74. package/components/TimePicker/helpers/TimePicker.value.js.map +0 -1
  75. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.d.ts +0 -4
  76. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.js +0 -24
  77. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.js.map +0 -1
  78. package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +0 -17
  79. package/components/TimePicker/hooks/useTimePickerDropdown.js +0 -62
  80. package/components/TimePicker/hooks/useTimePickerDropdown.js.map +0 -1
  81. package/components/TimePicker/hooks/useTimePickerSelection.d.ts +0 -18
  82. package/components/TimePicker/hooks/useTimePickerSelection.js +0 -66
  83. package/components/TimePicker/hooks/useTimePickerSelection.js.map +0 -1
  84. package/components/TimePicker/hooks/useTimePickerValue.d.ts +0 -18
  85. package/components/TimePicker/hooks/useTimePickerValue.js +0 -58
  86. package/components/TimePicker/hooks/useTimePickerValue.js.map +0 -1
  87. package/components/TimePicker/index.d.ts +0 -2
  88. package/components/TimePicker/index.js +0 -2
  89. package/components/TimePicker/index.js.map +0 -1
  90. package/internal/NativeTimeInput/NativeTimeInput.d.ts +0 -16
  91. package/internal/NativeTimeInput/NativeTimeInput.js +0 -25
  92. package/internal/NativeTimeInput/NativeTimeInput.js.map +0 -1
  93. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -3
  94. package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -15
  95. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
  96. package/internal/NativeTimeInput/NativeTimeInput.utils.d.ts +0 -7
  97. package/internal/NativeTimeInput/NativeTimeInput.utils.js +0 -28
  98. package/internal/NativeTimeInput/NativeTimeInput.utils.js.map +0 -1
  99. package/internal/NativeTimeInput/index.d.ts +0 -1
  100. package/internal/NativeTimeInput/index.js +0 -2
  101. package/internal/NativeTimeInput/index.js.map +0 -1
  102. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +0 -2
  103. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +0 -20
  104. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +0 -1
  105. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +0 -2
  106. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +0 -20
  107. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +0 -1
  108. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +0 -2
  109. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +0 -20
  110. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +0 -1
@@ -41,6 +41,8 @@ import { RenderLayer } from '../../internal/RenderLayer/index.js';
41
41
  import { ZIndex } from '../../internal/ZIndex/index.js';
42
42
  import { createPropsGetter } from '../../lib/createPropsGetter.js';
43
43
  import { isKeyArrowDown, isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape, isKeySpace, } from '../../lib/events/keyboard/identifiers.js';
44
+ import { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers.js';
45
+ import { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext.js';
44
46
  import { filterProps } from '../../lib/filterProps.js';
45
47
  import { getMenuPositions } from '../../lib/getMenuPositions.js';
46
48
  import { locale } from '../../lib/locale/decorators.js';
@@ -168,7 +170,7 @@ var Select = /** @class */ (function (_super) {
168
170
  }
169
171
  return React.cloneElement(item, { key: i });
170
172
  }
171
- return (React.createElement(MenuItem, { key: i, state: _this.areValuesEqual(iValue, value) ? 'selected' : null, onClick: _this.select.bind(_this, iValue), comment: comment, isMobile: isMobile, size: _this.size }, _this.getProps().renderItem(iValue, item)));
173
+ return (React.createElement(MenuItem, { key: i, scrollIntoView: _this.featureFlags.selectAutoScrollToSelectedItem && _this.areValuesEqual(iValue, value), state: _this.areValuesEqual(iValue, value) ? 'selected' : null, onClick: _this.select.bind(_this, iValue), comment: comment, isMobile: isMobile, size: _this.size }, _this.getProps().renderItem(iValue, item)));
172
174
  });
173
175
  };
174
176
  _this.popupGetParent = function () {
@@ -269,11 +271,14 @@ var Select = /** @class */ (function (_super) {
269
271
  var _this = this;
270
272
  this.linkStyles = getLinkStyles(this.emotion);
271
273
  this.styles = getStyles(this.emotion);
272
- return (React.createElement(ThemeContext.Consumer, null, function (theme) {
273
- _this.theme = ThemeFactory.create({
274
- menuOffsetY: theme.selectMenuOffsetY,
275
- }, theme);
276
- return React.createElement(ThemeContext.Provider, { value: _this.theme }, _this.renderMain());
274
+ return (React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
275
+ _this.featureFlags = getFullReactUIFlagsContext(flags);
276
+ return (React.createElement(ThemeContext.Consumer, null, function (theme) {
277
+ _this.theme = ThemeFactory.create({
278
+ menuOffsetY: theme.selectMenuOffsetY,
279
+ }, theme);
280
+ return React.createElement(ThemeContext.Provider, { value: _this.theme }, _this.renderMain());
281
+ }));
277
282
  }));
278
283
  };
279
284
  Select.prototype.getMenuRenderer = function () {
@@ -336,7 +341,9 @@ var Select = /** @class */ (function (_super) {
336
341
  };
337
342
  Select.prototype.renderDefaultButton = function (params) {
338
343
  var _a, _b, _c;
339
- var buttonProps = __assign(__assign({}, filterProps(this.props, PASS_BUTTON_PROPS)), { align: 'left', disabled: this.props.disabled, width: '100%', onClick: params.onClick, onKeyDown: params.onKeyDown, active: params.opened, size: params.size });
344
+ var buttonProps = __assign(__assign({}, filterProps(this.props, PASS_BUTTON_PROPS)), { align: 'left', disabled: this.props.disabled, width: '100%', onClick: params.onClick, onKeyDown: params.onKeyDown, active: params.opened, size: params.size,
345
+ // TODO: remove in React UI 7.x with use="default"
346
+ _noWarningForUseDefault: true });
340
347
  var use = this.getProps().use;
341
348
  var labelProps = {
342
349
  'data-tid': SelectDataTids.label,
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["Select.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport invariant from 'invariant';\nimport debounce from 'lodash.debounce';\nimport type { AriaAttributes, HTMLAttributes, ReactNode, ReactPortal } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { Menu } from '../../internal/Menu/index.js';\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { Popup, type PopupPositionsType } from '../../internal/Popup/index.js';\nimport { RenderLayer } from '../../internal/RenderLayer/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport {\n isKeyArrowDown,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n} from '../../lib/events/keyboard/identifiers.js';\nimport { filterProps } from '../../lib/filterProps.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { reactGetTextContent } from '../../lib/reactGetTextContent.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getRandomID, isFunction, isNonNullable, isReactUINode } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { ButtonProps, ButtonUse } from '../Button/index.js';\nimport { Button } from '../Button/index.js';\nimport { Input } from '../Input/index.js';\nimport { getStyles as getLinkStyles } from '../Link/Link.styles.js';\nimport type { MenuHeaderProps } from '../MenuHeader/index.js';\nimport { MenuItem } from '../MenuItem/index.js';\nimport type { MenuItemProps } from '../MenuItem/index.js';\nimport { MenuSeparator } from '../MenuSeparator/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { ArrowDownIcon } from './ArrowDownIcon.js';\nimport { Item } from './Item.js';\nimport type { SelectLocale } from './locale/index.js';\nimport { SelectLocaleHelper } from './locale/index.js';\nimport { getStyles } from './Select.styles.js';\nimport { getSelectTheme } from './selectTheme.js';\nimport { SelectDataTids } from './tids.js';\n\nexport * from './tids.js';\n\nexport interface ButtonParams extends Pick<\n AriaAttributes,\n 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-expanded'\n> {\n /** Блокирует компонент. */\n disabled?: boolean;\n\n /** Задаёт лейбл. */\n label: React.ReactNode;\n\n /** Событие нажатия на компонент. */\n onClick: () => void;\n\n /** Событие нажатия кнопки на клавиатуре. */\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Определяет, открыто ли выпадающее меню. */\n opened: boolean;\n\n /** Определяет, есть ли Placeholder. */\n isPlaceholder: boolean;\n\n /** Задает размер контрола. */\n size: SizeProp;\n}\n\nconst PASS_BUTTON_PROPS = {\n id: true,\n disabled: true,\n error: true,\n use: true,\n size: true,\n warning: true,\n corners: true,\n\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport const SelectIds = {\n menu: SelectDataTids.menu,\n} as const;\n\ntype SelectItem<TValue, TItem> =\n | [TValue, TItem, React.ReactNode?]\n | TItem\n | TValue\n | React.ReactElement\n | (() => React.ReactElement);\n\nexport interface SelectProps<TValue, TItem>\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** @ignore */\n _icon?: React.ReactNode;\n\n /** Отрисовывает кнопку. */\n _renderButton?: (params: ButtonParams) => React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Значение по умолчанию. */\n defaultValue?: TValue;\n\n /** Смещение списка относительно поля по горизонтали. При нуле смещения нет, при положительном значении — список сдвигается вправо, при отрицательном — влево.\n * @default 0\n */\n menuOffset?: number;\n\n /** По умолчанию список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */\n disablePortal?: boolean;\n\n /** Блокирует раскрывающийся список. */\n disabled?: boolean;\n\n /** Переводит компонент в состояние ошибки. */\n error?: boolean;\n\n /** Отфильтровывает элементы по заданному паттерну. */\n filterItem?: (value: TValue, item: TItem, pattern: string) => boolean;\n\n /** Набор значений. Поддерживаются любые перечисляемые типы, в том числе `Array`, `Map`, `Immutable.Map`.\n *\n * Элементы воспринимаются следующим образом:\n * - если элемент — это массив, то первый элемент является значением, второй — отображается в списке, а третий – комментарий;\n * - если элемент не является массивом, то он используется и для отображения, и для значения.\n *\n * Для вставки разделителя между значениями можно использовать `Select.SEP`.\n *\n * @example\n * Вставить невыделяемый элемент со своей разметкой можно так:\n * ```\n * <Select ...\n * items={[Select.staticElement(() => <div>My Element</div>)]}\n * />\n * ```\n * @example\n * Чтобы добавить стандартный отступ для статического элемента:\n * ```\n * <Select.Item>My Element</Select.Item>\n * ``` */\n items?: Array<SelectItem<TValue, TItem>>;\n\n /** Максимальная высота раскрывающегося списка. */\n maxMenuHeight?: number;\n\n /** Максимальная ширина кнопки. */\n maxWidth?: React.CSSProperties['maxWidth'];\n\n /** Список значений, определяющих расположение списка относительно кнопки. Если во всех позициях список выходит за пределы `viewport`, будет использована первая из этого списка.\n *\n * `\"top left\"`, `\"top center\"`, `\"top right\"`, `\"right top\"`, `\"right middle\"`, `\"right bottom\"`, `\"bottom left\"`, `\"bottom center\"`, `\"bottom right\"`, `\"left top\"`, `\"left middle\"`, `\"left bottom\"`.\n * @default ['bottom left', 'bottom right', 'top left', 'top right'] */\n positions?: PopupPositionsType[];\n\n /** Фиксирует расположение списка относительно кнопки. */\n menuPos?: 'top' | 'bottom' | 'middle';\n\n /** Выравнивание списка. */\n menuAlign?: 'left' | 'right';\n\n /** Ширина списка. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Событие изменения значения (`value`) в поле. */\n onValueChange?: (value: TValue) => void;\n\n /** Событие закрытия меню. */\n onClose?: () => void;\n\n /** Событие наведения мышкой (событие `onmouseenter`). Смотрите разницу с `onMouseOver` в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave). */\n onMouseEnter?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Событие ухода мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Событие наведения мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Событие нажатия кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Событие открытия меню. */\n onOpen?: () => void;\n\n /** Текст, который отображается если не введено никакое значение. */\n placeholder?: React.ReactNode;\n\n /** Отрисовывает элементы в списке. */\n renderItem?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Отрисовывает выбранный элемент. */\n renderValue?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Сравнивает `value` с элементом из `items`. */\n areValuesEqual?: (value1: TValue, value2: TValue) => boolean;\n\n /** Отображает строчку поиска в списке значений. */\n search?: boolean;\n\n /** Задаёт значение. */\n value?: TValue;\n\n /** Объект с переменными темы. */\n theme?: ThemeIn | Theme;\n\n /** Ширина раскрывающегося списка. */\n width?: number | string;\n\n /** Переводит компонент в состояние предупреждения. */\n warning?: boolean;\n\n /** Стиль кнопки. Примеры стилей смотрите [в документации компонента Button](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_button-button--docs). */\n use?: ButtonUse;\n\n /** Размер раскрывающегося списка.\n * @default small\n */\n size?: SizeProp;\n\n /** HTML-событие `onfocus`. */\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n /** HTML-событие `onblur`. */\n onBlur?: React.FocusEventHandler<HTMLElement>;\n\n /** Текст заголовка списка в мобильной версии. */\n mobileMenuHeaderText?: string;\n\n /** Отключает выравнивание текста элементов в списке относительно иконок в других элементах. */\n preventIconsOffset?: boolean;\n}\n\nexport interface SelectState<TValue> {\n opened: boolean;\n searchPattern: string;\n value: Nullable<TValue>;\n}\n\ninterface FocusableReactElement extends React.ReactElement<unknown> {\n focus: (event?: unknown) => void;\n}\n\ntype DefaultProps<TValue, TItem> = Required<\n Pick<SelectProps<TValue, TItem>, 'renderValue' | 'renderItem' | 'areValuesEqual' | 'filterItem' | 'use'>\n>;\n\n/**\n * Раскрывающийся список позволяет выбрать значение из заранее известного набора вариантов.\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('Select', SelectLocaleHelper)\n@withSize\n// Suggested solutions break current behavior\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class Select<TValue = {}, TItem = {}> extends React.Component<SelectProps<TValue, TItem>, SelectState<TValue>> {\n public static __KONTUR_REACT_UI__ = 'Select';\n public static displayName = 'Select';\n\n public static defaultProps: DefaultProps<unknown, ReactNode | ReactPortal> = {\n renderValue,\n renderItem,\n areValuesEqual,\n filterItem,\n use: 'default',\n };\n\n public static Item = Item;\n public static SEP = (): React.JSX.Element => <MenuSeparator />;\n\n public static staticElement = (\n element: React.ReactElement | (() => React.ReactElement),\n ): React.ReactElement | (() => React.ReactElement) => {\n invariant(\n React.isValidElement(element) || typeof element === 'function',\n 'Select.staticElement(element) expects element to be a valid react element.',\n );\n return element;\n };\n\n public state: SelectState<TValue> = {\n opened: false,\n value: this.props.defaultValue,\n searchPattern: '',\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private linkStyles!: ReturnType<typeof getLinkStyles>;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private isMobileLayout!: boolean;\n private readonly locale!: SelectLocale;\n private menu: Nullable<Menu>;\n private menuId = SelectIds.menu + getRandomID();\n private buttonElement: FocusableReactElement | null = null;\n private getProps = createPropsGetter(Select.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(_prevProps: SelectProps<TValue, TItem>, prevState: SelectState<TValue>) {\n if (!prevState.opened && this.state.opened) {\n this.globalObject.addEventListener?.('popstate', this.close);\n }\n if (prevState.opened && !this.state.opened) {\n this.globalObject.removeEventListener?.('popstate', this.close);\n }\n }\n\n public render(): React.JSX.Element {\n this.linkStyles = getLinkStyles(this.emotion);\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = ThemeFactory.create(\n {\n menuOffsetY: theme.selectMenuOffsetY,\n },\n theme,\n );\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /** Открывает раскрывающийся список.\n * @public\n */\n public open = (): void => {\n if (!this.state.opened) {\n this.setState({ opened: true });\n\n if (this.props.onOpen) {\n this.props.onOpen();\n }\n }\n };\n\n /** Закрывает раскрывающийся список.\n * @public\n */\n public close = (): void => {\n if (this.state.opened) {\n this.setState({ opened: false, searchPattern: '' });\n\n if (this.props.onClose) {\n this.props.onClose();\n }\n }\n };\n\n /** Программно устанавливает фокус на кнопку.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus = (): void => {\n if (this.buttonElement && this.buttonElement.focus) {\n this.buttonElement.focus();\n }\n };\n\n private getMenuRenderer() {\n if (this.props.disabled) {\n return null;\n }\n\n if (this.isMobileLayout) {\n return this.renderMobileMenu();\n }\n\n if (this.state.opened) {\n return this.renderMenu();\n }\n\n return null;\n }\n\n private renderMain() {\n const buttonParams = this.getDefaultButtonParams();\n const dataTid = this.getProps()['data-tid'] ?? SelectDataTids.root;\n const button = (\n <ThemeContext.Provider value={getSelectTheme(this.theme, this.props)}>\n {this.getButton(buttonParams)}\n </ThemeContext.Provider>\n );\n\n const isMobile = this.isMobileLayout;\n\n const style = {\n width: this.props.width,\n maxWidth: this.props.maxWidth || undefined,\n };\n\n const root = (\n <span\n data-tid={dataTid}\n className={this.cx({ [this.styles.root()]: true, [this.styles.rootMobile(this.theme)]: isMobile })}\n style={style}\n >\n {button}\n {this.getMenuRenderer()}\n </span>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.close}\n onFocusOutside={this.close}\n active={isMobile ? false : this.state.opened}\n >\n {root}\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getDefaultButtonParams = (): ButtonParams => {\n const { label, isPlaceholder } = this.renderLabel();\n\n const buttonParams: ButtonParams = {\n opened: this.state.opened,\n label,\n isPlaceholder,\n onClick: this.toggle,\n onKeyDown: this.handleKey,\n size: this.size,\n disabled: this.getProps().disabled,\n };\n\n return buttonParams;\n };\n\n private renderLabel() {\n const value = this.getValue();\n const item = this.getItemByValue(value);\n\n if (isNonNullable(value)) {\n return {\n label: this.getProps().renderValue(value, item),\n isPlaceholder: false,\n };\n }\n\n return {\n label: <span>{this.props.placeholder ?? this.locale?.placeholder}</span>,\n isPlaceholder: true,\n };\n }\n\n private getLeftIconClass(size: SizeProp | undefined) {\n if (this.getProps().use === 'link') {\n return this.styles.leftIconLink(this.theme);\n }\n\n switch (size) {\n case 'large':\n return this.styles.leftIconLarge(this.theme);\n case 'medium':\n return this.styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return this.styles.leftIconSmall(this.theme);\n }\n }\n\n private renderDefaultButton(params: ButtonParams) {\n const buttonProps: ButtonProps = {\n ...filterProps(this.props, PASS_BUTTON_PROPS),\n align: 'left' as React.CSSProperties['textAlign'],\n disabled: this.props.disabled,\n width: '100%',\n onClick: params.onClick,\n onKeyDown: params.onKeyDown,\n active: params.opened,\n size: params.size,\n };\n const use = this.getProps().use;\n\n const labelProps = {\n 'data-tid': SelectDataTids.label,\n className: this.cx({\n [this.styles.label()]: use !== 'link',\n [this.styles.placeholder(this.theme)]: params.isPlaceholder,\n [this.styles.customUsePlaceholder()]: params.isPlaceholder && use !== 'default',\n [this.styles.placeholderDisabled(this.theme)]: params.isPlaceholder && this.props.disabled,\n }),\n style: {\n paddingRight: this.getSelectIconGap(),\n },\n };\n\n const useIsCustom = use !== 'default';\n\n const icon = <ArrowDownIcon size={this.size} />;\n\n return (\n <Button {...buttonProps}>\n <div\n className={this.cx(this.styles.selectButtonContainer(), {\n [this.linkStyles.root(this.theme)]: use === 'link',\n })}\n >\n {this.props._icon && <div className={this.getLeftIconClass(this.size)}>{this.props._icon}</div>}\n <span {...labelProps}>{params.label}</span>\n\n <div\n className={this.cx(this.styles.arrowWrap(this.theme), {\n [this.styles.arrowDisabled(this.theme)]: this.props.disabled,\n [this.styles.customUseArrow()]: useIsCustom,\n })}\n >\n {icon}\n </div>\n </div>\n </Button>\n );\n }\n\n private getSelectIconGap(): number {\n const getArrowPadding = () => {\n switch (this.size) {\n case 'large':\n return this.theme.selectIconGapLarge;\n case 'medium':\n return this.theme.selectIconGapMedium;\n case 'small':\n default:\n return this.theme.selectIconGapSmall;\n }\n };\n const arrowLeftPadding = parseFloat(getArrowPadding()) || 0;\n\n return arrowLeftPadding;\n }\n\n private renderMenu(): React.ReactNode {\n const search = this.props.search ? this.getSearch() : null;\n\n const value = this.getValue();\n const { menuWidth, menuPos, menuAlign, positions, preventIconsOffset } = this.getProps();\n\n return (\n <Popup\n opened\n hasShadow\n id={this.menuId}\n data-tid={SelectDataTids.menu}\n positions={positions ?? getMenuPositions(menuPos, menuAlign)}\n anchorElement={this.popupGetParent()}\n priority={ZIndex.priorities.PopupMenu}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n popupOffset={this.props.menuOffset}\n >\n <Menu\n hasMargin={false}\n ref={this.refMenu}\n onItemClick={this.close}\n maxHeight={this.props.maxMenuHeight}\n align={menuAlign}\n preventIconsOffset={preventIconsOffset}\n >\n {search}\n {this.getMenuItems(value)}\n </Menu>\n </Popup>\n );\n }\n\n private getSearch = () => {\n return (\n <div className={this.styles.search()} onKeyDown={this.handleKey}>\n <Input ref={this.debouncedFocusInput} onValueChange={this.handleSearch} width=\"100%\" />\n </div>\n );\n };\n\n private renderMobileMenu(): React.ReactNode {\n const search = this.props.search ? this.getMobileSearch() : null;\n const value = this.getValue();\n\n const themeGTE6_1 = isThemeGTE(this.theme, '6.1');\n const themeDependentProps = themeGTE6_1\n ? {\n footerChildComponent: search,\n size: this.size,\n }\n : {\n headerChildComponent: search,\n };\n\n return (\n <MobilePopup\n {...themeDependentProps}\n caption={this.props.mobileMenuHeaderText}\n onCloseRequest={this.close}\n opened={this.state.opened}\n >\n <Menu onItemClick={this.close} disableScrollContainer maxHeight={'auto'}>\n {this.getMenuItems(value)}\n </Menu>\n </MobilePopup>\n );\n }\n\n private getMobileSearch = () => {\n return (\n <Input\n autoFocus\n value={this.state.searchPattern}\n ref={this.debouncedFocusInput}\n onValueChange={this.handleSearch}\n width=\"100%\"\n />\n );\n };\n\n private getMenuItems = (value: Nullable<TValue>) => {\n const isMobile = this.isMobileLayout;\n const size = this.size;\n\n return this.mapItems(\n (iValue: TValue, item: TItem | (() => React.ReactNode), i: number, comment: Nullable<React.ReactNode>) => {\n if (isFunction(item)) {\n const element = item();\n\n if (React.isValidElement(element)) {\n return React.cloneElement(element, { key: i, isMobile, size } as MenuItemProps);\n }\n\n return null;\n }\n\n if (React.isValidElement(item)) {\n if (isReactUINode('MenuItem', item)) {\n return React.cloneElement(item, { key: i, isMobile, size } as MenuItemProps);\n }\n if (isReactUINode('MenuHeader', item)) {\n return React.cloneElement(item, { size } as MenuHeaderProps);\n }\n return React.cloneElement(item, { key: i });\n }\n\n return (\n <MenuItem\n key={i}\n state={this.areValuesEqual(iValue, value) ? 'selected' : null}\n onClick={this.select.bind(this, iValue)}\n comment={comment}\n isMobile={isMobile}\n size={this.size}\n >\n {this.getProps().renderItem(iValue, item)}\n </MenuItem>\n );\n },\n );\n };\n\n private popupGetParent = () => {\n return getRootNode(this);\n };\n\n // fix cases when an Input is rendered in portal\n // https://github.com/skbkontur/retail-ui/issues/1995\n private focusInput = (input: Input) => input?.focus();\n private debouncedFocusInput = debounce(this.focusInput);\n\n private refMenu = (menu: Menu) => {\n this.menu = menu;\n };\n\n private toggle = () => {\n if (this.state.opened) {\n this.close();\n } else {\n this.open();\n }\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLElement>) => {\n if (!this.state.opened) {\n if (isKeySpace(e) || isKeyArrowVertical(e)) {\n e.preventDefault();\n this.open();\n }\n } else {\n switch (true) {\n case isKeyEscape(e):\n this.focus();\n this.close();\n break;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n break;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n break;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n break;\n }\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleSearch = (value: string) => {\n this.setState({ searchPattern: value });\n this.menu?.highlightItem(0);\n };\n\n private select(value: TValue) {\n this.focus();\n this.setState({ opened: false, value });\n\n if (!this.areValuesEqual(this.getValue(), value)) {\n this.props.onValueChange?.(value);\n }\n }\n\n private getValue() {\n if (this.props.value !== undefined) {\n return this.props.value;\n }\n return this.state.value;\n }\n\n private mapItems(fn: (value: TValue, item: TItem, index: number, comment?: string) => React.ReactNode) {\n const { items } = this.props;\n if (!items) {\n return [];\n }\n const pattern = this.state.searchPattern && this.state.searchPattern.toLowerCase();\n\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, item, comment] = normalizeEntry(entry as TItem);\n\n if (!pattern || this.getProps().filterItem(value, item, pattern)) {\n result.push(fn(value, item, index, comment));\n ++index;\n }\n }\n\n return result;\n }\n\n private getItemByValue(value?: Nullable<TValue>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const items = this.props.items || [];\n\n for (const entry of items) {\n const [itemValue, item] = normalizeEntry(entry);\n\n if (this.areValuesEqual(itemValue, value)) {\n return item;\n }\n }\n return null;\n }\n\n private areValuesEqual(value1: Nullable<TValue>, value2: Nullable<TValue>) {\n return isNonNullable(value1) && isNonNullable(value2) && this.getProps().areValuesEqual(value1, value2);\n }\n\n private buttonRef = (element: FocusableReactElement | null) => {\n this.buttonElement = element;\n };\n\n private getButton = (buttonParams: ButtonParams) => {\n const button = this.props._renderButton\n ? this.props._renderButton(buttonParams)\n : this.renderDefaultButton(buttonParams);\n\n const buttonElement = React.Children.only(button);\n\n return React.isValidElement(buttonElement)\n ? React.cloneElement(buttonElement as React.ReactElement<any>, {\n ref: this.buttonRef,\n onFocus: this.props.onFocus,\n onBlur: this.props.onBlur,\n size: this.size,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-expanded': this.state.opened ? 'true' : 'false',\n 'aria-controls': this.menuId,\n 'aria-label': (buttonElement as React.ReactElement<any>).props['aria-label'] ?? this.props['aria-label'],\n })\n : buttonElement;\n };\n}\n\nfunction renderValue<TValue, TItem>(value: TValue, item: Nullable<TItem>) {\n return item;\n}\n\nfunction renderItem<TValue, TItem>(value: TValue, item?: TItem) {\n return item;\n}\n\nfunction areValuesEqual<TValue>(value1: TValue, value2: TValue) {\n return value1 === value2;\n}\n\nfunction normalizeEntry(entry: unknown) {\n if (Array.isArray(entry)) {\n return entry;\n }\n\n return [entry, entry, undefined];\n}\n\nconst getTextFromItem = (item: string | React.ReactNode | (() => React.ReactNode) | number): string => {\n if (typeof item === 'string') {\n return item;\n }\n\n if (isFunction(item)) {\n return getTextFromItem(item());\n }\n\n if (React.isValidElement(item)) {\n return reactGetTextContent(item);\n }\n\n if (typeof item === 'number') {\n return item.toString(10);\n }\n\n return '';\n};\n\nfunction filterItem<TValue>(value: TValue, item: any, pattern: string) {\n if (item === Select.SEP) {\n return false;\n }\n\n const itemText = getTextFromItem(item);\n\n if (!itemText) {\n return false;\n }\n\n return itemText.toLowerCase().indexOf(pattern) !== -1;\n}\n"]}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["Select.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport invariant from 'invariant';\nimport debounce from 'lodash.debounce';\nimport type { AriaAttributes, HTMLAttributes, ReactNode, ReactPortal } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { Menu } from '../../internal/Menu/index.js';\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { Popup, type PopupPositionsType } from '../../internal/Popup/index.js';\nimport { RenderLayer } from '../../internal/RenderLayer/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport {\n isKeyArrowDown,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n} from '../../lib/events/keyboard/identifiers.js';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers.js';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext.js';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext.js';\nimport { filterProps } from '../../lib/filterProps.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { reactGetTextContent } from '../../lib/reactGetTextContent.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getRandomID, isFunction, isNonNullable, isReactUINode } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { ButtonProps, ButtonUse } from '../Button/index.js';\nimport { Button } from '../Button/index.js';\nimport { Input } from '../Input/index.js';\nimport { getStyles as getLinkStyles } from '../Link/Link.styles.js';\nimport type { MenuHeaderProps } from '../MenuHeader/index.js';\nimport { MenuItem } from '../MenuItem/index.js';\nimport type { MenuItemProps } from '../MenuItem/index.js';\nimport { MenuSeparator } from '../MenuSeparator/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { ArrowDownIcon } from './ArrowDownIcon.js';\nimport { Item } from './Item.js';\nimport type { SelectLocale } from './locale/index.js';\nimport { SelectLocaleHelper } from './locale/index.js';\nimport { getStyles } from './Select.styles.js';\nimport { getSelectTheme } from './selectTheme.js';\nimport { SelectDataTids } from './tids.js';\n\nexport * from './tids.js';\n\nexport interface ButtonParams extends Pick<\n AriaAttributes,\n 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-expanded'\n> {\n /** Блокирует компонент. */\n disabled?: boolean;\n\n /** Задаёт лейбл. */\n label: React.ReactNode;\n\n /** Событие нажатия на компонент. */\n onClick: () => void;\n\n /** Событие нажатия кнопки на клавиатуре. */\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Определяет, открыто ли выпадающее меню. */\n opened: boolean;\n\n /** Определяет, есть ли Placeholder. */\n isPlaceholder: boolean;\n\n /** Задает размер контрола. */\n size: SizeProp;\n}\n\nconst PASS_BUTTON_PROPS = {\n id: true,\n disabled: true,\n error: true,\n use: true,\n size: true,\n warning: true,\n corners: true,\n\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport const SelectIds = {\n menu: SelectDataTids.menu,\n} as const;\n\ntype SelectItem<TValue, TItem> =\n | [TValue, TItem, React.ReactNode?]\n | TItem\n | TValue\n | React.ReactElement\n | (() => React.ReactElement);\n\nexport interface SelectProps<TValue, TItem>\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** @ignore */\n _icon?: React.ReactNode;\n\n /** Отрисовывает кнопку. */\n _renderButton?: (params: ButtonParams) => React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Значение по умолчанию. */\n defaultValue?: TValue;\n\n /** Смещение списка относительно поля по горизонтали. При нуле смещения нет, при положительном значении — список сдвигается вправо, при отрицательном — влево.\n * @default 0\n */\n menuOffset?: number;\n\n /** По умолчанию список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */\n disablePortal?: boolean;\n\n /** Блокирует раскрывающийся список. */\n disabled?: boolean;\n\n /** Переводит компонент в состояние ошибки. */\n error?: boolean;\n\n /** Отфильтровывает элементы по заданному паттерну. */\n filterItem?: (value: TValue, item: TItem, pattern: string) => boolean;\n\n /** Набор значений. Поддерживаются любые перечисляемые типы, в том числе `Array`, `Map`, `Immutable.Map`.\n *\n * Элементы воспринимаются следующим образом:\n * - если элемент — это массив, то первый элемент является значением, второй — отображается в списке, а третий – комментарий;\n * - если элемент не является массивом, то он используется и для отображения, и для значения.\n *\n * Для вставки разделителя между значениями можно использовать `Select.SEP`.\n *\n * @example\n * Вставить невыделяемый элемент со своей разметкой можно так:\n * ```\n * <Select ...\n * items={[Select.staticElement(() => <div>My Element</div>)]}\n * />\n * ```\n * @example\n * Чтобы добавить стандартный отступ для статического элемента:\n * ```\n * <Select.Item>My Element</Select.Item>\n * ``` */\n items?: Array<SelectItem<TValue, TItem>>;\n\n /** Максимальная высота раскрывающегося списка. */\n maxMenuHeight?: number;\n\n /** Максимальная ширина кнопки. */\n maxWidth?: React.CSSProperties['maxWidth'];\n\n /** Список значений, определяющих расположение списка относительно кнопки. Если во всех позициях список выходит за пределы `viewport`, будет использована первая из этого списка.\n *\n * `\"top left\"`, `\"top center\"`, `\"top right\"`, `\"right top\"`, `\"right middle\"`, `\"right bottom\"`, `\"bottom left\"`, `\"bottom center\"`, `\"bottom right\"`, `\"left top\"`, `\"left middle\"`, `\"left bottom\"`.\n * @default ['bottom left', 'bottom right', 'top left', 'top right'] */\n positions?: PopupPositionsType[];\n\n /** Фиксирует расположение списка относительно кнопки. */\n menuPos?: 'top' | 'bottom' | 'middle';\n\n /** Выравнивание списка. */\n menuAlign?: 'left' | 'right';\n\n /** Ширина списка. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Событие изменения значения (`value`) в поле. */\n onValueChange?: (value: TValue) => void;\n\n /** Событие закрытия меню. */\n onClose?: () => void;\n\n /** Событие наведения мышкой (событие `onmouseenter`). Смотрите разницу с `onMouseOver` в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave). */\n onMouseEnter?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Событие ухода мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Событие наведения мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Событие нажатия кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Событие открытия меню. */\n onOpen?: () => void;\n\n /** Текст, который отображается если не введено никакое значение. */\n placeholder?: React.ReactNode;\n\n /** Отрисовывает элементы в списке. */\n renderItem?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Отрисовывает выбранный элемент. */\n renderValue?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Сравнивает `value` с элементом из `items`. */\n areValuesEqual?: (value1: TValue, value2: TValue) => boolean;\n\n /** Отображает строчку поиска в списке значений. */\n search?: boolean;\n\n /** Задаёт значение. */\n value?: TValue;\n\n /** Объект с переменными темы. */\n theme?: ThemeIn | Theme;\n\n /** Ширина раскрывающегося списка. */\n width?: number | string;\n\n /** Переводит компонент в состояние предупреждения. */\n warning?: boolean;\n\n /** Стиль кнопки. Примеры стилей смотрите [в документации компонента Button](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_button-button--docs). */\n use?: ButtonUse;\n\n /** Размер раскрывающегося списка.\n * @default small\n */\n size?: SizeProp;\n\n /** HTML-событие `onfocus`. */\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n /** HTML-событие `onblur`. */\n onBlur?: React.FocusEventHandler<HTMLElement>;\n\n /** Текст заголовка списка в мобильной версии. */\n mobileMenuHeaderText?: string;\n\n /** Отключает выравнивание текста элементов в списке относительно иконок в других элементах. */\n preventIconsOffset?: boolean;\n}\n\nexport interface SelectState<TValue> {\n opened: boolean;\n searchPattern: string;\n value: Nullable<TValue>;\n}\n\ninterface FocusableReactElement extends React.ReactElement<unknown> {\n focus: (event?: unknown) => void;\n}\n\ntype DefaultProps<TValue, TItem> = Required<\n Pick<SelectProps<TValue, TItem>, 'renderValue' | 'renderItem' | 'areValuesEqual' | 'filterItem' | 'use'>\n>;\n\n/**\n * Раскрывающийся список позволяет выбрать значение из заранее известного набора вариантов.\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('Select', SelectLocaleHelper)\n@withSize\n// Suggested solutions break current behavior\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class Select<TValue = {}, TItem = {}> extends React.Component<SelectProps<TValue, TItem>, SelectState<TValue>> {\n public static __KONTUR_REACT_UI__ = 'Select';\n public static displayName = 'Select';\n\n public static defaultProps: DefaultProps<unknown, ReactNode | ReactPortal> = {\n renderValue,\n renderItem,\n areValuesEqual,\n filterItem,\n use: 'default',\n };\n\n public static Item = Item;\n public static SEP = (): React.JSX.Element => <MenuSeparator />;\n\n public static staticElement = (\n element: React.ReactElement | (() => React.ReactElement),\n ): React.ReactElement | (() => React.ReactElement) => {\n invariant(\n React.isValidElement(element) || typeof element === 'function',\n 'Select.staticElement(element) expects element to be a valid react element.',\n );\n return element;\n };\n\n public state: SelectState<TValue> = {\n opened: false,\n value: this.props.defaultValue,\n searchPattern: '',\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private linkStyles!: ReturnType<typeof getLinkStyles>;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private isMobileLayout!: boolean;\n private readonly locale!: SelectLocale;\n private menu: Nullable<Menu>;\n private menuId = SelectIds.menu + getRandomID();\n private buttonElement: FocusableReactElement | null = null;\n private getProps = createPropsGetter(Select.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n public componentDidUpdate(_prevProps: SelectProps<TValue, TItem>, prevState: SelectState<TValue>) {\n if (!prevState.opened && this.state.opened) {\n this.globalObject.addEventListener?.('popstate', this.close);\n }\n if (prevState.opened && !this.state.opened) {\n this.globalObject.removeEventListener?.('popstate', this.close);\n }\n }\n\n public render(): React.JSX.Element {\n this.linkStyles = getLinkStyles(this.emotion);\n this.styles = getStyles(this.emotion);\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = ThemeFactory.create(\n {\n menuOffsetY: theme.selectMenuOffsetY,\n },\n theme,\n );\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /** Открывает раскрывающийся список.\n * @public\n */\n public open = (): void => {\n if (!this.state.opened) {\n this.setState({ opened: true });\n\n if (this.props.onOpen) {\n this.props.onOpen();\n }\n }\n };\n\n /** Закрывает раскрывающийся список.\n * @public\n */\n public close = (): void => {\n if (this.state.opened) {\n this.setState({ opened: false, searchPattern: '' });\n\n if (this.props.onClose) {\n this.props.onClose();\n }\n }\n };\n\n /** Программно устанавливает фокус на кнопку.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus = (): void => {\n if (this.buttonElement && this.buttonElement.focus) {\n this.buttonElement.focus();\n }\n };\n\n private getMenuRenderer() {\n if (this.props.disabled) {\n return null;\n }\n\n if (this.isMobileLayout) {\n return this.renderMobileMenu();\n }\n\n if (this.state.opened) {\n return this.renderMenu();\n }\n\n return null;\n }\n\n private renderMain() {\n const buttonParams = this.getDefaultButtonParams();\n const dataTid = this.getProps()['data-tid'] ?? SelectDataTids.root;\n const button = (\n <ThemeContext.Provider value={getSelectTheme(this.theme, this.props)}>\n {this.getButton(buttonParams)}\n </ThemeContext.Provider>\n );\n\n const isMobile = this.isMobileLayout;\n\n const style = {\n width: this.props.width,\n maxWidth: this.props.maxWidth || undefined,\n };\n\n const root = (\n <span\n data-tid={dataTid}\n className={this.cx({ [this.styles.root()]: true, [this.styles.rootMobile(this.theme)]: isMobile })}\n style={style}\n >\n {button}\n {this.getMenuRenderer()}\n </span>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.close}\n onFocusOutside={this.close}\n active={isMobile ? false : this.state.opened}\n >\n {root}\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getDefaultButtonParams = (): ButtonParams => {\n const { label, isPlaceholder } = this.renderLabel();\n\n const buttonParams: ButtonParams = {\n opened: this.state.opened,\n label,\n isPlaceholder,\n onClick: this.toggle,\n onKeyDown: this.handleKey,\n size: this.size,\n disabled: this.getProps().disabled,\n };\n\n return buttonParams;\n };\n\n private renderLabel() {\n const value = this.getValue();\n const item = this.getItemByValue(value);\n\n if (isNonNullable(value)) {\n return {\n label: this.getProps().renderValue(value, item),\n isPlaceholder: false,\n };\n }\n\n return {\n label: <span>{this.props.placeholder ?? this.locale?.placeholder}</span>,\n isPlaceholder: true,\n };\n }\n\n private getLeftIconClass(size: SizeProp | undefined) {\n if (this.getProps().use === 'link') {\n return this.styles.leftIconLink(this.theme);\n }\n\n switch (size) {\n case 'large':\n return this.styles.leftIconLarge(this.theme);\n case 'medium':\n return this.styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return this.styles.leftIconSmall(this.theme);\n }\n }\n\n private renderDefaultButton(params: ButtonParams) {\n const buttonProps: ButtonProps = {\n ...filterProps(this.props, PASS_BUTTON_PROPS),\n align: 'left' as React.CSSProperties['textAlign'],\n disabled: this.props.disabled,\n width: '100%',\n onClick: params.onClick,\n onKeyDown: params.onKeyDown,\n active: params.opened,\n size: params.size,\n // TODO: remove in React UI 7.x with use=\"default\"\n _noWarningForUseDefault: true,\n };\n const use = this.getProps().use;\n\n const labelProps = {\n 'data-tid': SelectDataTids.label,\n className: this.cx({\n [this.styles.label()]: use !== 'link',\n [this.styles.placeholder(this.theme)]: params.isPlaceholder,\n [this.styles.customUsePlaceholder()]: params.isPlaceholder && use !== 'default',\n [this.styles.placeholderDisabled(this.theme)]: params.isPlaceholder && this.props.disabled,\n }),\n style: {\n paddingRight: this.getSelectIconGap(),\n },\n };\n\n const useIsCustom = use !== 'default';\n\n const icon = <ArrowDownIcon size={this.size} />;\n\n return (\n <Button {...buttonProps}>\n <div\n className={this.cx(this.styles.selectButtonContainer(), {\n [this.linkStyles.root(this.theme)]: use === 'link',\n })}\n >\n {this.props._icon && <div className={this.getLeftIconClass(this.size)}>{this.props._icon}</div>}\n <span {...labelProps}>{params.label}</span>\n\n <div\n className={this.cx(this.styles.arrowWrap(this.theme), {\n [this.styles.arrowDisabled(this.theme)]: this.props.disabled,\n [this.styles.customUseArrow()]: useIsCustom,\n })}\n >\n {icon}\n </div>\n </div>\n </Button>\n );\n }\n\n private getSelectIconGap(): number {\n const getArrowPadding = () => {\n switch (this.size) {\n case 'large':\n return this.theme.selectIconGapLarge;\n case 'medium':\n return this.theme.selectIconGapMedium;\n case 'small':\n default:\n return this.theme.selectIconGapSmall;\n }\n };\n const arrowLeftPadding = parseFloat(getArrowPadding()) || 0;\n\n return arrowLeftPadding;\n }\n\n private renderMenu(): React.ReactNode {\n const search = this.props.search ? this.getSearch() : null;\n\n const value = this.getValue();\n const { menuWidth, menuPos, menuAlign, positions, preventIconsOffset } = this.getProps();\n\n return (\n <Popup\n opened\n hasShadow\n id={this.menuId}\n data-tid={SelectDataTids.menu}\n positions={positions ?? getMenuPositions(menuPos, menuAlign)}\n anchorElement={this.popupGetParent()}\n priority={ZIndex.priorities.PopupMenu}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n popupOffset={this.props.menuOffset}\n >\n <Menu\n hasMargin={false}\n ref={this.refMenu}\n onItemClick={this.close}\n maxHeight={this.props.maxMenuHeight}\n align={menuAlign}\n preventIconsOffset={preventIconsOffset}\n >\n {search}\n {this.getMenuItems(value)}\n </Menu>\n </Popup>\n );\n }\n\n private getSearch = () => {\n return (\n <div className={this.styles.search()} onKeyDown={this.handleKey}>\n <Input ref={this.debouncedFocusInput} onValueChange={this.handleSearch} width=\"100%\" />\n </div>\n );\n };\n\n private renderMobileMenu(): React.ReactNode {\n const search = this.props.search ? this.getMobileSearch() : null;\n const value = this.getValue();\n\n const themeGTE6_1 = isThemeGTE(this.theme, '6.1');\n const themeDependentProps = themeGTE6_1\n ? {\n footerChildComponent: search,\n size: this.size,\n }\n : {\n headerChildComponent: search,\n };\n\n return (\n <MobilePopup\n {...themeDependentProps}\n caption={this.props.mobileMenuHeaderText}\n onCloseRequest={this.close}\n opened={this.state.opened}\n >\n <Menu onItemClick={this.close} disableScrollContainer maxHeight={'auto'}>\n {this.getMenuItems(value)}\n </Menu>\n </MobilePopup>\n );\n }\n\n private getMobileSearch = () => {\n return (\n <Input\n autoFocus\n value={this.state.searchPattern}\n ref={this.debouncedFocusInput}\n onValueChange={this.handleSearch}\n width=\"100%\"\n />\n );\n };\n\n private getMenuItems = (value: Nullable<TValue>) => {\n const isMobile = this.isMobileLayout;\n const size = this.size;\n\n return this.mapItems(\n (iValue: TValue, item: TItem | (() => React.ReactNode), i: number, comment: Nullable<React.ReactNode>) => {\n if (isFunction(item)) {\n const element = item();\n\n if (React.isValidElement(element)) {\n return React.cloneElement(element, { key: i, isMobile, size } as MenuItemProps);\n }\n\n return null;\n }\n\n if (React.isValidElement(item)) {\n if (isReactUINode('MenuItem', item)) {\n return React.cloneElement(item, { key: i, isMobile, size } as MenuItemProps);\n }\n if (isReactUINode('MenuHeader', item)) {\n return React.cloneElement(item, { size } as MenuHeaderProps);\n }\n return React.cloneElement(item, { key: i });\n }\n\n return (\n <MenuItem\n key={i}\n scrollIntoView={this.featureFlags.selectAutoScrollToSelectedItem && this.areValuesEqual(iValue, value)}\n state={this.areValuesEqual(iValue, value) ? 'selected' : null}\n onClick={this.select.bind(this, iValue)}\n comment={comment}\n isMobile={isMobile}\n size={this.size}\n >\n {this.getProps().renderItem(iValue, item)}\n </MenuItem>\n );\n },\n );\n };\n\n private popupGetParent = () => {\n return getRootNode(this);\n };\n\n // fix cases when an Input is rendered in portal\n // https://github.com/skbkontur/retail-ui/issues/1995\n private focusInput = (input: Input) => input?.focus();\n private debouncedFocusInput = debounce(this.focusInput);\n\n private refMenu = (menu: Menu) => {\n this.menu = menu;\n };\n\n private toggle = () => {\n if (this.state.opened) {\n this.close();\n } else {\n this.open();\n }\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLElement>) => {\n if (!this.state.opened) {\n if (isKeySpace(e) || isKeyArrowVertical(e)) {\n e.preventDefault();\n this.open();\n }\n } else {\n switch (true) {\n case isKeyEscape(e):\n this.focus();\n this.close();\n break;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n break;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n break;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n break;\n }\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleSearch = (value: string) => {\n this.setState({ searchPattern: value });\n this.menu?.highlightItem(0);\n };\n\n private select(value: TValue) {\n this.focus();\n this.setState({ opened: false, value });\n\n if (!this.areValuesEqual(this.getValue(), value)) {\n this.props.onValueChange?.(value);\n }\n }\n\n private getValue() {\n if (this.props.value !== undefined) {\n return this.props.value;\n }\n return this.state.value;\n }\n\n private mapItems(fn: (value: TValue, item: TItem, index: number, comment?: string) => React.ReactNode) {\n const { items } = this.props;\n if (!items) {\n return [];\n }\n const pattern = this.state.searchPattern && this.state.searchPattern.toLowerCase();\n\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, item, comment] = normalizeEntry(entry as TItem);\n\n if (!pattern || this.getProps().filterItem(value, item, pattern)) {\n result.push(fn(value, item, index, comment));\n ++index;\n }\n }\n\n return result;\n }\n\n private getItemByValue(value?: Nullable<TValue>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const items = this.props.items || [];\n\n for (const entry of items) {\n const [itemValue, item] = normalizeEntry(entry);\n\n if (this.areValuesEqual(itemValue, value)) {\n return item;\n }\n }\n return null;\n }\n\n private areValuesEqual(value1: Nullable<TValue>, value2: Nullable<TValue>) {\n return isNonNullable(value1) && isNonNullable(value2) && this.getProps().areValuesEqual(value1, value2);\n }\n\n private buttonRef = (element: FocusableReactElement | null) => {\n this.buttonElement = element;\n };\n\n private getButton = (buttonParams: ButtonParams) => {\n const button = this.props._renderButton\n ? this.props._renderButton(buttonParams)\n : this.renderDefaultButton(buttonParams);\n\n const buttonElement = React.Children.only(button);\n\n return React.isValidElement(buttonElement)\n ? React.cloneElement(buttonElement as React.ReactElement<any>, {\n ref: this.buttonRef,\n onFocus: this.props.onFocus,\n onBlur: this.props.onBlur,\n size: this.size,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-expanded': this.state.opened ? 'true' : 'false',\n 'aria-controls': this.menuId,\n 'aria-label': (buttonElement as React.ReactElement<any>).props['aria-label'] ?? this.props['aria-label'],\n })\n : buttonElement;\n };\n}\n\nfunction renderValue<TValue, TItem>(value: TValue, item: Nullable<TItem>) {\n return item;\n}\n\nfunction renderItem<TValue, TItem>(value: TValue, item?: TItem) {\n return item;\n}\n\nfunction areValuesEqual<TValue>(value1: TValue, value2: TValue) {\n return value1 === value2;\n}\n\nfunction normalizeEntry(entry: unknown) {\n if (Array.isArray(entry)) {\n return entry;\n }\n\n return [entry, entry, undefined];\n}\n\nconst getTextFromItem = (item: string | React.ReactNode | (() => React.ReactNode) | number): string => {\n if (typeof item === 'string') {\n return item;\n }\n\n if (isFunction(item)) {\n return getTextFromItem(item());\n }\n\n if (React.isValidElement(item)) {\n return reactGetTextContent(item);\n }\n\n if (typeof item === 'number') {\n return item.toString(10);\n }\n\n return '';\n};\n\nfunction filterItem<TValue>(value: TValue, item: any, pattern: string) {\n if (item === Select.SEP) {\n return false;\n }\n\n const itemText = getTextFromItem(item);\n\n if (!itemText) {\n return false;\n }\n\n return itemText.toLowerCase().indexOf(pattern) !== -1;\n}\n"]}
@@ -2,6 +2,8 @@ import { ThemeFactory } from '../../lib/theming/ThemeFactory.js';
2
2
  export var getSelectTheme = function (theme, props) {
3
3
  var baseTheme = ThemeFactory.create({
4
4
  btnDefaultBg: theme.selectDefaultBg,
5
+ btnDefaultHoverBg: theme.selectHoverBg,
6
+ btnDefaultActiveBg: theme.selectActiveBg,
5
7
  btnBorderWidth: theme.selectBorderWidth,
6
8
  btnOutlineWidth: theme.selectOutlineWidth,
7
9
  btnLineHeightSmall: theme.selectLineHeightSmall,
@@ -1 +1 @@
1
- {"version":3,"file":"selectTheme.js","sourceRoot":"","sources":["selectTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,KAAY,EAAE,KAA4B;IACvE,IAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CACnC;QACE,YAAY,EAAE,KAAK,CAAC,eAAe;QAEnC,cAAc,EAAE,KAAK,CAAC,iBAAiB;QACvC,eAAe,EAAE,KAAK,CAAC,kBAAkB;QAEzC,kBAAkB,EAAE,KAAK,CAAC,qBAAqB;QAC/C,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB;QAClF,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,oBAAoB,EAAE,KAAK,CAAC,uBAAuB;QAEnD,0BAA0B,EAAE,MAAM;QAElC,mBAAmB,EAAE,KAAK,CAAC,sBAAsB;QACjD,iBAAiB,EAAE,KAAK,CAAC,oBAAoB;QAC7C,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB;QACrF,iBAAiB,EAAE,KAAK,CAAC,oBAAoB;QAC7C,iBAAiB,EAAE,KAAK,CAAC,oBAAoB;QAC7C,qBAAqB,EAAE,KAAK,CAAC,wBAAwB;QAErD,kBAAkB,EAAE,KAAK,CAAC,qBAAqB;QAC/C,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB;QAClF,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,oBAAoB,EAAE,KAAK,CAAC,uBAAuB;QAEnD,aAAa,EAAE,KAAK,CAAC,gBAAgB;QACrC,sBAAsB,EAAE,KAAK,CAAC,yBAAyB;QACvD,oBAAoB,EAAE,KAAK,CAAC,uBAAuB;QAEnD,0BAA0B,EAAE,KAAK,CAAC,sBAAsB;QACxD,wBAAwB,EAAE,KAAK,CAAC,2BAA2B;KAC5D,EACD,KAAK,CACN,CAAC;IAEF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { SelectProps } from './Select.js';\n\nexport const getSelectTheme = (theme: Theme, props: SelectProps<any, any>): Theme => {\n const baseTheme = ThemeFactory.create(\n {\n btnDefaultBg: theme.selectDefaultBg,\n\n btnBorderWidth: theme.selectBorderWidth,\n btnOutlineWidth: theme.selectOutlineWidth,\n\n btnLineHeightSmall: theme.selectLineHeightSmall,\n btnFontSizeSmall: theme.selectFontSizeSmall,\n btnPaddingXSmall: props._icon ? theme.btnPaddingXSmall : theme.selectPaddingXSmall,\n btnPaddingYSmall: theme.selectPaddingYSmall,\n btnIconSizeSmall: theme.selectIconSizeSmall,\n btnBorderRadiusSmall: theme.selectBorderRadiusSmall,\n\n btnLinkHoverTextDecoration: 'none',\n\n btnLineHeightMedium: theme.selectLineHeightMedium,\n btnFontSizeMedium: theme.selectFontSizeMedium,\n btnPaddingXMedium: props._icon ? theme.btnPaddingXMedium : theme.selectPaddingXMedium,\n btnPaddingYMedium: theme.selectPaddingYMedium,\n btnIconSizeMedium: theme.selectIconSizeMedium,\n btnBorderRadiusMedium: theme.selectBorderRadiusMedium,\n\n btnLineHeightLarge: theme.selectLineHeightLarge,\n btnFontSizeLarge: theme.selectFontSizeLarge,\n btnPaddingXLarge: props._icon ? theme.btnPaddingXLarge : theme.selectPaddingXLarge,\n btnPaddingYLarge: theme.selectPaddingYLarge,\n btnIconSizeLarge: theme.selectIconSizeLarge,\n btnBorderRadiusLarge: theme.selectBorderRadiusLarge,\n\n btnDisabledBg: theme.selectBgDisabled,\n btnDisabledBorderColor: theme.selectBorderColorDisabled,\n btnDisabledTextColor: theme.selectTextColorDisabled,\n\n btnDefaultHoverBorderColor: theme.selectBorderColorHover,\n btnBorderColorTransition: theme.selectBorderColorTransition,\n },\n theme,\n );\n\n if (props.theme) {\n return ThemeFactory.create(props.theme, baseTheme);\n }\n\n return baseTheme;\n};\n"]}
1
+ {"version":3,"file":"selectTheme.js","sourceRoot":"","sources":["selectTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,KAAY,EAAE,KAA4B;IACvE,IAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CACnC;QACE,YAAY,EAAE,KAAK,CAAC,eAAe;QACnC,iBAAiB,EAAE,KAAK,CAAC,aAAa;QACtC,kBAAkB,EAAE,KAAK,CAAC,cAAc;QAExC,cAAc,EAAE,KAAK,CAAC,iBAAiB;QACvC,eAAe,EAAE,KAAK,CAAC,kBAAkB;QAEzC,kBAAkB,EAAE,KAAK,CAAC,qBAAqB;QAC/C,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB;QAClF,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,oBAAoB,EAAE,KAAK,CAAC,uBAAuB;QAEnD,0BAA0B,EAAE,MAAM;QAElC,mBAAmB,EAAE,KAAK,CAAC,sBAAsB;QACjD,iBAAiB,EAAE,KAAK,CAAC,oBAAoB;QAC7C,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB;QACrF,iBAAiB,EAAE,KAAK,CAAC,oBAAoB;QAC7C,iBAAiB,EAAE,KAAK,CAAC,oBAAoB;QAC7C,qBAAqB,EAAE,KAAK,CAAC,wBAAwB;QAErD,kBAAkB,EAAE,KAAK,CAAC,qBAAqB;QAC/C,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB;QAClF,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;QAC3C,oBAAoB,EAAE,KAAK,CAAC,uBAAuB;QAEnD,aAAa,EAAE,KAAK,CAAC,gBAAgB;QACrC,sBAAsB,EAAE,KAAK,CAAC,yBAAyB;QACvD,oBAAoB,EAAE,KAAK,CAAC,uBAAuB;QAEnD,0BAA0B,EAAE,KAAK,CAAC,sBAAsB;QACxD,wBAAwB,EAAE,KAAK,CAAC,2BAA2B;KAC5D,EACD,KAAK,CACN,CAAC;IAEF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { SelectProps } from './Select.js';\n\nexport const getSelectTheme = (theme: Theme, props: SelectProps<any, any>): Theme => {\n const baseTheme = ThemeFactory.create(\n {\n btnDefaultBg: theme.selectDefaultBg,\n btnDefaultHoverBg: theme.selectHoverBg,\n btnDefaultActiveBg: theme.selectActiveBg,\n\n btnBorderWidth: theme.selectBorderWidth,\n btnOutlineWidth: theme.selectOutlineWidth,\n\n btnLineHeightSmall: theme.selectLineHeightSmall,\n btnFontSizeSmall: theme.selectFontSizeSmall,\n btnPaddingXSmall: props._icon ? theme.btnPaddingXSmall : theme.selectPaddingXSmall,\n btnPaddingYSmall: theme.selectPaddingYSmall,\n btnIconSizeSmall: theme.selectIconSizeSmall,\n btnBorderRadiusSmall: theme.selectBorderRadiusSmall,\n\n btnLinkHoverTextDecoration: 'none',\n\n btnLineHeightMedium: theme.selectLineHeightMedium,\n btnFontSizeMedium: theme.selectFontSizeMedium,\n btnPaddingXMedium: props._icon ? theme.btnPaddingXMedium : theme.selectPaddingXMedium,\n btnPaddingYMedium: theme.selectPaddingYMedium,\n btnIconSizeMedium: theme.selectIconSizeMedium,\n btnBorderRadiusMedium: theme.selectBorderRadiusMedium,\n\n btnLineHeightLarge: theme.selectLineHeightLarge,\n btnFontSizeLarge: theme.selectFontSizeLarge,\n btnPaddingXLarge: props._icon ? theme.btnPaddingXLarge : theme.selectPaddingXLarge,\n btnPaddingYLarge: theme.selectPaddingYLarge,\n btnIconSizeLarge: theme.selectIconSizeLarge,\n btnBorderRadiusLarge: theme.selectBorderRadiusLarge,\n\n btnDisabledBg: theme.selectBgDisabled,\n btnDisabledBorderColor: theme.selectBorderColorDisabled,\n btnDisabledTextColor: theme.selectTextColorDisabled,\n\n btnDefaultHoverBorderColor: theme.selectBorderColorHover,\n btnBorderColorTransition: theme.selectBorderColorTransition,\n },\n theme,\n );\n\n if (props.theme) {\n return ThemeFactory.create(props.theme, baseTheme);\n }\n\n return baseTheme;\n};\n"]}
@@ -19,6 +19,7 @@ import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
19
19
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
20
20
  import { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';
21
21
  import { isFunction } from '../../lib/utils.js';
22
+ import { MINUS_SIGN } from '../CurrencyInput/constants.js';
22
23
  import { Tooltip } from '../Tooltip/index.js';
23
24
  import { TextareaDataTids } from './Textarea.js';
24
25
  import { getStyles } from './Textarea.styles.js';
@@ -79,7 +80,7 @@ export var TextareaCounter = forwardRefAndName('TextareaCounter', function (_a,
79
80
  _b[styles.counter6_1(theme)] = isThemeGTE6_1,
80
81
  _b[styles.counterError(theme)] = isNegativeValue,
81
82
  _b)) },
82
- isThemeGTE6_1 && isNegativeValue ? "\u2013".concat(-counterValue) : counterValue,
83
+ isThemeGTE6_1 && isNegativeValue ? "".concat(MINUS_SIGN).concat(-counterValue) : counterValue,
83
84
  help && React.createElement("span", { className: styles.counterHelp() }, counterHelp))));
84
85
  });
85
86
  //# sourceMappingURL=TextareaCounter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextareaCounter.js","sourceRoot":"","sources":["TextareaCounter.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useImperativeHandle, useState } from 'react';\nimport type { SyntheticEvent } from 'react';\n\nimport { QuestionCircleIcon16Light } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js';\nimport { QuestionCircleIcon16Solid } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.js';\nimport { QuestionCircleIcon20Regular } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js';\nimport { QuestionCircleIcon24Regular } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isFunction } from '../../lib/utils.js';\nimport { Tooltip } from '../Tooltip/index.js';\nimport { TextareaDataTids } from './Textarea.js';\nimport type { TextareaProps } from './Textarea.js';\nimport { getStyles } from './Textarea.styles.js';\n\nexport interface TextareaCounterProps {\n value: TextareaProps['value'];\n length: number;\n help: TextareaProps['counterHelp'];\n onCloseHelp: () => void;\n textarea: HTMLTextAreaElement;\n size: SizeProp;\n}\n\nexport interface TextareaCounterRef {\n reflow: () => void;\n}\n\nconst handleHelpMouseDown = (e: SyntheticEvent) => e.preventDefault();\n\nconst getCounterOffsets = (textarea: HTMLTextAreaElement) => {\n const computedStyle = textarea.ownerDocument.defaultView?.getComputedStyle(textarea);\n\n return {\n right: computedStyle?.paddingRight ?? textarea.style.paddingRight ?? '0px',\n bottom: computedStyle?.paddingBottom ?? textarea.style.paddingBottom ?? '0px',\n };\n};\n\nexport const TextareaCounter = forwardRefAndName<TextareaCounterRef, TextareaCounterProps>(\n 'TextareaCounter',\n ({ length, value, help, onCloseHelp, textarea, size }, ref) => {\n const theme = useContext(ThemeContext);\n const isThemeGTE6_1 = isThemeGTE(theme, '6.1');\n\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const [width, setWidth] = useState(textarea.clientWidth);\n const [height, setHeight] = useState(textarea.clientHeight);\n const reflow = useCallback(() => {\n const { clientWidth, clientHeight } = textarea;\n setWidth(clientWidth);\n setHeight(clientHeight);\n }, [textarea]);\n useImperativeHandle(ref, () => ({ reflow }), [reflow]);\n const renderTooltipContent = useCallback(() => {\n if (typeof help === 'function') {\n return help();\n }\n return help;\n }, [help]);\n const textareaValue = value ? value.toString().length : 0;\n const counterValue = length - textareaValue;\n const counterOffsets = getCounterOffsets(textarea);\n\n const getHelpIcon = () => {\n switch (size) {\n case 'large':\n return <QuestionCircleIcon24Regular {...helpIconProps} />;\n case 'medium':\n return <QuestionCircleIcon20Regular {...helpIconProps} />;\n case 'small':\n default:\n return <QuestionCircleIcon16Light {...helpIconProps} />;\n }\n };\n const helpIconProps = {\n onMouseDown: handleHelpMouseDown,\n color: theme.textareaCounterHelpIconColor,\n 'data-tid': TextareaDataTids.helpIcon,\n };\n const helpIcon = isThemeGTE6_1 ? getHelpIcon() : <QuestionCircleIcon16Solid {...helpIconProps} />;\n const counterHelp = isFunction(help) ? (\n help()\n ) : (\n <Tooltip pos={'right bottom'} trigger={'click'} render={renderTooltipContent} onCloseClick={onCloseHelp}>\n {helpIcon}\n </Tooltip>\n );\n\n const isNegativeValue = counterValue < 0;\n\n return (\n <div data-tid={TextareaDataTids.counter} className={cx(styles.counterContainer(theme))} style={{ width, height }}>\n <span\n style={counterOffsets}\n className={cx(styles.counter(theme), {\n [styles.counter6_1(theme)]: isThemeGTE6_1,\n [styles.counterError(theme)]: isNegativeValue,\n })}\n >\n {isThemeGTE6_1 && isNegativeValue ? `–${-counterValue}` : counterValue}\n {help && <span className={styles.counterHelp()}>{counterHelp}</span>}\n </span>\n </div>\n );\n },\n);\n"]}
1
+ {"version":3,"file":"TextareaCounter.js","sourceRoot":"","sources":["TextareaCounter.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useImperativeHandle, useState } from 'react';\nimport type { SyntheticEvent } from 'react';\n\nimport { QuestionCircleIcon16Light } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js';\nimport { QuestionCircleIcon16Solid } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.js';\nimport { QuestionCircleIcon20Regular } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js';\nimport { QuestionCircleIcon24Regular } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isFunction } from '../../lib/utils.js';\nimport { MINUS_SIGN } from '../CurrencyInput/constants.js';\nimport { Tooltip } from '../Tooltip/index.js';\nimport { TextareaDataTids } from './Textarea.js';\nimport type { TextareaProps } from './Textarea.js';\nimport { getStyles } from './Textarea.styles.js';\n\nexport interface TextareaCounterProps {\n value: TextareaProps['value'];\n length: number;\n help: TextareaProps['counterHelp'];\n onCloseHelp: () => void;\n textarea: HTMLTextAreaElement;\n size: SizeProp;\n}\n\nexport interface TextareaCounterRef {\n reflow: () => void;\n}\n\nconst handleHelpMouseDown = (e: SyntheticEvent) => e.preventDefault();\n\nconst getCounterOffsets = (textarea: HTMLTextAreaElement) => {\n const computedStyle = textarea.ownerDocument.defaultView?.getComputedStyle(textarea);\n\n return {\n right: computedStyle?.paddingRight ?? textarea.style.paddingRight ?? '0px',\n bottom: computedStyle?.paddingBottom ?? textarea.style.paddingBottom ?? '0px',\n };\n};\n\nexport const TextareaCounter = forwardRefAndName<TextareaCounterRef, TextareaCounterProps>(\n 'TextareaCounter',\n ({ length, value, help, onCloseHelp, textarea, size }, ref) => {\n const theme = useContext(ThemeContext);\n const isThemeGTE6_1 = isThemeGTE(theme, '6.1');\n\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const [width, setWidth] = useState(textarea.clientWidth);\n const [height, setHeight] = useState(textarea.clientHeight);\n const reflow = useCallback(() => {\n const { clientWidth, clientHeight } = textarea;\n setWidth(clientWidth);\n setHeight(clientHeight);\n }, [textarea]);\n useImperativeHandle(ref, () => ({ reflow }), [reflow]);\n const renderTooltipContent = useCallback(() => {\n if (typeof help === 'function') {\n return help();\n }\n return help;\n }, [help]);\n const textareaValue = value ? value.toString().length : 0;\n const counterValue = length - textareaValue;\n const counterOffsets = getCounterOffsets(textarea);\n\n const getHelpIcon = () => {\n switch (size) {\n case 'large':\n return <QuestionCircleIcon24Regular {...helpIconProps} />;\n case 'medium':\n return <QuestionCircleIcon20Regular {...helpIconProps} />;\n case 'small':\n default:\n return <QuestionCircleIcon16Light {...helpIconProps} />;\n }\n };\n const helpIconProps = {\n onMouseDown: handleHelpMouseDown,\n color: theme.textareaCounterHelpIconColor,\n 'data-tid': TextareaDataTids.helpIcon,\n };\n const helpIcon = isThemeGTE6_1 ? getHelpIcon() : <QuestionCircleIcon16Solid {...helpIconProps} />;\n const counterHelp = isFunction(help) ? (\n help()\n ) : (\n <Tooltip pos={'right bottom'} trigger={'click'} render={renderTooltipContent} onCloseClick={onCloseHelp}>\n {helpIcon}\n </Tooltip>\n );\n\n const isNegativeValue = counterValue < 0;\n\n return (\n <div data-tid={TextareaDataTids.counter} className={cx(styles.counterContainer(theme))} style={{ width, height }}>\n <span\n style={counterOffsets}\n className={cx(styles.counter(theme), {\n [styles.counter6_1(theme)]: isThemeGTE6_1,\n [styles.counterError(theme)]: isNegativeValue,\n })}\n >\n {isThemeGTE6_1 && isNegativeValue ? `${MINUS_SIGN}${-counterValue}` : counterValue}\n {help && <span className={styles.counterHelp()}>{counterHelp}</span>}\n </span>\n </div>\n );\n },\n);\n"]}
package/index.d.ts CHANGED
@@ -39,7 +39,6 @@ export * from './components/Sticky/index.js';
39
39
  export * from './components/Switcher/index.js';
40
40
  export * from './components/Tabs/index.js';
41
41
  export * from './components/Textarea/index.js';
42
- export * from './components/TimePicker/index.js';
43
42
  export * from './components/Toast/index.js';
44
43
  export * from './components/SingleToast/index.js';
45
44
  export * from './components/Toggle/index.js';
package/index.js CHANGED
@@ -39,7 +39,6 @@ export * from './components/Sticky/index.js';
39
39
  export * from './components/Switcher/index.js';
40
40
  export * from './components/Tabs/index.js';
41
41
  export * from './components/Textarea/index.js';
42
- export * from './components/TimePicker/index.js';
43
42
  export * from './components/Toast/index.js';
44
43
  export * from './components/SingleToast/index.js';
45
44
  export * from './components/Toggle/index.js';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,OAAO,KAAK,cAAc,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,kBAAkB,MAAM,oCAAoC,CAAC","sourcesContent":["export * from './components/Autocomplete/index.js';\nexport * from './components/Button/index.js';\nexport * from './components/Calendar/index.js';\nexport * from './components/Center/index.js';\nexport * from './components/Checkbox/index.js';\nexport * from './components/ComboBox/index.js';\nexport * from './components/CurrencyInput/index.js';\nexport * from './components/CurrencyLabel/index.js';\nexport * from './components/DateInput/index.js';\nexport * from './components/DatePicker/index.js';\nexport * from './components/DateRangePicker/index.js';\nexport * from './components/Dropdown/index.js';\nexport * from './components/DropdownMenu/index.js';\nexport * from './components/FileUploader/index.js';\nexport * from './components/FxInput/index.js';\nexport * from './components/Gapped/index.js';\nexport * from './components/GlobalLoader/index.js';\nexport * from './components/Group/index.js';\nexport * from './components/Hint/index.js';\nexport * from './components/Input/index.js';\nexport * from './components/Kebab/index.js';\nexport * from './components/Link/index.js';\nexport * from './components/Loader/index.js';\nexport * from './components/MenuFooter/index.js';\nexport * from './components/MenuHeader/index.js';\nexport * from './components/MenuItem/index.js';\nexport * from './components/MenuSeparator/index.js';\nexport * from './components/MiniModal/index.js';\nexport * from './components/Modal/index.js';\nexport * from './components/Paging/index.js';\nexport * from './components/PasswordInput/index.js';\nexport * from './components/Radio/index.js';\nexport * from './components/RadioGroup/index.js';\nexport * from './components/ScrollContainer/index.js';\nexport * from './components/Select/index.js';\nexport * from './components/SidePage/index.js';\nexport * from './components/Spinner/index.js';\nexport * from './components/Sticky/index.js';\nexport * from './components/Switcher/index.js';\nexport * from './components/Tabs/index.js';\nexport * from './components/Textarea/index.js';\nexport * from './components/TimePicker/index.js';\nexport * from './components/Toast/index.js';\nexport * from './components/SingleToast/index.js';\nexport * from './components/Toggle/index.js';\nexport * from './components/Token/index.js';\nexport * from './components/TokenInput/index.js';\nexport * from './components/Tooltip/index.js';\nexport * from './components/TooltipMenu/index.js';\nexport * from './components/ResponsiveLayout/index.js';\nexport * from './components/MaskedInput/index.js';\nexport * from './lib/featureFlagsContext/index.js';\nexport * from './lib/locale/index.js';\nexport * from './lib/size/index.js';\nexport * from './lib/theming/ThemeContext.js';\nexport * from './lib/theming/ThemeFactory.js';\nexport * from './lib/theming/themes/LightTheme.js';\nexport * from './lib/theming/themes/DarkTheme.js';\nexport * from './lib/types/props.js';\nexport * from './internal/Popup/types.js';\nexport type { PopupMenuCaptionProps } from './internal/PopupMenu/index.js';\nexport * as ColorFunctions from './lib/styles/ColorFunctions.js';\nexport * as DimensionFunctions from './lib/styles/DimensionFunctions.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,OAAO,KAAK,cAAc,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,kBAAkB,MAAM,oCAAoC,CAAC","sourcesContent":["export * from './components/Autocomplete/index.js';\nexport * from './components/Button/index.js';\nexport * from './components/Calendar/index.js';\nexport * from './components/Center/index.js';\nexport * from './components/Checkbox/index.js';\nexport * from './components/ComboBox/index.js';\nexport * from './components/CurrencyInput/index.js';\nexport * from './components/CurrencyLabel/index.js';\nexport * from './components/DateInput/index.js';\nexport * from './components/DatePicker/index.js';\nexport * from './components/DateRangePicker/index.js';\nexport * from './components/Dropdown/index.js';\nexport * from './components/DropdownMenu/index.js';\nexport * from './components/FileUploader/index.js';\nexport * from './components/FxInput/index.js';\nexport * from './components/Gapped/index.js';\nexport * from './components/GlobalLoader/index.js';\nexport * from './components/Group/index.js';\nexport * from './components/Hint/index.js';\nexport * from './components/Input/index.js';\nexport * from './components/Kebab/index.js';\nexport * from './components/Link/index.js';\nexport * from './components/Loader/index.js';\nexport * from './components/MenuFooter/index.js';\nexport * from './components/MenuHeader/index.js';\nexport * from './components/MenuItem/index.js';\nexport * from './components/MenuSeparator/index.js';\nexport * from './components/MiniModal/index.js';\nexport * from './components/Modal/index.js';\nexport * from './components/Paging/index.js';\nexport * from './components/PasswordInput/index.js';\nexport * from './components/Radio/index.js';\nexport * from './components/RadioGroup/index.js';\nexport * from './components/ScrollContainer/index.js';\nexport * from './components/Select/index.js';\nexport * from './components/SidePage/index.js';\nexport * from './components/Spinner/index.js';\nexport * from './components/Sticky/index.js';\nexport * from './components/Switcher/index.js';\nexport * from './components/Tabs/index.js';\nexport * from './components/Textarea/index.js';\nexport * from './components/Toast/index.js';\nexport * from './components/SingleToast/index.js';\nexport * from './components/Toggle/index.js';\nexport * from './components/Token/index.js';\nexport * from './components/TokenInput/index.js';\nexport * from './components/Tooltip/index.js';\nexport * from './components/TooltipMenu/index.js';\nexport * from './components/ResponsiveLayout/index.js';\nexport * from './components/MaskedInput/index.js';\nexport * from './lib/featureFlagsContext/index.js';\nexport * from './lib/locale/index.js';\nexport * from './lib/size/index.js';\nexport * from './lib/theming/ThemeContext.js';\nexport * from './lib/theming/ThemeFactory.js';\nexport * from './lib/theming/themes/LightTheme.js';\nexport * from './lib/theming/themes/DarkTheme.js';\nexport * from './lib/types/props.js';\nexport * from './internal/Popup/types.js';\nexport type { PopupMenuCaptionProps } from './internal/PopupMenu/index.js';\nexport * as ColorFunctions from './lib/styles/ColorFunctions.js';\nexport * as DimensionFunctions from './lib/styles/DimensionFunctions.js';\n"]}
@@ -289,7 +289,7 @@ var InputLikeText = /** @class */ (function (_super) {
289
289
  return this.node;
290
290
  };
291
291
  InputLikeText.prototype.componentDidMount = function () {
292
- if (this.node) {
292
+ if (this.node && !this.props.disabled) {
293
293
  MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);
294
294
  }
295
295
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InputLikeText.js","sourceRoot":"","sources":["InputLikeText.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport debounce from 'lodash.debounce';\nimport React, { type JSX } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { InputDataTids, calculateClearCrossShowedState } from '../../components/Input/index.js';\nimport type { InputProps, InputState } from '../../components/Input/index.js';\nimport { getStyles as getJsInputStyles } from '../../components/Input/Input.styles.js';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside.js';\nimport {\n InputLayoutContext,\n InputLayoutContextDefault,\n} from '../../components/Input/InputLayout/InputLayoutContext.js';\nimport { blink } from '../../lib/blink.js';\nimport { isMobile } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { removeAllSelections, selectNodeContents } from '../../lib/dom/selectionHelpers.js';\nimport { MouseDrag } from '../../lib/events/MouseDrag.js';\nimport type { MouseDragEventHandler } from '../../lib/events/MouseDrag.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { REACT_MAJOR_VERSION } from '../../lib/react-is.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isNonNullable } from '../../lib/utils.js';\nimport { ClearCrossIcon } from '../ClearCrossIcon/ClearCrossIcon.js';\nimport type { CommonProps, CommonWrapperRestProps } from '../CommonWrapper/index.js';\nimport { CommonWrapper } from '../CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../FocusControlWrapper/index.js';\nimport { getStyles } from './InputLikeText.styles.js';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n onClearCrossClick?: () => void;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder' | 'hovered'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'showClearIcon'>>;\n\n@withRenderEnvironment\n@withSize\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, Omit<InputLikeTextState, 'isCounterVisible'>> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n public static displayName = 'InputLikeText';\n\n public static defaultProps: DefaultProps = {\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n private getClearCrossShowed = ({ focused, hovered }: { focused?: boolean; hovered?: boolean }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.props.children),\n focused,\n hovered,\n });\n };\n\n public state = {\n focused: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n }),\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private jsInputStyles!: ReturnType<typeof getJsInputStyles>;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private node: HTMLElement | null = null;\n private dragging = false;\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(): void {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur(): void {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n blink({\n el: this.node,\n blinkColor: this.theme.inputBlinkColor,\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n // Async call required for Firefox\n private selectNodeContentsDebounced = debounce(selectNodeContents, 0);\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n\n this.selectNodeContentsDebounced(node, start, end);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n }\n\n public componentWillUnmount() {\n MouseDrag.stop(this.node);\n }\n\n public render() {\n this.jsInputStyles = getJsInputStyles(this.emotion);\n this.styles = getStyles(this.emotion);\n\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 private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n showClearIcon,\n onClearCrossClick,\n ...rest\n } = props;\n\n const { focused } = this.state;\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon\n data-tid={InputDataTids.clearCross}\n size={this.size}\n onFocus={(event) => event.stopPropagation()}\n onClick={onClearCrossClick}\n />\n ) : (\n rightIcon\n );\n };\n const leftSide = <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />;\n const rightSide = <InputLayoutAside icon={getRightIcon()} text={suffix} side=\"right\" />;\n\n const className = this.cx(this.styles.root(), this.jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [this.jsInputStyles.disabled(this.theme)]: !!disabled,\n [this.jsInputStyles.borderless()]: !!borderless,\n [this.jsInputStyles.focus(this.theme)]: focused,\n [this.jsInputStyles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [this.jsInputStyles.warning(this.theme)]: !!warning,\n [this.jsInputStyles.error(this.theme)]: !!error,\n [this.jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = this.cx(this.jsInputStyles.wrapper(), {\n [this.styles.userSelectContain()]: focused,\n });\n const size = this.size;\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <FocusControlWrapper disabled={disabled} onBlurWhenDisabled={this.resetFocus}>\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? -1 : 0}\n onFocus={this.handleFocus}\n onMouseEnter={this.handleHover}\n onMouseLeave={this.handleUnhover}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n role=\"textbox\"\n aria-disabled={disabled}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n >\n <InputLayoutContext.Provider value={context}>\n <input type=\"hidden\" data-tid={InputLikeTextDataTids.nativeInput} value={value} disabled={disabled} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={this.cx(this.jsInputStyles.input(this.theme), {\n [this.styles.absolute()]: !takeContentWidth,\n [this.jsInputStyles.inputFocus(this.theme)]: focused,\n [this.jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n </InputLayoutContext.Provider>\n </span>\n </FocusControlWrapper>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={this.cx(this.jsInputStyles.placeholder(this.theme), {\n [this.jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [this.jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n this.globalObject.document?.documentElement.classList.add(this.styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n this.globalObject.document?.documentElement.classList.remove(this.styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n this.node?.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n return;\n }\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (REACT_MAJOR_VERSION >= 18) {\n ReactDOM.flushSync(() => this.setState({ focused: true }));\n } else {\n this.setState({ focused: true });\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n removeAllSelections(this.globalObject);\n this.setState({ focused: false });\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n removeAllSelections(this.globalObject);\n this.setState({ focused: false });\n\n this.props.onBlur?.(e);\n };\n\n private handleHover = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }) });\n };\n\n private handleUnhover = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }) });\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private getSizeClassName = () => {\n switch (this.size) {\n case 'large':\n return this.cx({\n [this.jsInputStyles.sizeLarge(this.theme)]: true,\n });\n case 'medium':\n return this.cx({\n [this.jsInputStyles.sizeMedium(this.theme)]: true,\n });\n case 'small':\n default:\n return this.cx({\n [this.jsInputStyles.sizeSmall(this.theme)]: true,\n });\n }\n };\n}\n"]}
1
+ {"version":3,"file":"InputLikeText.js","sourceRoot":"","sources":["InputLikeText.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport debounce from 'lodash.debounce';\nimport React, { type JSX } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { InputDataTids, calculateClearCrossShowedState } from '../../components/Input/index.js';\nimport type { InputProps, InputState } from '../../components/Input/index.js';\nimport { getStyles as getJsInputStyles } from '../../components/Input/Input.styles.js';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside.js';\nimport {\n InputLayoutContext,\n InputLayoutContextDefault,\n} from '../../components/Input/InputLayout/InputLayoutContext.js';\nimport { blink } from '../../lib/blink.js';\nimport { isMobile } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { removeAllSelections, selectNodeContents } from '../../lib/dom/selectionHelpers.js';\nimport { MouseDrag } from '../../lib/events/MouseDrag.js';\nimport type { MouseDragEventHandler } from '../../lib/events/MouseDrag.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { REACT_MAJOR_VERSION } from '../../lib/react-is.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isNonNullable } from '../../lib/utils.js';\nimport { ClearCrossIcon } from '../ClearCrossIcon/ClearCrossIcon.js';\nimport type { CommonProps, CommonWrapperRestProps } from '../CommonWrapper/index.js';\nimport { CommonWrapper } from '../CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../FocusControlWrapper/index.js';\nimport { getStyles } from './InputLikeText.styles.js';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n onClearCrossClick?: () => void;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder' | 'hovered'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'showClearIcon'>>;\n\n@withRenderEnvironment\n@withSize\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, Omit<InputLikeTextState, 'isCounterVisible'>> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n public static displayName = 'InputLikeText';\n\n public static defaultProps: DefaultProps = {\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n private getClearCrossShowed = ({ focused, hovered }: { focused?: boolean; hovered?: boolean }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.props.children),\n focused,\n hovered,\n });\n };\n\n public state = {\n focused: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n }),\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private jsInputStyles!: ReturnType<typeof getJsInputStyles>;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private node: HTMLElement | null = null;\n private dragging = false;\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(): void {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur(): void {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n blink({\n el: this.node,\n blinkColor: this.theme.inputBlinkColor,\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n // Async call required for Firefox\n private selectNodeContentsDebounced = debounce(selectNodeContents, 0);\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n\n this.selectNodeContentsDebounced(node, start, end);\n };\n\n public componentDidMount() {\n if (this.node && !this.props.disabled) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n }\n\n public componentWillUnmount() {\n MouseDrag.stop(this.node);\n }\n\n public render() {\n this.jsInputStyles = getJsInputStyles(this.emotion);\n this.styles = getStyles(this.emotion);\n\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 private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n showClearIcon,\n onClearCrossClick,\n ...rest\n } = props;\n\n const { focused } = this.state;\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon\n data-tid={InputDataTids.clearCross}\n size={this.size}\n onFocus={(event) => event.stopPropagation()}\n onClick={onClearCrossClick}\n />\n ) : (\n rightIcon\n );\n };\n const leftSide = <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />;\n const rightSide = <InputLayoutAside icon={getRightIcon()} text={suffix} side=\"right\" />;\n\n const className = this.cx(this.styles.root(), this.jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [this.jsInputStyles.disabled(this.theme)]: !!disabled,\n [this.jsInputStyles.borderless()]: !!borderless,\n [this.jsInputStyles.focus(this.theme)]: focused,\n [this.jsInputStyles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [this.jsInputStyles.warning(this.theme)]: !!warning,\n [this.jsInputStyles.error(this.theme)]: !!error,\n [this.jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = this.cx(this.jsInputStyles.wrapper(), {\n [this.styles.userSelectContain()]: focused,\n });\n const size = this.size;\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <FocusControlWrapper disabled={disabled} onBlurWhenDisabled={this.resetFocus}>\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? -1 : 0}\n onFocus={this.handleFocus}\n onMouseEnter={this.handleHover}\n onMouseLeave={this.handleUnhover}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n role=\"textbox\"\n aria-disabled={disabled}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n >\n <InputLayoutContext.Provider value={context}>\n <input type=\"hidden\" data-tid={InputLikeTextDataTids.nativeInput} value={value} disabled={disabled} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={this.cx(this.jsInputStyles.input(this.theme), {\n [this.styles.absolute()]: !takeContentWidth,\n [this.jsInputStyles.inputFocus(this.theme)]: focused,\n [this.jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n </InputLayoutContext.Provider>\n </span>\n </FocusControlWrapper>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={this.cx(this.jsInputStyles.placeholder(this.theme), {\n [this.jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [this.jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n this.globalObject.document?.documentElement.classList.add(this.styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n this.globalObject.document?.documentElement.classList.remove(this.styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n this.node?.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n return;\n }\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (REACT_MAJOR_VERSION >= 18) {\n ReactDOM.flushSync(() => this.setState({ focused: true }));\n } else {\n this.setState({ focused: true });\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n removeAllSelections(this.globalObject);\n this.setState({ focused: false });\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n removeAllSelections(this.globalObject);\n this.setState({ focused: false });\n\n this.props.onBlur?.(e);\n };\n\n private handleHover = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }) });\n };\n\n private handleUnhover = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }) });\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private getSizeClassName = () => {\n switch (this.size) {\n case 'large':\n return this.cx({\n [this.jsInputStyles.sizeLarge(this.theme)]: true,\n });\n case 'medium':\n return this.cx({\n [this.jsInputStyles.sizeMedium(this.theme)]: true,\n });\n case 'small':\n default:\n return this.cx({\n [this.jsInputStyles.sizeSmall(this.theme)]: true,\n });\n }\n };\n}\n"]}