@skbkontur/react-ui 6.0.7 → 6.1.0

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 (178) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/components/Autocomplete/Autocomplete.js +15 -4
  3. package/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/components/Button/Button.d.ts +1 -1
  5. package/components/Button/Button.js +5 -4
  6. package/components/Button/Button.js.map +1 -1
  7. package/components/Calendar/CalendarDay.js +3 -0
  8. package/components/Calendar/CalendarDay.js.map +1 -1
  9. package/components/Calendar/DayCellView.styles.d.ts +1 -0
  10. package/components/Calendar/DayCellView.styles.js +6 -3
  11. package/components/Calendar/DayCellView.styles.js.map +1 -1
  12. package/components/DatePicker/MobilePicker.js +1 -1
  13. package/components/DatePicker/MobilePicker.js.map +1 -1
  14. package/components/DateRangePicker/DateRangePicker.js +1 -1
  15. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  16. package/components/FxInput/FxInputRestoreBtn.js +1 -1
  17. package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  18. package/components/Hint/Hint.js +10 -3
  19. package/components/Hint/Hint.js.map +1 -1
  20. package/components/Input/Input.d.ts +19 -1
  21. package/components/Input/Input.js +10 -3
  22. package/components/Input/Input.js.map +1 -1
  23. package/components/Input/InputLayout/InputLayout.d.ts +3 -1
  24. package/components/Input/InputLayout/InputLayout.js +5 -2
  25. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  26. package/components/Input/InputLayout/InputLayout.styles.d.ts +6 -0
  27. package/components/Input/InputLayout/InputLayout.styles.js +19 -1
  28. package/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  29. package/components/Input/InputLayout/InputLayoutAside.d.ts +2 -0
  30. package/components/Input/InputLayout/InputLayoutAside.js +2 -2
  31. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  32. package/components/Input/InputLayout/InputLayoutAsideCounter.d.ts +11 -0
  33. package/components/Input/InputLayout/InputLayoutAsideCounter.js +74 -0
  34. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -0
  35. package/components/Loader/Loader.d.ts +12 -4
  36. package/components/Loader/Loader.js +18 -7
  37. package/components/Loader/Loader.js.map +1 -1
  38. package/components/MenuItem/MenuItem.d.ts +2 -0
  39. package/components/MenuItem/MenuItem.js +32 -8
  40. package/components/MenuItem/MenuItem.js.map +1 -1
  41. package/components/MenuItem/MenuItem.styles.d.ts +3 -0
  42. package/components/MenuItem/MenuItem.styles.js +25 -16
  43. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  44. package/components/Select/Select.js +11 -1
  45. package/components/Select/Select.js.map +1 -1
  46. package/components/SingleToast/SingleToast.d.ts +9 -6
  47. package/components/SingleToast/SingleToast.js +9 -6
  48. package/components/SingleToast/SingleToast.js.map +1 -1
  49. package/components/Spinner/Spinner.d.ts +23 -33
  50. package/components/Spinner/Spinner.js +23 -19
  51. package/components/Spinner/Spinner.js.map +1 -1
  52. package/components/Spinner/Spinner.styles.d.ts +0 -3
  53. package/components/Spinner/Spinner.styles.js +6 -15
  54. package/components/Spinner/Spinner.styles.js.map +1 -1
  55. package/components/Switcher/Switcher.js +1 -0
  56. package/components/Switcher/Switcher.js.map +1 -1
  57. package/components/Textarea/Textarea.js +1 -1
  58. package/components/Textarea/Textarea.js.map +1 -1
  59. package/components/Textarea/Textarea.styles.d.ts +1 -0
  60. package/components/Textarea/Textarea.styles.js +7 -4
  61. package/components/Textarea/Textarea.styles.js.map +1 -1
  62. package/components/Textarea/TextareaCounter.d.ts +2 -0
  63. package/components/Textarea/TextareaCounter.js +22 -4
  64. package/components/Textarea/TextareaCounter.js.map +1 -1
  65. package/components/Toast/Toast.d.ts +13 -14
  66. package/components/Toast/Toast.js +3 -3
  67. package/components/Toast/Toast.js.map +1 -1
  68. package/components/Toast/ToastView.d.ts +8 -5
  69. package/components/Toast/ToastView.js +28 -8
  70. package/components/Toast/ToastView.js.map +1 -1
  71. package/components/Toast/ToastView.styles.d.ts +7 -0
  72. package/components/Toast/ToastView.styles.js +30 -8
  73. package/components/Toast/ToastView.styles.js.map +1 -1
  74. package/components/TokenInput/TokenInput.d.ts +18 -2
  75. package/components/TokenInput/TokenInput.js +236 -79
  76. package/components/TokenInput/TokenInput.js.map +1 -1
  77. package/components/TokenInput/TokenInput.styles.d.ts +1 -0
  78. package/components/TokenInput/TokenInput.styles.js +12 -9
  79. package/components/TokenInput/TokenInput.styles.js.map +1 -1
  80. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  81. package/components/TokenInput/TokenInputMenu.js +1 -1
  82. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  83. package/components/TokenInput/TokenInputMobileMenu.d.ts +25 -0
  84. package/components/TokenInput/TokenInputMobileMenu.js +40 -0
  85. package/components/TokenInput/TokenInputMobileMenu.js.map +1 -0
  86. package/components/TokenInput/TokenInputReducer.d.ts +2 -0
  87. package/components/TokenInput/TokenInputReducer.js +14 -0
  88. package/components/TokenInput/TokenInputReducer.js.map +1 -1
  89. package/components/Tooltip/Tooltip.d.ts +4 -0
  90. package/components/Tooltip/Tooltip.js +50 -11
  91. package/components/Tooltip/Tooltip.js.map +1 -1
  92. package/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
  93. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  94. package/internal/CommonWrapper/CommonWrapper.js +5 -0
  95. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  96. package/internal/CustomComboBox/ComboBoxMenu.js +1 -1
  97. package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  98. package/internal/CustomComboBox/ComboBoxView.js +13 -2
  99. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  100. package/internal/InputLikeText/InputLikeText.d.ts +1 -1
  101. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  102. package/internal/Menu/Menu.js +3 -0
  103. package/internal/Menu/Menu.js.map +1 -1
  104. package/internal/Menu/Menu.styles.d.ts +1 -0
  105. package/internal/Menu/Menu.styles.js +13 -10
  106. package/internal/Menu/Menu.styles.js.map +1 -1
  107. package/internal/MenuMessage/MenuMessage.js +17 -1
  108. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  109. package/internal/MenuMessage/MenuMessage.styles.d.ts +3 -0
  110. package/internal/MenuMessage/MenuMessage.styles.js +13 -4
  111. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  112. package/internal/MobilePopup/MobilePopup.d.ts +8 -0
  113. package/internal/MobilePopup/MobilePopup.js +34 -11
  114. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  115. package/internal/MobilePopup/MobilePopup.styles.d.ts +7 -0
  116. package/internal/MobilePopup/MobilePopup.styles.js +34 -10
  117. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  118. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
  119. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +18 -1
  120. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  121. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
  122. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +14 -4
  123. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
  124. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +4 -0
  125. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +48 -11
  126. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  127. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +6 -0
  128. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +28 -8
  129. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  130. package/internal/Popup/Popup.d.ts +13 -9
  131. package/internal/Popup/Popup.js +130 -53
  132. package/internal/Popup/Popup.js.map +1 -1
  133. package/internal/Popup/Popup.styles.js +1 -1
  134. package/internal/Popup/Popup.styles.js.map +1 -1
  135. package/internal/Popup/PopupHelper.d.ts +8 -0
  136. package/internal/Popup/PopupHelper.js +39 -0
  137. package/internal/Popup/PopupHelper.js.map +1 -1
  138. package/internal/Popup/PopupPin.d.ts +19 -4
  139. package/internal/Popup/PopupPin.js +109 -8
  140. package/internal/Popup/PopupPin.js.map +1 -1
  141. package/internal/Popup/PopupPin.styles.d.ts +2 -0
  142. package/internal/Popup/PopupPin.styles.js +11 -5
  143. package/internal/Popup/PopupPin.styles.js.map +1 -1
  144. package/internal/PopupMenu/PopupMenu.d.ts +2 -1
  145. package/internal/PopupMenu/PopupMenu.js +21 -18
  146. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  147. package/internal/SpinnerIcon/SpinnerIcon.d.ts +3 -3
  148. package/internal/SpinnerIcon/SpinnerIcon.js +4 -4
  149. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  150. package/internal/icons2022/LoadingIcon.js +1 -1
  151. package/internal/icons2022/LoadingIcon.js.map +1 -1
  152. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.d.ts +2 -0
  153. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js +21 -0
  154. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js.map +1 -0
  155. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.d.ts +2 -0
  156. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js +21 -0
  157. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js.map +1 -0
  158. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.d.ts +2 -0
  159. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js +21 -0
  160. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js.map +1 -0
  161. package/internal/themes/BasicTheme.d.ts +83 -4
  162. package/internal/themes/BasicTheme.js +187 -6
  163. package/internal/themes/BasicTheme.js.map +1 -1
  164. package/internal/themes/DarkTheme6_1.d.ts +1 -0
  165. package/internal/themes/DarkTheme6_1.js +41 -0
  166. package/internal/themes/DarkTheme6_1.js.map +1 -0
  167. package/internal/themes/LightTheme6_1.d.ts +1 -0
  168. package/internal/themes/LightTheme6_1.js +39 -0
  169. package/internal/themes/LightTheme6_1.js.map +1 -0
  170. package/lib/getMenuPositions.js +11 -11
  171. package/lib/getMenuPositions.js.map +1 -1
  172. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  173. package/lib/theming/themes/DarkTheme.js +3 -1
  174. package/lib/theming/themes/DarkTheme.js.map +1 -1
  175. package/lib/theming/themes/LightTheme.d.ts +1 -0
  176. package/lib/theming/themes/LightTheme.js +3 -1
  177. package/lib/theming/themes/LightTheme.js.map +1 -1
  178. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommonWrapper.js","sourceRoot":"","sources":["../../../internal/CommonWrapper/CommonWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef.js';\nimport { getElementRef } from '../../lib/getElementRef.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TRootNodeSubscription, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, isInstanceWithRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport { isFunction, isRefableElement } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { CommonProps, CommonPropsRootNodeRef, CommonWrapperProps } from './types.js';\nimport { extractCommonProps } from './utils/extractCommonProps.js';\nimport { getCommonVisualStateDataAttributes } from './utils/getCommonVisualStateDataAttributes.js';\n\nexport type CommonPropsWithRootNodeRef = CommonProps & CommonPropsRootNodeRef;\n\n@withRenderEnvironment\n@rootNode\nexport class CommonWrapper<P extends CommonPropsWithRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n public static __KONTUR_REACT_UI__ = 'CommonWrapper';\n public static displayName = 'CommonWrapper';\n\n private cx!: Emotion['cx'];\n private child: React.ReactNode;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n\n const getChildProps = (child: React.ReactElement<CommonProps & React.RefAttributes<any>>) => {\n const childProps: Record<string, unknown> = {\n ...getCommonVisualStateDataAttributes(rest),\n ...dataProps,\n };\n\n isRefableElement(child) && (childProps.ref = this.ref);\n\n const classNames: string = this.cx(child.props.className, className);\n classNames && (childProps.className = classNames);\n\n const styles: React.CSSProperties = { ...child.props.style, ...style };\n Object.keys(styles).length && (childProps.style = styles);\n\n return childProps;\n };\n\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, getChildProps(this.child))\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change,\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = getElementRef(this.child as React.ReactElement);\n if (typeof originalRef === 'function' || (originalRef && typeof originalRef === 'object')) {\n originalRef && callChildRef(originalRef, instance);\n }\n };\n}\n"]}
