@scbt-ecom/ui 0.93.0 → 0.95.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 (474) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/configs/tailwindConfigBase.js.map +1 -1
  3. package/dist/lib/configs/tailwindPresets/resetPreset.js.map +1 -1
  4. package/dist/lib/next/utils/hasWidget.js.map +1 -1
  5. package/dist/lib/next/utils/hideWidgetsWithQueryParams.js.map +1 -1
  6. package/dist/lib/next/utils/orderWidgetWithQueryParams.js.map +1 -1
  7. package/dist/lib/shared/api/apiInstance.js.map +1 -1
  8. package/dist/lib/shared/hooks/useClickOutside.js.map +1 -1
  9. package/dist/lib/shared/hooks/useDebounce.js.map +1 -1
  10. package/dist/lib/shared/hooks/useDevice.js.map +1 -1
  11. package/dist/lib/shared/hooks/useFieldsProgress.js.map +1 -1
  12. package/dist/lib/shared/hooks/useFloating.js.map +1 -1
  13. package/dist/lib/shared/hooks/useObserverWidgets.js.map +1 -1
  14. package/dist/lib/shared/hooks/useOverflow.js.map +1 -1
  15. package/dist/lib/shared/ui/accordion/Accordion.js.map +1 -1
  16. package/dist/lib/shared/ui/calendar/Calendar.js.map +1 -1
  17. package/dist/lib/shared/ui/calendar/ui/MonthCaption.js.map +1 -1
  18. package/dist/lib/shared/ui/calendar/ui/Navigation.js.map +1 -1
  19. package/dist/lib/shared/ui/calendar/ui/selectDate/SelectDate.js.map +1 -1
  20. package/dist/lib/shared/ui/calendar/ui/selectDate/ui/SelectList.js.map +1 -1
  21. package/dist/lib/shared/ui/carousel/CarouselNative.js.map +1 -1
  22. package/dist/lib/shared/ui/carousel/model/hooks/useArrowNavigation.js.map +1 -1
  23. package/dist/lib/shared/ui/carousel/model/hooks/useCarousel.js.map +1 -1
  24. package/dist/lib/shared/ui/carousel/model/hooks/useDotsNavigation.js.map +1 -1
  25. package/dist/lib/shared/ui/carousel/ui/CarouselContent.js.map +1 -1
  26. package/dist/lib/shared/ui/dialog/Dialog.js.map +1 -1
  27. package/dist/lib/shared/ui/dropdownList/DropdownList.js.map +1 -1
  28. package/dist/lib/shared/ui/dropdownList/hooks/useKeyboardNavigation.js.map +1 -1
  29. package/dist/lib/shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js.map +1 -1
  30. package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js.map +1 -1
  31. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js +1 -1
  32. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js.map +1 -1
  33. package/dist/lib/shared/ui/formElements/controlled/dadata/address/query.js.map +1 -1
  34. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js +1 -1
  35. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js.map +1 -1
  36. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/query.js.map +1 -1
  37. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js +1 -1
  38. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js.map +1 -1
  39. package/dist/lib/shared/ui/formElements/controlled/dadata/country/query.js.map +1 -1
  40. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js +1 -1
  41. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js.map +1 -1
  42. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/query.js.map +1 -1
  43. package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js.map +1 -1
  44. package/dist/lib/shared/ui/formElements/controlled/dadata/party/query.js.map +1 -1
  45. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js.map +1 -1
  46. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/range.js.map +1 -1
  47. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js.map +1 -1
  48. package/dist/lib/shared/ui/formElements/controlled/editor/model/config.js.map +1 -1
  49. package/dist/lib/shared/ui/formElements/controlled/editor/ui/Editor.js.map +1 -1
  50. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.js.map +1 -1
  51. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js.map +1 -1
  52. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/model/useInputCurrency.js.map +1 -1
  53. package/dist/lib/shared/ui/formElements/controlled/select/SelectControl.js.map +1 -1
  54. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js.map +1 -1
  55. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/types.js +2 -0
  56. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/types.js.map +1 -0
  57. package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js.map +1 -1
  58. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js.map +1 -1
  59. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.js.map +1 -1
  60. package/dist/lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js.map +1 -1
  61. package/dist/lib/shared/ui/formElements/uncontrolled/index.js.map +1 -1
  62. package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js.map +1 -1
  63. package/dist/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js.map +1 -1
  64. package/dist/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.js.map +1 -1
  65. package/dist/lib/shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js.map +1 -1
  66. package/dist/lib/shared/ui/formElements/uncontrolled/select/Select.js.map +1 -1
  67. package/dist/lib/shared/ui/formElements/uncontrolled/select/hooks/useSelectController.js.map +1 -1
  68. package/dist/lib/shared/ui/formElements/uncontrolled/select/ui/Chip.js.map +1 -1
  69. package/dist/lib/shared/ui/formElements/uncontrolled/select/ui/SelectItem.js.map +1 -1
  70. package/dist/lib/shared/ui/formElements/uncontrolled/slider/model/useLogarithmic.js.map +1 -1
  71. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/Slider.js.map +1 -1
  72. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js.map +1 -1
  73. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.js.map +1 -1
  74. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map +1 -1
  75. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.js.map +1 -1
  76. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js.map +1 -1
  77. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.js.map +1 -1
  78. package/dist/lib/shared/ui/formElements/uncontrolled/switch/Switch.js.map +1 -1
  79. package/dist/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.js.map +1 -1
  80. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js.map +1 -1
  81. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js.map +1 -1
  82. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderInput.js.map +1 -1
  83. package/dist/lib/shared/ui/modal/Modal.js.map +1 -1
  84. package/dist/lib/shared/ui/modal/ui/IframeModalContent.js.map +1 -1
  85. package/dist/lib/shared/ui/pagination/Pagination.js.map +1 -1
  86. package/dist/lib/shared/ui/providers/NotificationProvider.js.map +1 -1
  87. package/dist/lib/shared/ui/slot/Slot.js.map +1 -1
  88. package/dist/lib/shared/ui/slot/model/mergeProps.js.map +1 -1
  89. package/dist/lib/shared/ui/slot/ui/SlotClone.js.map +1 -1
  90. package/dist/lib/shared/ui/tabSwitcher/ui/TabContent.js.map +1 -1
  91. package/dist/lib/shared/ui/table/Mobile.js.map +1 -1
  92. package/dist/lib/shared/ui/table/model/TableUtils.js.map +1 -1
  93. package/dist/lib/shared/ui/table/ui/editableCell/EditableCell.js.map +1 -1
  94. package/dist/lib/shared/utils/localStorageActions.js.map +1 -1
  95. package/dist/lib/shared/utils/mergeRefs.js.map +1 -1
  96. package/dist/lib/shared/utils/scrollToElement.js.map +1 -1
  97. package/dist/lib/shared/utils/sessionStorage.js.map +1 -1
  98. package/dist/lib/shared/utils/typeGuards.js.map +1 -1
  99. package/dist/lib/shared/validation/base/base.constants.js.map +1 -1
  100. package/dist/lib/shared/validation/base/date.validators.js.map +1 -1
  101. package/dist/lib/shared/validation/base/phone.validators.js.map +1 -1
  102. package/dist/lib/shared/validation/base/select.validators.js.map +1 -1
  103. package/dist/lib/shared/validation/dadata/fio.validators.js.map +1 -1
  104. package/dist/lib/shared/validation/utils/zodUtils.js.map +1 -1
  105. package/dist/lib/widgets/breadcrumbs/Breadcrumb.js +1 -1
  106. package/dist/lib/widgets/breadcrumbs/Breadcrumb.js.map +1 -1
  107. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js +1 -1
  108. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js.map +1 -1
  109. package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js.map +1 -1
  110. package/dist/lib/widgets/calculator/CalculatorView.js.map +1 -1
  111. package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js.map +1 -1
  112. package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
  113. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js.map +1 -1
  114. package/dist/lib/widgets/fieldMapper/FieldMapper.js.map +1 -1
  115. package/dist/lib/widgets/footer/ui/Ligal.js.map +1 -1
  116. package/dist/lib/widgets/htmlParser/baseHtmlParser.js.map +1 -1
  117. package/dist/lib/widgets/htmlParser/htmlParser.js.map +1 -1
  118. package/dist/lib/widgets/htmlParser/reactHtmlParser.js.map +1 -1
  119. package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js.map +1 -1
  120. package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js.map +1 -1
  121. package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js.map +1 -1
  122. package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js.map +1 -1
  123. package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js.map +1 -1
  124. package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js.map +1 -1
  125. package/dist/lib/widgets/userFeedback/model/hooks/useRating.js.map +1 -1
  126. package/dist/lib/widgets/userFeedback/ui/FeedbackTrigger.js.map +1 -1
  127. package/dist/lib/widgets/userFeedback/ui/UserReview.js.map +1 -1
  128. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  129. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js.map +1 -1
  130. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -1
  131. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +1 -1
  132. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  133. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -1
  134. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -1
  135. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -1
  136. package/dist/node_modules/@date-fns/tz/date/index.js.map +1 -1
  137. package/dist/node_modules/@date-fns/tz/date/mini.js.map +1 -1
  138. package/dist/node_modules/@date-fns/tz/tzOffset/index.js.map +1 -1
  139. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  140. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
  141. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -1
  142. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -1
  143. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -1
  144. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  145. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js.map +1 -1
  146. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -1
  147. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -1
  148. package/dist/node_modules/@headlessui/react/dist/internal/floating.js.map +1 -1
  149. package/dist/node_modules/@headlessui/react/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -1
  150. package/dist/node_modules/@headlessui/react/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -1
  151. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -1
  152. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js.map +1 -1
  153. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -1
  154. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -1
  155. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  156. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  157. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -1
  158. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  159. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -1
  160. package/dist/node_modules/@radix-ui/react-popover/dist/index.js.map +1 -1
  161. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  162. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -1
  163. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  164. package/dist/node_modules/@radix-ui/react-radio-group/dist/index.js.map +1 -1
  165. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -1
  166. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  167. package/dist/node_modules/@radix-ui/react-switch/dist/index.js.map +1 -1
  168. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -1
  169. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -1
  170. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -1
  171. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -1
  172. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -1
  173. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -1
  174. package/dist/node_modules/@react-aria/focus/dist/useFocusRing.js.map +1 -1
  175. package/dist/node_modules/@react-aria/interactions/dist/useFocus.js.map +1 -1
  176. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.js.map +1 -1
  177. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.js.map +1 -1
  178. package/dist/node_modules/@react-aria/interactions/dist/useHover.js.map +1 -1
  179. package/dist/node_modules/@react-aria/interactions/dist/utils.js.map +1 -1
  180. package/dist/node_modules/@react-aria/utils/dist/DOMFunctions.js.map +1 -1
  181. package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.js.map +1 -1
  182. package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.js.map +1 -1
  183. package/dist/node_modules/@react-aria/utils/dist/useLayoutEffect.js.map +1 -1
  184. package/dist/node_modules/@tanstack/query-core/build/modern/focusManager.js.map +1 -1
  185. package/dist/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js.map +1 -1
  186. package/dist/node_modules/@tanstack/query-core/build/modern/mutation.js.map +1 -1
  187. package/dist/node_modules/@tanstack/query-core/build/modern/mutationCache.js.map +1 -1
  188. package/dist/node_modules/@tanstack/query-core/build/modern/notifyManager.js.map +1 -1
  189. package/dist/node_modules/@tanstack/query-core/build/modern/onlineManager.js.map +1 -1
  190. package/dist/node_modules/@tanstack/query-core/build/modern/query.js.map +1 -1
  191. package/dist/node_modules/@tanstack/query-core/build/modern/queryCache.js.map +1 -1
  192. package/dist/node_modules/@tanstack/query-core/build/modern/queryClient.js.map +1 -1
  193. package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js.map +1 -1
  194. package/dist/node_modules/@tanstack/query-core/build/modern/removable.js.map +1 -1
  195. package/dist/node_modules/@tanstack/query-core/build/modern/retryer.js.map +1 -1
  196. package/dist/node_modules/@tanstack/query-core/build/modern/subscribable.js.map +1 -1
  197. package/dist/node_modules/@tanstack/query-core/build/modern/thenable.js.map +1 -1
  198. package/dist/node_modules/@tanstack/query-core/build/modern/utils.js.map +1 -1
  199. package/dist/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js.map +1 -1
  200. package/dist/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js.map +1 -1
  201. package/dist/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js.map +1 -1
  202. package/dist/node_modules/@tanstack/react-query/build/modern/suspense.js.map +1 -1
  203. package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js.map +1 -1
  204. package/dist/node_modules/@tanstack/react-table/build/lib/index.js.map +1 -1
  205. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js.map +1 -1
  206. package/dist/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
  207. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js.map +1 -1
  208. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js.map +1 -1
  209. package/dist/node_modules/@tiptap/core/dist/index.js.map +1 -1
  210. package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js.map +1 -1
  211. package/dist/node_modules/@tiptap/extension-bold/dist/index.js.map +1 -1
  212. package/dist/node_modules/@tiptap/extension-bullet-list/dist/index.js.map +1 -1
  213. package/dist/node_modules/@tiptap/extension-character-count/dist/index.js.map +1 -1
  214. package/dist/node_modules/@tiptap/extension-code/dist/index.js.map +1 -1
  215. package/dist/node_modules/@tiptap/extension-code-block/dist/index.js.map +1 -1
  216. package/dist/node_modules/@tiptap/extension-color/dist/index.js.map +1 -1
  217. package/dist/node_modules/@tiptap/extension-dropcursor/dist/index.js.map +1 -1
  218. package/dist/node_modules/@tiptap/extension-gapcursor/dist/index.js.map +1 -1
  219. package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js.map +1 -1
  220. package/dist/node_modules/@tiptap/extension-heading/dist/index.js.map +1 -1
  221. package/dist/node_modules/@tiptap/extension-history/dist/index.js.map +1 -1
  222. package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js.map +1 -1
  223. package/dist/node_modules/@tiptap/extension-italic/dist/index.js.map +1 -1
  224. package/dist/node_modules/@tiptap/extension-link/dist/index.js.map +1 -1
  225. package/dist/node_modules/@tiptap/extension-list-item/dist/index.js.map +1 -1
  226. package/dist/node_modules/@tiptap/extension-ordered-list/dist/index.js.map +1 -1
  227. package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js.map +1 -1
  228. package/dist/node_modules/@tiptap/extension-strike/dist/index.js.map +1 -1
  229. package/dist/node_modules/@tiptap/extension-text-style/dist/index.js.map +1 -1
  230. package/dist/node_modules/@tiptap/extension-underline/dist/index.js.map +1 -1
  231. package/dist/node_modules/@tiptap/react/dist/index.js.map +1 -1
  232. package/dist/node_modules/@tiptap/starter-kit/dist/index.js.map +1 -1
  233. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -1
  234. package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -1
  235. package/dist/node_modules/classnames/index.js.map +1 -1
  236. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
  237. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
  238. package/dist/node_modules/date-fns/format.js.map +1 -1
  239. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
  240. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
  241. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
  242. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
  243. package/dist/node_modules/date-fns/locale/ru/_lib/formatRelative.js.map +1 -1
  244. package/dist/node_modules/date-fns/max.js.map +1 -1
  245. package/dist/node_modules/date-fns/min.js.map +1 -1
  246. package/dist/node_modules/date-fns/parse/_lib/Parser.js.map +1 -1
  247. package/dist/node_modules/date-fns/parse/_lib/Setter.js.map +1 -1
  248. package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js.map +1 -1
  249. package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js.map +1 -1
  250. package/dist/node_modules/date-fns/parse/_lib/parsers/DateParser.js.map +1 -1
  251. package/dist/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js.map +1 -1
  252. package/dist/node_modules/date-fns/parse/_lib/parsers/DayParser.js.map +1 -1
  253. package/dist/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js.map +1 -1
  254. package/dist/node_modules/date-fns/parse/_lib/parsers/EraParser.js.map +1 -1
  255. package/dist/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js.map +1 -1
  256. package/dist/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js.map +1 -1
  257. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js.map +1 -1
  258. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js.map +1 -1
  259. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js.map +1 -1
  260. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js.map +1 -1
  261. package/dist/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js.map +1 -1
  262. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js.map +1 -1
  263. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js.map +1 -1
  264. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js.map +1 -1
  265. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js.map +1 -1
  266. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js.map +1 -1
  267. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js.map +1 -1
  268. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js.map +1 -1
  269. package/dist/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js.map +1 -1
  270. package/dist/node_modules/date-fns/parse/_lib/parsers/MonthParser.js.map +1 -1
  271. package/dist/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js.map +1 -1
  272. package/dist/node_modules/date-fns/parse/_lib/parsers/SecondParser.js.map +1 -1
  273. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js.map +1 -1
  274. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js.map +1 -1
  275. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js.map +1 -1
  276. package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js.map +1 -1
  277. package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js.map +1 -1
  278. package/dist/node_modules/date-fns/parse/_lib/parsers/YearParser.js.map +1 -1
  279. package/dist/node_modules/date-fns/parse/_lib/utils.js.map +1 -1
  280. package/dist/node_modules/date-fns/parse.js.map +1 -1
  281. package/dist/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +1 -1
  282. package/dist/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js.map +1 -1
  283. package/dist/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js.map +1 -1
  284. package/dist/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +1 -1
  285. package/dist/node_modules/file-selector/dist/es2015/file-selector.js.map +1 -1
  286. package/dist/node_modules/file-selector/dist/es2015/file.js.map +1 -1
  287. package/dist/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.js.map +1 -1
  288. package/dist/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.js.map +1 -1
  289. package/dist/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.js.map +1 -1
  290. package/dist/node_modules/framer-motion/dist/es/animation/generators/inertia.js.map +1 -1
  291. package/dist/node_modules/framer-motion/dist/es/animation/generators/spring/find.js.map +1 -1
  292. package/dist/node_modules/framer-motion/dist/es/animation/generators/spring/index.js.map +1 -1
  293. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.js.map +1 -1
  294. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.js.map +1 -1
  295. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.js.map +1 -1
  296. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.js.map +1 -1
  297. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.js.map +1 -1
  298. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.js.map +1 -1
  299. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.js.map +1 -1
  300. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js.map +1 -1
  301. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.js.map +1 -1
  302. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.js.map +1 -1
  303. package/dist/node_modules/framer-motion/dist/es/easing/utils/map.js.map +1 -1
  304. package/dist/node_modules/framer-motion/dist/es/frameloop/batcher.js.map +1 -1
  305. package/dist/node_modules/framer-motion/dist/es/frameloop/render-step.js.map +1 -1
  306. package/dist/node_modules/framer-motion/dist/es/frameloop/sync-time.js.map +1 -1
  307. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js.map +1 -1
  308. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.js.map +1 -1
  309. package/dist/node_modules/framer-motion/dist/es/gestures/focus.js.map +1 -1
  310. package/dist/node_modules/framer-motion/dist/es/gestures/hover.js.map +1 -1
  311. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.js.map +1 -1
  312. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.js.map +1 -1
  313. package/dist/node_modules/framer-motion/dist/es/gestures/press.js.map +1 -1
  314. package/dist/node_modules/framer-motion/dist/es/motion/features/Feature.js.map +1 -1
  315. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.js.map +1 -1
  316. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.js.map +1 -1
  317. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.js.map +1 -1
  318. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.js.map +1 -1
  319. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.js.map +1 -1
  320. package/dist/node_modules/framer-motion/dist/es/motion/index.js.map +1 -1
  321. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js.map +1 -1
  322. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js.map +1 -1
  323. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js.map +1 -1
  324. package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.js.map +1 -1
  325. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.js.map +1 -1
  326. package/dist/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.js.map +1 -1
  327. package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.js.map +1 -1
  328. package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.js.map +1 -1
  329. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.js.map +1 -1
  330. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.js.map +1 -1
  331. package/dist/node_modules/framer-motion/dist/es/projection/styles/transform.js.map +1 -1
  332. package/dist/node_modules/framer-motion/dist/es/render/VisualElement.js.map +1 -1
  333. package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.js.map +1 -1
  334. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.js.map +1 -1
  335. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.js.map +1 -1
  336. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.js.map +1 -1
  337. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.js.map +1 -1
  338. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.js.map +1 -1
  339. package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.js.map +1 -1
  340. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.js.map +1 -1
  341. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.js.map +1 -1
  342. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.js.map +1 -1
  343. package/dist/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.js.map +1 -1
  344. package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.js.map +1 -1
  345. package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.js.map +1 -1
  346. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.js.map +1 -1
  347. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.js.map +1 -1
  348. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.js.map +1 -1
  349. package/dist/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.js.map +1 -1
  350. package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.js.map +1 -1
  351. package/dist/node_modules/framer-motion/dist/es/render/utils/flat-tree.js.map +1 -1
  352. package/dist/node_modules/framer-motion/dist/es/render/utils/get-variant-context.js.map +1 -1
  353. package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.js.map +1 -1
  354. package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-variants.js.map +1 -1
  355. package/dist/node_modules/framer-motion/dist/es/render/utils/setters.js.map +1 -1
  356. package/dist/node_modules/framer-motion/dist/es/utils/delay.js.map +1 -1
  357. package/dist/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.js.map +1 -1
  358. package/dist/node_modules/framer-motion/dist/es/utils/interpolate.js.map +1 -1
  359. package/dist/node_modules/framer-motion/dist/es/utils/mix/complex.js.map +1 -1
  360. package/dist/node_modules/framer-motion/dist/es/utils/offsets/fill.js.map +1 -1
  361. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.js.map +1 -1
  362. package/dist/node_modules/framer-motion/dist/es/utils/subscription-manager.js.map +1 -1
  363. package/dist/node_modules/framer-motion/dist/es/value/index.js.map +1 -1
  364. package/dist/node_modules/framer-motion/dist/es/value/types/complex/filter.js.map +1 -1
  365. package/dist/node_modules/framer-motion/dist/es/value/types/complex/index.js.map +1 -1
  366. package/dist/node_modules/linkifyjs/dist/linkify.js.map +1 -1
  367. package/dist/node_modules/motion-dom/dist/es/animation/controls/BaseGroup.js.map +1 -1
  368. package/dist/node_modules/motion-dom/dist/es/animation/controls/Group.js.map +1 -1
  369. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.js.map +1 -1
  370. package/dist/node_modules/motion-dom/dist/es/gestures/hover.js.map +1 -1
  371. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.js.map +1 -1
  372. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.js.map +1 -1
  373. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js.map +1 -1
  374. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.js.map +1 -1
  375. package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.js.map +1 -1
  376. package/dist/node_modules/orderedmap/dist/index.js.map +1 -1
  377. package/dist/node_modules/prosemirror-commands/dist/index.js.map +1 -1
  378. package/dist/node_modules/prosemirror-dropcursor/dist/index.js.map +1 -1
  379. package/dist/node_modules/prosemirror-gapcursor/dist/index.js.map +1 -1
  380. package/dist/node_modules/prosemirror-history/dist/index.js.map +1 -1
  381. package/dist/node_modules/prosemirror-keymap/dist/index.js.map +1 -1
  382. package/dist/node_modules/prosemirror-model/dist/index.js.map +1 -1
  383. package/dist/node_modules/prosemirror-schema-list/dist/index.js.map +1 -1
  384. package/dist/node_modules/prosemirror-state/dist/index.js.map +1 -1
  385. package/dist/node_modules/prosemirror-transform/dist/index.js.map +1 -1
  386. package/dist/node_modules/prosemirror-view/dist/index.js.map +1 -1
  387. package/dist/node_modules/rc-slider/es/Handles/Handle.js.map +1 -1
  388. package/dist/node_modules/rc-slider/es/Handles/index.js.map +1 -1
  389. package/dist/node_modules/rc-slider/es/Marks/Mark.js.map +1 -1
  390. package/dist/node_modules/rc-slider/es/Marks/index.js.map +1 -1
  391. package/dist/node_modules/rc-slider/es/Slider.js.map +1 -1
  392. package/dist/node_modules/rc-slider/es/Steps/index.js.map +1 -1
  393. package/dist/node_modules/rc-slider/es/Tracks/Track.js.map +1 -1
  394. package/dist/node_modules/rc-slider/es/Tracks/index.js.map +1 -1
  395. package/dist/node_modules/rc-slider/es/hooks/useDrag.js.map +1 -1
  396. package/dist/node_modules/rc-slider/es/hooks/useOffset.js.map +1 -1
  397. package/dist/node_modules/rc-slider/es/hooks/useRange.js.map +1 -1
  398. package/dist/node_modules/rc-util/es/hooks/useEvent.js.map +1 -1
  399. package/dist/node_modules/rc-util/es/hooks/useLayoutEffect.js.map +1 -1
  400. package/dist/node_modules/rc-util/es/hooks/useMergedState.js.map +1 -1
  401. package/dist/node_modules/rc-util/es/hooks/useState.js.map +1 -1
  402. package/dist/node_modules/rc-util/es/isEqual.js.map +1 -1
  403. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js +1 -1
  404. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js.map +1 -1
  405. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js.map +1 -1
  406. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js.map +1 -1
  407. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js.map +1 -1
  408. package/dist/node_modules/react-day-picker/dist/esm/classes/DateLib.js.map +1 -1
  409. package/dist/node_modules/react-day-picker/dist/esm/components/DayButton.js.map +1 -1
  410. package/dist/node_modules/react-day-picker/dist/esm/components/Nav.js.map +1 -1
  411. package/dist/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js.map +1 -1
  412. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +1 -1
  413. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js.map +1 -1
  414. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js.map +1 -1
  415. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDates.js.map +1 -1
  416. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDays.js.map +1 -1
  417. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js.map +1 -1
  418. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +1 -1
  419. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js.map +1 -1
  420. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js.map +1 -1
  421. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonths.js.map +1 -1
  422. package/dist/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js.map +1 -1
  423. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js.map +1 -1
  424. package/dist/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js.map +1 -1
  425. package/dist/node_modules/react-day-picker/dist/esm/selection/useMulti.js.map +1 -1
  426. package/dist/node_modules/react-day-picker/dist/esm/selection/useRange.js.map +1 -1
  427. package/dist/node_modules/react-day-picker/dist/esm/selection/useSingle.js.map +1 -1
  428. package/dist/node_modules/react-day-picker/dist/esm/useAnimation.js.map +1 -1
  429. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js +1 -1
  430. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js.map +1 -1
  431. package/dist/node_modules/react-day-picker/dist/esm/useFocus.js.map +1 -1
  432. package/dist/node_modules/react-day-picker/dist/esm/utils/addToRange.js.map +1 -1
  433. package/dist/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js.map +1 -1
  434. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js.map +1 -1
  435. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js.map +1 -1
  436. package/dist/node_modules/react-dropzone/dist/es/index.js.map +1 -1
  437. package/dist/node_modules/react-dropzone/dist/es/utils/index.js.map +1 -1
  438. package/dist/node_modules/react-hook-form/dist/index.esm.js +1 -1
  439. package/dist/node_modules/react-hook-form/dist/index.esm.js.map +1 -1
  440. package/dist/node_modules/react-number-format/dist/react-number-format.es.js.map +1 -1
  441. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  442. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  443. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -1
  444. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  445. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  446. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -1
  447. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -1
  448. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -1
  449. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -1
  450. package/dist/node_modules/rope-sequence/dist/index.js.map +1 -1
  451. package/dist/node_modules/tailwindcss/lib/public/create-plugin.js.map +1 -1
  452. package/dist/node_modules/tailwindcss/lib/util/createPlugin.js.map +1 -1
  453. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  454. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -1
  455. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -1
  456. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -1
  457. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  458. package/dist/node_modules/zod/v3/ZodError.js.map +1 -1
  459. package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +1 -1
  460. package/dist/node_modules/zod/v3/helpers/util.js.map +1 -1
  461. package/dist/node_modules/zod/v3/types.js.map +1 -1
  462. package/dist/src/shared/utils/getDynamicSchema.js.map +1 -1
  463. package/dist/stats.html +1 -1
  464. package/dist/types/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.d.ts +2 -2
  465. package/dist/types/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.d.ts +2 -2
  466. package/dist/types/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.d.ts +2 -2
  467. package/dist/types/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.d.ts +2 -2
  468. package/dist/types/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.d.ts +2 -2
  469. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.d.ts +3 -2
  470. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/index.d.ts +1 -0
  471. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/types.d.ts +4 -0
  472. package/dist/types/lib/shared/ui/formElements/uncontrolled/index.d.ts +1 -1
  473. package/dist/types/lib/widgets/breadcrumbs/Breadcrumb.d.ts +3 -2
  474. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/address/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataCacheOption } from '../types'\n\nexport const useDadataQueryAddress = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataCacheOption<unknown>[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['address', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/address`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('address', data) as IDadataCacheOption<unknown>[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryAddress","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAwB,CACnCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,UAAWJ,CAAK,EAC3B,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,WAAY,CACrD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,UAAWD,CAAI,CAAA,EAE5C,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
1
+ {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/address/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataCacheOption } from '../types'\n\nexport const useDadataQueryAddress = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataCacheOption<unknown>[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['address', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/address`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('address', data) as IDadataCacheOption<unknown>[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryAddress","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAwB,CACnCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,UAAWJ,CAAK,EAC3B,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,WAAY,CACrD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,UAAWD,CAAI,CAC5C,EACA,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
@@ -1,2 +1,2 @@
1
- import{jsx as n}from"react/jsx-runtime";import{AutocompleteControl as p}from"../../autocomplete/Autocomplete.js";import{useDadataQueryAuto as s}from"./query.js";const c=o=>({value:(o==null?void 0:o.model_mark)||"",label:(o==null?void 0:o.model_mark)||""}),m=({formatter:o=c,dadataBaseUrl:r,queryClient:a,...u})=>{const t=s;return n(p,{query:l=>t(l,r,{},a),formatter:o,...u})};export{m as DadataAuto};
1
+ import{jsx as n}from"react/jsx-runtime";import{AutocompleteControl as d}from"../../autocomplete/Autocomplete.js";import{useDadataQueryAuto as p}from"./query.js";const s=o=>({value:(o==null?void 0:o.model_mark)||"",label:(o==null?void 0:o.model_mark)||"",data:o}),y=({formatter:o=s,dadataBaseUrl:r,queryClient:a,...u})=>{const t=p;return n(d,{query:l=>t(l,r,{},a),formatter:o,...u})};export{y as DadataAuto};
2
2
  //# sourceMappingURL=DadataAuto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DadataAuto.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataAutoOption } from '../types'\nimport { useDadataQueryAuto } from './query'\nimport { type SelectItemOption } from '$/shared/ui'\n\nconst autoFormatter = (item: IDadataAutoOption): SelectItemOption => ({\n value: item?.model_mark || '',\n label: item?.model_mark || ''\n})\n\nexport type DadataAutoProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataAutoOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataAutoOption) => SelectItemOption\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url\n */\nexport const DadataAuto = <TFieldValues extends FieldValues>({\n formatter = autoFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataAutoProps<TFieldValues>) => {\n const queryFn = useDadataQueryAuto\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["autoFormatter","item","DadataAuto","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryAuto","jsx","AutocompleteControl","query"],"mappings":"iKAOA,MAAMA,EAAiBC,IAA+C,CACpE,OAAOA,GAAA,YAAAA,EAAM,aAAc,GAC3B,OAAOA,GAAA,YAAAA,EAAM,aAAc,EAC7B,GAcaC,EAAa,CAAmC,CAC3D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAqC,CACnC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataAuto.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataAutoOption } from '../types'\nimport { useDadataQueryAuto } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst autoFormatter = (item: IDadataAutoOption): AutocompleteItemOption<typeof item> => ({\n value: item?.model_mark || '',\n label: item?.model_mark || '',\n data: item\n})\n\nexport type DadataAutoProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataAutoOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataAutoOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url\n */\nexport const DadataAuto = <TFieldValues extends FieldValues>({\n formatter = autoFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataAutoProps<TFieldValues>) => {\n const queryFn = useDadataQueryAuto\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["autoFormatter","item","DadataAuto","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryAuto","jsx","AutocompleteControl","query"],"mappings":"iKAOA,MAAMA,EAAiBC,IAAkE,CACvF,OAAOA,GAAA,YAAAA,EAAM,aAAc,GAC3B,OAAOA,GAAA,YAAAA,EAAM,aAAc,GAC3B,KAAMA,CACR,GAcaC,EAAa,CAAmC,CAC3D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAqC,CACnC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/auto/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataAutoOption } from '../types'\n\nexport const useDadataQueryAuto = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataAutoOption[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['auto', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/auto`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('auto', data) as IDadataAutoOption[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryAuto","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAqB,CAChCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,OAAQJ,CAAK,EACxB,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,QAAS,CAClD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,OAAQD,CAAI,CAAA,EAEzC,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
1
+ {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/auto/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataAutoOption } from '../types'\n\nexport const useDadataQueryAuto = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataAutoOption[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['auto', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/auto`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('auto', data) as IDadataAutoOption[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryAuto","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAqB,CAChCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,OAAQJ,CAAK,EACxB,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,QAAS,CAClD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,OAAQD,CAAI,CACzC,EACA,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
@@ -1,2 +1,2 @@
1
- import{jsx as y}from"react/jsx-runtime";import{AutocompleteControl as c}from"../../autocomplete/Autocomplete.js";import{useDadataQueryCountry as l}from"./query.js";const p=o=>({value:(o==null?void 0:o.country_name)||"",label:(o==null?void 0:o.country_name)||""}),C=({formatter:o=p,dadataBaseUrl:r,queryClient:n,...u})=>{const a=l;return y(c,{query:t=>a(t,r,{},n),formatter:o,...u})};export{C as DadataCountry};
1
+ import{jsx as y}from"react/jsx-runtime";import{AutocompleteControl as c}from"../../autocomplete/Autocomplete.js";import{useDadataQueryCountry as l}from"./query.js";const p=o=>({value:(o==null?void 0:o.country_name)||"",label:(o==null?void 0:o.country_name)||"",data:o}),f=({formatter:o=p,dadataBaseUrl:r,queryClient:a,...n})=>{const u=l;return y(c,{query:t=>u(t,r,{},a),formatter:o,...n})};export{f as DadataCountry};
2
2
  //# sourceMappingURL=DadataCountry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DadataCountry.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCountryOption } from '../types'\nimport { useDadataQueryCountry } from './query'\nimport { type SelectItemOption } from '$/shared/ui'\n\nconst countryFormatter = (item: IDadataCountryOption): SelectItemOption => ({\n value: item?.country_name || '',\n label: item?.country_name || ''\n})\n\nexport type DadataCountryProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCountryOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCountryOption) => SelectItemOption\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url\n */\nexport const DadataCountry = <TFieldValues extends FieldValues>({\n formatter = countryFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataCountryProps<TFieldValues>) => {\n const queryFn = useDadataQueryCountry\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["countryFormatter","item","DadataCountry","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryCountry","jsx","AutocompleteControl","query"],"mappings":"oKAOA,MAAMA,EAAoBC,IAAkD,CAC1E,OAAOA,GAAA,YAAAA,EAAM,eAAgB,GAC7B,OAAOA,GAAA,YAAAA,EAAM,eAAgB,EAC/B,GAcaC,EAAgB,CAAmC,CAC9D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataCountry.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCountryOption } from '../types'\nimport { useDadataQueryCountry } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst countryFormatter = (item: IDadataCountryOption): AutocompleteItemOption<typeof item> => ({\n value: item?.country_name || '',\n label: item?.country_name || '',\n data: item\n})\n\nexport type DadataCountryProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCountryOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCountryOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url\n */\nexport const DadataCountry = <TFieldValues extends FieldValues>({\n formatter = countryFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataCountryProps<TFieldValues>) => {\n const queryFn = useDadataQueryCountry\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["countryFormatter","item","DadataCountry","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryCountry","jsx","AutocompleteControl","query"],"mappings":"oKAOA,MAAMA,EAAoBC,IAAqE,CAC7F,OAAOA,GAAA,YAAAA,EAAM,eAAgB,GAC7B,OAAOA,GAAA,YAAAA,EAAM,eAAgB,GAC7B,KAAMA,CACR,GAcaC,EAAgB,CAAmC,CAC9D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/country/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataCountryOption } from '../types'\n\nexport const useDadataQueryCountry = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataCountryOption[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['country', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/country`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('country', data) as IDadataCountryOption[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryCountry","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAwB,CACnCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,UAAWJ,CAAK,EAC3B,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,WAAY,CACrD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,UAAWD,CAAI,CAAA,EAE5C,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
1
+ {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/country/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataCountryOption } from '../types'\n\nexport const useDadataQueryCountry = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataCountryOption[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['country', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/country`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('country', data) as IDadataCountryOption[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryCountry","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAwB,CACnCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,UAAWJ,CAAK,EAC3B,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,WAAY,CACrD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,UAAWD,CAAI,CAC5C,EACA,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
@@ -1,2 +1,2 @@
1
- import{jsx as t}from"react/jsx-runtime";import{AutocompleteControl as p}from"../../autocomplete/Autocomplete.js";import{useDadataQueryFio as s}from"./query.js";const c=o=>({value:(o==null?void 0:o.value)||"",label:(o==null?void 0:o.value)||""}),v=({formatter:o=c,dadataBaseUrl:r,queryClient:a,...u})=>{const l=s;return t(p,{query:n=>l(n,r,{},a),formatter:o,...u})};export{v as DadataFio};
1
+ import{jsx as t}from"react/jsx-runtime";import{AutocompleteControl as p}from"../../autocomplete/Autocomplete.js";import{useDadataQueryFio as s}from"./query.js";const c=o=>({value:(o==null?void 0:o.value)||"",label:(o==null?void 0:o.value)||"",data:o}),e=({formatter:o=c,dadataBaseUrl:r,queryClient:a,...u})=>{const l=s;return t(p,{query:n=>l(n,r,{},a),formatter:o,...u})};export{e as DadataFio};
2
2
  //# sourceMappingURL=DadataFio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DadataFio.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCacheOption } from '../types'\nimport { useDadataQueryFio } from './query'\nimport { type SelectItemOption } from '$/shared/ui'\n\nconst fioFormatter = (item: IDadataCacheOption<unknown>): SelectItemOption => ({\n value: item?.value || '',\n label: item?.value || ''\n})\n\nexport type DadataFioProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCacheOption<unknown>>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCacheOption<unknown>) => SelectItemOption\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataFio = <TFieldValues extends FieldValues>({\n formatter = fioFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataFioProps<TFieldValues>) => {\n const queryFn = useDadataQueryFio\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["fioFormatter","item","DadataFio","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryFio","jsx","AutocompleteControl","query"],"mappings":"gKAOA,MAAMA,EAAgBC,IAAyD,CAC7E,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,EACxB,GAcaC,EAAY,CAAmC,CAC1D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAoC,CAClC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataFio.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCacheOption } from '../types'\nimport { useDadataQueryFio } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst fioFormatter = (item: IDadataCacheOption<unknown>): AutocompleteItemOption<typeof item> => ({\n value: item?.value || '',\n label: item?.value || '',\n data: item\n})\n\nexport type DadataFioProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCacheOption<unknown>>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCacheOption<unknown>) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataFio = <TFieldValues extends FieldValues>({\n formatter = fioFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataFioProps<TFieldValues>) => {\n const queryFn = useDadataQueryFio\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["fioFormatter","item","DadataFio","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryFio","jsx","AutocompleteControl","query"],"mappings":"gKAOA,MAAMA,EAAgBC,IAA4E,CAChG,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,KAAMA,CACR,GAcaC,EAAY,CAAmC,CAC1D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAoC,CAClC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/fio/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataCacheOption } from '../types'\n\nexport const useDadataQueryFio = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataCacheOption<unknown>[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['fio', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/fio`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n\n const data = await result.json()\n return getDataByDadataType('fio', data) as IDadataCacheOption<unknown>[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryFio","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAoB,CAC/BC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,MAAOJ,CAAK,EACvB,QAAS,SAAY,CASnB,MAAMK,EAAO,MARE,MAAM,MAAM,GAAGJ,CAAa,OAAQ,CACjD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GAEyB,KAAA,EAC1B,OAAOM,EAAoB,MAAOD,CAAI,CAAA,EAExC,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
1
+ {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/fio/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataCacheOption } from '../types'\n\nexport const useDadataQueryFio = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataCacheOption<unknown>[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['fio', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/fio`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n\n const data = await result.json()\n return getDataByDadataType('fio', data) as IDadataCacheOption<unknown>[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryFio","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAoB,CAC/BC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,MAAOJ,CAAK,EACvB,QAAS,SAAY,CASnB,MAAMK,EAAO,MARE,MAAM,MAAM,GAAGJ,CAAa,OAAQ,CACjD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GAEyB,KAAA,EAC1B,OAAOM,EAAoB,MAAOD,CAAI,CACxC,EACA,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DadataOrganization.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataOrganizationOption } from '../types'\nimport { useDadataQueryParty } from './query'\nimport { type SelectItemOption } from '$/shared/ui'\n\nconst organizationFormatter = (item: IDadataOrganizationOption): SelectItemOption => ({\n value: item?.value || '',\n label: item?.value || ''\n})\n\nexport type DadataOrganizationProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataOrganizationOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataOrganizationOption) => SelectItemOption\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataOrganization = <TFieldValues extends FieldValues>({\n formatter = organizationFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataOrganizationProps<TFieldValues>) => {\n const queryFn = useDadataQueryParty\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["organizationFormatter","item","DadataOrganization","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryParty","jsx","AutocompleteControl","query"],"mappings":"kKAOA,MAAMA,EAAyBC,IAAuD,CACpF,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,EACxB,GAcaC,EAAqB,CAAmC,CACnE,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAA6C,CAC3C,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataOrganization.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataOrganizationOption } from '../types'\nimport { useDadataQueryParty } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst organizationFormatter = (item: IDadataOrganizationOption): AutocompleteItemOption<typeof item> => ({\n value: item?.value || '',\n label: item?.value || ''\n})\n\nexport type DadataOrganizationProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataOrganizationOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataOrganizationOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataOrganization = <TFieldValues extends FieldValues>({\n formatter = organizationFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataOrganizationProps<TFieldValues>) => {\n const queryFn = useDadataQueryParty\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["organizationFormatter","item","DadataOrganization","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryParty","jsx","AutocompleteControl","query"],"mappings":"kKAOA,MAAMA,EAAyBC,IAA0E,CACvG,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,EACxB,GAcaC,EAAqB,CAAmC,CACnE,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAA6C,CAC3C,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/party/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataOrganizationOption } from '../types'\n\nexport const useDadataQueryParty = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataOrganizationOption[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['party', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/party`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('party', data) as IDadataOrganizationOption[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryParty","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAsB,CACjCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,QAASJ,CAAK,EACzB,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,SAAU,CACnD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,QAASD,CAAI,CAAA,EAE1C,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
1
+ {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/party/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataOrganizationOption } from '../types'\n\nexport const useDadataQueryParty = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataOrganizationOption[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['party', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/party`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('party', data) as IDadataOrganizationOption[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryParty","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAsB,CACjCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,QAASJ,CAAK,EACzB,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,SAAU,CACnD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,QAASD,CAAI,CAC1C,EACA,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.ts"],"sourcesContent":["import type { DateRange } from 'react-day-picker'\nimport { formatDateToLocaleString } from '$/shared/ui'\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\n/**\n * Функция для получения инит состояния поля ввода\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n */\nexport function getInitialValue(mode: 'single', value?: string): string\nexport function getInitialValue(mode: 'range', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'multiple', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'single' | 'multiple' | 'range', value?: IsoDateRange | string) {\n switch (mode) {\n case 'range':\n const [from, to] = Object.values(value as IsoDateRange).map((date) => new Date(date))\n\n return [from ? formatDateToLocaleString(from) : undefined, to ? formatDateToLocaleString(to) : undefined].join('-')\n case 'single':\n default:\n const date = value ? new Date(value as string) : new Date()\n\n return value ? formatDateToLocaleString(date) : ''\n }\n}\n\n/**\n * Функция для получения объекта даты по текущему состоянию\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n *\n * @returns Date если mode 'single'\n * @returns DateRange если mode 'range'\n */\nexport function getCurrentDate(mode: 'single', value?: string): Date\nexport function getCurrentDate(mode: 'range', value?: IsoDateRange): DateRange\nexport function getCurrentDate(mode: 'multiple', value?: IsoDateRange): Date\nexport function getCurrentDate(mode: 'single' | 'multiple' | 'range', value?: string | IsoDateRange): Date | DateRange {\n switch (mode) {\n case 'range':\n if (value) {\n const entries = Object.entries(value as IsoDateRange).map(([key, value]) => [key, new Date(value)])\n\n return Object.fromEntries(entries)\n }\n\n return {} as DateRange\n case 'single':\n default:\n return value ? new Date(value as string) : new Date()\n }\n}\n"],"names":["getInitialValue","mode","value","from","to","date","formatDateToLocaleString","getCurrentDate","entries","key"],"mappings":"+4CAgBO,SAASA,EAAgBC,EAAuCC,EAA+B,CACpG,OAAQD,EAAA,CACN,IAAK,QACH,KAAM,CAACE,EAAMC,CAAE,EAAI,OAAO,OAAOF,CAAqB,EAAE,IAAKG,GAAS,IAAI,KAAKA,CAAI,CAAC,EAEpF,MAAO,CAACF,EAAOG,EAAyBH,CAAI,EAAI,OAAWC,EAAKE,EAAyBF,CAAE,EAAI,MAAS,EAAE,KAAK,GAAG,EACpH,IAAK,SACL,QACE,MAAMC,EAAOH,EAAQ,IAAI,KAAKA,CAAe,MAAQ,KAErD,OAAOA,EAAQI,EAAyBD,CAAI,EAAI,EAAA,CAEtD,CAaO,SAASE,EAAeN,EAAuCC,EAAiD,CACrH,OAAQD,EAAA,CACN,IAAK,QACH,GAAIC,EAAO,CACT,MAAMM,EAAU,OAAO,QAAQN,CAAqB,EAAE,IAAI,CAAC,CAACO,EAAKP,CAAK,IAAM,CAACO,EAAK,IAAI,KAAKP,CAAK,CAAC,CAAC,EAElG,OAAO,OAAO,YAAYM,CAAO,CAAA,CAGnC,MAAO,CAAA,EACT,IAAK,SACL,QACE,OAAON,EAAQ,IAAI,KAAKA,CAAe,MAAQ,IAAK,CAE1D"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.ts"],"sourcesContent":["import type { DateRange } from 'react-day-picker'\nimport { formatDateToLocaleString } from '$/shared/ui'\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\n/**\n * Функция для получения инит состояния поля ввода\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n */\nexport function getInitialValue(mode: 'single', value?: string): string\nexport function getInitialValue(mode: 'range', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'multiple', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'single' | 'multiple' | 'range', value?: IsoDateRange | string) {\n switch (mode) {\n case 'range':\n const [from, to] = Object.values(value as IsoDateRange).map((date) => new Date(date))\n\n return [from ? formatDateToLocaleString(from) : undefined, to ? formatDateToLocaleString(to) : undefined].join('-')\n case 'single':\n default:\n const date = value ? new Date(value as string) : new Date()\n\n return value ? formatDateToLocaleString(date) : ''\n }\n}\n\n/**\n * Функция для получения объекта даты по текущему состоянию\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n *\n * @returns Date если mode 'single'\n * @returns DateRange если mode 'range'\n */\nexport function getCurrentDate(mode: 'single', value?: string): Date\nexport function getCurrentDate(mode: 'range', value?: IsoDateRange): DateRange\nexport function getCurrentDate(mode: 'multiple', value?: IsoDateRange): Date\nexport function getCurrentDate(mode: 'single' | 'multiple' | 'range', value?: string | IsoDateRange): Date | DateRange {\n switch (mode) {\n case 'range':\n if (value) {\n const entries = Object.entries(value as IsoDateRange).map(([key, value]) => [key, new Date(value)])\n\n return Object.fromEntries(entries)\n }\n\n return {} as DateRange\n case 'single':\n default:\n return value ? new Date(value as string) : new Date()\n }\n}\n"],"names":["getInitialValue","mode","value","from","to","date","formatDateToLocaleString","getCurrentDate","entries","key"],"mappings":"+4CAgBO,SAASA,EAAgBC,EAAuCC,EAA+B,CACpG,OAAQD,EAAA,CACN,IAAK,QACH,KAAM,CAACE,EAAMC,CAAE,EAAI,OAAO,OAAOF,CAAqB,EAAE,IAAKG,GAAS,IAAI,KAAKA,CAAI,CAAC,EAEpF,MAAO,CAACF,EAAOG,EAAyBH,CAAI,EAAI,OAAWC,EAAKE,EAAyBF,CAAE,EAAI,MAAS,EAAE,KAAK,GAAG,EACpH,IAAK,SACL,QACE,MAAMC,EAAOH,EAAQ,IAAI,KAAKA,CAAe,MAAQ,KAErD,OAAOA,EAAQI,EAAyBD,CAAI,EAAI,EAAA,CAEtD,CAaO,SAASE,EAAeN,EAAuCC,EAAiD,CACrH,OAAQD,EAAA,CACN,IAAK,QACH,GAAIC,EAAO,CACT,MAAMM,EAAU,OAAO,QAAQN,CAAqB,EAAE,IAAI,CAAC,CAACO,EAAKP,CAAK,IAAM,CAACO,EAAK,IAAI,KAAKP,CAAK,CAAC,CAAC,EAElG,OAAO,OAAO,YAAYM,CAAO,CACnC,CAEA,MAAO,CAAA,EACT,IAAK,SACL,QACE,OAAON,EAAQ,IAAI,KAAKA,CAAe,MAAQ,IAAK,CAE1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/range.tsx"],"sourcesContent":["'use client'\n\nimport { useRef, useState } from 'react'\nimport { type DateRange } from 'react-day-picker'\nimport { format, isValid, parse } from 'date-fns'\nimport { getCurrentDate, getInitialValue, RANGE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype RangeDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\ntype RangeDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: RangeDayPickerClasses\n /**\n * Управляемое значение\n */\n value: IsoDateRange\n /**\n * Функция для управления значением\n */\n onChange: (value: IsoDateRange) => void\n}\n\nexport const RangeDayPicker = ({ inputProps, classes, value, onChange, ...props }: RangeDayPickerProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const date = getCurrentDate('range', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('range', value))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (!value.length) {\n return onChange({\n from: '',\n to: ''\n })\n }\n\n const isoDateRange = value.split('-')\n\n if (isoDateRange.some((date) => !SINGLE_VALIDATION_REGEX.test(date))) {\n return\n }\n\n const dateRangeEntries = [\n ['from', parse(isoDateRange[0], DATE_VISIBLE_PATTERN, new Date())],\n ['to', parse(isoDateRange[1], DATE_VISIBLE_PATTERN, new Date())]\n ] as [string, Date][]\n\n if (dateRangeEntries.every(([, date]) => isValid(date))) {\n const dateRange = Object.fromEntries(dateRangeEntries.map(([key, value]) => [key, value.toISOString()]))\n\n onChange(dateRange)\n setMonth(dateRangeEntries[Math.round(Math.random())][1])\n }\n }\n\n const onDateChange = (newDate: DateRange) => {\n setMonth(newDate.from || newDate.to || new Date())\n\n const isoDateRange = Object.entries(newDate).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: value ? value.toISOString() : ''\n }),\n {} as IsoDateRange\n )\n\n onChange(isoDateRange)\n setVisibleValue(\n `${format(isoDateRange.from || '', DATE_VISIBLE_PATTERN)}-${format(isoDateRange.to || '', DATE_VISIBLE_PATTERN)}`\n )\n\n if (newDate.from && newDate.to) {\n setCalendarOpen(false)\n }\n }\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={RANGE_MASK}\n {...inputProps}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n onFocus={() => setCalendarOpen(true)}\n attachmentProps={{\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange\n }}\n />\n {calendarOpen && (\n <Calendar\n {...props}\n required\n mode='range'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className={cn('absolute right-0 top-full', calendar)}\n />\n )}\n </div>\n )\n}\n"],"names":["RangeDayPicker","inputProps","classes","value","onChange","props","containerRef","useRef","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useClickOutside","onVisibleValueChange","event","isoDateRange","SINGLE_VALIDATION_REGEX","dateRangeEntries","parse","DATE_VISIBLE_PATTERN","isValid","dateRange","key","onDateChange","newDate","acc","format","jsxs","cn","jsx","MaskInput","RANGE_MASK","Icon","Calendar"],"mappings":"g6DAwCO,MAAMA,GAAiB,CAAC,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,EAAO,SAAAC,EAAU,GAAGC,KAAiC,CACzG,MAAMC,EAAeC,EAAuB,IAAI,EAC1C,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBP,GAAW,CAAA,EAE1C,CAACQ,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EACzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CAAA,EAG3B,CAACC,EAAOC,CAAQ,EAAIJ,EAAe,IAAI,IAAM,EAC7CK,EAAOC,EAAe,QAASf,CAAK,EAEpC,CAACgB,EAAcC,CAAe,EAAIR,EAAiBS,EAAgB,QAASlB,CAAK,CAAC,EAExFmB,EAAgBhB,EAAc,IAAMK,EAAgB,EAAK,CAAC,EAE1D,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAArB,CAAAA,EAAUqB,EAAM,OAIxB,GAFAJ,EAAgBjB,CAAK,EAEjB,CAACA,EAAM,OACT,OAAOC,EAAS,CACd,KAAM,GACN,GAAI,EAAA,CACL,EAGH,MAAMqB,EAAetB,EAAM,MAAM,GAAG,EAEpC,GAAIsB,EAAa,KAAMR,GAAS,CAACS,EAAwB,KAAKT,CAAI,CAAC,EACjE,OAGF,MAAMU,EAAmB,CACvB,CAAC,OAAQC,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,EACjE,CAAC,KAAMD,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,CAAA,EAGjE,GAAIF,EAAiB,MAAM,CAAC,CAAA,CAAGV,CAAI,IAAMa,EAAQb,CAAI,CAAC,EAAG,CACvD,MAAMc,EAAY,OAAO,YAAYJ,EAAiB,IAAI,CAAC,CAACK,EAAK7B,CAAK,IAAM,CAAC6B,EAAK7B,EAAM,YAAA,CAAa,CAAC,CAAC,EAEvGC,EAAS2B,CAAS,EAClBf,EAASW,EAAiB,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA,CACzD,EAGIM,EAAgBC,GAAuB,CAC3ClB,EAASkB,EAAQ,MAAQA,EAAQ,IAAM,IAAI,IAAM,EAEjD,MAAMT,EAAe,OAAO,QAAQS,CAAO,EAAE,OAC3C,CAACC,EAAK,CAACH,EAAK7B,CAAK,KAAO,CACtB,GAAGgC,EACH,CAACH,CAAG,EAAG7B,EAAQA,EAAM,cAAgB,EAAA,GAEvC,CAAA,CAAC,EAGHC,EAASqB,CAAY,EACrBL,EACE,GAAGgB,EAAOX,EAAa,MAAQ,GAAII,CAAoB,CAAC,IAAIO,EAAOX,EAAa,IAAM,GAAII,CAAoB,CAAC,EAAA,EAG7GK,EAAQ,MAAQA,EAAQ,IAC1BvB,EAAgB,EAAK,CACvB,EAGF,OACE0B,EAAC,OAAI,IAAK/B,EAAc,UAAWgC,EAAG,kBAAmBpC,GAAA,YAAAA,EAAS,SAAS,EACzE,SAAA,CAAAqC,EAACC,EAAA,CACC,KAAMC,EACL,GAAGxC,EACJ,QAASQ,EACT,MAAOU,EACP,SAAUI,EACV,QAAS,IAAMZ,EAAgB,EAAI,EACnC,gBAAiB,CACf,KAAM4B,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAa7B,CAAA,CACf,CAAA,EAEDH,GACC6B,EAACI,EAAA,CACE,GAAGtC,EACJ,SAAQ,GACR,KAAK,QACL,MAAAU,EACA,cAAeC,EACf,SAAUC,EACV,SAAUgB,EACV,UAAWK,EAAG,4BAA6B9B,CAAQ,CAAA,CAAA,CACrD,EAEJ,CAEJ"}
1
+ {"version":3,"file":"range.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/range.tsx"],"sourcesContent":["'use client'\n\nimport { useRef, useState } from 'react'\nimport { type DateRange } from 'react-day-picker'\nimport { format, isValid, parse } from 'date-fns'\nimport { getCurrentDate, getInitialValue, RANGE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype RangeDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\ntype RangeDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: RangeDayPickerClasses\n /**\n * Управляемое значение\n */\n value: IsoDateRange\n /**\n * Функция для управления значением\n */\n onChange: (value: IsoDateRange) => void\n}\n\nexport const RangeDayPicker = ({ inputProps, classes, value, onChange, ...props }: RangeDayPickerProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const date = getCurrentDate('range', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('range', value))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (!value.length) {\n return onChange({\n from: '',\n to: ''\n })\n }\n\n const isoDateRange = value.split('-')\n\n if (isoDateRange.some((date) => !SINGLE_VALIDATION_REGEX.test(date))) {\n return\n }\n\n const dateRangeEntries = [\n ['from', parse(isoDateRange[0], DATE_VISIBLE_PATTERN, new Date())],\n ['to', parse(isoDateRange[1], DATE_VISIBLE_PATTERN, new Date())]\n ] as [string, Date][]\n\n if (dateRangeEntries.every(([, date]) => isValid(date))) {\n const dateRange = Object.fromEntries(dateRangeEntries.map(([key, value]) => [key, value.toISOString()]))\n\n onChange(dateRange)\n setMonth(dateRangeEntries[Math.round(Math.random())][1])\n }\n }\n\n const onDateChange = (newDate: DateRange) => {\n setMonth(newDate.from || newDate.to || new Date())\n\n const isoDateRange = Object.entries(newDate).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: value ? value.toISOString() : ''\n }),\n {} as IsoDateRange\n )\n\n onChange(isoDateRange)\n setVisibleValue(\n `${format(isoDateRange.from || '', DATE_VISIBLE_PATTERN)}-${format(isoDateRange.to || '', DATE_VISIBLE_PATTERN)}`\n )\n\n if (newDate.from && newDate.to) {\n setCalendarOpen(false)\n }\n }\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={RANGE_MASK}\n {...inputProps}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n onFocus={() => setCalendarOpen(true)}\n attachmentProps={{\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange\n }}\n />\n {calendarOpen && (\n <Calendar\n {...props}\n required\n mode='range'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className={cn('absolute right-0 top-full', calendar)}\n />\n )}\n </div>\n )\n}\n"],"names":["RangeDayPicker","inputProps","classes","value","onChange","props","containerRef","useRef","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useClickOutside","onVisibleValueChange","event","isoDateRange","SINGLE_VALIDATION_REGEX","dateRangeEntries","parse","DATE_VISIBLE_PATTERN","isValid","dateRange","key","onDateChange","newDate","acc","format","jsxs","cn","jsx","MaskInput","RANGE_MASK","Icon","Calendar"],"mappings":"g6DAwCO,MAAMA,GAAiB,CAAC,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,EAAO,SAAAC,EAAU,GAAGC,KAAiC,CACzG,MAAMC,EAAeC,EAAuB,IAAI,EAC1C,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBP,GAAW,CAAA,EAE1C,CAACQ,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EACzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEM,CAACC,EAAOC,CAAQ,EAAIJ,EAAe,IAAI,IAAM,EAC7CK,EAAOC,EAAe,QAASf,CAAK,EAEpC,CAACgB,EAAcC,CAAe,EAAIR,EAAiBS,EAAgB,QAASlB,CAAK,CAAC,EAExFmB,EAAgBhB,EAAc,IAAMK,EAAgB,EAAK,CAAC,EAE1D,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAArB,CAAAA,EAAUqB,EAAM,OAIxB,GAFAJ,EAAgBjB,CAAK,EAEjB,CAACA,EAAM,OACT,OAAOC,EAAS,CACd,KAAM,GACN,GAAI,EAAA,CACL,EAGH,MAAMqB,EAAetB,EAAM,MAAM,GAAG,EAEpC,GAAIsB,EAAa,KAAMR,GAAS,CAACS,EAAwB,KAAKT,CAAI,CAAC,EACjE,OAGF,MAAMU,EAAmB,CACvB,CAAC,OAAQC,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,EACjE,CAAC,KAAMD,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,CAAA,EAGjE,GAAIF,EAAiB,MAAM,CAAC,CAAA,CAAGV,CAAI,IAAMa,EAAQb,CAAI,CAAC,EAAG,CACvD,MAAMc,EAAY,OAAO,YAAYJ,EAAiB,IAAI,CAAC,CAACK,EAAK7B,CAAK,IAAM,CAAC6B,EAAK7B,EAAM,YAAA,CAAa,CAAC,CAAC,EAEvGC,EAAS2B,CAAS,EAClBf,EAASW,EAAiB,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CACzD,CACF,EAEMM,EAAgBC,GAAuB,CAC3ClB,EAASkB,EAAQ,MAAQA,EAAQ,IAAM,IAAI,IAAM,EAEjD,MAAMT,EAAe,OAAO,QAAQS,CAAO,EAAE,OAC3C,CAACC,EAAK,CAACH,EAAK7B,CAAK,KAAO,CACtB,GAAGgC,EACH,CAACH,CAAG,EAAG7B,EAAQA,EAAM,cAAgB,EAAA,GAEvC,CAAA,CAAC,EAGHC,EAASqB,CAAY,EACrBL,EACE,GAAGgB,EAAOX,EAAa,MAAQ,GAAII,CAAoB,CAAC,IAAIO,EAAOX,EAAa,IAAM,GAAII,CAAoB,CAAC,EAAA,EAG7GK,EAAQ,MAAQA,EAAQ,IAC1BvB,EAAgB,EAAK,CAEzB,EAEA,OACE0B,EAAC,OAAI,IAAK/B,EAAc,UAAWgC,EAAG,kBAAmBpC,GAAA,YAAAA,EAAS,SAAS,EACzE,SAAA,CAAAqC,EAACC,EAAA,CACC,KAAMC,EACL,GAAGxC,EACJ,QAASQ,EACT,MAAOU,EACP,SAAUI,EACV,QAAS,IAAMZ,EAAgB,EAAI,EACnC,gBAAiB,CACf,KAAM4B,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAa7B,CAAA,CACf,CAAA,EAEDH,GACC6B,EAACI,EAAA,CACE,GAAGtC,EACJ,SAAQ,GACR,KAAK,QACL,MAAAU,EACA,cAAeC,EACf,SAAUC,EACV,SAAUgB,EACV,UAAWK,EAAG,4BAA6B9B,CAAQ,CAAA,CAAA,CACrD,EAEJ,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"single.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/single.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { format, isValid, parse } from 'date-fns'\nimport { type ExternalHandlers } from './dayPickerControl'\nimport { getCurrentDate, getInitialValue, SINGLE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn, mergeRefs, TypeGuards } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype SingleDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype SingleDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: SingleDayPickerClasses\n /**\n * Управляемое значение\n */\n value: string\n /**\n * Функция для управления значением\n */\n onChange: (value: string) => void\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const SingleDayPicker = ({\n inputProps,\n classes,\n value,\n onChange,\n externalHandlers,\n month,\n onMonthChange,\n ...props\n}: SingleDayPickerProps) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const calendarRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-end',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(0)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const date = getCurrentDate('single', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('single', value))\n\n useEffect(() => {\n if (value && !TypeGuards.isStringEmpty(value)) {\n setVisibleValue(getInitialValue('single', value))\n if (onMonthChange) onMonthChange(new Date(value))\n }\n }, [value])\n\n useClickOutside(calendarRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (TypeGuards.isStringEmpty(value)) {\n return onChange('')\n }\n\n if (!SINGLE_VALIDATION_REGEX.test(value)) {\n return\n }\n\n const date = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(date)) {\n const isoDate = date.toISOString()\n\n onChange(isoDate)\n if (onMonthChange) onMonthChange(date)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n }\n\n const onDateChange = (newDate: Date) => {\n if (onMonthChange) onMonthChange(newDate)\n\n const isoDate = newDate.toISOString()\n\n onChange(isoDate)\n setVisibleValue(format(newDate, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={SINGLE_MASK}\n {...inputProps}\n {...restHandlers}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n disabled: inputProps.disabled,\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange,\n ...inputProps.attachmentProps\n }}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n // @ts-expect-error asdf\n ref={mergeRefs(calendarRef, refs.setFloating)}\n {...props}\n required\n mode='single'\n style={{\n ...floatingStyles,\n width: 'max-content'\n }}\n month={month}\n onMonthChange={onMonthChange}\n selected={date}\n onSelect={onDateChange}\n className={cn(calendar)}\n data-test-id='calendar'\n />,\n document.body\n )}\n </div>\n )\n}\n"],"names":["SingleDayPicker","inputProps","classes","value","onChange","externalHandlers","month","onMonthChange","props","externalOnChange","externalOnFocus","restHandlers","calendarRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useEffect","TypeGuards","useClickOutside","onVisibleValueChange","event","SINGLE_VALIDATION_REGEX","parse","DATE_VISIBLE_PATTERN","isValid","isoDate","onDateChange","newDate","format","jsxs","cn","jsx","MaskInput","SINGLE_MASK","Icon","createPortal","Calendar","mergeRefs"],"mappings":"q4EAyCO,MAAMA,GAAkB,CAAC,CAC9B,WAAAC,EACA,QAAAC,EACA,MAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,MAAAC,EACA,cAAAC,EACA,GAAGC,CACL,IAA4B,CAC1B,KAAM,CAAE,SAAUC,EAAkB,QAASC,EAAiB,GAAGC,CAAA,EAAiBN,GAAoB,CAAA,EAEhGO,EAAcC,EAAuB,IAAI,EAEzC,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAAY,CAC3C,UAAW,aACX,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBnB,GAAW,CAAA,EAE1C,CAACoB,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EAEzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CAAA,EAG3BC,EAAOC,EAAe,SAAUzB,CAAK,EAErC,CAAC0B,EAAcC,CAAe,EAAIN,EAAiBO,EAAgB,SAAU5B,CAAK,CAAC,EAEzF6B,EAAU,IAAM,CACV7B,GAAS,CAAC8B,EAAW,cAAc9B,CAAK,IAC1C2B,EAAgBC,EAAgB,SAAU5B,CAAK,CAAC,EAC5CI,GAAeA,EAAc,IAAI,KAAKJ,CAAK,CAAC,EAClD,EACC,CAACA,CAAK,CAAC,EAEV+B,EAAgBtB,EAAa,IAAMW,EAAgB,EAAK,CAAC,EAEzD,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAAjC,CAAAA,EAAUiC,EAAM,OAIxB,GAFAN,EAAgB3B,CAAK,EAEjB8B,EAAW,cAAc9B,CAAK,EAChC,OAAOC,EAAS,EAAE,EAGpB,GAAI,CAACiC,EAAwB,KAAKlC,CAAK,EACrC,OAGF,MAAMwB,EAAOW,EAAMnC,EAAOoC,EAAsB,IAAI,IAAM,EAE1D,GAAIC,EAAQb,CAAI,EAAG,CACjB,MAAMc,EAAUd,EAAK,YAAA,EAErBvB,EAASqC,CAAO,EACZlC,KAA6BoB,CAAI,EAEjClB,KAAmCgC,CAAO,CAAA,CAChD,EAGIC,EAAgBC,GAAkB,CAClCpC,KAA6BoC,CAAO,EAExC,MAAMF,EAAUE,EAAQ,YAAA,EAExBvC,EAASqC,CAAO,EAChBX,EAAgBc,EAAOD,EAASJ,CAAoB,CAAC,EACrDhB,EAAgB,EAAK,EAEjBd,KAAmCgC,CAAO,CAAA,EAGhD,OACEI,EAAC,MAAA,CAAI,IAAK/B,EAAK,aAAc,UAAWgC,EAAG,kBAAmB5C,GAAA,YAAAA,EAAS,SAAS,EAC9E,SAAA,CAAA6C,EAACC,EAAA,CACC,KAAMC,EACL,GAAGhD,EACH,GAAGU,EACJ,QAASU,EACT,MAAOQ,EACP,SAAUM,EACV,aAAa,MACb,QAAUC,GAAU,CAClBb,EAAgB,EAAI,EAChBb,KAAiC0B,CAAK,CAAA,EAE5C,UAAYA,GAAU,CAChBA,EAAM,MAAQ,SAChBX,EAAA,CACF,EAEF,gBAAiB,CACf,SAAUxB,EAAW,SACrB,KAAM8C,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAazB,EACb,GAAGxB,EAAW,eAAA,CAChB,CAAA,EAEDqB,GACC6B,EACEJ,EAACK,EAAA,CAEC,IAAKC,EAAUzC,EAAaE,EAAK,WAAW,EAC3C,GAAGN,EACJ,SAAQ,GACR,KAAK,SACL,MAAO,CACL,GAAGO,EACH,MAAO,aAAA,EAET,MAAAT,EACA,cAAAC,EACA,SAAUoB,EACV,SAAUe,EACV,UAAWI,EAAG1B,CAAQ,EACtB,eAAa,UAAA,CAAA,EAEf,SAAS,IAAA,CACX,EACJ,CAEJ"}
1
+ {"version":3,"file":"single.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/single.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { format, isValid, parse } from 'date-fns'\nimport { type ExternalHandlers } from './dayPickerControl'\nimport { getCurrentDate, getInitialValue, SINGLE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn, mergeRefs, TypeGuards } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype SingleDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype SingleDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: SingleDayPickerClasses\n /**\n * Управляемое значение\n */\n value: string\n /**\n * Функция для управления значением\n */\n onChange: (value: string) => void\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const SingleDayPicker = ({\n inputProps,\n classes,\n value,\n onChange,\n externalHandlers,\n month,\n onMonthChange,\n ...props\n}: SingleDayPickerProps) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const calendarRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-end',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(0)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const date = getCurrentDate('single', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('single', value))\n\n useEffect(() => {\n if (value && !TypeGuards.isStringEmpty(value)) {\n setVisibleValue(getInitialValue('single', value))\n if (onMonthChange) onMonthChange(new Date(value))\n }\n }, [value])\n\n useClickOutside(calendarRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (TypeGuards.isStringEmpty(value)) {\n return onChange('')\n }\n\n if (!SINGLE_VALIDATION_REGEX.test(value)) {\n return\n }\n\n const date = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(date)) {\n const isoDate = date.toISOString()\n\n onChange(isoDate)\n if (onMonthChange) onMonthChange(date)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n }\n\n const onDateChange = (newDate: Date) => {\n if (onMonthChange) onMonthChange(newDate)\n\n const isoDate = newDate.toISOString()\n\n onChange(isoDate)\n setVisibleValue(format(newDate, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={SINGLE_MASK}\n {...inputProps}\n {...restHandlers}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n disabled: inputProps.disabled,\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange,\n ...inputProps.attachmentProps\n }}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n // @ts-expect-error asdf\n ref={mergeRefs(calendarRef, refs.setFloating)}\n {...props}\n required\n mode='single'\n style={{\n ...floatingStyles,\n width: 'max-content'\n }}\n month={month}\n onMonthChange={onMonthChange}\n selected={date}\n onSelect={onDateChange}\n className={cn(calendar)}\n data-test-id='calendar'\n />,\n document.body\n )}\n </div>\n )\n}\n"],"names":["SingleDayPicker","inputProps","classes","value","onChange","externalHandlers","month","onMonthChange","props","externalOnChange","externalOnFocus","restHandlers","calendarRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useEffect","TypeGuards","useClickOutside","onVisibleValueChange","event","SINGLE_VALIDATION_REGEX","parse","DATE_VISIBLE_PATTERN","isValid","isoDate","onDateChange","newDate","format","jsxs","cn","jsx","MaskInput","SINGLE_MASK","Icon","createPortal","Calendar","mergeRefs"],"mappings":"q4EAyCO,MAAMA,GAAkB,CAAC,CAC9B,WAAAC,EACA,QAAAC,EACA,MAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,MAAAC,EACA,cAAAC,EACA,GAAGC,CACL,IAA4B,CAC1B,KAAM,CAAE,SAAUC,EAAkB,QAASC,EAAiB,GAAGC,CAAA,EAAiBN,GAAoB,CAAA,EAEhGO,EAAcC,EAAuB,IAAI,EAEzC,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAAY,CAC3C,UAAW,aACX,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBnB,GAAW,CAAA,EAE1C,CAACoB,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EAEzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEMC,EAAOC,EAAe,SAAUzB,CAAK,EAErC,CAAC0B,EAAcC,CAAe,EAAIN,EAAiBO,EAAgB,SAAU5B,CAAK,CAAC,EAEzF6B,EAAU,IAAM,CACV7B,GAAS,CAAC8B,EAAW,cAAc9B,CAAK,IAC1C2B,EAAgBC,EAAgB,SAAU5B,CAAK,CAAC,EAC5CI,GAAeA,EAAc,IAAI,KAAKJ,CAAK,CAAC,EAEpD,EAAG,CAACA,CAAK,CAAC,EAEV+B,EAAgBtB,EAAa,IAAMW,EAAgB,EAAK,CAAC,EAEzD,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAAjC,CAAAA,EAAUiC,EAAM,OAIxB,GAFAN,EAAgB3B,CAAK,EAEjB8B,EAAW,cAAc9B,CAAK,EAChC,OAAOC,EAAS,EAAE,EAGpB,GAAI,CAACiC,EAAwB,KAAKlC,CAAK,EACrC,OAGF,MAAMwB,EAAOW,EAAMnC,EAAOoC,EAAsB,IAAI,IAAM,EAE1D,GAAIC,EAAQb,CAAI,EAAG,CACjB,MAAMc,EAAUd,EAAK,YAAA,EAErBvB,EAASqC,CAAO,EACZlC,KAA6BoB,CAAI,EAEjClB,KAAmCgC,CAAO,CAChD,CACF,EAEMC,EAAgBC,GAAkB,CAClCpC,KAA6BoC,CAAO,EAExC,MAAMF,EAAUE,EAAQ,YAAA,EAExBvC,EAASqC,CAAO,EAChBX,EAAgBc,EAAOD,EAASJ,CAAoB,CAAC,EACrDhB,EAAgB,EAAK,EAEjBd,KAAmCgC,CAAO,CAChD,EAEA,OACEI,EAAC,MAAA,CAAI,IAAK/B,EAAK,aAAc,UAAWgC,EAAG,kBAAmB5C,GAAA,YAAAA,EAAS,SAAS,EAC9E,SAAA,CAAA6C,EAACC,EAAA,CACC,KAAMC,EACL,GAAGhD,EACH,GAAGU,EACJ,QAASU,EACT,MAAOQ,EACP,SAAUM,EACV,aAAa,MACb,QAAUC,GAAU,CAClBb,EAAgB,EAAI,EAChBb,KAAiC0B,CAAK,CAC5C,EACA,UAAYA,GAAU,CAChBA,EAAM,MAAQ,SAChBX,EAAA,CAEJ,EACA,gBAAiB,CACf,SAAUxB,EAAW,SACrB,KAAM8C,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAazB,EACb,GAAGxB,EAAW,eAAA,CAChB,CAAA,EAEDqB,GACC6B,EACEJ,EAACK,EAAA,CAEC,IAAKC,EAAUzC,EAAaE,EAAK,WAAW,EAC3C,GAAGN,EACJ,SAAQ,GACR,KAAK,SACL,MAAO,CACL,GAAGO,EACH,MAAO,aAAA,EAET,MAAAT,EACA,cAAAC,EACA,SAAUoB,EACV,SAAUe,EACV,UAAWI,EAAG1B,CAAQ,EACtB,eAAa,UAAA,CAAA,EAEf,SAAS,IAAA,CACX,EACJ,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/model/config.ts"],"sourcesContent":["import Color from '@tiptap/extension-color'\nimport Heading from '@tiptap/extension-heading'\nimport Link from '@tiptap/extension-link'\nimport TextStyle from '@tiptap/extension-text-style'\nimport Underline from '@tiptap/extension-underline'\nimport { mergeAttributes } from '@tiptap/react'\nimport StarterKit from '@tiptap/starter-kit'\nimport { editorHeadingClasses } from './helper'\nimport { type THeadingLevel } from './types'\n\nexport const editorConfig = [\n StarterKit.configure({\n heading: false,\n bold: {\n HTMLAttributes: {\n class: 'font-bold'\n }\n },\n bulletList: {\n HTMLAttributes: {\n class: 'list-disc [&>li]:ml-4'\n }\n },\n paragraph: {\n HTMLAttributes: {\n class: 'text-dark'\n }\n }\n }),\n Underline,\n TextStyle,\n Color,\n Heading.configure({\n levels: [3, 4]\n }).extend({\n renderHTML({ node, HTMLAttributes }) {\n const hasLevel = this.options.levels.includes(node.attrs.level)\n const level: THeadingLevel = hasLevel ? node.attrs.level : this.options.levels[0]\n return [\n `h${level}`,\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: `${editorHeadingClasses[level]}`\n }),\n 0\n ]\n }\n }),\n Link.configure({\n openOnClick: true\n }).extend({\n renderHTML({ HTMLAttributes }) {\n return ['a', mergeAttributes(HTMLAttributes)]\n }\n })\n]\n"],"names":["editorConfig","StarterKit","Underline","TextStyle","Color","Heading","node","HTMLAttributes","level","mergeAttributes","editorHeadingClasses","Link"],"mappings":"suBAUO,MAAMA,EAAe,CAC1BC,EAAW,UAAU,CACnB,QAAS,GACT,KAAM,CACJ,eAAgB,CACd,MAAO,WAAA,CACT,EAEF,WAAY,CACV,eAAgB,CACd,MAAO,uBAAA,CACT,EAEF,UAAW,CACT,eAAgB,CACd,MAAO,WAAA,CACT,CACF,CACD,EACDC,EACAC,EACAC,EACAC,EAAQ,UAAU,CAChB,OAAQ,CAAC,EAAG,CAAC,CAAA,CACd,EAAE,OAAO,CACR,WAAW,CAAE,KAAAC,EAAM,eAAAC,GAAkB,CAEnC,MAAMC,EADW,KAAK,QAAQ,OAAO,SAASF,EAAK,MAAM,KAAK,EACtBA,EAAK,MAAM,MAAQ,KAAK,QAAQ,OAAO,CAAC,EAChF,MAAO,CACL,IAAIE,CAAK,GACTC,EAAgB,KAAK,QAAQ,eAAgBF,EAAgB,CAC3D,MAAO,GAAGG,EAAqBF,CAAK,CAAC,EAAA,CACtC,EACD,CAAA,CACF,CACF,CACD,EACDG,EAAK,UAAU,CACb,YAAa,EAAA,CACd,EAAE,OAAO,CACR,WAAW,CAAE,eAAAJ,GAAkB,CAC7B,MAAO,CAAC,IAAKE,EAAgBF,CAAc,CAAC,CAAA,CAC9C,CACD,CACH"}
1
+ {"version":3,"file":"config.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/model/config.ts"],"sourcesContent":["import Color from '@tiptap/extension-color'\nimport Heading from '@tiptap/extension-heading'\nimport Link from '@tiptap/extension-link'\nimport TextStyle from '@tiptap/extension-text-style'\nimport Underline from '@tiptap/extension-underline'\nimport { mergeAttributes } from '@tiptap/react'\nimport StarterKit from '@tiptap/starter-kit'\nimport { editorHeadingClasses } from './helper'\nimport { type THeadingLevel } from './types'\n\nexport const editorConfig = [\n StarterKit.configure({\n heading: false,\n bold: {\n HTMLAttributes: {\n class: 'font-bold'\n }\n },\n bulletList: {\n HTMLAttributes: {\n class: 'list-disc [&>li]:ml-4'\n }\n },\n paragraph: {\n HTMLAttributes: {\n class: 'text-dark'\n }\n }\n }),\n Underline,\n TextStyle,\n Color,\n Heading.configure({\n levels: [3, 4]\n }).extend({\n renderHTML({ node, HTMLAttributes }) {\n const hasLevel = this.options.levels.includes(node.attrs.level)\n const level: THeadingLevel = hasLevel ? node.attrs.level : this.options.levels[0]\n return [\n `h${level}`,\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: `${editorHeadingClasses[level]}`\n }),\n 0\n ]\n }\n }),\n Link.configure({\n openOnClick: true\n }).extend({\n renderHTML({ HTMLAttributes }) {\n return ['a', mergeAttributes(HTMLAttributes)]\n }\n })\n]\n"],"names":["editorConfig","StarterKit","Underline","TextStyle","Color","Heading","node","HTMLAttributes","level","mergeAttributes","editorHeadingClasses","Link"],"mappings":"suBAUO,MAAMA,EAAe,CAC1BC,EAAW,UAAU,CACnB,QAAS,GACT,KAAM,CACJ,eAAgB,CACd,MAAO,WAAA,CACT,EAEF,WAAY,CACV,eAAgB,CACd,MAAO,uBAAA,CACT,EAEF,UAAW,CACT,eAAgB,CACd,MAAO,WAAA,CACT,CACF,CACD,EACDC,EACAC,EACAC,EACAC,EAAQ,UAAU,CAChB,OAAQ,CAAC,EAAG,CAAC,CAAA,CACd,EAAE,OAAO,CACR,WAAW,CAAE,KAAAC,EAAM,eAAAC,GAAkB,CAEnC,MAAMC,EADW,KAAK,QAAQ,OAAO,SAASF,EAAK,MAAM,KAAK,EACtBA,EAAK,MAAM,MAAQ,KAAK,QAAQ,OAAO,CAAC,EAChF,MAAO,CACL,IAAIE,CAAK,GACTC,EAAgB,KAAK,QAAQ,eAAgBF,EAAgB,CAC3D,MAAO,GAAGG,EAAqBF,CAAK,CAAC,EAAA,CACtC,EACD,CAAA,CAEJ,CAAA,CACD,EACDG,EAAK,UAAU,CACb,YAAa,EAAA,CACd,EAAE,OAAO,CACR,WAAW,CAAE,eAAAJ,GAAkB,CAC7B,MAAO,CAAC,IAAKE,EAAgBF,CAAc,CAAC,CAC9C,CAAA,CACD,CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/Editor.tsx"],"sourcesContent":["import { forwardRef, type ReactElement, useEffect } from 'react'\nimport { type FieldError } from 'react-hook-form'\nimport CharacterCount from '@tiptap/extension-character-count'\nimport { EditorContent, type EditorEvents, useEditor, type UseEditorOptions } from '@tiptap/react'\nimport { type EditorControlClasses } from '../EditorControl'\nimport { editorConfig } from '../model/config'\nimport { Toolbar } from './Toolbar'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype ExternalHandlers = {\n onUpdate?: (editor: EditorEvents['update']) => void\n}\n\ninterface EditorProps extends Partial<UseEditorOptions> {\n onChange: (value: string) => void\n value: string\n error?: FieldError\n classes?: EditorControlClasses\n externalHandlers?: ExternalHandlers\n /**\n * Заголовок\n */\n label?: string\n helperText?: string | ReactElement\n limit?: number\n}\n\ntype EditorRef = React.ElementRef<typeof EditorContent>\n\nconst DEFAULT_LIMIT = Number.MAX_SAFE_INTEGER\n\nexport const Editor = forwardRef<EditorRef, EditorProps>(\n (\n {\n onChange,\n value = '',\n label,\n limit,\n error,\n classes,\n editable,\n helperText,\n shouldRerenderOnTransaction = true,\n externalHandlers,\n ...props\n },\n ref\n ) => {\n const { onUpdate: externalOnUpdate } = externalHandlers || {}\n\n const editor = useEditor({\n extensions: [\n ...editorConfig,\n CharacterCount.configure({\n limit: limit ?? DEFAULT_LIMIT\n })\n ],\n editable: editable,\n content: value,\n onUpdate: (props) => {\n const { editor } = props\n const content = editor?.getText() ? editor?.getHTML() : ''\n onChange(content)\n\n if (externalOnUpdate) {\n externalOnUpdate(props)\n }\n },\n editorProps: {\n transformPastedText(text) {\n return text.replace(/\\xA0/g, ' ')\n },\n transformPastedHTML(html) {\n return html.replace(/\\xA0/g, ' ')\n },\n attributes: {\n spellcheck: 'false',\n class: cn(\n 'p-4 outline-none bg-color-blue-grey-100 min-h-[240px] max-h-[500px] customScrollbar-y overflow-y-auto break-keep',\n classes?.editor\n )\n }\n },\n shouldRerenderOnTransaction,\n ...props\n })\n\n useEffect(() => {\n if (editor && editor.getHTML() !== value) {\n editor.commands.setContent(value)\n }\n }, [editor, value])\n\n if (!editor) {\n return null\n }\n\n return (\n <div className={cn('flex w-full flex-col', classes?.root)}>\n <div\n className={cn('relative flex w-full flex-col rounded-md border border-solid border-warm-grey-200', classes?.wrapper)}\n >\n <Toolbar editor={editor} />\n {!value && <p className={cn('absolute left-4 top-16 z-10 text-color-disabled', classes?.label)}>{label}</p>}\n <EditorContent ref={ref} editor={editor} />\n {limit && (\n <p className='absolute bottom-4 right-4 text-color-disabled'>\n {editor.storage.characterCount.characters()} / {limit} символов\n </p>\n )}\n </div>\n\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={!editable}\n />\n </div>\n )\n }\n)\n"],"names":["DEFAULT_LIMIT","Editor","forwardRef","onChange","value","label","limit","error","classes","editable","helperText","shouldRerenderOnTransaction","externalHandlers","props","ref","externalOnUpdate","editor","useEditor","editorConfig","CharacterCount","content","text","html","cn","useEffect","jsxs","jsx","Toolbar","EditorContent","MessageView"],"mappings":"ixDA8BA,MAAMA,EAAgB,OAAO,iBAEhBC,GAASC,EACpB,CACE,CACE,SAAAC,EACA,MAAAC,EAAQ,GACR,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,4BAAAC,EAA8B,GAC9B,iBAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,SAAUC,CAAA,EAAqBH,GAAoB,CAAA,EAErDI,EAASC,EAAU,CACvB,WAAY,CACV,GAAGC,EACHC,EAAe,UAAU,CACvB,MAAOb,GAASN,CAAA,CACjB,CAAA,EAEH,SAAAS,EACA,QAASL,EACT,SAAWS,GAAU,CACnB,KAAM,CAAE,OAAAG,CAAAA,EAAWH,EACbO,EAAUJ,GAAAA,MAAAA,EAAQ,UAAYA,GAAAA,YAAAA,EAAQ,UAAY,GACxDb,EAASiB,CAAO,EAEZL,GACFA,EAAiBF,CAAK,CACxB,EAEF,YAAa,CACX,oBAAoBQ,EAAM,CACxB,OAAOA,EAAK,QAAQ,QAAS,GAAG,CAAA,EAElC,oBAAoBC,EAAM,CACxB,OAAOA,EAAK,QAAQ,QAAS,GAAG,CAAA,EAElC,WAAY,CACV,WAAY,QACZ,MAAOC,EACL,mHACAf,GAAA,YAAAA,EAAS,MAAA,CACX,CACF,EAEF,4BAAAG,EACA,GAAGE,CAAA,CACJ,EAQD,OANAW,EAAU,IAAM,CACVR,GAAUA,EAAO,QAAA,IAAcZ,GACjCY,EAAO,SAAS,WAAWZ,CAAK,CAClC,EACC,CAACY,EAAQZ,CAAK,CAAC,EAEbY,IAKF,MAAA,CAAI,UAAWO,EAAG,uBAAwBf,GAAA,YAAAA,EAAS,IAAI,EACtD,SAAA,CAAAiB,EAAC,MAAA,CACC,UAAWF,EAAG,oFAAqFf,GAAA,YAAAA,EAAS,OAAO,EAEnH,SAAA,CAAAkB,EAACC,GAAQ,OAAAX,EAAgB,EACxB,CAACZ,GAASsB,EAAC,IAAA,CAAE,UAAWH,EAAG,kDAAmDf,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAH,CAAA,CAAM,EACvGqB,EAACE,EAAA,CAAc,IAAAd,EAAU,OAAAE,CAAA,CAAgB,EACxCV,GACCmB,EAAC,IAAA,CAAE,UAAU,gDACV,SAAA,CAAAT,EAAO,QAAQ,eAAe,WAAA,EAAa,MAAIV,EAAM,WAAA,CAAA,CACxD,CAAA,CAAA,CAAA,EAIJoB,EAACG,EAAA,CACC,UAAWrB,GAAA,YAAAA,EAAS,QACpB,OAAQD,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWG,EACxB,SAAU,CAACD,CAAA,CAAA,CACb,EACF,EAxBO,IAwBP,CAGN"}
1
+ {"version":3,"file":"Editor.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/Editor.tsx"],"sourcesContent":["import { forwardRef, type ReactElement, useEffect } from 'react'\nimport { type FieldError } from 'react-hook-form'\nimport CharacterCount from '@tiptap/extension-character-count'\nimport { EditorContent, type EditorEvents, useEditor, type UseEditorOptions } from '@tiptap/react'\nimport { type EditorControlClasses } from '../EditorControl'\nimport { editorConfig } from '../model/config'\nimport { Toolbar } from './Toolbar'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype ExternalHandlers = {\n onUpdate?: (editor: EditorEvents['update']) => void\n}\n\ninterface EditorProps extends Partial<UseEditorOptions> {\n onChange: (value: string) => void\n value: string\n error?: FieldError\n classes?: EditorControlClasses\n externalHandlers?: ExternalHandlers\n /**\n * Заголовок\n */\n label?: string\n helperText?: string | ReactElement\n limit?: number\n}\n\ntype EditorRef = React.ElementRef<typeof EditorContent>\n\nconst DEFAULT_LIMIT = Number.MAX_SAFE_INTEGER\n\nexport const Editor = forwardRef<EditorRef, EditorProps>(\n (\n {\n onChange,\n value = '',\n label,\n limit,\n error,\n classes,\n editable,\n helperText,\n shouldRerenderOnTransaction = true,\n externalHandlers,\n ...props\n },\n ref\n ) => {\n const { onUpdate: externalOnUpdate } = externalHandlers || {}\n\n const editor = useEditor({\n extensions: [\n ...editorConfig,\n CharacterCount.configure({\n limit: limit ?? DEFAULT_LIMIT\n })\n ],\n editable: editable,\n content: value,\n onUpdate: (props) => {\n const { editor } = props\n const content = editor?.getText() ? editor?.getHTML() : ''\n onChange(content)\n\n if (externalOnUpdate) {\n externalOnUpdate(props)\n }\n },\n editorProps: {\n transformPastedText(text) {\n return text.replace(/\\xA0/g, ' ')\n },\n transformPastedHTML(html) {\n return html.replace(/\\xA0/g, ' ')\n },\n attributes: {\n spellcheck: 'false',\n class: cn(\n 'p-4 outline-none bg-color-blue-grey-100 min-h-[240px] max-h-[500px] customScrollbar-y overflow-y-auto break-keep',\n classes?.editor\n )\n }\n },\n shouldRerenderOnTransaction,\n ...props\n })\n\n useEffect(() => {\n if (editor && editor.getHTML() !== value) {\n editor.commands.setContent(value)\n }\n }, [editor, value])\n\n if (!editor) {\n return null\n }\n\n return (\n <div className={cn('flex w-full flex-col', classes?.root)}>\n <div\n className={cn('relative flex w-full flex-col rounded-md border border-solid border-warm-grey-200', classes?.wrapper)}\n >\n <Toolbar editor={editor} />\n {!value && <p className={cn('absolute left-4 top-16 z-10 text-color-disabled', classes?.label)}>{label}</p>}\n <EditorContent ref={ref} editor={editor} />\n {limit && (\n <p className='absolute bottom-4 right-4 text-color-disabled'>\n {editor.storage.characterCount.characters()} / {limit} символов\n </p>\n )}\n </div>\n\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={!editable}\n />\n </div>\n )\n }\n)\n"],"names":["DEFAULT_LIMIT","Editor","forwardRef","onChange","value","label","limit","error","classes","editable","helperText","shouldRerenderOnTransaction","externalHandlers","props","ref","externalOnUpdate","editor","useEditor","editorConfig","CharacterCount","content","text","html","cn","useEffect","jsxs","jsx","Toolbar","EditorContent","MessageView"],"mappings":"ixDA8BA,MAAMA,EAAgB,OAAO,iBAEhBC,GAASC,EACpB,CACE,CACE,SAAAC,EACA,MAAAC,EAAQ,GACR,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,4BAAAC,EAA8B,GAC9B,iBAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,SAAUC,CAAA,EAAqBH,GAAoB,CAAA,EAErDI,EAASC,EAAU,CACvB,WAAY,CACV,GAAGC,EACHC,EAAe,UAAU,CACvB,MAAOb,GAASN,CAAA,CACjB,CAAA,EAEH,SAAAS,EACA,QAASL,EACT,SAAWS,GAAU,CACnB,KAAM,CAAE,OAAAG,CAAAA,EAAWH,EACbO,EAAUJ,GAAAA,MAAAA,EAAQ,UAAYA,GAAAA,YAAAA,EAAQ,UAAY,GACxDb,EAASiB,CAAO,EAEZL,GACFA,EAAiBF,CAAK,CAE1B,EACA,YAAa,CACX,oBAAoBQ,EAAM,CACxB,OAAOA,EAAK,QAAQ,QAAS,GAAG,CAClC,EACA,oBAAoBC,EAAM,CACxB,OAAOA,EAAK,QAAQ,QAAS,GAAG,CAClC,EACA,WAAY,CACV,WAAY,QACZ,MAAOC,EACL,mHACAf,GAAA,YAAAA,EAAS,MAAA,CACX,CACF,EAEF,4BAAAG,EACA,GAAGE,CAAA,CACJ,EAQD,OANAW,EAAU,IAAM,CACVR,GAAUA,EAAO,QAAA,IAAcZ,GACjCY,EAAO,SAAS,WAAWZ,CAAK,CAEpC,EAAG,CAACY,EAAQZ,CAAK,CAAC,EAEbY,IAKF,MAAA,CAAI,UAAWO,EAAG,uBAAwBf,GAAA,YAAAA,EAAS,IAAI,EACtD,SAAA,CAAAiB,EAAC,MAAA,CACC,UAAWF,EAAG,oFAAqFf,GAAA,YAAAA,EAAS,OAAO,EAEnH,SAAA,CAAAkB,EAACC,GAAQ,OAAAX,EAAgB,EACxB,CAACZ,GAASsB,EAAC,IAAA,CAAE,UAAWH,EAAG,kDAAmDf,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAH,CAAA,CAAM,EACvGqB,EAACE,EAAA,CAAc,IAAAd,EAAU,OAAAE,CAAA,CAAgB,EACxCV,GACCmB,EAAC,IAAA,CAAE,UAAU,gDACV,SAAA,CAAAT,EAAO,QAAQ,eAAe,WAAA,EAAa,MAAIV,EAAM,WAAA,CAAA,CACxD,CAAA,CAAA,CAAA,EAIJoB,EAACG,EAAA,CACC,UAAWrB,GAAA,YAAAA,EAAS,QACpB,OAAQD,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWG,EACxB,SAAU,CAACD,CAAA,CAAA,CACb,EACF,EAxBO,IA0BX,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"setCustomLink.js","sources":["../../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.tsx"],"sourcesContent":["import type { Editor } from '@tiptap/react'\nimport { z } from 'zod'\nimport { useControlledForm } from '$/shared/hooks'\nimport { Button, Icon, InputControl, Popover, SwitchControl } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ninterface ISetCustomLinkProps {\n editor: Editor\n}\n\nconst linkSchema = z.object({\n href: z.string().url(),\n underline: z.boolean().optional().default(true)\n})\n\ntype TLinkSchema = z.infer<typeof linkSchema>\n\nexport const SetCustomLink = ({ editor }: ISetCustomLinkProps) => {\n const { control, handleSubmit } = useControlledForm({\n schema: linkSchema,\n defaultValues: {\n href: '',\n underline: true\n }\n })\n\n const onSubmit = (values: TLinkSchema) => {\n editor\n ?.chain()\n .focus()\n .extendMarkRange('link')\n .setLink({\n href: values?.href,\n rel: 'noopener noreferrer',\n target: '_blank',\n class: cn('text-color-primary-default', { 'underline underline-offset-4': values?.underline })\n })\n .run()\n }\n\n return (\n <div>\n <Popover\n classes={{ content: 'w-[360px] max-w-full' }}\n triggerElement={\n <span\n title='Добавить заголовок'\n className={cn(\n 'flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white',\n { '!bg-color-primary-hover !text-color-white': editor.isActive('link') }\n )}\n >\n <Icon name='editor/link' className='size-4' />\n </span>\n }\n >\n <div className='flex flex-1'>\n <form\n onSubmit={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n handleSubmit(onSubmit)(event)\n }}\n className='flex flex-1 flex-col gap-4'\n >\n <InputControl control={control} name='href' label='Введите ссылку' />\n <SwitchControl control={control} name='underline'>\n С подчеркиванием\n </SwitchControl>\n <Button type='submit' size='sm'>\n Сохранить\n </Button>\n </form>\n </div>\n </Popover>\n </div>\n )\n}\n"],"names":["linkSchema","z.object","z.string","z.boolean","SetCustomLink","editor","control","handleSubmit","useControlledForm","onSubmit","values","cn","jsx","Popover","Icon","jsxs","event","InputControl","SwitchControl","Button"],"mappings":"y3DAUA,MAAMA,EAAaC,EAAS,CAC1B,KAAMC,EAAE,EAAS,IAAA,EACjB,UAAWC,EAAE,EAAU,SAAA,EAAW,QAAQ,EAAI,CAChD,CAAC,EAIYC,GAAgB,CAAC,CAAE,OAAAC,KAAkC,CAChE,KAAM,CAAE,QAAAC,EAAS,aAAAC,CAAA,EAAiBC,EAAkB,CAClD,OAAQR,EACR,cAAe,CACb,KAAM,GACN,UAAW,EAAA,CACb,CACD,EAEKS,EAAYC,GAAwB,CACxCL,GAAA,MAAAA,EACI,QACD,QACA,gBAAgB,QAChB,QAAQ,CACP,KAAMK,GAAA,YAAAA,EAAQ,KACd,IAAK,sBACL,OAAQ,SACR,MAAOC,EAAG,6BAA8B,CAAE,+BAAgCD,GAAA,YAAAA,EAAQ,UAAW,CAAA,GAE9F,KAAI,EAGT,SACG,MAAA,CACC,SAAAE,EAACC,EAAA,CACC,QAAS,CAAE,QAAS,sBAAA,EACpB,eACED,EAAC,OAAA,CACC,MAAM,qBACN,UAAWD,EACT,4KACA,CAAE,4CAA6CN,EAAO,SAAS,MAAM,CAAA,CAAE,EAGzE,SAAAO,EAACE,EAAA,CAAK,KAAK,cAAc,UAAU,QAAA,CAAS,CAAA,CAAA,EAIhD,SAAAF,EAAC,MAAA,CAAI,UAAU,cACb,SAAAG,EAAC,OAAA,CACC,SAAWC,GAAU,CACnBA,EAAM,gBAAA,EACNA,EAAM,YAAY,gBAAA,EAClBT,EAAaE,CAAQ,EAAEO,CAAK,CAAA,EAE9B,UAAU,6BAEV,SAAA,CAAAJ,EAACK,EAAA,CAAa,QAAAX,EAAkB,KAAK,OAAO,MAAM,iBAAiB,EACnEM,EAACM,EAAA,CAAc,QAAAZ,EAAkB,KAAK,YAAY,SAAA,mBAElD,IACCa,EAAA,CAAO,KAAK,SAAS,KAAK,KAAK,SAAA,WAAA,CAEhC,CAAA,CAAA,CAAA,CACF,CACF,CAAA,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"setCustomLink.js","sources":["../../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.tsx"],"sourcesContent":["import type { Editor } from '@tiptap/react'\nimport { z } from 'zod'\nimport { useControlledForm } from '$/shared/hooks'\nimport { Button, Icon, InputControl, Popover, SwitchControl } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ninterface ISetCustomLinkProps {\n editor: Editor\n}\n\nconst linkSchema = z.object({\n href: z.string().url(),\n underline: z.boolean().optional().default(true)\n})\n\ntype TLinkSchema = z.infer<typeof linkSchema>\n\nexport const SetCustomLink = ({ editor }: ISetCustomLinkProps) => {\n const { control, handleSubmit } = useControlledForm({\n schema: linkSchema,\n defaultValues: {\n href: '',\n underline: true\n }\n })\n\n const onSubmit = (values: TLinkSchema) => {\n editor\n ?.chain()\n .focus()\n .extendMarkRange('link')\n .setLink({\n href: values?.href,\n rel: 'noopener noreferrer',\n target: '_blank',\n class: cn('text-color-primary-default', { 'underline underline-offset-4': values?.underline })\n })\n .run()\n }\n\n return (\n <div>\n <Popover\n classes={{ content: 'w-[360px] max-w-full' }}\n triggerElement={\n <span\n title='Добавить заголовок'\n className={cn(\n 'flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white',\n { '!bg-color-primary-hover !text-color-white': editor.isActive('link') }\n )}\n >\n <Icon name='editor/link' className='size-4' />\n </span>\n }\n >\n <div className='flex flex-1'>\n <form\n onSubmit={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n handleSubmit(onSubmit)(event)\n }}\n className='flex flex-1 flex-col gap-4'\n >\n <InputControl control={control} name='href' label='Введите ссылку' />\n <SwitchControl control={control} name='underline'>\n С подчеркиванием\n </SwitchControl>\n <Button type='submit' size='sm'>\n Сохранить\n </Button>\n </form>\n </div>\n </Popover>\n </div>\n )\n}\n"],"names":["linkSchema","z.object","z.string","z.boolean","SetCustomLink","editor","control","handleSubmit","useControlledForm","onSubmit","values","cn","jsx","Popover","Icon","jsxs","event","InputControl","SwitchControl","Button"],"mappings":"y3DAUA,MAAMA,EAAaC,EAAS,CAC1B,KAAMC,EAAE,EAAS,IAAA,EACjB,UAAWC,EAAE,EAAU,SAAA,EAAW,QAAQ,EAAI,CAChD,CAAC,EAIYC,GAAgB,CAAC,CAAE,OAAAC,KAAkC,CAChE,KAAM,CAAE,QAAAC,EAAS,aAAAC,CAAA,EAAiBC,EAAkB,CAClD,OAAQR,EACR,cAAe,CACb,KAAM,GACN,UAAW,EAAA,CACb,CACD,EAEKS,EAAYC,GAAwB,CACxCL,GAAA,MAAAA,EACI,QACD,QACA,gBAAgB,QAChB,QAAQ,CACP,KAAMK,GAAA,YAAAA,EAAQ,KACd,IAAK,sBACL,OAAQ,SACR,MAAOC,EAAG,6BAA8B,CAAE,+BAAgCD,GAAA,YAAAA,EAAQ,UAAW,CAAA,GAE9F,KACL,EAEA,SACG,MAAA,CACC,SAAAE,EAACC,EAAA,CACC,QAAS,CAAE,QAAS,sBAAA,EACpB,eACED,EAAC,OAAA,CACC,MAAM,qBACN,UAAWD,EACT,4KACA,CAAE,4CAA6CN,EAAO,SAAS,MAAM,CAAA,CAAE,EAGzE,SAAAO,EAACE,EAAA,CAAK,KAAK,cAAc,UAAU,QAAA,CAAS,CAAA,CAAA,EAIhD,SAAAF,EAAC,MAAA,CAAI,UAAU,cACb,SAAAG,EAAC,OAAA,CACC,SAAWC,GAAU,CACnBA,EAAM,gBAAA,EACNA,EAAM,YAAY,gBAAA,EAClBT,EAAaE,CAAQ,EAAEO,CAAK,CAC9B,EACA,UAAU,6BAEV,SAAA,CAAAJ,EAACK,EAAA,CAAa,QAAAX,EAAkB,KAAK,OAAO,MAAM,iBAAiB,EACnEM,EAACM,EAAA,CAAc,QAAAZ,EAAkB,KAAK,YAAY,SAAA,mBAElD,IACCa,EAAA,CAAO,KAAK,SAAS,KAAK,KAAK,SAAA,WAAA,CAEhC,CAAA,CAAA,CAAA,CACF,CACF,CAAA,CAAA,EAEJ,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputCurrencyControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.tsx"],"sourcesContent":["import * as React from 'react'\nimport { type ReactElement } from 'react'\nimport { type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { NumericFormat } from 'react-number-format'\nimport { currencyOptionsList, getDelimiterForCurrency } from './model/helpers'\nimport { useInputCurrency } from './model/useInputCurrency'\nimport { MenuTrigger, OptionList } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { InputBase, type InputBaseProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\nexport type TCurrencyVariant = 'euro' | 'dollars' | 'rubles' | 'yuan' | 'dirhams'\nexport interface ICurrencyOption {\n ruName: string\n engName: string\n currency: TCurrencyVariant\n}\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLDivElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void\n}\n\nexport type InputCurrencyControlProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = Omit<InputBaseProps, 'externalHandlers' | 'onChange' | 'value' | 'defaultValue' | 'type'> &\n UseControllerProps<TFieldValues, TName> & {\n classes?: any // TODO ADD CLASSES AND CONNECT WITH BACKEND API TO GET CURRENCY\n defaultCurrency?: TCurrencyVariant\n disabled?: boolean\n label: string\n helperText?: string | ReactElement\n externalHandlers?: ExternalHandlers\n }\n\nexport const InputCurrencyControl = <T extends FieldValues>({\n defaultCurrency = 'rubles',\n label,\n helperText,\n control,\n classes,\n disabled,\n name,\n defaultValue,\n rules,\n attachmentProps,\n shouldUnregister,\n externalHandlers,\n ...props\n}: InputCurrencyControlProps<T>) => {\n const inputId = React.useId()\n const containerRef = React.useRef<HTMLDivElement | null>(null)\n const { menuIsOpen, currentCurrencyOption, onSelectOption, onToggleMenu, onCloseMenu } = useInputCurrency(defaultCurrency)\n useClickOutside(containerRef, onCloseMenu)\n\n const { field, fieldState } = useController({ control, name, defaultValue, disabled, rules, shouldUnregister })\n\n const { error, invalid } = fieldState\n\n return (\n <div ref={containerRef} className={cn('relative flex w-full flex-col', classes?.container)}>\n <InputBase\n label={label}\n value={field.value}\n invalid={invalid}\n attachmentProps={attachmentProps}\n onBlur={(e) => {\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <div className='flex w-full justify-between'>\n <NumericFormat\n {...field}\n {...props}\n id={inputId}\n aria-invalid={error?.message ? 'true' : 'false'}\n thousandsGroupStyle='wan'\n thousandSeparator=' '\n prefix={getDelimiterForCurrency(currentCurrencyOption.currency)}\n getInputRef={field.ref}\n allowNegative={false}\n disabled={disabled}\n className={cn(\n 'desk-body-regular-l w-full bg-color-transparent text-color-dark outline-none transition-all',\n classes?.input\n )}\n />\n <MenuTrigger onToggleMenu={onToggleMenu} currentCurrencyOption={currentCurrencyOption} />\n <OptionList menuIsOpen={menuIsOpen} optionsList={currencyOptionsList} onSelectOption={onSelectOption} />\n </div>\n )}\n />\n\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["InputCurrencyControl","defaultCurrency","label","helperText","control","classes","disabled","name","defaultValue","rules","attachmentProps","shouldUnregister","externalHandlers","props","inputId","React","containerRef","menuIsOpen","currentCurrencyOption","onSelectOption","onToggleMenu","onCloseMenu","useInputCurrency","useClickOutside","field","fieldState","useController","error","invalid","jsxs","cn","jsx","InputBase","NumericFormat","getDelimiterForCurrency","MenuTrigger","OptionList","currencyOptionsList","MessageView"],"mappings":"i7DAuCO,MAAMA,GAAuB,CAAwB,CAC1D,gBAAAC,EAAkB,SAClB,MAAAC,EACA,WAAAC,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,EACA,KAAAC,EACA,aAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,GAAGC,CACL,IAAoC,CAClC,MAAMC,EAAUC,EAAM,MAAA,EAChBC,EAAeD,EAAM,OAA8B,IAAI,EACvD,CAAE,WAAAE,EAAY,sBAAAC,EAAuB,eAAAC,EAAgB,aAAAC,EAAc,YAAAC,CAAA,EAAgBC,EAAiBrB,CAAe,EACzHsB,EAAgBP,EAAcK,CAAW,EAEzC,KAAM,CAAE,MAAAG,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAAE,QAAAtB,EAAS,KAAAG,EAAM,aAAAC,EAAc,SAAAF,EAAU,MAAAG,EAAO,iBAAAE,CAAA,CAAkB,EAExG,CAAE,MAAAgB,EAAO,QAAAC,CAAA,EAAYH,EAE3B,OACEI,EAAC,OAAI,IAAKb,EAAc,UAAWc,EAAG,gCAAiCzB,GAAA,YAAAA,EAAS,SAAS,EACvF,SAAA,CAAA0B,EAACC,EAAA,CACC,MAAA9B,EACA,MAAOsB,EAAM,MACb,QAAAI,EACA,gBAAAlB,EACA,OAAS,GAAM,CACTG,GAAA,MAAAA,EAAO,SAAQA,GAAA,MAAAA,EAAO,OAAO,IAC7BD,GAAA,MAAAA,EAAkB,QAAQA,EAAiB,OAAO,CAAC,CAAA,EAEzD,QAASA,GAAA,YAAAA,EAAkB,QAC3B,QAASA,GAAA,YAAAA,EAAkB,OAC3B,aAAc,IACZiB,EAAC,MAAA,CAAI,UAAU,8BACb,SAAA,CAAAE,EAACE,EAAA,CACE,GAAGT,EACH,GAAGX,EACJ,GAAIC,EACJ,eAAca,GAAA,MAAAA,EAAO,QAAU,OAAS,QACxC,oBAAoB,MACpB,kBAAkB,IAClB,OAAQO,EAAwBhB,EAAsB,QAAQ,EAC9D,YAAaM,EAAM,IACnB,cAAe,GACf,SAAAlB,EACA,UAAWwB,EACT,8FACAzB,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,EAEF0B,EAACI,EAAA,CAAY,aAAAf,EAA4B,sBAAAF,CAAA,CAA8C,EACvFa,EAACK,EAAA,CAAW,WAAAnB,EAAwB,YAAaoB,EAAqB,eAAAlB,CAAA,CAAgC,CAAA,CAAA,CACxG,CAAA,CAAA,EAIJY,EAACO,EAAA,CACC,UAAWjC,GAAA,YAAAA,EAAS,QACpB,OAAQsB,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWxB,EACxB,SAAAG,CAAA,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"InputCurrencyControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.tsx"],"sourcesContent":["import * as React from 'react'\nimport { type ReactElement } from 'react'\nimport { type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { NumericFormat } from 'react-number-format'\nimport { currencyOptionsList, getDelimiterForCurrency } from './model/helpers'\nimport { useInputCurrency } from './model/useInputCurrency'\nimport { MenuTrigger, OptionList } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { InputBase, type InputBaseProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\nexport type TCurrencyVariant = 'euro' | 'dollars' | 'rubles' | 'yuan' | 'dirhams'\nexport interface ICurrencyOption {\n ruName: string\n engName: string\n currency: TCurrencyVariant\n}\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLDivElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void\n}\n\nexport type InputCurrencyControlProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = Omit<InputBaseProps, 'externalHandlers' | 'onChange' | 'value' | 'defaultValue' | 'type'> &\n UseControllerProps<TFieldValues, TName> & {\n classes?: any // TODO ADD CLASSES AND CONNECT WITH BACKEND API TO GET CURRENCY\n defaultCurrency?: TCurrencyVariant\n disabled?: boolean\n label: string\n helperText?: string | ReactElement\n externalHandlers?: ExternalHandlers\n }\n\nexport const InputCurrencyControl = <T extends FieldValues>({\n defaultCurrency = 'rubles',\n label,\n helperText,\n control,\n classes,\n disabled,\n name,\n defaultValue,\n rules,\n attachmentProps,\n shouldUnregister,\n externalHandlers,\n ...props\n}: InputCurrencyControlProps<T>) => {\n const inputId = React.useId()\n const containerRef = React.useRef<HTMLDivElement | null>(null)\n const { menuIsOpen, currentCurrencyOption, onSelectOption, onToggleMenu, onCloseMenu } = useInputCurrency(defaultCurrency)\n useClickOutside(containerRef, onCloseMenu)\n\n const { field, fieldState } = useController({ control, name, defaultValue, disabled, rules, shouldUnregister })\n\n const { error, invalid } = fieldState\n\n return (\n <div ref={containerRef} className={cn('relative flex w-full flex-col', classes?.container)}>\n <InputBase\n label={label}\n value={field.value}\n invalid={invalid}\n attachmentProps={attachmentProps}\n onBlur={(e) => {\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <div className='flex w-full justify-between'>\n <NumericFormat\n {...field}\n {...props}\n id={inputId}\n aria-invalid={error?.message ? 'true' : 'false'}\n thousandsGroupStyle='wan'\n thousandSeparator=' '\n prefix={getDelimiterForCurrency(currentCurrencyOption.currency)}\n getInputRef={field.ref}\n allowNegative={false}\n disabled={disabled}\n className={cn(\n 'desk-body-regular-l w-full bg-color-transparent text-color-dark outline-none transition-all',\n classes?.input\n )}\n />\n <MenuTrigger onToggleMenu={onToggleMenu} currentCurrencyOption={currentCurrencyOption} />\n <OptionList menuIsOpen={menuIsOpen} optionsList={currencyOptionsList} onSelectOption={onSelectOption} />\n </div>\n )}\n />\n\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["InputCurrencyControl","defaultCurrency","label","helperText","control","classes","disabled","name","defaultValue","rules","attachmentProps","shouldUnregister","externalHandlers","props","inputId","React","containerRef","menuIsOpen","currentCurrencyOption","onSelectOption","onToggleMenu","onCloseMenu","useInputCurrency","useClickOutside","field","fieldState","useController","error","invalid","jsxs","cn","jsx","InputBase","NumericFormat","getDelimiterForCurrency","MenuTrigger","OptionList","currencyOptionsList","MessageView"],"mappings":"i7DAuCO,MAAMA,GAAuB,CAAwB,CAC1D,gBAAAC,EAAkB,SAClB,MAAAC,EACA,WAAAC,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,EACA,KAAAC,EACA,aAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,GAAGC,CACL,IAAoC,CAClC,MAAMC,EAAUC,EAAM,MAAA,EAChBC,EAAeD,EAAM,OAA8B,IAAI,EACvD,CAAE,WAAAE,EAAY,sBAAAC,EAAuB,eAAAC,EAAgB,aAAAC,EAAc,YAAAC,CAAA,EAAgBC,EAAiBrB,CAAe,EACzHsB,EAAgBP,EAAcK,CAAW,EAEzC,KAAM,CAAE,MAAAG,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAAE,QAAAtB,EAAS,KAAAG,EAAM,aAAAC,EAAc,SAAAF,EAAU,MAAAG,EAAO,iBAAAE,CAAA,CAAkB,EAExG,CAAE,MAAAgB,EAAO,QAAAC,CAAA,EAAYH,EAE3B,OACEI,EAAC,OAAI,IAAKb,EAAc,UAAWc,EAAG,gCAAiCzB,GAAA,YAAAA,EAAS,SAAS,EACvF,SAAA,CAAA0B,EAACC,EAAA,CACC,MAAA9B,EACA,MAAOsB,EAAM,MACb,QAAAI,EACA,gBAAAlB,EACA,OAAS,GAAM,CACTG,GAAA,MAAAA,EAAO,SAAQA,GAAA,MAAAA,EAAO,OAAO,IAC7BD,GAAA,MAAAA,EAAkB,QAAQA,EAAiB,OAAO,CAAC,CACzD,EACA,QAASA,GAAA,YAAAA,EAAkB,QAC3B,QAASA,GAAA,YAAAA,EAAkB,OAC3B,aAAc,IACZiB,EAAC,MAAA,CAAI,UAAU,8BACb,SAAA,CAAAE,EAACE,EAAA,CACE,GAAGT,EACH,GAAGX,EACJ,GAAIC,EACJ,eAAca,GAAA,MAAAA,EAAO,QAAU,OAAS,QACxC,oBAAoB,MACpB,kBAAkB,IAClB,OAAQO,EAAwBhB,EAAsB,QAAQ,EAC9D,YAAaM,EAAM,IACnB,cAAe,GACf,SAAAlB,EACA,UAAWwB,EACT,8FACAzB,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,EAEF0B,EAACI,EAAA,CAAY,aAAAf,EAA4B,sBAAAF,CAAA,CAA8C,EACvFa,EAACK,EAAA,CAAW,WAAAnB,EAAwB,YAAaoB,EAAqB,eAAAlB,CAAA,CAAgC,CAAA,CAAA,CACxG,CAAA,CAAA,EAIJY,EAACO,EAAA,CACC,UAAWjC,GAAA,YAAAA,EAAS,QACpB,OAAQsB,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWxB,EACxB,SAAAG,CAAA,CAAA,CACF,EACF,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useInputCurrency.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/inputCurrency/model/useInputCurrency.tsx"],"sourcesContent":["import React from 'react'\nimport { type ICurrencyOption, type TCurrencyVariant } from '../InputCurrencyControl'\nimport { currencyOptionsList } from './helpers'\n\ntype TUseInputCurrencyReturn = {\n menuIsOpen: boolean\n currentCurrencyOption: ICurrencyOption\n onSelectOption: (option: ICurrencyOption) => void\n onToggleMenu: () => void\n onCloseMenu: () => void\n}\n\nexport const useInputCurrency = (defaultCurrency?: TCurrencyVariant): TUseInputCurrencyReturn => {\n const [menuIsOpen, setMenuIsOpen] = React.useState(false)\n const [currentCurrencyOption, setCurrencyOption] = React.useState<ICurrencyOption>(\n () => currencyOptionsList?.find((option) => option?.currency === defaultCurrency) || currencyOptionsList[0]\n )\n const onSelectOption = (option: ICurrencyOption) => {\n setCurrencyOption(option)\n setMenuIsOpen(false)\n }\n\n const onToggleMenu = () => setMenuIsOpen((prev) => !prev)\n const onCloseMenu = () => setMenuIsOpen(false)\n\n return {\n menuIsOpen,\n currentCurrencyOption,\n onSelectOption,\n onToggleMenu,\n onCloseMenu\n }\n}\n"],"names":["useInputCurrency","defaultCurrency","menuIsOpen","setMenuIsOpen","React","currentCurrencyOption","setCurrencyOption","_a","currencyOptionsList","option","prev"],"mappings":"wEAYO,MAAMA,EAAoBC,GAAgE,CAC/F,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAM,SAAS,EAAK,EAClD,CAACC,EAAuBC,CAAiB,EAAIF,EAAM,SACvD,WAAM,QAAAG,EAAAC,IAAA,YAAAD,EAAqB,KAAME,IAAWA,GAAA,YAAAA,EAAQ,YAAaR,KAAoBO,EAAoB,CAAC,EAAA,EAU5G,MAAO,CACL,WAAAN,EACA,sBAAAG,EACA,eAXsBI,GAA4B,CAClDH,EAAkBG,CAAM,EACxBN,EAAc,EAAK,CAAA,EAUnB,aAPmB,IAAMA,EAAeO,GAAS,CAACA,CAAI,EAQtD,YAPkB,IAAMP,EAAc,EAAK,CAO3C,CAEJ"}
1
+ {"version":3,"file":"useInputCurrency.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/inputCurrency/model/useInputCurrency.tsx"],"sourcesContent":["import React from 'react'\nimport { type ICurrencyOption, type TCurrencyVariant } from '../InputCurrencyControl'\nimport { currencyOptionsList } from './helpers'\n\ntype TUseInputCurrencyReturn = {\n menuIsOpen: boolean\n currentCurrencyOption: ICurrencyOption\n onSelectOption: (option: ICurrencyOption) => void\n onToggleMenu: () => void\n onCloseMenu: () => void\n}\n\nexport const useInputCurrency = (defaultCurrency?: TCurrencyVariant): TUseInputCurrencyReturn => {\n const [menuIsOpen, setMenuIsOpen] = React.useState(false)\n const [currentCurrencyOption, setCurrencyOption] = React.useState<ICurrencyOption>(\n () => currencyOptionsList?.find((option) => option?.currency === defaultCurrency) || currencyOptionsList[0]\n )\n const onSelectOption = (option: ICurrencyOption) => {\n setCurrencyOption(option)\n setMenuIsOpen(false)\n }\n\n const onToggleMenu = () => setMenuIsOpen((prev) => !prev)\n const onCloseMenu = () => setMenuIsOpen(false)\n\n return {\n menuIsOpen,\n currentCurrencyOption,\n onSelectOption,\n onToggleMenu,\n onCloseMenu\n }\n}\n"],"names":["useInputCurrency","defaultCurrency","menuIsOpen","setMenuIsOpen","React","currentCurrencyOption","setCurrencyOption","_a","currencyOptionsList","option","prev"],"mappings":"wEAYO,MAAMA,EAAoBC,GAAgE,CAC/F,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAM,SAAS,EAAK,EAClD,CAACC,EAAuBC,CAAiB,EAAIF,EAAM,SACvD,WAAM,QAAAG,EAAAC,IAAA,YAAAD,EAAqB,KAAME,IAAWA,GAAA,YAAAA,EAAQ,YAAaR,KAAoBO,EAAoB,CAAC,EAAA,EAU5G,MAAO,CACL,WAAAN,EACA,sBAAAG,EACA,eAXsBI,GAA4B,CAClDH,EAAkBG,CAAM,EACxBN,EAAc,EAAK,CACrB,EASE,aAPmB,IAAMA,EAAeO,GAAS,CAACA,CAAI,EAQtD,YAPkB,IAAMP,EAAc,EAAK,CAO3C,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/select/SelectControl.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { isSingleOption, SelectBase, type SelectBaseProps, type SelectItemOption } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype SelectControlClasses = SelectBaseProps<boolean>['classes'] & {\n container?: string\n message?: string\n}\n\nexport type SelectControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n SelectBaseProps<boolean> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: SelectControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Функция для управления возвращаемым значением\n */\n returnValue?: (option?: SelectItemOption) => string\n }\n\nexport const SelectControl = <TFieldValues extends FieldValues = FieldValues>({\n control,\n classes,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue,\n returnValue,\n options,\n helperText,\n ...props\n}: SelectControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue\n })\n\n const { invalid, error } = fieldState\n const { container, message, ...restClasses } = classes || {}\n\n const { value, onChange, ...restField } = field\n\n const onValueChange = (value?: SelectItemOption | SelectItemOption[]) => {\n if (Array.isArray(value)) {\n const values = value.map((item) => (returnValue ? returnValue(item) : item.value))\n onChange(values)\n } else if (isSingleOption(value)) {\n onChange(returnValue ? returnValue(value) : value?.value)\n } else {\n onChange(null)\n }\n }\n\n const selected = useMemo<SelectItemOption | SelectItemOption[] | undefined>(() => {\n if (Array.isArray(value)) {\n return options.filter((option) => value.includes(returnValue ? returnValue(option) : option.value))\n } else {\n return options.find((option) => (returnValue ? returnValue(option) : option.value) === value)\n }\n }, [options, returnValue, value])\n\n return (\n <div className={cn('w-full items-start gap-y-2', container)}>\n <SelectBase\n {...props}\n {...restField}\n {...restClasses}\n options={options}\n value={selected}\n onChange={onValueChange}\n invalid={invalid}\n disabled={disabled}\n />\n <MessageView\n text={error ? error.message : helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["SelectControl","control","classes","name","rules","shouldUnregister","disabled","defaultValue","returnValue","options","helperText","props","field","fieldState","useController","invalid","error","container","message","restClasses","value","onChange","restField","onValueChange","values","item","isSingleOption","selected","useMemo","option","cn","jsx","SelectBase","MessageView"],"mappings":"ylDAoCO,MAAMA,GAAgB,CAAiD,CAC5E,QAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAb,EACA,KAAAE,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,CAAA,CACD,EAEK,CAAE,QAAAQ,EAAS,MAAAC,CAAA,EAAUH,EACrB,CAAE,UAAAI,EAAW,QAAAC,EAAS,GAAGC,CAAA,EAAgBjB,GAAW,CAAA,EAEpD,CAAE,MAAAkB,EAAO,SAAAC,EAAU,GAAGC,GAAcV,EAEpCW,EAAiBH,GAAkD,CACvE,GAAI,MAAM,QAAQA,CAAK,EAAG,CACxB,MAAMI,EAASJ,EAAM,IAAKK,GAAUjB,EAAcA,EAAYiB,CAAI,EAAIA,EAAK,KAAM,EACjFJ,EAASG,CAAM,CAAA,MACNE,EAAeN,CAAK,EAC7BC,EAASb,EAAcA,EAAYY,CAAK,EAAIA,GAAAA,YAAAA,EAAO,KAAK,EAExDC,EAAS,IAAI,CACf,EAGIM,EAAWC,EAA2D,IACtE,MAAM,QAAQR,CAAK,EACdX,EAAQ,OAAQoB,GAAWT,EAAM,SAASZ,EAAcA,EAAYqB,CAAM,EAAIA,EAAO,KAAK,CAAC,EAE3FpB,EAAQ,KAAMoB,IAAYrB,EAAcA,EAAYqB,CAAM,EAAIA,EAAO,SAAWT,CAAK,EAE7F,CAACX,EAASD,EAAaY,CAAK,CAAC,EAEhC,SACG,MAAA,CAAI,UAAWU,EAAG,6BAA8Bb,CAAS,EACxD,SAAA,CAAAc,EAACC,EAAA,CACE,GAAGrB,EACH,GAAGW,EACH,GAAGH,EACJ,QAAAV,EACA,MAAOkB,EACP,SAAUJ,EACV,QAAAR,EACA,SAAAT,CAAA,CAAA,EAEFyB,EAACE,EAAA,CACC,KAAMjB,EAAQA,EAAM,QAAUN,EAC9B,UAAWQ,EACX,OAAQF,EAAQ,QAAU,SAC1B,SAAAV,CAAA,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"SelectControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/select/SelectControl.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { isSingleOption, SelectBase, type SelectBaseProps, type SelectItemOption } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype SelectControlClasses = SelectBaseProps<boolean>['classes'] & {\n container?: string\n message?: string\n}\n\nexport type SelectControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n SelectBaseProps<boolean> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: SelectControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Функция для управления возвращаемым значением\n */\n returnValue?: (option?: SelectItemOption) => string\n }\n\nexport const SelectControl = <TFieldValues extends FieldValues = FieldValues>({\n control,\n classes,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue,\n returnValue,\n options,\n helperText,\n ...props\n}: SelectControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue\n })\n\n const { invalid, error } = fieldState\n const { container, message, ...restClasses } = classes || {}\n\n const { value, onChange, ...restField } = field\n\n const onValueChange = (value?: SelectItemOption | SelectItemOption[]) => {\n if (Array.isArray(value)) {\n const values = value.map((item) => (returnValue ? returnValue(item) : item.value))\n onChange(values)\n } else if (isSingleOption(value)) {\n onChange(returnValue ? returnValue(value) : value?.value)\n } else {\n onChange(null)\n }\n }\n\n const selected = useMemo<SelectItemOption | SelectItemOption[] | undefined>(() => {\n if (Array.isArray(value)) {\n return options.filter((option) => value.includes(returnValue ? returnValue(option) : option.value))\n } else {\n return options.find((option) => (returnValue ? returnValue(option) : option.value) === value)\n }\n }, [options, returnValue, value])\n\n return (\n <div className={cn('w-full items-start gap-y-2', container)}>\n <SelectBase\n {...props}\n {...restField}\n {...restClasses}\n options={options}\n value={selected}\n onChange={onValueChange}\n invalid={invalid}\n disabled={disabled}\n />\n <MessageView\n text={error ? error.message : helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["SelectControl","control","classes","name","rules","shouldUnregister","disabled","defaultValue","returnValue","options","helperText","props","field","fieldState","useController","invalid","error","container","message","restClasses","value","onChange","restField","onValueChange","values","item","isSingleOption","selected","useMemo","option","cn","jsx","SelectBase","MessageView"],"mappings":"ylDAoCO,MAAMA,GAAgB,CAAiD,CAC5E,QAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAb,EACA,KAAAE,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,CAAA,CACD,EAEK,CAAE,QAAAQ,EAAS,MAAAC,CAAA,EAAUH,EACrB,CAAE,UAAAI,EAAW,QAAAC,EAAS,GAAGC,CAAA,EAAgBjB,GAAW,CAAA,EAEpD,CAAE,MAAAkB,EAAO,SAAAC,EAAU,GAAGC,GAAcV,EAEpCW,EAAiBH,GAAkD,CACvE,GAAI,MAAM,QAAQA,CAAK,EAAG,CACxB,MAAMI,EAASJ,EAAM,IAAKK,GAAUjB,EAAcA,EAAYiB,CAAI,EAAIA,EAAK,KAAM,EACjFJ,EAASG,CAAM,CACjB,MAAWE,EAAeN,CAAK,EAC7BC,EAASb,EAAcA,EAAYY,CAAK,EAAIA,GAAAA,YAAAA,EAAO,KAAK,EAExDC,EAAS,IAAI,CAEjB,EAEMM,EAAWC,EAA2D,IACtE,MAAM,QAAQR,CAAK,EACdX,EAAQ,OAAQoB,GAAWT,EAAM,SAASZ,EAAcA,EAAYqB,CAAM,EAAIA,EAAO,KAAK,CAAC,EAE3FpB,EAAQ,KAAMoB,IAAYrB,EAAcA,EAAYqB,CAAM,EAAIA,EAAO,SAAWT,CAAK,EAE7F,CAACX,EAASD,EAAaY,CAAK,CAAC,EAEhC,SACG,MAAA,CAAI,UAAWU,EAAG,6BAA8Bb,CAAS,EACxD,SAAA,CAAAc,EAACC,EAAA,CACE,GAAGrB,EACH,GAAGW,EACH,GAAGH,EACJ,QAAAV,EACA,MAAOkB,EACP,SAAUJ,EACV,QAAAR,EACA,SAAAT,CAAA,CAAA,EAEFyB,EAACE,EAAA,CACC,KAAMjB,EAAQA,EAAM,QAAUN,EAC9B,UAAWQ,EACX,OAAQF,EAAQ,QAAU,SAC1B,SAAAV,CAAA,CAAA,CACF,EACF,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type UseQueryResult } from '@tanstack/react-query'\nimport { useDebounceValue } from '$/shared/hooks'\nimport { SelectBase, type SelectBaseProps, type SelectItemOption } from '$/shared/ui'\n\nexport interface AutocompleteBaseProps<TData>\n extends Omit<\n SelectBaseProps<boolean>,\n 'options' | 'inputValue' | 'onInputChange' | 'isSearchable' | 'isMulti' | 'value' | 'onChange'\n > {\n /**\n * Функция для запроса основанная на [@tanstack/query](https://tanstack.com/query/latest/docs/framework/react/overview)\n */\n query: (query: string) => UseQueryResult<TData[]>\n /**\n * Позволяет форматировать данные\n */\n formatter: (item: TData, index: number, array: TData[]) => SelectItemOption\n /**\n * Значение инпута\n */\n value?: string\n /**\n * Handler инпута\n */\n onChange?: (value: string) => void\n}\n\nexport const AutocompleteBase = forwardRef(\n <TData,>(\n { formatter, query, value, displayValue, onChange, externalHandlers, ...props }: AutocompleteBaseProps<TData>,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const debounceSearch = useDebounceValue(value || '', 100)\n\n const { data } = query(debounceSearch)\n\n const options = data ? data.map(formatter) : []\n\n const onValueChange = (value?: SelectItemOption | SelectItemOption[]) => {\n if (!value || Array.isArray(value)) return\n\n if (onChange) onChange(displayValue ? displayValue(value) : value.label)\n }\n\n return (\n <SelectBase\n {...props}\n ref={ref}\n options={options}\n filterDisabled\n inputValue={value}\n onInputChange={onChange}\n isSearchable\n isMulti={false}\n displayValue={displayValue}\n externalHandlers={{\n onChange: (value) => {\n onValueChange(value)\n if (externalHandlers?.onChange) externalHandlers?.onChange(value)\n },\n ...externalHandlers\n }}\n />\n )\n }\n) as <TData>(props: AutocompleteBaseProps<TData> & { ref: React.Ref<HTMLInputElement> }) => React.JSX.Element\n"],"names":["AutocompleteBase","forwardRef","formatter","query","value","displayValue","onChange","externalHandlers","props","ref","debounceSearch","useDebounceValue","data","options","onValueChange","jsx","SelectBase"],"mappings":"8rCA4BO,MAAMA,EAAmBC,EAC9B,CACE,CAAE,UAAAC,EAAW,MAAAC,EAAO,MAAAC,EAAO,aAAAC,EAAc,SAAAC,EAAU,iBAAAC,EAAkB,GAAGC,CAAA,EACxEC,IACG,CACH,MAAMC,EAAiBC,EAAiBP,GAAS,GAAI,GAAG,EAElD,CAAE,KAAAQ,CAAA,EAAST,EAAMO,CAAc,EAE/BG,EAAUD,EAAOA,EAAK,IAAIV,CAAS,EAAI,CAAA,EAEvCY,EAAiBV,GAAkD,CACnE,CAACA,GAAS,MAAM,QAAQA,CAAK,GAE7BE,GAAUA,EAASD,EAAeA,EAAaD,CAAK,EAAIA,EAAM,KAAK,CAAA,EAGzE,OACEW,EAACC,EAAA,CACE,GAAGR,EACJ,IAAAC,EACA,QAAAI,EACA,eAAc,GACd,WAAYT,EACZ,cAAeE,EACf,aAAY,GACZ,QAAS,GACT,aAAAD,EACA,iBAAkB,CAChB,SAAWD,GAAU,CACnBU,EAAcV,CAAK,EACfG,GAAA,MAAAA,EAAkB,WAAUA,GAAA,MAAAA,EAAkB,SAASH,GAAK,EAElE,GAAGG,CAAA,CACL,CAAA,CACF,CAGN"}
1
+ {"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type UseQueryResult } from '@tanstack/react-query'\nimport type { AutocompleteItemOption } from './types'\nimport { useDebounceValue } from '$/shared/hooks'\nimport { SelectBase, type SelectBaseProps } from '$/shared/ui'\n\nexport interface AutocompleteBaseProps<TData>\n extends Omit<\n SelectBaseProps<boolean>,\n 'options' | 'inputValue' | 'onInputChange' | 'isSearchable' | 'isMulti' | 'value' | 'onChange'\n > {\n /**\n * Функция для запроса основанная на [@tanstack/query](https://tanstack.com/query/latest/docs/framework/react/overview)\n */\n query: (query: string) => UseQueryResult<TData[]>\n /**\n * Позволяет форматировать данные\n */\n formatter: (item: TData, index: number, array: TData[]) => AutocompleteItemOption<TData>\n /**\n * Значение инпута\n */\n value?: string\n /**\n * Handler инпута\n */\n onChange?: (value: string) => void\n}\n\nexport const AutocompleteBase = forwardRef(\n <TData,>(\n { formatter, query, value, displayValue, onChange, externalHandlers, ...props }: AutocompleteBaseProps<TData>,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const debounceSearch = useDebounceValue(value || '', 100)\n\n const { data } = query(debounceSearch)\n\n const options = data ? data.map(formatter) : []\n\n const onValueChange = (value?: AutocompleteItemOption<TData> | AutocompleteItemOption<TData>[]) => {\n if (!value || Array.isArray(value)) return\n\n if (onChange) onChange(displayValue ? displayValue(value) : value.label)\n }\n\n return (\n <SelectBase\n {...props}\n ref={ref}\n options={options}\n filterDisabled\n inputValue={value}\n onInputChange={onChange}\n isSearchable\n isMulti={false}\n displayValue={displayValue}\n externalHandlers={{\n onChange: (value) => {\n onValueChange(value)\n if (externalHandlers?.onChange) externalHandlers?.onChange(value)\n },\n ...externalHandlers\n }}\n />\n )\n }\n) as <TData>(props: AutocompleteBaseProps<TData> & { ref: React.Ref<HTMLInputElement> }) => React.JSX.Element\n"],"names":["AutocompleteBase","forwardRef","formatter","query","value","displayValue","onChange","externalHandlers","props","ref","debounceSearch","useDebounceValue","data","options","onValueChange","jsx","SelectBase"],"mappings":"8rCA6BO,MAAMA,EAAmBC,EAC9B,CACE,CAAE,UAAAC,EAAW,MAAAC,EAAO,MAAAC,EAAO,aAAAC,EAAc,SAAAC,EAAU,iBAAAC,EAAkB,GAAGC,CAAA,EACxEC,IACG,CACH,MAAMC,EAAiBC,EAAiBP,GAAS,GAAI,GAAG,EAElD,CAAE,KAAAQ,CAAA,EAAST,EAAMO,CAAc,EAE/BG,EAAUD,EAAOA,EAAK,IAAIV,CAAS,EAAI,CAAA,EAEvCY,EAAiBV,GAA4E,CAC7F,CAACA,GAAS,MAAM,QAAQA,CAAK,GAE7BE,GAAUA,EAASD,EAAeA,EAAaD,CAAK,EAAIA,EAAM,KAAK,CACzE,EAEA,OACEW,EAACC,EAAA,CACE,GAAGR,EACJ,IAAAC,EACA,QAAAI,EACA,eAAc,GACd,WAAYT,EACZ,cAAeE,EACf,aAAY,GACZ,QAAS,GACT,aAAAD,EACA,iBAAkB,CAChB,SAAWD,GAAU,CACnBU,EAAcV,CAAK,EACfG,GAAA,MAAAA,EAAkB,WAAUA,GAAA,MAAAA,EAAkB,SAASH,GAC7D,EACA,GAAGG,CAAA,CACL,CAAA,CAGN,CACF"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type CheckboxProps as CheckboxPrimitiveProps, type CheckedState, Indicator, Root } from '@radix-ui/react-checkbox'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type CheckboxBaseClasses = {\n root?: string\n indicator?: string\n icon?: string\n}\n\nexport type { CheckedState }\n\ntype ExternalHandlers = {\n onChange?: (value: CheckedState) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type CheckboxBaseProps = CheckboxPrimitiveProps & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: CheckboxBaseClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const CheckboxBase = forwardRef<HTMLButtonElement, CheckboxBaseProps>(\n ({ classes, className, invalid, disabled, externalHandlers, ...props }, ref) => {\n const { onChange, ...restHandlers } = externalHandlers || {}\n\n const onCheckedChange = (value: CheckedState) => {\n if (props.onCheckedChange) props.onCheckedChange(value)\n if (onChange) onChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n ref={ref}\n aria-invalid={invalid}\n className={cn(\n 'flex h-6 max-h-6 min-h-6 w-6 min-w-6 max-w-6 items-center justify-center rounded-full',\n 'relative rounded-sm border-2 border-blue-grey-700 outline-none',\n 'after:left-1/2 after:top-1/2 after:h-10 after:w-10 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[\"\"]',\n 'after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover',\n 'after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed',\n 'after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus',\n {\n 'border-negative': invalid,\n 'disabled:border-0 disabled:bg-color-blue-grey-300': disabled\n },\n classes?.root,\n className\n )}\n >\n <Indicator\n className={cn(\n 'h-6 w-6 rounded-sm bg-color-primary-default group-disabled:bg-color-primary-disabled',\n classes?.indicator\n )}\n >\n <Icon name='general/check' className={cn('size-6 text-icon-white', classes?.icon)} />\n </Indicator>\n </Root>\n )\n }\n)\nCheckboxBase.displayName = 'CheckboxBase'\n"],"names":["CheckboxBase","forwardRef","classes","className","invalid","disabled","externalHandlers","props","ref","onChange","restHandlers","jsx","Root","value","cn","Indicator","Icon"],"mappings":"wyCAmCO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,QAAAC,EAAS,SAAAC,EAAU,iBAAAC,EAAkB,GAAGC,CAAA,EAASC,IAAQ,CAC9E,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAiBJ,GAAoB,CAAA,EAO1D,OACEK,EAACC,EAAA,CACE,GAAGL,EACH,GAAGG,EACJ,gBATqBG,GAAwB,CAC3CN,EAAM,iBAAiBA,EAAM,gBAAgBM,CAAK,EAClDJ,KAAmBI,CAAK,CAAA,EAQ1B,SAAAR,EACA,IAAAG,EACA,eAAcJ,EACd,UAAWU,EACT,wFACA,iEACA,sHACA,6FACA,iFACA,uEACA,CACE,kBAAmBV,EACnB,oDAAqDC,CAAA,EAEvDH,GAAA,YAAAA,EAAS,KACTC,CAAA,EAGF,SAAAQ,EAACI,EAAA,CACC,UAAWD,EACT,uFACAZ,GAAA,YAAAA,EAAS,SAAA,EAGX,SAAAS,EAACK,GAAK,KAAK,gBAAgB,UAAWF,EAAG,yBAA0BZ,GAAA,YAAAA,EAAS,IAAI,CAAA,CAAG,CAAA,CAAA,CACrF,CAAA,CACF,CAGN,EACAF,EAAa,YAAc"}
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type CheckboxProps as CheckboxPrimitiveProps, type CheckedState, Indicator, Root } from '@radix-ui/react-checkbox'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type CheckboxBaseClasses = {\n root?: string\n indicator?: string\n icon?: string\n}\n\nexport type { CheckedState }\n\ntype ExternalHandlers = {\n onChange?: (value: CheckedState) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type CheckboxBaseProps = CheckboxPrimitiveProps & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: CheckboxBaseClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const CheckboxBase = forwardRef<HTMLButtonElement, CheckboxBaseProps>(\n ({ classes, className, invalid, disabled, externalHandlers, ...props }, ref) => {\n const { onChange, ...restHandlers } = externalHandlers || {}\n\n const onCheckedChange = (value: CheckedState) => {\n if (props.onCheckedChange) props.onCheckedChange(value)\n if (onChange) onChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n ref={ref}\n aria-invalid={invalid}\n className={cn(\n 'flex h-6 max-h-6 min-h-6 w-6 min-w-6 max-w-6 items-center justify-center rounded-full',\n 'relative rounded-sm border-2 border-blue-grey-700 outline-none',\n 'after:left-1/2 after:top-1/2 after:h-10 after:w-10 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[\"\"]',\n 'after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover',\n 'after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed',\n 'after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus',\n {\n 'border-negative': invalid,\n 'disabled:border-0 disabled:bg-color-blue-grey-300': disabled\n },\n classes?.root,\n className\n )}\n >\n <Indicator\n className={cn(\n 'h-6 w-6 rounded-sm bg-color-primary-default group-disabled:bg-color-primary-disabled',\n classes?.indicator\n )}\n >\n <Icon name='general/check' className={cn('size-6 text-icon-white', classes?.icon)} />\n </Indicator>\n </Root>\n )\n }\n)\nCheckboxBase.displayName = 'CheckboxBase'\n"],"names":["CheckboxBase","forwardRef","classes","className","invalid","disabled","externalHandlers","props","ref","onChange","restHandlers","jsx","Root","value","cn","Indicator","Icon"],"mappings":"wyCAmCO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,QAAAC,EAAS,SAAAC,EAAU,iBAAAC,EAAkB,GAAGC,CAAA,EAASC,IAAQ,CAC9E,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAiBJ,GAAoB,CAAA,EAO1D,OACEK,EAACC,EAAA,CACE,GAAGL,EACH,GAAGG,EACJ,gBATqBG,GAAwB,CAC3CN,EAAM,iBAAiBA,EAAM,gBAAgBM,CAAK,EAClDJ,KAAmBI,CAAK,CAC9B,EAOI,SAAAR,EACA,IAAAG,EACA,eAAcJ,EACd,UAAWU,EACT,wFACA,iEACA,sHACA,6FACA,iFACA,uEACA,CACE,kBAAmBV,EACnB,oDAAqDC,CAAA,EAEvDH,GAAA,YAAAA,EAAS,KACTC,CAAA,EAGF,SAAAQ,EAACI,EAAA,CACC,UAAWD,EACT,uFACAZ,GAAA,YAAAA,EAAS,SAAA,EAGX,SAAAS,EAACK,GAAK,KAAK,gBAAgB,UAAWF,EAAG,yBAA0BZ,GAAA,YAAAA,EAAS,IAAI,CAAA,CAAG,CAAA,CAAA,CACrF,CAAA,CAGN,CACF,EACAF,EAAa,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon } from '$/shared/ui'\nimport { DropdownList, type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean> extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n}\n\nexport const Combobox = <Multi extends boolean>({\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n classes\n}: ComboboxProps<Multi>) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating<HTMLInputElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange } = useCombobox({\n multiple,\n value,\n onChange,\n defaultOpen,\n searchable,\n displayValue,\n initialOptions,\n externalHandlers\n })\n\n if (open) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'initial'\n }\n\n useClickOutside(containerRef, () => setOpen(false))\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={mergeRefs(refs.setReference)}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={search}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen((prev) => !prev)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={externalHandlers?.blurHandler}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n ),\n ...attachmentProps\n }}\n />\n\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{ ...floatingStyles, width: containerRef.current?.getBoundingClientRect().width }}\n >\n <DropdownList\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n"],"names":["Combobox","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","classes","floating","dropdownClasses","containerRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","useCombobox","useClickOutside","jsxs","cn","jsx","InputBase","mergeRefs","event","prev","_a","Icon","AnimatePresence","motion","DropdownList"],"mappings":"uhEAmFO,MAAMA,GAAW,CAAwB,CAC9C,QAASC,EACT,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,QAAAC,CACF,IAA4B,OAC1B,KAAM,CAAE,SAAAC,EAAU,GAAGC,IAAoBF,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpDG,EAAeC,EAAuB,IAAI,EAE1C,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAA8B,CAC7D,UAAW,eACX,SAAU,WACV,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,EAAO,cAAAC,EAAe,QAAAC,EAAS,OAAAC,EAAQ,cAAAC,CAAA,EAAkBC,EAAY,CAC1F,SAAA/B,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,WAAAE,EACA,aAAAE,EACA,eAAAR,EACA,iBAAAa,CAAA,CACD,EAED,OAAIY,EACF,SAAS,KAAK,MAAM,SAAW,SAE/B,SAAS,KAAK,MAAM,SAAW,UAGjCQ,EAAgBhB,EAAc,IAAMS,EAAQ,EAAK,CAAC,EAGhDQ,EAAC,MAAA,CAAI,IAAKjB,EAAc,UAAWkB,EAAG,kBAAmBrB,GAAA,YAAAA,EAAS,KAAMF,CAAS,EAC/E,SAAA,CAAAwB,EAACC,EAAA,CACC,IAAKC,EAAUnB,EAAK,YAAY,EAChC,MAAAV,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAOwB,EACP,SAAUC,EACV,SAAArB,EACA,QAAU6B,GAAU,OAClBb,EAASc,GAAS,CAACA,CAAI,GACvBC,EAAA5B,GAAA,YAAAA,EAAkB,eAAlB,MAAA4B,EAAA,KAAA5B,EAAiC0B,EAAK,EAExC,OAAQ1B,GAAA,YAAAA,EAAkB,YAC1B,QAASA,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAOsB,EAAG,CACR,iBAAkB,CAAC7B,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGG,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACEsB,EAACM,EAAA,CACC,KAAK,oBACL,UAAWP,EAAG,yDAA0D,CACtE,aAAcV,CAAA,CACf,CAAA,CAAA,EAGL,GAAGpB,CAAA,CACL,CAAA,EAGF+B,EAACO,GACE,SAAAlB,GACCW,EAACQ,EAAO,IAAP,CACC,IAAKzB,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWgB,EAAG,WAAYpB,CAAQ,EAClC,MAAO,CAAE,GAAGK,EAAgB,OAAOqB,EAAAxB,EAAa,UAAb,YAAAwB,EAAsB,wBAAwB,KAAA,EAEjF,SAAAL,EAACS,EAAA,CACC,QAAAhB,EACA,SAAA5B,EACA,OAAQ2B,EACR,MAAOD,EACP,aAAAnB,EACA,QAASQ,CAAA,CAAA,CACX,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon } from '$/shared/ui'\nimport { DropdownList, type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean> extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n}\n\nexport const Combobox = <Multi extends boolean>({\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n classes\n}: ComboboxProps<Multi>) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating<HTMLInputElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange } = useCombobox({\n multiple,\n value,\n onChange,\n defaultOpen,\n searchable,\n displayValue,\n initialOptions,\n externalHandlers\n })\n\n if (open) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'initial'\n }\n\n useClickOutside(containerRef, () => setOpen(false))\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={mergeRefs(refs.setReference)}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={search}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen((prev) => !prev)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={externalHandlers?.blurHandler}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n ),\n ...attachmentProps\n }}\n />\n\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{ ...floatingStyles, width: containerRef.current?.getBoundingClientRect().width }}\n >\n <DropdownList\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n"],"names":["Combobox","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","classes","floating","dropdownClasses","containerRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","useCombobox","useClickOutside","jsxs","cn","jsx","InputBase","mergeRefs","event","prev","_a","Icon","AnimatePresence","motion","DropdownList"],"mappings":"uhEAmFO,MAAMA,GAAW,CAAwB,CAC9C,QAASC,EACT,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,QAAAC,CACF,IAA4B,OAC1B,KAAM,CAAE,SAAAC,EAAU,GAAGC,IAAoBF,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpDG,EAAeC,EAAuB,IAAI,EAE1C,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAA8B,CAC7D,UAAW,eACX,SAAU,WACV,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,EAAO,cAAAC,EAAe,QAAAC,EAAS,OAAAC,EAAQ,cAAAC,CAAA,EAAkBC,EAAY,CAC1F,SAAA/B,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,WAAAE,EACA,aAAAE,EACA,eAAAR,EACA,iBAAAa,CAAA,CACD,EAED,OAAIY,EACF,SAAS,KAAK,MAAM,SAAW,SAE/B,SAAS,KAAK,MAAM,SAAW,UAGjCQ,EAAgBhB,EAAc,IAAMS,EAAQ,EAAK,CAAC,EAGhDQ,EAAC,MAAA,CAAI,IAAKjB,EAAc,UAAWkB,EAAG,kBAAmBrB,GAAA,YAAAA,EAAS,KAAMF,CAAS,EAC/E,SAAA,CAAAwB,EAACC,EAAA,CACC,IAAKC,EAAUnB,EAAK,YAAY,EAChC,MAAAV,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAOwB,EACP,SAAUC,EACV,SAAArB,EACA,QAAU6B,GAAU,OAClBb,EAASc,GAAS,CAACA,CAAI,GACvBC,EAAA5B,GAAA,YAAAA,EAAkB,eAAlB,MAAA4B,EAAA,KAAA5B,EAAiC0B,EACnC,EACA,OAAQ1B,GAAA,YAAAA,EAAkB,YAC1B,QAASA,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAOsB,EAAG,CACR,iBAAkB,CAAC7B,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGG,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACEsB,EAACM,EAAA,CACC,KAAK,oBACL,UAAWP,EAAG,yDAA0D,CACtE,aAAcV,CAAA,CACf,CAAA,CAAA,EAGL,GAAGpB,CAAA,CACL,CAAA,EAGF+B,EAACO,GACE,SAAAlB,GACCW,EAACQ,EAAO,IAAP,CACC,IAAKzB,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWgB,EAAG,WAAYpB,CAAQ,EAClC,MAAO,CAAE,GAAGK,EAAgB,OAAOqB,EAAAxB,EAAa,UAAb,YAAAwB,EAAsB,wBAAwB,KAAA,EAEjF,SAAAL,EAACS,EAAA,CACC,QAAAhB,EACA,SAAA5B,EACA,OAAQ2B,EACR,MAAOD,EACP,aAAAnB,EACA,QAASQ,CAAA,CAAA,CACX,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCombobox.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.ts"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { ExternalHandlers } from '../combobox'\nimport { type ChangeHandler, type ComboboxValue } from '../model'\nimport type { ComboboxItemOption } from '../ui'\n\ntype UseComboboxOptions<Multi extends boolean> = {\n initialOptions: ComboboxItemOption[]\n searchable?: boolean\n multiple?: Multi\n value?: ComboboxValue<Multi>\n onChange?: ChangeHandler<Multi>\n displayValue?: (option: ComboboxItemOption) => string\n defaultOpen?: boolean\n externalHandlers?: ExternalHandlers<Multi>\n}\n\nexport const useCombobox = <Multi extends boolean>(props: UseComboboxOptions<Multi>) => {\n const { multiple, defaultOpen, value, onChange, initialOptions, searchable, displayValue, externalHandlers } = props\n const { changeHandler: externalChangeHandler, inputChangeHandler: externalInputChangeHandler } = externalHandlers ?? {}\n\n const [search, setSearch] = useState<string>('')\n const [open, setOpen] = useState<boolean>(defaultOpen ?? false)\n const [state, setState] = useState<ComboboxValue<Multi>>(value ?? ((multiple ? [] : null) as ComboboxValue<Multi>))\n\n const options = useMemo<ComboboxItemOption[]>(() => {\n if (!search.length || !searchable) {\n return initialOptions\n }\n\n return initialOptions.filter((option) => option.label.toLowerCase().includes(search.toLowerCase()))\n }, [search])\n\n const onInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(e.target.value)\n externalInputChangeHandler?.(e.target.value)\n }\n\n const changeHandler = (value: ComboboxItemOption) => {\n setState((prevState) => {\n if (multiple) {\n const prev = prevState as ComboboxItemOption[]\n const exists = prev.some((option) => option.value === value.value)\n\n const updated = (\n exists ? prev.filter((option) => option.value !== value.value) : [...prev, value]\n ) as ComboboxValue<Multi>\n\n onChange?.(updated)\n externalChangeHandler?.(updated)\n\n setSearch(\n (updated as ComboboxItemOption[]).map((option) => (displayValue ? displayValue(option) : option.label)).join(', ')\n )\n\n return updated\n }\n\n const updated = ((prevState as ComboboxItemOption)?.value === value.value ? null : value) as ComboboxValue<Multi>\n\n onChange?.(updated)\n externalChangeHandler?.(updated)\n\n const label = displayValue && updated ? displayValue(updated as ComboboxItemOption) : (updated as ComboboxItemOption)?.label\n setSearch(label ?? '')\n setOpen(false)\n\n return updated\n })\n }\n\n return {\n open,\n setOpen,\n changeHandler,\n options,\n search,\n onInputChange,\n state\n }\n}\n"],"names":["useCombobox","props","multiple","defaultOpen","value","onChange","initialOptions","searchable","displayValue","externalHandlers","externalChangeHandler","externalInputChangeHandler","search","setSearch","useState","open","setOpen","state","setState","options","useMemo","option","prevState","prev","updated","label","e"],"mappings":"8CAgBO,MAAMA,EAAsCC,GAAqC,CACtF,KAAM,CAAE,SAAAC,EAAU,YAAAC,EAAa,MAAAC,EAAO,SAAAC,EAAU,eAAAC,EAAgB,WAAAC,EAAY,aAAAC,EAAc,iBAAAC,CAAA,EAAqBR,EACzG,CAAE,cAAeS,EAAuB,mBAAoBC,CAAA,EAA+BF,GAAoB,CAAA,EAE/G,CAACG,EAAQC,CAAS,EAAIC,EAAiB,EAAE,EACzC,CAACC,EAAMC,CAAO,EAAIF,EAAkBX,GAAe,EAAK,EACxD,CAACc,EAAOC,CAAQ,EAAIJ,EAA+BV,IAAWF,EAAW,GAAK,KAA8B,EAE5GiB,EAAUC,EAA8B,IACxC,CAACR,EAAO,QAAU,CAACL,EACdD,EAGFA,EAAe,OAAQe,GAAWA,EAAO,MAAM,YAAA,EAAc,SAAST,EAAO,YAAA,CAAa,CAAC,EACjG,CAACA,CAAM,CAAC,EAwCX,MAAO,CACL,KAAAG,EACA,QAAAC,EACA,cApCqBZ,GAA8B,CACnDc,EAAUI,GAAc,CACtB,GAAIpB,EAAU,CACZ,MAAMqB,EAAOD,EAGPE,EAFSD,EAAK,KAAMF,GAAWA,EAAO,QAAUjB,EAAM,KAAK,EAGtDmB,EAAK,OAAQF,GAAWA,EAAO,QAAUjB,EAAM,KAAK,EAAI,CAAC,GAAGmB,EAAMnB,CAAK,EAGlF,OAAAC,GAAA,MAAAA,EAAWmB,GACXd,GAAA,MAAAA,EAAwBc,GAExBX,EACGW,EAAiC,IAAKH,GAAYb,EAAeA,EAAaa,CAAM,EAAIA,EAAO,KAAM,EAAE,KAAK,IAAI,CAAA,EAG5GG,CAAA,CAGT,MAAMA,GAAYF,GAAA,YAAAA,EAAkC,SAAUlB,EAAM,MAAQ,KAAOA,EAEnFC,GAAA,MAAAA,EAAWmB,GACXd,GAAA,MAAAA,EAAwBc,GAExB,MAAMC,EAAQjB,GAAgBgB,EAAUhB,EAAagB,CAA6B,EAAKA,GAAA,YAAAA,EAAgC,MACvH,OAAAX,EAAUY,GAAS,EAAE,EACrBT,EAAQ,EAAK,EAENQ,CAAA,CACR,CAAA,EAOD,QAAAL,EACA,OAAAP,EACA,cA5CqBc,GAA2C,CAChEb,EAAUa,EAAE,OAAO,KAAK,EACxBf,GAAA,MAAAA,EAA6Be,EAAE,OAAO,MAAK,EA2C3C,MAAAT,CAAA,CAEJ"}
1
+ {"version":3,"file":"useCombobox.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.ts"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { ExternalHandlers } from '../combobox'\nimport { type ChangeHandler, type ComboboxValue } from '../model'\nimport type { ComboboxItemOption } from '../ui'\n\ntype UseComboboxOptions<Multi extends boolean> = {\n initialOptions: ComboboxItemOption[]\n searchable?: boolean\n multiple?: Multi\n value?: ComboboxValue<Multi>\n onChange?: ChangeHandler<Multi>\n displayValue?: (option: ComboboxItemOption) => string\n defaultOpen?: boolean\n externalHandlers?: ExternalHandlers<Multi>\n}\n\nexport const useCombobox = <Multi extends boolean>(props: UseComboboxOptions<Multi>) => {\n const { multiple, defaultOpen, value, onChange, initialOptions, searchable, displayValue, externalHandlers } = props\n const { changeHandler: externalChangeHandler, inputChangeHandler: externalInputChangeHandler } = externalHandlers ?? {}\n\n const [search, setSearch] = useState<string>('')\n const [open, setOpen] = useState<boolean>(defaultOpen ?? false)\n const [state, setState] = useState<ComboboxValue<Multi>>(value ?? ((multiple ? [] : null) as ComboboxValue<Multi>))\n\n const options = useMemo<ComboboxItemOption[]>(() => {\n if (!search.length || !searchable) {\n return initialOptions\n }\n\n return initialOptions.filter((option) => option.label.toLowerCase().includes(search.toLowerCase()))\n }, [search])\n\n const onInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(e.target.value)\n externalInputChangeHandler?.(e.target.value)\n }\n\n const changeHandler = (value: ComboboxItemOption) => {\n setState((prevState) => {\n if (multiple) {\n const prev = prevState as ComboboxItemOption[]\n const exists = prev.some((option) => option.value === value.value)\n\n const updated = (\n exists ? prev.filter((option) => option.value !== value.value) : [...prev, value]\n ) as ComboboxValue<Multi>\n\n onChange?.(updated)\n externalChangeHandler?.(updated)\n\n setSearch(\n (updated as ComboboxItemOption[]).map((option) => (displayValue ? displayValue(option) : option.label)).join(', ')\n )\n\n return updated\n }\n\n const updated = ((prevState as ComboboxItemOption)?.value === value.value ? null : value) as ComboboxValue<Multi>\n\n onChange?.(updated)\n externalChangeHandler?.(updated)\n\n const label = displayValue && updated ? displayValue(updated as ComboboxItemOption) : (updated as ComboboxItemOption)?.label\n setSearch(label ?? '')\n setOpen(false)\n\n return updated\n })\n }\n\n return {\n open,\n setOpen,\n changeHandler,\n options,\n search,\n onInputChange,\n state\n }\n}\n"],"names":["useCombobox","props","multiple","defaultOpen","value","onChange","initialOptions","searchable","displayValue","externalHandlers","externalChangeHandler","externalInputChangeHandler","search","setSearch","useState","open","setOpen","state","setState","options","useMemo","option","prevState","prev","updated","label","e"],"mappings":"8CAgBO,MAAMA,EAAsCC,GAAqC,CACtF,KAAM,CAAE,SAAAC,EAAU,YAAAC,EAAa,MAAAC,EAAO,SAAAC,EAAU,eAAAC,EAAgB,WAAAC,EAAY,aAAAC,EAAc,iBAAAC,CAAA,EAAqBR,EACzG,CAAE,cAAeS,EAAuB,mBAAoBC,CAAA,EAA+BF,GAAoB,CAAA,EAE/G,CAACG,EAAQC,CAAS,EAAIC,EAAiB,EAAE,EACzC,CAACC,EAAMC,CAAO,EAAIF,EAAkBX,GAAe,EAAK,EACxD,CAACc,EAAOC,CAAQ,EAAIJ,EAA+BV,IAAWF,EAAW,GAAK,KAA8B,EAE5GiB,EAAUC,EAA8B,IACxC,CAACR,EAAO,QAAU,CAACL,EACdD,EAGFA,EAAe,OAAQe,GAAWA,EAAO,MAAM,YAAA,EAAc,SAAST,EAAO,YAAA,CAAa,CAAC,EACjG,CAACA,CAAM,CAAC,EAwCX,MAAO,CACL,KAAAG,EACA,QAAAC,EACA,cApCqBZ,GAA8B,CACnDc,EAAUI,GAAc,CACtB,GAAIpB,EAAU,CACZ,MAAMqB,EAAOD,EAGPE,EAFSD,EAAK,KAAMF,GAAWA,EAAO,QAAUjB,EAAM,KAAK,EAGtDmB,EAAK,OAAQF,GAAWA,EAAO,QAAUjB,EAAM,KAAK,EAAI,CAAC,GAAGmB,EAAMnB,CAAK,EAGlF,OAAAC,GAAA,MAAAA,EAAWmB,GACXd,GAAA,MAAAA,EAAwBc,GAExBX,EACGW,EAAiC,IAAKH,GAAYb,EAAeA,EAAaa,CAAM,EAAIA,EAAO,KAAM,EAAE,KAAK,IAAI,CAAA,EAG5GG,CACT,CAEA,MAAMA,GAAYF,GAAA,YAAAA,EAAkC,SAAUlB,EAAM,MAAQ,KAAOA,EAEnFC,GAAA,MAAAA,EAAWmB,GACXd,GAAA,MAAAA,EAAwBc,GAExB,MAAMC,EAAQjB,GAAgBgB,EAAUhB,EAAagB,CAA6B,EAAKA,GAAA,YAAAA,EAAgC,MACvH,OAAAX,EAAUY,GAAS,EAAE,EACrBT,EAAQ,EAAK,EAENQ,CACT,CAAC,CACH,EAME,QAAAL,EACA,OAAAP,EACA,cA5CqBc,GAA2C,CAChEb,EAAUa,EAAE,OAAO,KAAK,EACxBf,GAAA,MAAAA,EAA6Be,EAAE,OAAO,MACxC,EA0CE,MAAAT,CAAA,CAEJ"}