@ozen-ui/kit 0.57.0 → 0.58.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/AutocompleteNext/package.json +5 -0
  2. package/__inner__/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
  3. package/__inner__/cjs/components/Autocomplete/Autocomplete.js +7 -0
  4. package/__inner__/cjs/components/Autocomplete/helper.d.ts +2 -10
  5. package/__inner__/cjs/components/AutocompleteNext/Autocomplete.css +226 -0
  6. package/__inner__/cjs/components/AutocompleteNext/Autocomplete.d.ts +4 -0
  7. package/__inner__/cjs/components/AutocompleteNext/Autocomplete.js +216 -0
  8. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.d.ts +2 -0
  9. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.js +156 -0
  10. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.css +7 -0
  11. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.d.ts +6 -0
  12. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.js +18 -0
  13. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.d.ts +1 -0
  14. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.js +4 -0
  15. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.d.ts +6 -0
  16. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.js +23 -0
  17. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.d.ts +1 -0
  18. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.js +4 -0
  19. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.d.ts +6 -0
  20. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.js +17 -0
  21. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.d.ts +1 -0
  22. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.js +4 -0
  23. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/index.d.ts +3 -0
  24. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/index.js +6 -0
  25. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/constants.d.ts +3 -0
  26. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/constants.js +6 -0
  27. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/helpers.d.ts +17 -0
  28. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/helpers.js +36 -0
  29. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/index.d.ts +3 -0
  30. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/index.js +6 -0
  31. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/types.d.ts +45 -0
  32. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/types.js +2 -0
  33. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.d.ts +2 -0
  34. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.js +5 -0
  35. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.d.ts +20 -0
  36. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.js +71 -0
  37. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.d.ts +3 -0
  38. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.js +15 -0
  39. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.d.ts +2 -0
  40. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js +38 -0
  41. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.d.ts +2 -0
  42. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.js +112 -0
  43. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/helpers.d.ts +5 -0
  44. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/helpers.js +36 -0
  45. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/index.d.ts +1 -0
  46. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/index.js +4 -0
  47. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/types.d.ts +17 -0
  48. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/types.js +2 -0
  49. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/helpers.d.ts +3 -0
  50. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/index.d.ts +2 -0
  51. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/index.js +5 -0
  52. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/types.d.ts +26 -0
  53. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/types.js +2 -0
  54. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.d.ts +8 -0
  55. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.js +28 -0
  56. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/index.d.ts +1 -0
  57. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/index.js +4 -0
  58. package/__inner__/cjs/components/AutocompleteNext/components/index.d.ts +3 -0
  59. package/__inner__/cjs/components/AutocompleteNext/components/index.js +6 -0
  60. package/__inner__/cjs/components/AutocompleteNext/constants.d.ts +10 -0
  61. package/__inner__/cjs/components/AutocompleteNext/constants.js +13 -0
  62. package/__inner__/cjs/components/AutocompleteNext/helpers.d.ts +152 -0
  63. package/__inner__/cjs/components/AutocompleteNext/helpers.js +18 -0
  64. package/__inner__/cjs/components/AutocompleteNext/index.d.ts +2 -0
  65. package/__inner__/cjs/components/AutocompleteNext/index.js +5 -0
  66. package/__inner__/cjs/components/AutocompleteNext/types.d.ts +133 -0
  67. package/__inner__/cjs/components/AutocompleteNext/types.js +2 -0
  68. package/__inner__/cjs/components/DataList/DataList.js +18 -25
  69. package/__inner__/cjs/components/DataList/helpers.d.ts +3 -0
  70. package/__inner__/cjs/components/DataList/helpers.js +7 -0
  71. package/__inner__/cjs/components/DataList/{helpers → utils}/index.d.ts +0 -1
  72. package/__inner__/cjs/components/DataList/{helpers → utils}/index.js +0 -1
  73. package/__inner__/cjs/components/DatePicker/DatePicker.d.ts +2 -2
  74. package/__inner__/cjs/components/DatePicker/DatePicker.js +1 -1
  75. package/__inner__/cjs/components/FieldControl/FieldControl.css +4 -0
  76. package/__inner__/cjs/components/FieldInput/FieldInput.d.ts +1 -9
  77. package/__inner__/cjs/components/FieldInput/FieldInput.js +9 -4
  78. package/__inner__/cjs/components/FieldInput/constants.d.ts +1 -0
  79. package/__inner__/cjs/components/FieldInput/constants.js +4 -0
  80. package/__inner__/cjs/components/FieldInput/index.d.ts +1 -0
  81. package/__inner__/cjs/components/FieldInput/index.js +1 -0
  82. package/__inner__/cjs/components/FieldInput/types.d.ts +11 -0
  83. package/__inner__/cjs/components/FieldInput/types.js +2 -0
  84. package/__inner__/cjs/components/FieldLabel/FieldLabel.css +1 -0
  85. package/__inner__/cjs/components/Grid/Grid.css +2 -0
  86. package/__inner__/cjs/components/Input/Input.css +6 -9
  87. package/__inner__/cjs/components/Input/types.d.ts +2 -3
  88. package/__inner__/cjs/components/InputNumber/InputNumber.css +0 -5
  89. package/__inner__/cjs/components/Tag/Tag.css +1 -0
  90. package/__inner__/cjs/components/TagNext/Tag.css +11 -4
  91. package/__inner__/cjs/components/TagNext/Tag.js +1 -1
  92. package/__inner__/cjs/components/TagNext/constants.d.ts +1 -1
  93. package/__inner__/cjs/components/TagNext/constants.js +2 -2
  94. package/__inner__/cjs/components/TagNext/types.d.ts +6 -3
  95. package/__inner__/cjs/components/Textarea/Textarea.css +0 -5
  96. package/__inner__/cjs/components/ThemeProvider/types.d.ts +2 -0
  97. package/__inner__/cjs/hooks/useElementSize/index.d.ts +1 -0
  98. package/__inner__/cjs/hooks/useElementSize/index.js +4 -0
  99. package/__inner__/cjs/hooks/useElementSize/useElementSize.d.ts +6 -0
  100. package/__inner__/cjs/hooks/useElementSize/useElementSize.js +11 -0
  101. package/__inner__/cjs/hooks/useResizeObserver/index.d.ts +1 -0
  102. package/__inner__/cjs/hooks/useResizeObserver/index.js +4 -0
  103. package/__inner__/cjs/hooks/useResizeObserver/useResizeObserver.d.ts +4 -0
  104. package/__inner__/cjs/hooks/useResizeObserver/useResizeObserver.js +50 -0
  105. package/__inner__/cjs/locale/locale.js +21 -0
  106. package/__inner__/cjs/utils/isNotNil.d.ts +1 -0
  107. package/__inner__/cjs/utils/isNotNil.js +7 -0
  108. package/__inner__/esm/components/Autocomplete/Autocomplete.d.ts +3 -0
  109. package/__inner__/esm/components/Autocomplete/Autocomplete.js +7 -0
  110. package/__inner__/esm/components/Autocomplete/helper.d.ts +2 -10
  111. package/__inner__/esm/components/AutocompleteNext/Autocomplete.css +226 -0
  112. package/__inner__/esm/components/AutocompleteNext/Autocomplete.d.ts +4 -0
  113. package/__inner__/esm/components/AutocompleteNext/Autocomplete.js +213 -0
  114. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.d.ts +2 -0
  115. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.js +153 -0
  116. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.css +7 -0
  117. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.d.ts +6 -0
  118. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.js +13 -0
  119. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.d.ts +1 -0
  120. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.js +1 -0
  121. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.d.ts +6 -0
  122. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.js +18 -0
  123. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.d.ts +1 -0
  124. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.js +1 -0
  125. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.d.ts +6 -0
  126. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.js +12 -0
  127. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.d.ts +1 -0
  128. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.js +1 -0
  129. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/index.d.ts +3 -0
  130. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/index.js +3 -0
  131. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/constants.d.ts +3 -0
  132. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/constants.js +3 -0
  133. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/helpers.d.ts +17 -0
  134. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/helpers.js +30 -0
  135. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/index.d.ts +3 -0
  136. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/index.js +3 -0
  137. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/types.d.ts +45 -0
  138. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/types.js +1 -0
  139. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.d.ts +2 -0
  140. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.js +2 -0
  141. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.d.ts +20 -0
  142. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.js +67 -0
  143. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.d.ts +3 -0
  144. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.js +11 -0
  145. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.d.ts +2 -0
  146. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js +35 -0
  147. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.d.ts +2 -0
  148. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.js +109 -0
  149. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/helpers.d.ts +5 -0
  150. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/helpers.js +29 -0
  151. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/index.d.ts +1 -0
  152. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/index.js +1 -0
  153. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/types.d.ts +17 -0
  154. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/types.js +1 -0
  155. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/helpers.d.ts +3 -0
  156. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/index.d.ts +2 -0
  157. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/index.js +2 -0
  158. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/types.d.ts +26 -0
  159. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/types.js +1 -0
  160. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.d.ts +8 -0
  161. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.js +24 -0
  162. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/index.d.ts +1 -0
  163. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/index.js +1 -0
  164. package/__inner__/esm/components/AutocompleteNext/components/index.d.ts +3 -0
  165. package/__inner__/esm/components/AutocompleteNext/components/index.js +3 -0
  166. package/__inner__/esm/components/AutocompleteNext/constants.d.ts +10 -0
  167. package/__inner__/esm/components/AutocompleteNext/constants.js +10 -0
  168. package/__inner__/esm/components/AutocompleteNext/helpers.d.ts +152 -0
  169. package/__inner__/esm/components/AutocompleteNext/helpers.js +9 -0
  170. package/__inner__/esm/components/AutocompleteNext/index.d.ts +2 -0
  171. package/__inner__/esm/components/AutocompleteNext/index.js +2 -0
  172. package/__inner__/esm/components/AutocompleteNext/types.d.ts +133 -0
  173. package/__inner__/esm/components/AutocompleteNext/types.js +1 -0
  174. package/__inner__/esm/components/DataList/DataList.js +17 -24
  175. package/__inner__/esm/components/DataList/helpers.d.ts +3 -0
  176. package/__inner__/esm/components/DataList/helpers.js +2 -0
  177. package/__inner__/esm/components/DataList/{helpers → utils}/index.d.ts +0 -1
  178. package/__inner__/esm/components/DataList/{helpers → utils}/index.js +0 -1
  179. package/__inner__/esm/components/DatePicker/DatePicker.d.ts +2 -2
  180. package/__inner__/esm/components/DatePicker/DatePicker.js +1 -1
  181. package/__inner__/esm/components/FieldControl/FieldControl.css +4 -0
  182. package/__inner__/esm/components/FieldInput/FieldInput.d.ts +1 -9
  183. package/__inner__/esm/components/FieldInput/FieldInput.js +8 -3
  184. package/__inner__/esm/components/FieldInput/constants.d.ts +1 -0
  185. package/__inner__/esm/components/FieldInput/constants.js +1 -0
  186. package/__inner__/esm/components/FieldInput/index.d.ts +1 -0
  187. package/__inner__/esm/components/FieldInput/index.js +1 -0
  188. package/__inner__/esm/components/FieldInput/types.d.ts +11 -0
  189. package/__inner__/esm/components/FieldInput/types.js +1 -0
  190. package/__inner__/esm/components/FieldLabel/FieldLabel.css +1 -0
  191. package/__inner__/esm/components/Grid/Grid.css +2 -0
  192. package/__inner__/esm/components/Input/Input.css +6 -9
  193. package/__inner__/esm/components/Input/types.d.ts +2 -3
  194. package/__inner__/esm/components/InputNumber/InputNumber.css +0 -5
  195. package/__inner__/esm/components/Tag/Tag.css +1 -0
  196. package/__inner__/esm/components/TagNext/Tag.css +11 -4
  197. package/__inner__/esm/components/TagNext/Tag.js +2 -2
  198. package/__inner__/esm/components/TagNext/constants.d.ts +1 -1
  199. package/__inner__/esm/components/TagNext/constants.js +1 -1
  200. package/__inner__/esm/components/TagNext/types.d.ts +6 -3
  201. package/__inner__/esm/components/Textarea/Textarea.css +0 -5
  202. package/__inner__/esm/components/ThemeProvider/types.d.ts +2 -0
  203. package/__inner__/esm/hooks/useElementSize/index.d.ts +1 -0
  204. package/__inner__/esm/hooks/useElementSize/index.js +1 -0
  205. package/__inner__/esm/hooks/useElementSize/useElementSize.d.ts +6 -0
  206. package/__inner__/esm/hooks/useElementSize/useElementSize.js +7 -0
  207. package/__inner__/esm/hooks/useResizeObserver/index.d.ts +1 -0
  208. package/__inner__/esm/hooks/useResizeObserver/index.js +1 -0
  209. package/__inner__/esm/hooks/useResizeObserver/useResizeObserver.d.ts +4 -0
  210. package/__inner__/esm/hooks/useResizeObserver/useResizeObserver.js +46 -0
  211. package/__inner__/esm/locale/locale.js +21 -0
  212. package/__inner__/esm/utils/isNotNil.d.ts +1 -0
  213. package/__inner__/esm/utils/isNotNil.js +3 -0
  214. package/package.json +4 -4
  215. package/useElementSize/package.json +5 -0
  216. package/useResizeObserver/package.json +5 -0
  217. package/__inner__/cjs/components/DataList/helpers/types.d.ts +0 -10
  218. package/__inner__/esm/components/DataList/helpers/types.d.ts +0 -10
  219. /package/__inner__/cjs/components/{DataList/helpers/types.js → AutocompleteNext/components/AutocompleteInput/helpers.js} +0 -0
  220. /package/__inner__/cjs/components/DataList/{helpers → utils}/lastSelectedValue.d.ts +0 -0
  221. /package/__inner__/cjs/components/DataList/{helpers → utils}/lastSelectedValue.js +0 -0
  222. /package/__inner__/cjs/components/DataList/{helpers → utils}/useDataListNavigation.d.ts +0 -0
  223. /package/__inner__/cjs/components/DataList/{helpers → utils}/useDataListNavigation.js +0 -0
  224. /package/__inner__/cjs/components/DataList/{helpers → utils}/useScrollContainerToElement.d.ts +0 -0
  225. /package/__inner__/cjs/components/DataList/{helpers → utils}/useScrollContainerToElement.js +0 -0
  226. /package/__inner__/esm/components/{DataList/helpers/types.js → AutocompleteNext/components/AutocompleteInput/helpers.js} +0 -0
  227. /package/__inner__/esm/components/DataList/{helpers → utils}/lastSelectedValue.d.ts +0 -0
  228. /package/__inner__/esm/components/DataList/{helpers → utils}/lastSelectedValue.js +0 -0
  229. /package/__inner__/esm/components/DataList/{helpers → utils}/useDataListNavigation.d.ts +0 -0
  230. /package/__inner__/esm/components/DataList/{helpers → utils}/useDataListNavigation.js +0 -0
  231. /package/__inner__/esm/components/DataList/{helpers → utils}/useScrollContainerToElement.d.ts +0 -0
  232. /package/__inner__/esm/components/DataList/{helpers → utils}/useScrollContainerToElement.js +0 -0
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutocompleteDropdown = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importStar(require("react"));
6
+ var useEventListener_1 = require("../../../../hooks/useEventListener");
7
+ var useMultiRef_1 = require("../../../../hooks/useMultiRef");
8
+ var usePrevious_1 = require("../../../../hooks/usePrevious");
9
+ var getPaperSizeToFormElement_1 = require("../../../../utils/getPaperSizeToFormElement");
10
+ var isKey_1 = require("../../../../utils/isKey");
11
+ var isNotNil_1 = require("../../../../utils/isNotNil");
12
+ var scrollContainerToElement_1 = require("../../../../utils/scrollContainerToElement");
13
+ var List_1 = require("../../../List");
14
+ var Paper_1 = require("../../../Paper");
15
+ var Popover_1 = require("../../../Popover");
16
+ var index_1 = require("../../index");
17
+ var components_1 = require("./components");
18
+ var constants_1 = require("./constants");
19
+ var helpers_1 = require("./helpers");
20
+ var utils_1 = require("./utils");
21
+ var AutocompleteDropdownRender = function (inProps, ref) {
22
+ var _a = inProps.size, size = _a === void 0 ? constants_1.AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE : _a, open = inProps.open, loading = inProps.loading, onClose = inProps.onClose, options = inProps.options, onChange = inProps.onChange, anchorRef = inProps.anchorRef, className = inProps.className, listProps = inProps.listProps, hasOptions = inProps.hasOptions, loadingText = inProps.loadingText, popoverProps = inProps.popoverProps, getOptionKey = inProps.getOptionKey, noOptionsText = inProps.noOptionsText, getOptionLabel = inProps.getOptionLabel, getOptionDisabled = inProps.getOptionDisabled, disableShowEmptyOptionsList = inProps.disableShowEmptyOptionsList, setUpdate = inProps.setUpdate, renderOptionProp = inProps.renderOption;
23
+ var radius = (0, getPaperSizeToFormElement_1.getPaperSizeToFormElement)(size);
24
+ var showNoOptions = !hasOptions && !loading && !disableShowEmptyOptionsList;
25
+ var showLoading = !hasOptions && !!loading;
26
+ var rootRef = (0, react_1.useRef)(null);
27
+ var listRef = (0, react_1.useRef)(null);
28
+ var _b = (0, react_1.useMemo)(function () { return (0, helpers_1.normalizeOptions)(options, getOptionKey, getOptionDisabled); }, [options, getOptionKey, getOptionDisabled]), entities = _b.entities, items = _b.idxs;
29
+ // Определяет последнюю выбранную опцию
30
+ var lastSelected = (0, react_1.useMemo)(function () {
31
+ var _a, _b;
32
+ if ((0, helpers_1.isNotMultipleParams)(inProps)) {
33
+ var value = inProps.value;
34
+ var key = value && getOptionKey(value);
35
+ return key && ((_a = entities.byKey[key]) === null || _a === void 0 ? void 0 : _a.idx);
36
+ }
37
+ if ((0, helpers_1.isMultipleParams)(inProps)) {
38
+ var value = inProps.value;
39
+ var lastValue = value === null || value === void 0 ? void 0 : value[value.length - 1];
40
+ var lastKey = lastValue && getOptionKey(lastValue);
41
+ return lastKey && ((_b = entities.byKey[lastKey]) === null || _b === void 0 ? void 0 : _b.idx);
42
+ }
43
+ return undefined;
44
+ }, [inProps, entities]);
45
+ // Навигация по списку
46
+ var _c = (0, utils_1.useDataListNavigation)({
47
+ items: items,
48
+ active: open,
49
+ selected: lastSelected,
50
+ onSelect: function (event, idx) {
51
+ var _a;
52
+ var option = (0, isNotNil_1.isNotNil)(idx) ? (_a = entities.byIdx[idx]) === null || _a === void 0 ? void 0 : _a.option : undefined;
53
+ if (option)
54
+ onChange === null || onChange === void 0 ? void 0 : onChange(event, option);
55
+ },
56
+ }), current = _c.current, focused = _c.focused, onKeyDown = _c.onKeyDown, onClick = _c.onClick;
57
+ var previousCurrent = (0, usePrevious_1.usePrevious)(current);
58
+ (0, react_1.useEffect)(function () {
59
+ var _a, _b;
60
+ var firstCurrent = !(0, isNotNil_1.isNotNil)(previousCurrent) && (0, isNotNil_1.isNotNil)(current) ? current : undefined;
61
+ var selected = focused !== null && focused !== void 0 ? focused : firstCurrent;
62
+ if (selected !== undefined) {
63
+ // Прокрутка списка
64
+ (0, scrollContainerToElement_1.scrollContainerToElement)({
65
+ container: rootRef.current,
66
+ element: (_b = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b[+selected],
67
+ behavior: (0, isNotNil_1.isNotNil)(focused) ? 'smooth' : 'instant',
68
+ });
69
+ }
70
+ }, [focused, current]);
71
+ // Назначает элементу контроля событие управления списком с клавиатуры
72
+ (0, useEventListener_1.useEventListener)({
73
+ eventName: 'keydown',
74
+ element: anchorRef,
75
+ handler: function (event) { return onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event); },
76
+ });
77
+ // Закрывает список по нажатию на клавишу {Tab}
78
+ (0, useEventListener_1.useEventListener)({
79
+ active: open,
80
+ eventName: 'keydown',
81
+ element: anchorRef,
82
+ handler: function (event) {
83
+ if ((0, isKey_1.isKey)(event, 'Tab'))
84
+ onClose === null || onClose === void 0 ? void 0 : onClose();
85
+ },
86
+ });
87
+ var handleOnMouseDownList = function (e) {
88
+ var _a;
89
+ e.preventDefault();
90
+ (_a = listProps === null || listProps === void 0 ? void 0 : listProps.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(listProps, e);
91
+ };
92
+ /** Отображение опций */
93
+ var renderOptionDefault = function (_a) {
94
+ var props = _a.props, option = _a.option, selected = _a.state.selected;
95
+ return (react_1.default.createElement(List_1.ListItem, tslib_1.__assign({}, props),
96
+ react_1.default.createElement(List_1.ListItemText, { primary: getOptionLabel(option) }),
97
+ react_1.default.createElement(components_1.AutocompleteDropdownCheckIcon, { selected: selected })));
98
+ };
99
+ var renderOption = renderOptionProp || renderOptionDefault;
100
+ // Представление раскрывающегося списка
101
+ var renderChildren = (0, react_1.useMemo)(function () {
102
+ return options.map(function (option, idx) {
103
+ var isSelected;
104
+ var key = getOptionKey === null || getOptionKey === void 0 ? void 0 : getOptionKey(option);
105
+ var isFocused = idx === focused;
106
+ var isDisabled = getOptionDisabled(option);
107
+ if ((0, helpers_1.isNotMultipleParams)(inProps)) {
108
+ var value = inProps.value;
109
+ if (value)
110
+ isSelected = getOptionKey(value) === key;
111
+ }
112
+ if ((0, helpers_1.isMultipleParams)(inProps) && Array.isArray(inProps.value)) {
113
+ var value = inProps.value;
114
+ isSelected = !!value.find(function (option) { return getOptionKey(option) === key; });
115
+ }
116
+ return renderOption({
117
+ option: option,
118
+ state: {
119
+ key: key,
120
+ focused: isFocused,
121
+ selected: isSelected,
122
+ disabled: isDisabled,
123
+ },
124
+ props: {
125
+ key: "".concat(idx, "_").concat(key),
126
+ role: 'option',
127
+ 'aria-selected': isSelected,
128
+ 'aria-disabled': isDisabled,
129
+ className: (0, index_1.cnAutocomplete)('Option', {
130
+ disabled: isDisabled,
131
+ selected: isSelected,
132
+ focused: isFocused,
133
+ }),
134
+ onClick: function (e) {
135
+ if (isDisabled)
136
+ return;
137
+ onClick === null || onClick === void 0 ? void 0 : onClick(e, idx);
138
+ },
139
+ },
140
+ });
141
+ });
142
+ }, [
143
+ options,
144
+ focused,
145
+ renderOption,
146
+ getOptionKey,
147
+ lastSelected,
148
+ getOptionDisabled,
149
+ ]);
150
+ return (react_1.default.createElement(Popover_1.Popover, tslib_1.__assign({ offset: [0, 4], strategy: "absolute", placement: "bottom-start", setUpdate: setUpdate, as: Paper_1.Paper, transitionProps: { classNames: 'AutocompleteNext-Dropdown-animation' }, className: (0, index_1.cnAutocomplete)('Dropdown', [className]), equalAnchorWidth: true, disableReturnFocus: true, disableEnforceFocus: true }, popoverProps, { open: open, radius: radius, onClose: onClose, anchorRef: anchorRef, ref: (0, useMultiRef_1.useMultiRef)([ref, popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.ref, rootRef]) }),
151
+ react_1.default.createElement(List_1.List, tslib_1.__assign({ size: size, role: "listbox" }, listProps, { onMouseDown: handleOnMouseDownList, ref: (0, useMultiRef_1.useMultiRef)([listRef, listProps === null || listProps === void 0 ? void 0 : listProps.ref]) }),
152
+ renderChildren,
153
+ react_1.default.createElement(components_1.AutocompleteDropdownNoOptions, { showNoOptions: showNoOptions, noOptionsText: noOptionsText }),
154
+ react_1.default.createElement(components_1.AutocompleteDropdownLoading, { showLoading: showLoading, loadingText: loadingText, size: size }))));
155
+ };
156
+ exports.AutocompleteDropdown = (0, react_1.forwardRef)(AutocompleteDropdownRender);
@@ -0,0 +1,7 @@
1
+ .AutocompleteDropdownCheckIcon {
2
+ visibility: hidden;
3
+ }
4
+
5
+ .AutocompleteDropdownCheckIcon_selected {
6
+ visibility: visible;
7
+ }
@@ -0,0 +1,6 @@
1
+ import './AutocompleteDropdownCheckIcon.css';
2
+ import type { FC } from 'react';
3
+ export type AutocompleteDropdownCheckIconProps = {
4
+ selected?: boolean;
5
+ };
6
+ export declare const AutocompleteDropdownCheckIcon: FC<AutocompleteDropdownCheckIconProps>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutocompleteDropdownCheckIcon = void 0;
4
+ var tslib_1 = require("tslib");
5
+ require("./AutocompleteDropdownCheckIcon.css");
6
+ var react_1 = tslib_1.__importDefault(require("react"));
7
+ var icons_1 = require("@ozen-ui/icons");
8
+ var classname_1 = require("../../../../../../utils/classname");
9
+ var getIconSizeToFormElement_1 = require("../../../../../../utils/getIconSizeToFormElement");
10
+ var List_1 = require("../../../../../List");
11
+ var cnAutocompleteDropdownCheckIcon = (0, classname_1.cn)('AutocompleteDropdownCheckIcon');
12
+ var AutocompleteDropdownCheckIcon = function (_a) {
13
+ var selected = _a.selected;
14
+ var size = (0, List_1.useListContext)().size;
15
+ return (react_1.default.createElement(List_1.ListItemIcon, { className: cnAutocompleteDropdownCheckIcon({ selected: selected }) },
16
+ react_1.default.createElement(icons_1.CheckIcon, { size: (0, getIconSizeToFormElement_1.getIconSizeToFormElement)(size) })));
17
+ };
18
+ exports.AutocompleteDropdownCheckIcon = AutocompleteDropdownCheckIcon;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./AutocompleteDropdownCheckIcon"), exports);
@@ -0,0 +1,6 @@
1
+ import type { FC } from 'react';
2
+ import type { AutocompleteProps } from '../../../../index';
3
+ export type AutocompleteDropdownLoadingProps = Pick<AutocompleteProps, 'loadingText' | 'size'> & {
4
+ showLoading: boolean;
5
+ };
6
+ export declare const AutocompleteDropdownLoading: FC<AutocompleteDropdownLoadingProps>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutocompleteDropdownLoading = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ var getIconSizeToFormElement_1 = require("../../../../../../utils/getIconSizeToFormElement");
7
+ var isNumber_1 = require("../../../../../../utils/isNumber");
8
+ var isString_1 = require("../../../../../../utils/isString");
9
+ var List_1 = require("../../../../../List");
10
+ var Loader_1 = require("../../../../../Loader");
11
+ var constants_1 = require("../../../../constants");
12
+ var AutocompleteDropdownLoading = function (_a) {
13
+ var _b = _a.size, sizeProp = _b === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_SIZE : _b, showLoading = _a.showLoading, loadingText = _a.loadingText;
14
+ if (!showLoading) {
15
+ return null;
16
+ }
17
+ var size = (0, getIconSizeToFormElement_1.getIconSizeToFormElement)(sizeProp);
18
+ return (0, isString_1.isString)(loadingText) || (0, isNumber_1.isNumber)(loadingText) ? (react_1.default.createElement(List_1.ListItem, null,
19
+ react_1.default.createElement(List_1.ListItemIcon, null,
20
+ react_1.default.createElement(Loader_1.Loader, { size: size })),
21
+ react_1.default.createElement(List_1.ListItemText, { primary: loadingText }))) : (loadingText);
22
+ };
23
+ exports.AutocompleteDropdownLoading = AutocompleteDropdownLoading;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./AutocompleteDropdownLoading"), exports);
@@ -0,0 +1,6 @@
1
+ import type { FC } from 'react';
2
+ import type { AutocompleteProps } from '../../../../index';
3
+ export type AutocompleteDropdownNoOptionsProps = Pick<AutocompleteProps, 'noOptionsText'> & {
4
+ showNoOptions: boolean;
5
+ };
6
+ export declare const AutocompleteDropdownNoOptions: FC<AutocompleteDropdownNoOptionsProps>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutocompleteDropdownNoOptions = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ var isNumber_1 = require("../../../../../../utils/isNumber");
7
+ var isString_1 = require("../../../../../../utils/isString");
8
+ var List_1 = require("../../../../../List");
9
+ var AutocompleteDropdownNoOptions = function (_a) {
10
+ var showNoOptions = _a.showNoOptions, noOptionsText = _a.noOptionsText;
11
+ if (!showNoOptions) {
12
+ return null;
13
+ }
14
+ return (0, isString_1.isString)(noOptionsText) || (0, isNumber_1.isNumber)(noOptionsText) ? (react_1.default.createElement(List_1.ListItem, null,
15
+ react_1.default.createElement(List_1.ListItemText, { primary: noOptionsText }))) : (noOptionsText);
16
+ };
17
+ exports.AutocompleteDropdownNoOptions = AutocompleteDropdownNoOptions;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./AutocompleteDropdownNoOptions"), exports);
@@ -0,0 +1,3 @@
1
+ export * from './AutocompleteDropdownLoading';
2
+ export * from './AutocompleteDropdownNoOptions';
3
+ export * from './AutocompleteDropdownCheckIcon';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./AutocompleteDropdownLoading"), exports);
5
+ tslib_1.__exportStar(require("./AutocompleteDropdownNoOptions"), exports);
6
+ tslib_1.__exportStar(require("./AutocompleteDropdownCheckIcon"), exports);
@@ -0,0 +1,3 @@
1
+ export declare const AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE = "m";
2
+ export declare const AUTOCOMPLETE_DROPDOWN_DEFAULT_OPEN = false;
3
+ export declare const AUTOCOMPLETE_DROPDOWN_OPTION_DEFAULT_DISABLED = false;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AUTOCOMPLETE_DROPDOWN_OPTION_DEFAULT_DISABLED = exports.AUTOCOMPLETE_DROPDOWN_DEFAULT_OPEN = exports.AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE = void 0;
4
+ exports.AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE = 'm';
5
+ exports.AUTOCOMPLETE_DROPDOWN_DEFAULT_OPEN = false;
6
+ exports.AUTOCOMPLETE_DROPDOWN_OPTION_DEFAULT_DISABLED = false;
@@ -0,0 +1,17 @@
1
+ import type { AutocompleteDropdownProps } from './types';
2
+ export declare const isMultipleParams: <OPTION>(params: AutocompleteDropdownProps<OPTION, boolean>) => params is AutocompleteDropdownProps<OPTION, true>;
3
+ export declare const isNotMultipleParams: <OPTION>(params: AutocompleteDropdownProps<OPTION, boolean>) => params is AutocompleteDropdownProps<OPTION, false>;
4
+ export type NormalizedOptions<OPTION> = {
5
+ entities: {
6
+ byIdx: Record<string | number, {
7
+ option: OPTION;
8
+ key: string | number;
9
+ }>;
10
+ byKey: Record<string | number, {
11
+ option: OPTION;
12
+ idx: string | number;
13
+ }>;
14
+ };
15
+ idxs: (string | number)[];
16
+ };
17
+ export declare function normalizeOptions<OPTION>(options: OPTION[], getOptionKey: (option: OPTION) => string | number, getOptionDisabled: (option: OPTION) => boolean | undefined): NormalizedOptions<OPTION>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeOptions = exports.isNotMultipleParams = exports.isMultipleParams = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var isMultipleParams = function (params) { return !!params.multiple; };
6
+ exports.isMultipleParams = isMultipleParams;
7
+ var isNotMultipleParams = function (params) { return !params.multiple; };
8
+ exports.isNotMultipleParams = isNotMultipleParams;
9
+ function normalizeOptions(options, getOptionKey, getOptionDisabled) {
10
+ var e_1, _a;
11
+ var idx = 0;
12
+ var res = {
13
+ idxs: [],
14
+ entities: { byIdx: {}, byKey: {} },
15
+ };
16
+ try {
17
+ for (var options_1 = tslib_1.__values(options), options_1_1 = options_1.next(); !options_1_1.done; options_1_1 = options_1.next()) {
18
+ var option = options_1_1.value;
19
+ var key = getOptionKey(option);
20
+ res.entities.byIdx[idx] = { option: option, key: key };
21
+ res.entities.byKey[key] = { option: option, idx: idx };
22
+ if (!getOptionDisabled(option))
23
+ res.idxs.push(idx);
24
+ idx += 1;
25
+ }
26
+ }
27
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
28
+ finally {
29
+ try {
30
+ if (options_1_1 && !options_1_1.done && (_a = options_1.return)) _a.call(options_1);
31
+ }
32
+ finally { if (e_1) throw e_1.error; }
33
+ }
34
+ return res;
35
+ }
36
+ exports.normalizeOptions = normalizeOptions;
@@ -0,0 +1,3 @@
1
+ export * from './AutocompleteDropdown';
2
+ export * from './components';
3
+ export * from './types';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./AutocompleteDropdown"), exports);
5
+ tslib_1.__exportStar(require("./components"), exports);
6
+ tslib_1.__exportStar(require("./types"), exports);
@@ -0,0 +1,45 @@
1
+ import type { ReactNode, ReactElement, SyntheticEvent } from 'react';
2
+ import type { FormElementSizeVariant } from '../../../../types/FormElementSizeVariant';
3
+ import type { ListProps } from '../../../List';
4
+ import type { PopoverProps, PopoverRef } from '../../../Popover';
5
+ import type { AutocompletePropValue, AutocompletePropRenderOption, AutocompletePropGetOptionKey, AutocompleteDefaultOption, AutocompletePropGetOptionDisabled, AutocompletePropGetOptionLabel } from '../../index';
6
+ export type AutocompleteDropdownRef = PopoverRef;
7
+ export type AutocompleteDropdownOnChange<OPTION> = (e: SyntheticEvent | KeyboardEvent, value: OPTION | null) => void;
8
+ export type AutocompleteDropdownProps<OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false> = {
9
+ /** Имя списка */
10
+ name?: string;
11
+ /** Содержимое компонента */
12
+ children?: never;
13
+ /** Если {true} из списка можно выбрать несколько вариантов */
14
+ multiple?: MULTIPLE;
15
+ /** Список вариантов выбора (опции) */
16
+ options: OPTION[];
17
+ /** Размер */
18
+ size?: FormElementSizeVariant;
19
+ /** Выбранное значение опции */
20
+ value?: AutocompletePropValue<OPTION, MULTIPLE>;
21
+ /** Функция обратного вызова, которая будет вызвана при выборе значения */
22
+ onChange?: AutocompleteDropdownOnChange<OPTION>;
23
+ /** Функция для кастомизации отображения опции */
24
+ renderOption?: AutocompletePropRenderOption<OPTION>;
25
+ /** Функция для определения уникального ключа элемента */
26
+ getOptionKey: AutocompletePropGetOptionKey<OPTION>;
27
+ /** Функция для определения названия элемента */
28
+ getOptionLabel: AutocompletePropGetOptionLabel<OPTION>;
29
+ /** Функция для определения заблокированного элемента */
30
+ getOptionDisabled: AutocompletePropGetOptionDisabled<OPTION>;
31
+ /** Если {true} не показывает список с отсутствующими опциями */
32
+ disableShowEmptyOptionsList?: boolean;
33
+ /** Текст компонента в состоянии загрузки */
34
+ loadingText?: ReactNode;
35
+ /** Текст компонента при отсутствующих опций */
36
+ noOptionsText?: ReactNode;
37
+ /** Свойства компонента Popover */
38
+ popoverProps?: Partial<Omit<PopoverProps, 'children' | 'open' | 'anchorRef' | 'onClose' | 'className'>>;
39
+ /** Свойства компонента List */
40
+ listProps?: Partial<Omit<ListProps, 'children'>>;
41
+ loading?: boolean;
42
+ hasOptions?: boolean;
43
+ 'data-testid'?: string;
44
+ } & Pick<PopoverProps, 'open' | 'anchorRef' | 'onClose' | 'className' | 'setUpdate'>;
45
+ export type AutocompleteDropdownComponent = <OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false>(props: AutocompleteDropdownProps<OPTION, MULTIPLE>) => ReactElement | null;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from './useDataListNavigation';
2
+ export * from './useScrollContainerToElement';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./useDataListNavigation"), exports);
5
+ tslib_1.__exportStar(require("./useScrollContainerToElement"), exports);
@@ -0,0 +1,20 @@
1
+ import type { MouseEvent } from 'react';
2
+ export type UseListNavigationItem = string | number | null;
3
+ export type UseListNavigationItems = UseListNavigationItem[];
4
+ export type UseListNavigationProps = {
5
+ active?: boolean;
6
+ items?: UseListNavigationItems;
7
+ selected?: UseListNavigationItem;
8
+ onSelect?(event: KeyboardEvent | MouseEvent<HTMLElement>, item?: UseListNavigationItem): void;
9
+ };
10
+ export type UseListNavigationState = {
11
+ focused?: UseListNavigationItem;
12
+ current?: UseListNavigationItem;
13
+ };
14
+ export type UseListNavigationEvents = {
15
+ onKeyDown?(event: KeyboardEvent): void;
16
+ onClick?(event: MouseEvent<HTMLElement>, item: UseListNavigationItem): void;
17
+ };
18
+ export type UseListNavigationReturn = UseListNavigationState & UseListNavigationEvents;
19
+ /** Навигация по элементам списка без перехвата фокуса с элемента контроля */
20
+ export declare function useDataListNavigation({ selected, onSelect, active, items: itemsProps, }: UseListNavigationProps): UseListNavigationReturn;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDataListNavigation = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = require("react");
6
+ var useMutableRef_1 = require("../../../../../hooks/useMutableRef");
7
+ var getNextIndex_1 = require("../../../../../utils/getNextIndex");
8
+ var getPrevIndex_1 = require("../../../../../utils/getPrevIndex");
9
+ var isKey_1 = require("../../../../../utils/isKey");
10
+ var isKeys_1 = require("../../../../../utils/isKeys");
11
+ /** Навигация по элементам списка без перехвата фокуса с элемента контроля */
12
+ function useDataListNavigation(_a) {
13
+ var selected = _a.selected, onSelect = _a.onSelect, _b = _a.active, active = _b === void 0 ? false : _b, itemsProps = _a.items;
14
+ var savedItems = (0, useMutableRef_1.useMutableRef)(itemsProps);
15
+ var savedSelected = (0, useMutableRef_1.useMutableRef)(selected);
16
+ var savedOnSelect = (0, useMutableRef_1.useMutableRef)(onSelect);
17
+ var _c = tslib_1.__read((0, react_1.useState)({}), 2), state = _c[0], setState = _c[1];
18
+ var findInItems = function (value) { var _a; return (_a = savedItems.current) === null || _a === void 0 ? void 0 : _a.find(function (item) { return item === value; }); };
19
+ (0, react_1.useEffect)(function () {
20
+ if (!active)
21
+ return;
22
+ setState(function (prevState) {
23
+ var _a, _b, _c;
24
+ return (tslib_1.__assign(tslib_1.__assign({}, prevState), { focused: (_a = findInItems(prevState.focused)) !== null && _a !== void 0 ? _a : null, current: (_b = findInItems(savedSelected.current)) !== null && _b !== void 0 ? _b : (_c = savedItems.current) === null || _c === void 0 ? void 0 : _c[0] }));
25
+ });
26
+ }, [itemsProps, active]);
27
+ // Сброс
28
+ (0, react_1.useEffect)(function () {
29
+ if (!active)
30
+ return undefined;
31
+ return function () {
32
+ setState({});
33
+ };
34
+ }, [active]);
35
+ var onClick = (0, react_1.useCallback)(function (event, item) {
36
+ var _a;
37
+ if (!active)
38
+ return;
39
+ var focused = item === state.focused ? item : null;
40
+ setState(tslib_1.__assign(tslib_1.__assign({}, state), { focused: focused, current: item }));
41
+ (_a = savedOnSelect.current) === null || _a === void 0 ? void 0 : _a.call(savedOnSelect, event, item);
42
+ }, [state.focused, active]);
43
+ var onKeyDown = (0, react_1.useCallback)(function (event) {
44
+ var _a, _b, _c, _d, _e, _f, _g;
45
+ if (!active || !(0, isKeys_1.isKeys)(event, ['Enter', 'ArrowUp', 'ArrowDown']))
46
+ return;
47
+ var current = (_a = state.focused) !== null && _a !== void 0 ? _a : state.current;
48
+ if ((0, isKey_1.isKey)(event, 'Enter')) {
49
+ // Не обрабатываем ввод в пустом списке
50
+ if (!((_b = savedItems.current) === null || _b === void 0 ? void 0 : _b.length))
51
+ return;
52
+ event.preventDefault();
53
+ setState(tslib_1.__assign(tslib_1.__assign({}, state), { current: current, focused: current }));
54
+ (_c = savedOnSelect.current) === null || _c === void 0 ? void 0 : _c.call(savedOnSelect, event, current);
55
+ }
56
+ if ((0, isKeys_1.isKeys)(event, ['ArrowUp', 'ArrowDown'])) {
57
+ event.preventDefault();
58
+ var currentIndex = typeof current !== 'undefined'
59
+ ? (_d = savedItems.current) === null || _d === void 0 ? void 0 : _d.indexOf(current)
60
+ : null;
61
+ var isArrowUp = (0, isKey_1.isKey)(event, 'ArrowUp');
62
+ var newIndex = isArrowUp
63
+ ? (0, getPrevIndex_1.getPrevIndex)(currentIndex !== null && currentIndex !== void 0 ? currentIndex : 0, ((_e = savedItems.current) === null || _e === void 0 ? void 0 : _e.length) || 0)
64
+ : (0, getNextIndex_1.getNextIndex)(currentIndex !== null && currentIndex !== void 0 ? currentIndex : -1, ((_f = savedItems.current) === null || _f === void 0 ? void 0 : _f.length) || 0);
65
+ var newItem = (_g = savedItems.current) === null || _g === void 0 ? void 0 : _g[newIndex];
66
+ setState(tslib_1.__assign(tslib_1.__assign({}, state), { focused: newItem }));
67
+ }
68
+ }, [state.focused, state.current, active]);
69
+ return tslib_1.__assign(tslib_1.__assign({}, state), { onClick: onClick, onKeyDown: onKeyDown });
70
+ }
71
+ exports.useDataListNavigation = useDataListNavigation;
@@ -0,0 +1,3 @@
1
+ import type { RefObject } from 'react';
2
+ import type { ScrollContainerToElement } from '../../../../../utils/scrollContainerToElement';
3
+ export declare function useScrollContainerToElement(container: RefObject<HTMLElement>, element: RefObject<HTMLElement>, behavior?: ScrollContainerToElement['behavior']): void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useScrollContainerToElement = void 0;
4
+ var react_1 = require("react");
5
+ var scrollContainerToElement_1 = require("../../../../../utils/scrollContainerToElement");
6
+ function useScrollContainerToElement(container, element, behavior) {
7
+ (0, react_1.useEffect)(function () {
8
+ (0, scrollContainerToElement_1.scrollContainerToElement)({
9
+ container: container.current,
10
+ element: element.current,
11
+ behavior: behavior,
12
+ });
13
+ }, [container, element]);
14
+ }
15
+ exports.useScrollContainerToElement = useScrollContainerToElement;
@@ -0,0 +1,2 @@
1
+ import type { AutocompleteInputComponent } from './types';
2
+ export declare const AutocompleteInput: AutocompleteInputComponent;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutocompleteInput = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importStar(require("react"));
6
+ var isNotNil_1 = require("../../../../utils/isNotNil");
7
+ var Input_1 = require("../../../Input");
8
+ var index_1 = require("../../index");
9
+ var AutocompleteRenderRight_1 = require("../AutocompleteRenderRight");
10
+ var components_1 = require("./components");
11
+ var helpers_1 = require("./helpers");
12
+ var AutocompleteInputRender = function (inProps, ref) {
13
+ var _a, _b;
14
+ var _c = inProps.size, size = _c === void 0 ? 'm' : _c, open = inProps.open, value = inProps.value, onOpen = inProps.onOpen, onClear = inProps.onClear, multiple = inProps.multiple, disabled = inProps.disabled, openText = inProps.openText, onRemoveTag = inProps.onRemoveTag, clearText = inProps.clearText, closeText = inProps.closeText, className = inProps.className, bodyProps = inProps.bodyProps, inputProps = inProps.inputProps, renderRight = inProps.renderRight, placeholder = inProps.placeholder, selectedOptions = inProps.selectedOptions, getOptionKey = inProps.getOptionKey, getOptionLabel = inProps.getOptionLabel, getOptionDisabled = inProps.getOptionDisabled, limitTags = inProps.limitTags, disableClearButton = inProps.disableClearButton, disableShowChevron = inProps.disableShowChevron, renderTag = inProps.renderTag, renderInputProp = inProps.renderInput, renderMoreTag = inProps.renderMoreTag, other = tslib_1.__rest(inProps, ["size", "open", "value", "onOpen", "onClear", "multiple", "disabled", "openText", "onRemoveTag", "clearText", "closeText", "className", "bodyProps", "inputProps", "renderRight", "placeholder", "selectedOptions", "getOptionKey", "getOptionLabel", "getOptionDisabled", "limitTags", "disableClearButton", "disableShowChevron", "renderTag", "renderInput", "renderMoreTag"]);
15
+ var hasValue = (0, helpers_1.isMultipleParams)(inProps)
16
+ ? !!((_a = inProps.selectedOptions) === null || _a === void 0 ? void 0 : _a.length)
17
+ : (0, isNotNil_1.isNotNil)(selectedOptions);
18
+ var selectedOptionsLength = (0, helpers_1.isMultipleParams)(inProps)
19
+ ? ((_b = inProps.selectedOptions) === null || _b === void 0 ? void 0 : _b.length) || 0
20
+ : 0;
21
+ var renderInputDefault = function (props, ref) { return (react_1.default.createElement(Input_1.Input, tslib_1.__assign({}, props, { ref: ref }))); };
22
+ var renderInput = renderInputProp || renderInputDefault;
23
+ var renderComponent = function (_a, ref) {
24
+ var className = _a.className, other = tslib_1.__rest(_a, ["className"]);
25
+ if ((0, helpers_1.isNotMultipleParams)(inProps)) {
26
+ return (react_1.default.createElement("input", tslib_1.__assign({}, other, { ref: ref, className: (0, index_1.cnAutocomplete)('Input', { multiple: multiple }, [className]) })));
27
+ }
28
+ if ((0, helpers_1.isMultipleParams)(inProps)) {
29
+ var selectedOptions_1 = inProps.selectedOptions;
30
+ return (react_1.default.createElement(components_1.AutocompleteInputMultiple, tslib_1.__assign({ renderTag: renderTag, limitTags: limitTags, onRemoveTag: onRemoveTag, getOptionKey: getOptionKey, renderMoreTag: renderMoreTag, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, selectedOptions: selectedOptions_1, ref: ref }, other)));
31
+ }
32
+ return null;
33
+ };
34
+ return renderInput(tslib_1.__assign({ size: size, disabled: disabled, value: value || '', placeholder: placeholder, renderRight: (react_1.default.createElement(AutocompleteRenderRight_1.AutocompleteRenderRight, { open: open, size: size, onOpen: onOpen, onClear: onClear, hasValue: hasValue, openText: openText, disabled: disabled, clearText: clearText, closeText: closeText, renderRight: renderRight, disableShowChevron: disableShowChevron, disableClearButton: disableClearButton })), labelProps: {
35
+ shrink: !!selectedOptionsLength,
36
+ }, inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputProps), { renderComponent: renderComponent }), bodyProps: tslib_1.__assign({ 'aria-expanded': open }, bodyProps), className: (0, index_1.cnAutocomplete)({ size: size, multiple: multiple, hasChevron: !disableShowChevron }, [className]) }, other), ref);
37
+ };
38
+ exports.AutocompleteInput = (0, react_1.forwardRef)(AutocompleteInputRender);
@@ -0,0 +1,2 @@
1
+ import type { AutocompleteInputMultipleComponent } from './types';
2
+ export declare const AutocompleteInputMultiple: AutocompleteInputMultipleComponent;