1
+ {"version":3,"file":"CommonWrapper.js","sourceRoot":"","sources":["../../../internal/CommonWrapper/CommonWrapper.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AAMnG;IAAyE,iCAExE;IAFD;;QAUU,0BAAoB,GAAoC,IAAI,CAAC;QAiC7D,SAAG,GAAG,UAAC,QAAuC;;YACpD,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3B,MAAA,MAAA,KAAI,CAAC,KAAK,EAAC,WAAW,mDAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEhD,yCAAyC;YACzC,iDAAiD;YACjD,MAAA,KAAI,CAAC,oBAAoB,0CAAE,MAAM,EAAE,CAAC;YACpC,KAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAEjC,IAAI,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,KAAI,CAAC,oBAAoB,GAAG,MAAA,QAAQ,CAAC,yBAAyB,yDAAG,UAAC,IAAI;;oBACpE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACvB,MAAA,MAAA,KAAI,CAAC,KAAK,EAAC,WAAW,mDAAG,IAAI,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAM,WAAW,GAAG,aAAa,CAAC,KAAI,CAAC,KAA2B,CAAC,CAAC;YACpE,IAAI,OAAO,WAAW,KAAK,UAAU,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC1F,WAAW,IAAI,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC;;IACJ,CAAC;IApDC,8BAAM,GAAN;QAAA,iBA6BC;QA5BO,IAAA,KAA2E,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,0BAAtG,SAAS,eAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,WAAW,iBAAA,EAAK,SAAS,cAAvD,iDAAyD,CAAF,EAAS,IAAI,cAAT,EAAW,CAAkC,CAAC;QAChH,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE9D,uCAAuC;QACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAC;QACzD,CAAC;QAED,IAAM,aAAa,GAAG,UAAC,KAAiE;YACtF,IAAM,UAAU,yBACX,kCAAkC,CAAC,IAAI,CAAC,GACxC,SAAS,CACb,CAAC;YAEF,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAI,CAAC,GAAG,CAAC,CAAC;YAEvD,IAAM,UAAU,GAAW,KAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrE,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;YAElD,IAAM,MAAM,yBAA6B,KAAK,CAAC,KAAK,CAAC,KAAK,GAAK,KAAK,CAAE,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;YAE1D,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;QAEF,OAAO,KAAK,CAAC,cAAc,CAAyC,IAAI,CAAC,KAAK,CAAC;YAC7E,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACjB,CAAC;IAtCa,iCAAmB,GAAG,eAAe,AAAlB,CAAmB;IACtC,yBAAW,GAAG,eAAe,AAAlB,CAAmB;IAJjC,aAAa;QAFzB,qBAAqB;QACrB,QAAQ;OACI,aAAa,CAgEzB;IAAD,oBAAC;CAAA,AAhED,CAAyE,KAAK,CAAC,SAAS,GAgEvF;SAhEY,aAAa","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef.js';\nimport { getElementRef } from '../../lib/getElementRef.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TRootNodeSubscription, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, isInstanceWithRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport { isFunction, isRefableElement } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { CommonProps, CommonPropsRootNodeRef, CommonWrapperProps } from './types.js';\nimport { extractCommonProps } from './utils/extractCommonProps.js';\nimport { getCommonVisualStateDataAttributes } from './utils/getCommonVisualStateDataAttributes.js';\n\nexport type CommonPropsWithRootNodeRef = CommonProps & CommonPropsRootNodeRef;\n\n@withRenderEnvironment\n@rootNode\nexport class CommonWrapper<P extends CommonPropsWithRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n public static __KONTUR_REACT_UI__ = 'CommonWrapper';\n public static displayName = 'CommonWrapper';\n\n private cx!: Emotion['cx'];\n private child: React.ReactNode;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n\n // TODO: replace count with only in 7.0\n if (React.Children.count(this.child) > 1) {\n warning(false, 'CommonWrapper expects a single child');\n }\n\n const getChildProps = (child: React.ReactElement<CommonProps & React.RefAttributes<any>>) => {\n const childProps: Record<string, unknown> = {\n ...getCommonVisualStateDataAttributes(rest),\n ...dataProps,\n };\n\n isRefableElement(child) && (childProps.ref = this.ref);\n\n const classNames: string = this.cx(child.props.className, className);\n classNames && (childProps.className = classNames);\n\n const styles: React.CSSProperties = { ...child.props.style, ...style };\n Object.keys(styles).length && (childProps.style = styles);\n\n return childProps;\n };\n\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, getChildProps(this.child))\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change,\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = getElementRef(this.child as React.ReactElement);\n if (typeof originalRef === 'function' || (originalRef && typeof originalRef === 'object')) {\n originalRef && callChildRef(originalRef, instance);\n }\n };\n}\n"]}
@@ -83,7 +83,7 @@ var ComboBoxMenu = /** @class */ (function (_super) {
83
83
  if (loading && (!items || !items.length)) {
84
84
  return (React.createElement(Menu, { maxHeight: maxHeight, ref: refMenu, hasMargin: this.props.hasMargin, disableScrollContainer: isMobile, id: this.props.menuId, "data-tid": "".concat(ComboBoxMenuDataTids.loading, " ").concat(MenuDataTids.root) },
85
85
  React.createElement(MenuMessage, { size: this.props.size, as: "div" },
86
- React.createElement(Spinner, { type: "mini", dimmed: true }))));
86
+ React.createElement(Spinner, { size: "small", dimmed: true }))));
87
87
  }
88
88
  if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {
89
89
  return (React.createElement(Menu, { ref: refMenu, maxHeight: maxHeight, hasMargin: this.props.hasMargin, disableScrollContainer: isMobile, id: this.props.menuId, "data-tid": "".concat(ComboBoxMenuDataTids.failed, " ").concat(MenuDataTids.root) },
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxMenu.js","sourceRoot":"","sources":["../../../internal/CustomComboBox/ComboBoxMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox/index.js';\nimport { MenuFooter } from '../../components/MenuFooter/index.js';\nimport { MenuItem, isMenuItem } from '../../components/MenuItem/index.js';\nimport type { MenuItemState } from '../../components/MenuItem/index.js';\nimport { MenuSeparator } from '../../components/MenuSeparator/index.js';\nimport { Spinner } from '../../components/Spinner/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { locale } from '../../lib/locale/decorators.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 { isFunction, isNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { Menu, MenuDataTids } from '../Menu/index.js';\nimport { MenuMessage } from '../MenuMessage/index.js';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes.js';\nimport type { ComboBoxLocale } from './locale/index.js';\nimport { CustomComboBoxLocaleHelper } from './locale/index.js';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<Array<ComboBoxExtendedItem<T>>>;\n totalCount?: number;\n loading?: boolean;\n hasMargin?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType;\n onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n menuId?: string;\n size?: SizeProp;\n preventIconsOffset?: boolean;\n}\n\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\ntype DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n public static displayName = 'ComboBoxMenu';\n\n public static defaultProps: DefaultProps<unknown> = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private getProps = createPropsGetter(ComboBoxMenu.defaultProps);\n\n private readonly locale!: ComboBoxLocale;\n\n private theme!: Theme;\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n isMobile,\n } = this.props;\n\n const requestStatus = this.getProps().requestStatus;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu\n maxHeight={maxHeight}\n ref={refMenu}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.loading} ${MenuDataTids.root}`}\n >\n <MenuMessage size={this.props.size} as=\"div\">\n <Spinner type=\"mini\" dimmed />\n </MenuMessage>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu\n ref={refMenu}\n maxHeight={maxHeight}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.failed} ${MenuDataTids.root}`}\n >\n <MenuMessage size={this.props.size} key=\"message\">\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuMessage>\n <MenuItem onClick={this.getProps().repeatRequest} size={this.props.size} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu\n id={this.props.menuId}\n hasMargin={this.props.hasMargin}\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n preventIconsOffset={this.props.preventIconsOffset}\n >\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu\n id={this.props.menuId}\n hasMargin={this.props.hasMargin}\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n >\n <MenuMessage size={this.props.size} data-tid={ComboBoxMenuDataTids.notFound}>\n {notFoundValue}\n </MenuMessage>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n const menuItems = renderedItems?.filter((item) => {\n return isMenuItem(item);\n });\n const countItems = menuItems?.length;\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuFooter size={this.props.size} key=\"total\">\n <div>{renderTotalCount(countItems, totalCount)}</div>\n </MenuFooter>\n );\n }\n\n return (\n <Menu\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.items} ${MenuDataTids.root}`}\n ref={refMenu}\n maxHeight={maxHeight}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n preventIconsOffset={this.props.preventIconsOffset}\n >\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: ComboBoxExtendedItem<T>, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange, itemWrapper } = this.props;\n\n if (!isSimpleItem<T>(item)) {\n const element = isFunction(item) ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n component={itemWrapper?.(item)}\n data-tid={ComboBoxMenuDataTids.item}\n onClick={() => onValueChange(item)}\n key={index}\n size={this.props.size}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n\nfunction isSimpleItem<T>(item: ComboBoxExtendedItem<T>): item is T {\n return !isFunction(item) && !React.isValidElement(item);\n}\n"]}
1
+ {"version":3,"file":"ComboBoxMenu.js","sourceRoot":"","sources":["../../../internal/CustomComboBox/ComboBoxMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox/index.js';\nimport { MenuFooter } from '../../components/MenuFooter/index.js';\nimport { MenuItem, isMenuItem } from '../../components/MenuItem/index.js';\nimport type { MenuItemState } from '../../components/MenuItem/index.js';\nimport { MenuSeparator } from '../../components/MenuSeparator/index.js';\nimport { Spinner } from '../../components/Spinner/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { locale } from '../../lib/locale/decorators.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 { isFunction, isNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { Menu, MenuDataTids } from '../Menu/index.js';\nimport { MenuMessage } from '../MenuMessage/index.js';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes.js';\nimport type { ComboBoxLocale } from './locale/index.js';\nimport { CustomComboBoxLocaleHelper } from './locale/index.js';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<Array<ComboBoxExtendedItem<T>>>;\n totalCount?: number;\n loading?: boolean;\n hasMargin?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType;\n onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n menuId?: string;\n size?: SizeProp;\n preventIconsOffset?: boolean;\n}\n\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\ntype DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n public static displayName = 'ComboBoxMenu';\n\n public static defaultProps: DefaultProps<unknown> = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private getProps = createPropsGetter(ComboBoxMenu.defaultProps);\n\n private readonly locale!: ComboBoxLocale;\n\n private theme!: Theme;\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n isMobile,\n } = this.props;\n\n const requestStatus = this.getProps().requestStatus;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu\n maxHeight={maxHeight}\n ref={refMenu}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.loading} ${MenuDataTids.root}`}\n >\n <MenuMessage size={this.props.size} as=\"div\">\n <Spinner size=\"small\" dimmed />\n </MenuMessage>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu\n ref={refMenu}\n maxHeight={maxHeight}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.failed} ${MenuDataTids.root}`}\n >\n <MenuMessage size={this.props.size} key=\"message\">\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuMessage>\n <MenuItem onClick={this.getProps().repeatRequest} size={this.props.size} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu\n id={this.props.menuId}\n hasMargin={this.props.hasMargin}\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n preventIconsOffset={this.props.preventIconsOffset}\n >\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu\n id={this.props.menuId}\n hasMargin={this.props.hasMargin}\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n >\n <MenuMessage size={this.props.size} data-tid={ComboBoxMenuDataTids.notFound}>\n {notFoundValue}\n </MenuMessage>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n const menuItems = renderedItems?.filter((item) => {\n return isMenuItem(item);\n });\n const countItems = menuItems?.length;\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuFooter size={this.props.size} key=\"total\">\n <div>{renderTotalCount(countItems, totalCount)}</div>\n </MenuFooter>\n );\n }\n\n return (\n <Menu\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.items} ${MenuDataTids.root}`}\n ref={refMenu}\n maxHeight={maxHeight}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n preventIconsOffset={this.props.preventIconsOffset}\n >\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: ComboBoxExtendedItem<T>, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange, itemWrapper } = this.props;\n\n if (!isSimpleItem<T>(item)) {\n const element = isFunction(item) ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n component={itemWrapper?.(item)}\n data-tid={ComboBoxMenuDataTids.item}\n onClick={() => onValueChange(item)}\n key={index}\n size={this.props.size}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n\nfunction isSimpleItem<T>(item: ComboBoxExtendedItem<T>): item is T {\n return !isFunction(item) && !React.isValidElement(item);\n}\n"]}
@@ -42,6 +42,7 @@ import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
42
42
  import { getRootNode, rootNode } from '../../lib/rootNode/index.js';
43
43
  import { withSize } from '../../lib/size/SizeDecorator.js';
44
44
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
45
+ import { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';
45
46
  import { getRandomID, isNonNullable } from '../../lib/utils.js';
46
47
  import { CommonWrapper } from '../CommonWrapper/index.js';
47
48
  import { LoadingIcon } from '../icons2022/LoadingIcon.js';
@@ -90,6 +91,7 @@ var ComboBoxView = /** @class */ (function (_super) {
90
91
  if (loading && items && !!items.length) {
91
92
  rightIcon = _this.renderSpinner();
92
93
  }
94
+ var themeGTE6_1 = isThemeGTE(_this.theme, '6.1');
93
95
  var inputProps = {
94
96
  autoComplete: 'off',
95
97
  autoFocus: true,
@@ -100,8 +102,17 @@ var ComboBoxView = /** @class */ (function (_super) {
100
102
  value: textValue,
101
103
  placeholder: placeholder,
102
104
  rightIcon: rightIcon,
105
+ size: themeGTE6_1 ? _this.size : undefined,
103
106
  };
104
- return (opened && (React.createElement(MobilePopup, { headerChildComponent: React.createElement(Input, __assign({ ref: _this.refMobileInput }, inputProps)), onCloseRequest: _this.props.onMobileClose, opened: true }, _this.getComboBoxMenu())));
107
+ var themeDependantProps = themeGTE6_1
108
+ ? {
109
+ footerChildComponent: React.createElement(Input, __assign({ ref: _this.refMobileInput }, inputProps)),
110
+ size: _this.size,
111
+ }
112
+ : {
113
+ headerChildComponent: React.createElement(Input, __assign({ ref: _this.refMobileInput }, inputProps)),
114
+ };
115
+ return (opened && (React.createElement(MobilePopup, __assign({}, themeDependantProps, { onCloseRequest: _this.props.onMobileClose, opened: true }), _this.getComboBoxMenu())));
105
116
  };
106
117
  _this.getParent = function () {
107
118
  return getRootNode(_this);
@@ -130,7 +141,7 @@ var ComboBoxView = /** @class */ (function (_super) {
130
141
  _this.input = input;
131
142
  };
132
143
  _this.renderSpinner = function () { return (React.createElement("span", { className: _this.styles.spinnerWrapper() },
133
- React.createElement(Spinner, { type: "mini", caption: "", dimmed: true }))); };
144
+ React.createElement(Spinner, { size: "small", caption: "", dimmed: true }))); };
134
145
  _this.getRightIcon = function () {
135
146
  var _a = _this.props, loading = _a.loading, items = _a.items, drawArrow = _a.drawArrow, rightIcon = _a.rightIcon;
136
147
  var size = _this.size;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxView.js","sourceRoot":"","sources":["../../../internal/CustomComboBox/ComboBoxView.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { ComboBoxExtendedItem, ComboBoxViewMode } from '../../components/ComboBox/index.js';\nimport type { InputIconType, InputProps, ShowClearIcon } from '../../components/Input/index.js';\nimport { Input } from '../../components/Input/index.js';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../../components/MaskedInput/index.js';\nimport { MaskedInput } from '../../components/MaskedInput/index.js';\nimport { getStyles as getMaskedInputStyles } from '../../components/MaskedInput/MaskedInput.styles.js';\nimport type { MenuItemState } from '../../components/MenuItem/index.js';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { Spinner } from '../../components/Spinner/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.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 } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getRandomID, isNonNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { CommonProps } from '../CommonWrapper/index.js';\nimport { CommonWrapper } from '../CommonWrapper/index.js';\nimport { LoadingIcon } from '../icons2022/LoadingIcon.js';\nimport { InputLikeText } from '../InputLikeText/index.js';\nimport { InternalTextareaWithLayout } from '../InternalTextareaWithLayout/InternalTextareaWithLayout.js';\nimport type { Menu } from '../Menu/index.js';\nimport { MobilePopup } from '../MobilePopup/index.js';\nimport { Popup } from '../Popup/index.js';\nimport { RenderLayer } from '../RenderLayer/index.js';\nimport { ZIndex } from '../ZIndex/index.js';\nimport { ArrowDownIcon } from './ArrowDownIcon.js';\nimport { ComboBoxMenu } from './ComboBoxMenu.js';\nimport { CustomComboBoxDataTids } from './CustomComboBox.js';\nimport { getStyles } from './CustomComboBox.styles.js';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes.js';\nimport { getComboBoxTheme } from './getComboBoxTheme.js';\n\ninterface ComboBoxViewProps<T>\n extends\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>> {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n editing?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n items?: Nullable<Array<ComboBoxExtendedItem<T>>>;\n loading?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n opened?: boolean;\n drawArrow?: boolean;\n placeholder?: string;\n size?: SizeProp;\n textValue?: string;\n totalCount?: number;\n value?: Nullable<T>;\n showClearIcon?: ShowClearIcon;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxLength?: number;\n maxMenuHeight?: number | string;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n onValueChange?: (value: T) => void;\n onClickOutside?: (e: Event) => void;\n onFocus?: () => void;\n onMobileClose?: () => void;\n onFocusOutside?: () => void;\n onInputBlur?: () => void;\n onInputValueChange?: (value: string) => void;\n onInputFocus?: () => void;\n onInputClick?: () => void;\n onClearCrossClick?: () => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderValue?: (item: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n refInput?: (input: Nullable<Input | InternalTextareaWithLayout>) => void;\n refMenu?: (menu: Nullable<Menu>) => void;\n refInputLikeText?: (inputLikeText: Nullable<InputLikeText>) => void;\n viewMode?: ComboBoxViewMode;\n maxRows?: number;\n preventIconsOffset?: boolean;\n}\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxViewProps<T>,\n | 'renderItem'\n | 'renderValue'\n | 'renderAddButton'\n | 'repeatRequest'\n | 'requestStatus'\n | 'onClickOutside'\n | 'onFocusOutside'\n | 'width'\n | 'showClearIcon'\n >\n>;\n\nexport const ComboBoxViewIds = {\n menu: 'ComboBoxView__menu',\n};\n\ninterface ComboBoxViewState {\n anchorElement: Nullable<Element>;\n clearCrossShowed: boolean;\n}\n\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@withSize\nexport class ComboBoxView<T> extends React.Component<ComboBoxViewProps<T>, ComboBoxViewState> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxView';\n public static displayName = 'ComboBoxView';\n\n public static defaultProps: DefaultProps<unknown> = {\n renderItem: (item: any) => item,\n renderValue: (item: any) => item,\n renderAddButton: () => null,\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n onClickOutside: () => {\n /**/\n },\n onFocusOutside: () => {\n /**/\n },\n width: 250,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBoxView.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private input: Nullable<Input | InternalTextareaWithLayout>;\n private setRootNode!: TSetRootNode;\n private mobileInput: Nullable<Input> = null;\n private isMobileLayout!: boolean;\n private dropdownContainerRef = React.createRef<Popup>();\n private styles!: ReturnType<typeof getStyles>;\n private maskedInputStyles!: ReturnType<typeof getMaskedInputStyles>;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private theme!: Theme;\n private size!: SizeProp;\n private menuId = ComboBoxViewIds.menu + getRandomID();\n\n public state: ComboBoxViewState = {\n anchorElement: null,\n clearCrossShowed: this.props.showClearIcon === 'always' && !!this.props.value?.toString(),\n };\n\n public componentDidMount() {\n this.updateAnchorElement();\n\n if (this.props.autoFocus && this.props.onFocus) {\n this.props.onFocus();\n }\n }\n\n updateAnchorElement() {\n const parent = this.getParent();\n const anchorElement = this.state.anchorElement;\n\n if (anchorElement !== parent) {\n this.setState({\n anchorElement: parent,\n });\n }\n }\n\n public componentDidUpdate(prevProps: ComboBoxViewProps<T>) {\n const { input, props } = this;\n\n this.updateAnchorElement();\n\n if (props.editing && !prevProps.editing && input) {\n input.focus();\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n this.maskedInputStyles = getMaskedInputStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getComboBoxTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { onMouseEnter, onMouseLeave, onMouseOver, opened } = this.props;\n const { onClickOutside, onFocusOutside, width } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n const input = this.renderInput();\n\n return (\n <CommonWrapper {...this.props}>\n <RenderLayer onClickOutside={onClickOutside} onFocusOutside={onFocusOutside} active={opened}>\n <span\n data-tid={CustomComboBoxDataTids.comboBoxView}\n style={{ width }}\n className={this.styles.root()}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n ref={this.setRootNode}\n >\n {input}\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getComboBoxMenu = () => {\n const {\n items,\n loading,\n opened,\n refMenu,\n maxMenuHeight,\n renderTotalCount,\n renderNotFound,\n totalCount,\n preventIconsOffset,\n } = this.props;\n\n const { repeatRequest, requestStatus, renderItem, itemWrapper } = this.getProps();\n return (\n <ComboBoxMenu\n hasMargin={false}\n menuId={this.menuId}\n items={items}\n loading={loading}\n maxMenuHeight={maxMenuHeight}\n onValueChange={this.handleItemSelect}\n opened={opened}\n refMenu={refMenu}\n renderTotalCount={renderTotalCount}\n renderItem={renderItem}\n renderNotFound={renderNotFound}\n itemWrapper={itemWrapper}\n renderAddButton={this.renderAddButton}\n repeatRequest={repeatRequest}\n requestStatus={requestStatus}\n totalCount={totalCount}\n isMobile={this.isMobileLayout}\n size={this.size}\n preventIconsOffset={preventIconsOffset}\n />\n );\n };\n\n private renderMenu = () => {\n const { opened, menuPos, menuAlign } = this.getProps();\n const { anchorElement } = this.state;\n\n return (\n opened &&\n anchorElement && (\n <Popup\n opened\n hasShadow\n tryBestFallbackPosition\n minWidth=\"100%\"\n anchorElement={anchorElement}\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n ref={this.dropdownContainerRef}\n >\n {this.getComboBoxMenu()}\n </Popup>\n )\n );\n };\n\n private renderMobileMenu = () => {\n let rightIcon = null;\n\n const { loading, items, opened, onFocus, onInputValueChange, onInputKeyDown, placeholder, textValue } = this.props;\n if (loading && items && !!items.length) {\n rightIcon = this.renderSpinner();\n }\n\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onFocus,\n onValueChange: onInputValueChange,\n onKeyDown: onInputKeyDown,\n value: textValue,\n placeholder,\n rightIcon,\n };\n\n return (\n opened && (\n <MobilePopup\n headerChildComponent={<Input ref={this.refMobileInput} {...inputProps} />}\n onCloseRequest={this.props.onMobileClose}\n opened\n >\n {this.getComboBoxMenu()}\n </MobilePopup>\n )\n );\n };\n\n private getParent = () => {\n return getRootNode(this);\n };\n\n private renderAddButton = (): React.ReactNode => {\n return this.getProps().renderAddButton(this.props.textValue);\n };\n\n private renderInput(): React.ReactNode {\n const isMobile = this.isMobileLayout;\n\n const {\n id,\n align,\n borderless,\n disabled,\n editing,\n error,\n onFocus,\n onInputBlur,\n onInputValueChange,\n onInputFocus,\n onInputClick,\n onInputKeyDown,\n placeholder,\n textValue,\n value,\n warning,\n refInputLikeText,\n leftIcon,\n inputMode,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n showClearIcon,\n mask,\n maskChar,\n formatChars,\n onBeforePasteInMask,\n } = this.props;\n\n const rightIcon = this.getRightIcon();\n\n const inputProps = {\n id,\n align,\n borderless,\n disabled,\n error,\n maxLength: this.props.maxLength,\n onBlur: isMobile ? undefined : onInputBlur,\n onValueChange: onInputValueChange,\n onFocus: onInputFocus,\n onClick: isMobile ? this.handleMobileFocus : onInputClick,\n leftIcon,\n rightIcon,\n value: textValue || '',\n onKeyDown: onInputKeyDown,\n placeholder,\n width: '100%',\n ref: this.refInput,\n warning,\n inputMode,\n autoComplete: 'off',\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': this.menuId,\n 'aria-label': ariaLabel,\n showClearIcon,\n size: this.size,\n };\n\n const multilineTextareaProps = {\n autoResize: true,\n rows: 1,\n extraRow: false,\n maxRows: this.props.maxRows,\n };\n\n if (this.props.viewMode === 'multiline' && !mask) {\n return <InternalTextareaWithLayout {...inputProps} {...multilineTextareaProps} />;\n }\n\n if (editing) {\n if (mask) {\n return (\n <MaskedInput\n {...inputProps}\n type=\"text\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n onBeforePasteValue={onBeforePasteInMask}\n />\n );\n }\n\n if (this.props.viewMode === 'multiline-editing') {\n return <InternalTextareaWithLayout {...inputProps} {...multilineTextareaProps} />;\n }\n\n return <Input {...inputProps} />;\n }\n\n const { renderValue } = this.getProps();\n return (\n <InputLikeText\n id={id}\n align={align}\n borderless={borderless}\n error={error}\n onFocus={onFocus}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n disabled={disabled}\n warning={warning}\n placeholder={placeholder}\n size={this.size}\n width=\"100%\"\n ref={refInputLikeText}\n aria-describedby={ariaDescribedby}\n aria-controls={this.menuId}\n showClearIcon={showClearIcon}\n className={this.cx(mask && this.maskedInputStyles.root(this.theme))}\n onClearCrossClick={this.props.onClearCrossClick}\n >\n {isNonNullable(value) && renderValue ? renderValue(value) : null}\n </InputLikeText>\n );\n }\n\n private handleMobileFocus = () => {\n this.props.onInputClick?.();\n\n this.mobileInput?.focus();\n };\n\n private handleItemSelect = (item: T) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(item);\n }\n\n if (this.isMobileLayout) {\n this.props.onMobileClose?.();\n }\n };\n\n private refInput = (input: Nullable<Input | InternalTextareaWithLayout>) => {\n if (this.props.refInput) {\n this.props.refInput(input);\n }\n this.input = input;\n };\n\n private renderSpinner = () => (\n <span className={this.styles.spinnerWrapper()}>\n <Spinner type=\"mini\" caption=\"\" dimmed />\n </span>\n );\n\n private getRightIcon = () => {\n const { loading, items, drawArrow, rightIcon } = this.props;\n const size = this.size;\n\n if (loading && items && !!items.length) {\n return <LoadingIcon size={size} />;\n }\n\n if (rightIcon || drawArrow) {\n return rightIcon || <ArrowDownIcon size={size} />;\n }\n\n return null;\n };\n\n private refMobileInput = (input: Nullable<Input>) => {\n this.mobileInput = input;\n };\n}\n"]}
1
+ {"version":3,"file":"ComboBoxView.js","sourceRoot":"","sources":["../../../internal/CustomComboBox/ComboBoxView.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { ComboBoxExtendedItem, ComboBoxViewMode } from '../../components/ComboBox/index.js';\nimport type { InputIconType, InputProps, ShowClearIcon } from '../../components/Input/index.js';\nimport { Input } from '../../components/Input/index.js';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../../components/MaskedInput/index.js';\nimport { MaskedInput } from '../../components/MaskedInput/index.js';\nimport { getStyles as getMaskedInputStyles } from '../../components/MaskedInput/MaskedInput.styles.js';\nimport type { MenuItemState } from '../../components/MenuItem/index.js';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { Spinner } from '../../components/Spinner/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.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 } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getRandomID, isNonNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { CommonProps } from '../CommonWrapper/index.js';\nimport { CommonWrapper } from '../CommonWrapper/index.js';\nimport { LoadingIcon } from '../icons2022/LoadingIcon.js';\nimport { InputLikeText } from '../InputLikeText/index.js';\nimport { InternalTextareaWithLayout } from '../InternalTextareaWithLayout/InternalTextareaWithLayout.js';\nimport type { Menu } from '../Menu/index.js';\nimport { MobilePopup } from '../MobilePopup/index.js';\nimport { Popup } from '../Popup/index.js';\nimport { RenderLayer } from '../RenderLayer/index.js';\nimport { ZIndex } from '../ZIndex/index.js';\nimport { ArrowDownIcon } from './ArrowDownIcon.js';\nimport { ComboBoxMenu } from './ComboBoxMenu.js';\nimport { CustomComboBoxDataTids } from './CustomComboBox.js';\nimport { getStyles } from './CustomComboBox.styles.js';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes.js';\nimport { getComboBoxTheme } from './getComboBoxTheme.js';\n\ninterface ComboBoxViewProps<T>\n extends\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>> {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n editing?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n items?: Nullable<Array<ComboBoxExtendedItem<T>>>;\n loading?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n opened?: boolean;\n drawArrow?: boolean;\n placeholder?: string;\n size?: SizeProp;\n textValue?: string;\n totalCount?: number;\n value?: Nullable<T>;\n showClearIcon?: ShowClearIcon;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxLength?: number;\n maxMenuHeight?: number | string;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n onValueChange?: (value: T) => void;\n onClickOutside?: (e: Event) => void;\n onFocus?: () => void;\n onMobileClose?: () => void;\n onFocusOutside?: () => void;\n onInputBlur?: () => void;\n onInputValueChange?: (value: string) => void;\n onInputFocus?: () => void;\n onInputClick?: () => void;\n onClearCrossClick?: () => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderValue?: (item: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n refInput?: (input: Nullable<Input | InternalTextareaWithLayout>) => void;\n refMenu?: (menu: Nullable<Menu>) => void;\n refInputLikeText?: (inputLikeText: Nullable<InputLikeText>) => void;\n viewMode?: ComboBoxViewMode;\n maxRows?: number;\n preventIconsOffset?: boolean;\n}\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxViewProps<T>,\n | 'renderItem'\n | 'renderValue'\n | 'renderAddButton'\n | 'repeatRequest'\n | 'requestStatus'\n | 'onClickOutside'\n | 'onFocusOutside'\n | 'width'\n | 'showClearIcon'\n >\n>;\n\nexport const ComboBoxViewIds = {\n menu: 'ComboBoxView__menu',\n};\n\ninterface ComboBoxViewState {\n anchorElement: Nullable<Element>;\n clearCrossShowed: boolean;\n}\n\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@withSize\nexport class ComboBoxView<T> extends React.Component<ComboBoxViewProps<T>, ComboBoxViewState> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxView';\n public static displayName = 'ComboBoxView';\n\n public static defaultProps: DefaultProps<unknown> = {\n renderItem: (item: any) => item,\n renderValue: (item: any) => item,\n renderAddButton: () => null,\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n onClickOutside: () => {\n /**/\n },\n onFocusOutside: () => {\n /**/\n },\n width: 250,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBoxView.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private input: Nullable<Input | InternalTextareaWithLayout>;\n private setRootNode!: TSetRootNode;\n private mobileInput: Nullable<Input> = null;\n private isMobileLayout!: boolean;\n private dropdownContainerRef = React.createRef<Popup>();\n private styles!: ReturnType<typeof getStyles>;\n private maskedInputStyles!: ReturnType<typeof getMaskedInputStyles>;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private theme!: Theme;\n private size!: SizeProp;\n private menuId = ComboBoxViewIds.menu + getRandomID();\n\n public state: ComboBoxViewState = {\n anchorElement: null,\n clearCrossShowed: this.props.showClearIcon === 'always' && !!this.props.value?.toString(),\n };\n\n public componentDidMount() {\n this.updateAnchorElement();\n\n if (this.props.autoFocus && this.props.onFocus) {\n this.props.onFocus();\n }\n }\n\n updateAnchorElement() {\n const parent = this.getParent();\n const anchorElement = this.state.anchorElement;\n\n if (anchorElement !== parent) {\n this.setState({\n anchorElement: parent,\n });\n }\n }\n\n public componentDidUpdate(prevProps: ComboBoxViewProps<T>) {\n const { input, props } = this;\n\n this.updateAnchorElement();\n\n if (props.editing && !prevProps.editing && input) {\n input.focus();\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n this.maskedInputStyles = getMaskedInputStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getComboBoxTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { onMouseEnter, onMouseLeave, onMouseOver, opened } = this.props;\n const { onClickOutside, onFocusOutside, width } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n const input = this.renderInput();\n\n return (\n <CommonWrapper {...this.props}>\n <RenderLayer onClickOutside={onClickOutside} onFocusOutside={onFocusOutside} active={opened}>\n <span\n data-tid={CustomComboBoxDataTids.comboBoxView}\n style={{ width }}\n className={this.styles.root()}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n ref={this.setRootNode}\n >\n {input}\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getComboBoxMenu = () => {\n const {\n items,\n loading,\n opened,\n refMenu,\n maxMenuHeight,\n renderTotalCount,\n renderNotFound,\n totalCount,\n preventIconsOffset,\n } = this.props;\n\n const { repeatRequest, requestStatus, renderItem, itemWrapper } = this.getProps();\n return (\n <ComboBoxMenu\n hasMargin={false}\n menuId={this.menuId}\n items={items}\n loading={loading}\n maxMenuHeight={maxMenuHeight}\n onValueChange={this.handleItemSelect}\n opened={opened}\n refMenu={refMenu}\n renderTotalCount={renderTotalCount}\n renderItem={renderItem}\n renderNotFound={renderNotFound}\n itemWrapper={itemWrapper}\n renderAddButton={this.renderAddButton}\n repeatRequest={repeatRequest}\n requestStatus={requestStatus}\n totalCount={totalCount}\n isMobile={this.isMobileLayout}\n size={this.size}\n preventIconsOffset={preventIconsOffset}\n />\n );\n };\n\n private renderMenu = () => {\n const { opened, menuPos, menuAlign } = this.getProps();\n const { anchorElement } = this.state;\n\n return (\n opened &&\n anchorElement && (\n <Popup\n opened\n hasShadow\n tryBestFallbackPosition\n minWidth=\"100%\"\n anchorElement={anchorElement}\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n ref={this.dropdownContainerRef}\n >\n {this.getComboBoxMenu()}\n </Popup>\n )\n );\n };\n\n private renderMobileMenu = () => {\n let rightIcon = null;\n\n const { loading, items, opened, onFocus, onInputValueChange, onInputKeyDown, placeholder, textValue } = this.props;\n if (loading && items && !!items.length) {\n rightIcon = this.renderSpinner();\n }\n\n const themeGTE6_1 = isThemeGTE(this.theme, '6.1');\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onFocus,\n onValueChange: onInputValueChange,\n onKeyDown: onInputKeyDown,\n value: textValue,\n placeholder,\n rightIcon,\n size: themeGTE6_1 ? this.size : undefined,\n };\n\n const themeDependantProps = themeGTE6_1\n ? {\n footerChildComponent: <Input ref={this.refMobileInput} {...inputProps} />,\n size: this.size,\n }\n : {\n headerChildComponent: <Input ref={this.refMobileInput} {...inputProps} />,\n };\n\n return (\n opened && (\n <MobilePopup {...themeDependantProps} onCloseRequest={this.props.onMobileClose} opened>\n {this.getComboBoxMenu()}\n </MobilePopup>\n )\n );\n };\n\n private getParent = () => {\n return getRootNode(this);\n };\n\n private renderAddButton = (): React.ReactNode => {\n return this.getProps().renderAddButton(this.props.textValue);\n };\n\n private renderInput(): React.ReactNode {\n const isMobile = this.isMobileLayout;\n\n const {\n id,\n align,\n borderless,\n disabled,\n editing,\n error,\n onFocus,\n onInputBlur,\n onInputValueChange,\n onInputFocus,\n onInputClick,\n onInputKeyDown,\n placeholder,\n textValue,\n value,\n warning,\n refInputLikeText,\n leftIcon,\n inputMode,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n showClearIcon,\n mask,\n maskChar,\n formatChars,\n onBeforePasteInMask,\n } = this.props;\n\n const rightIcon = this.getRightIcon();\n\n const inputProps = {\n id,\n align,\n borderless,\n disabled,\n error,\n maxLength: this.props.maxLength,\n onBlur: isMobile ? undefined : onInputBlur,\n onValueChange: onInputValueChange,\n onFocus: onInputFocus,\n onClick: isMobile ? this.handleMobileFocus : onInputClick,\n leftIcon,\n rightIcon,\n value: textValue || '',\n onKeyDown: onInputKeyDown,\n placeholder,\n width: '100%',\n ref: this.refInput,\n warning,\n inputMode,\n autoComplete: 'off',\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': this.menuId,\n 'aria-label': ariaLabel,\n showClearIcon,\n size: this.size,\n };\n\n const multilineTextareaProps = {\n autoResize: true,\n rows: 1,\n extraRow: false,\n maxRows: this.props.maxRows,\n };\n\n if (this.props.viewMode === 'multiline' && !mask) {\n return <InternalTextareaWithLayout {...inputProps} {...multilineTextareaProps} />;\n }\n\n if (editing) {\n if (mask) {\n return (\n <MaskedInput\n {...inputProps}\n type=\"text\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n onBeforePasteValue={onBeforePasteInMask}\n />\n );\n }\n\n if (this.props.viewMode === 'multiline-editing') {\n return <InternalTextareaWithLayout {...inputProps} {...multilineTextareaProps} />;\n }\n\n return <Input {...inputProps} />;\n }\n\n const { renderValue } = this.getProps();\n return (\n <InputLikeText\n id={id}\n align={align}\n borderless={borderless}\n error={error}\n onFocus={onFocus}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n disabled={disabled}\n warning={warning}\n placeholder={placeholder}\n size={this.size}\n width=\"100%\"\n ref={refInputLikeText}\n aria-describedby={ariaDescribedby}\n aria-controls={this.menuId}\n showClearIcon={showClearIcon}\n className={this.cx(mask && this.maskedInputStyles.root(this.theme))}\n onClearCrossClick={this.props.onClearCrossClick}\n >\n {isNonNullable(value) && renderValue ? renderValue(value) : null}\n </InputLikeText>\n );\n }\n\n private handleMobileFocus = () => {\n this.props.onInputClick?.();\n\n this.mobileInput?.focus();\n };\n\n private handleItemSelect = (item: T) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(item);\n }\n\n if (this.isMobileLayout) {\n this.props.onMobileClose?.();\n }\n };\n\n private refInput = (input: Nullable<Input | InternalTextareaWithLayout>) => {\n if (this.props.refInput) {\n this.props.refInput(input);\n }\n this.input = input;\n };\n\n private renderSpinner = () => (\n <span className={this.styles.spinnerWrapper()}>\n <Spinner size=\"small\" caption=\"\" dimmed />\n </span>\n );\n\n private getRightIcon = () => {\n const { loading, items, drawArrow, rightIcon } = this.props;\n const size = this.size;\n\n if (loading && items && !!items.length) {\n return <LoadingIcon size={size} />;\n }\n\n if (rightIcon || drawArrow) {\n return rightIcon || <ArrowDownIcon size={size} />;\n }\n\n return null;\n };\n\n private refMobileInput = (input: Nullable<Input>) => {\n this.mobileInput = input;\n };\n}\n"]}
@@ -20,7 +20,7 @@ export declare const InputLikeTextDataTids: {
20
20
  readonly nativeInput: "InputLikeText__nativeInput";
21
21
  };
22
22
  type DefaultProps = Required<Pick<InputLikeTextProps, 'showClearIcon'>>;
23
- export declare class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {
23
+ export declare class InputLikeText extends React.Component<InputLikeTextProps, Omit<InputLikeTextState, 'isCounterVisible'>> {
24
24
  static __KONTUR_REACT_UI__: string;
25
25
  static displayName: string;
26
26
  static defaultProps: DefaultProps;
@@ -1 +1 @@
1
- {"version":3,"file":"InputLikeText.js","sourceRoot":"","sources":["../../../internal/InputLikeText/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, InputLikeTextState> {\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":["../../../internal/InputLikeText/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"]}
@@ -44,6 +44,7 @@ import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
44
44
  import { getRootNode, rootNode } from '../../lib/rootNode/index.js';
45
45
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
46
46
  import { ThemeFactory } from '../../lib/theming/ThemeFactory.js';
47
+ import { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';
47
48
  import { isNonNullable } from '../../lib/utils.js';
48
49
  import { CommonWrapper } from '../CommonWrapper/index.js';
49
50
  import { getStyles } from './Menu.styles.js';
@@ -289,11 +290,13 @@ var Menu = /** @class */ (function (_super) {
289
290
  bottom: "".concat(this.theme.scrollContainerScrollBarOffsetY),
290
291
  };
291
292
  var isMobile = this.isMobileLayout;
293
+ var themeGTE6_1 = isThemeGTE(this.theme, '6.1');
292
294
  return (React.createElement(CommonWrapper, __assign({ rootNodeRef: this.setRootNode }, this.props),
293
295
  React.createElement("div", { "data-tid": MenuDataTids.root, className: this.cx(getAlignRightClass(this.props, this.cx, this.styles), (_a = {},
294
296
  _a[this.styles.root(this.theme)] = true,
295
297
  _a[this.styles.hasMargin(this.theme)] = hasMargin,
296
298
  _a[this.styles.mobileRoot(this.theme)] = isMobile,
299
+ _a[this.styles.mobileRoot6_1()] = themeGTE6_1 && isMobile,
297
300
  _a[this.styles.shadow(this.theme)] = !isMobile,
298
301
  _a)), style: this.getStyle(this.props), id: this.props.id, onKeyDown: this.handleKeyDown, tabIndex: 0 },
299
302
  this.props.header && this.renderHeader(),
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../internal/Menu/Menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { CSSProperties, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { MenuItem } from '../../components/MenuItem/index.js';\nimport { MenuItemDataTids } from '../../components/MenuItem/index.js';\nimport { MenuSeparator } from '../../components/MenuSeparator/index.js';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { ScrollContainer } from '../../components/ScrollContainer/index.js';\nimport type { ScrollContainerScrollStateY } from '../../components/ScrollContainer/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { isBrowser } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.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 type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport { isNonNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { CommonProps } from '../CommonWrapper/index.js';\nimport { CommonWrapper } from '../CommonWrapper/index.js';\nimport { getStyles } from './Menu.styles.js';\nimport { MenuContext } from './MenuContext.js';\nimport { MenuNavigation } from './MenuNavigation.js';\n\nexport interface MenuProps extends CommonProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasMargin?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Отключает выравнивание текста пунктов меню относительно иконок в других пунктах.\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n maxHeight: number | string;\n scrollState: ScrollContainerScrollStateY;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'hasMargin'\n | 'maxHeight'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasMargin: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private unmounted = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n\n public componentWillUnmount(): void {\n this.unmounted = true;\n }\n\n public componentDidMount(): void {\n this.setInitialSelection();\n this.calculateMaxHeight();\n this.unmounted = false;\n }\n\n public componentDidUpdate(prevProps: MenuProps): void {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus(): void {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, this.globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n\n /**\n * @public\n */\n public reset(): void {\n this.menuNavigation.reset();\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return !!this.menuNavigation.highlightedItem;\n }\n\n public highlightItem(index: number) {\n this.menuNavigation.highlightByIndex(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasMargin, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n };\n\n const isMobile = this.isMobileLayout;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={MenuDataTids.root}\n className={this.cx(getAlignRightClass(this.props, this.cx, this.styles), {\n [this.styles.root(this.theme)]: true,\n [this.styles.hasMargin(this.theme)]: hasMargin,\n [this.styles.mobileRoot(this.theme)]: isMobile,\n [this.styles.shadow(this.theme)]: !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChangeY={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={this.cx({\n [this.styles.scrollContainer(this.theme)]: true,\n [this.styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.props.children}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={this.cx({\n [this.styles.wrapper()]: true,\n [this.styles.headerWrapper()]: true,\n })}\n ref={(el) => {\n this.header = el;\n }}\n >\n <div className={this.styles.contentWrapper()}>{this.props.header}</div>\n <div className={this.styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={this.cx({\n [this.styles.wrapper()]: true,\n [this.styles.footerWrapper()]: true,\n })}\n ref={(el) => {\n this.footer = el;\n }}\n >\n <div className={this.styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={this.styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(this.globalObject) && rootNode) {\n const rootElementMaxHeight = this.globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuNavigation.highlightedItem;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, this.globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n this.menuNavigation.select(event);\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollStateY) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps, cx: Emotion['cx'], styles: ReturnType<typeof getStyles>) => {\n if (props.align === 'right') {\n return cx(styles.alignRight());\n }\n\n return null;\n};\n"]}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../internal/Menu/Menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { CSSProperties, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { MenuItem } from '../../components/MenuItem/index.js';\nimport { MenuItemDataTids } from '../../components/MenuItem/index.js';\nimport { MenuSeparator } from '../../components/MenuSeparator/index.js';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { ScrollContainer } from '../../components/ScrollContainer/index.js';\nimport type { ScrollContainerScrollStateY } from '../../components/ScrollContainer/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { isBrowser } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.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 type { Theme } 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 { isNonNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { CommonProps } from '../CommonWrapper/index.js';\nimport { CommonWrapper } from '../CommonWrapper/index.js';\nimport { getStyles } from './Menu.styles.js';\nimport { MenuContext } from './MenuContext.js';\nimport { MenuNavigation } from './MenuNavigation.js';\n\nexport interface MenuProps extends CommonProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasMargin?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Отключает выравнивание текста пунктов меню относительно иконок в других пунктах.\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n maxHeight: number | string;\n scrollState: ScrollContainerScrollStateY;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'hasMargin'\n | 'maxHeight'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasMargin: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private unmounted = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n\n public componentWillUnmount(): void {\n this.unmounted = true;\n }\n\n public componentDidMount(): void {\n this.setInitialSelection();\n this.calculateMaxHeight();\n this.unmounted = false;\n }\n\n public componentDidUpdate(prevProps: MenuProps): void {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus(): void {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, this.globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n\n /**\n * @public\n */\n public reset(): void {\n this.menuNavigation.reset();\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return !!this.menuNavigation.highlightedItem;\n }\n\n public highlightItem(index: number) {\n this.menuNavigation.highlightByIndex(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasMargin, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n };\n\n const isMobile = this.isMobileLayout;\n const themeGTE6_1 = isThemeGTE(this.theme, '6.1');\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={MenuDataTids.root}\n className={this.cx(getAlignRightClass(this.props, this.cx, this.styles), {\n [this.styles.root(this.theme)]: true,\n [this.styles.hasMargin(this.theme)]: hasMargin,\n [this.styles.mobileRoot(this.theme)]: isMobile,\n [this.styles.mobileRoot6_1()]: themeGTE6_1 && isMobile,\n [this.styles.shadow(this.theme)]: !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChangeY={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={this.cx({\n [this.styles.scrollContainer(this.theme)]: true,\n [this.styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.props.children}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={this.cx({\n [this.styles.wrapper()]: true,\n [this.styles.headerWrapper()]: true,\n })}\n ref={(el) => {\n this.header = el;\n }}\n >\n <div className={this.styles.contentWrapper()}>{this.props.header}</div>\n <div className={this.styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={this.cx({\n [this.styles.wrapper()]: true,\n [this.styles.footerWrapper()]: true,\n })}\n ref={(el) => {\n this.footer = el;\n }}\n >\n <div className={this.styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={this.styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(this.globalObject) && rootNode) {\n const rootElementMaxHeight = this.globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuNavigation.highlightedItem;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, this.globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n this.menuNavigation.select(event);\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollStateY) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps, cx: Emotion['cx'], styles: ReturnType<typeof getStyles>) => {\n if (props.align === 'right') {\n return cx(styles.alignRight());\n }\n\n return null;\n};\n"]}
@@ -3,6 +3,7 @@ export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGet
3
3
  root(t: Theme): string;
4
4
  hasMargin(t: Theme): string;
5
5
  mobileRoot(t: Theme): string;
6
+ mobileRoot6_1(): string;
6
7
  alignRight(): string;
7
8
  scrollContainer(t: Theme): string;
8
9
  scrollContainerMobile(t: Theme): string;