@gravity-ui/page-constructor 6.0.1-beta.0 → 6.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (841) hide show
  1. package/build/cjs/blocks/Banner/Banner.js +2 -2
  2. package/build/cjs/blocks/Banner/Banner.js.map +1 -1
  3. package/build/cjs/blocks/Banner/schema.js +20 -8
  4. package/build/cjs/blocks/Banner/schema.js.map +1 -1
  5. package/build/cjs/blocks/CardLayout/CardLayout.js +3 -3
  6. package/build/cjs/blocks/CardLayout/CardLayout.js.map +1 -1
  7. package/build/cjs/blocks/CardLayout/schema.js +19 -4
  8. package/build/cjs/blocks/CardLayout/schema.js.map +1 -1
  9. package/build/cjs/blocks/Companies/Companies.js +1 -1
  10. package/build/cjs/blocks/Companies/Companies.js.map +1 -1
  11. package/build/cjs/blocks/Companies/schema.js +10 -4
  12. package/build/cjs/blocks/Companies/schema.js.map +1 -1
  13. package/build/cjs/blocks/ContentLayout/ContentLayout.js +1 -1
  14. package/build/cjs/blocks/ContentLayout/ContentLayout.js.map +1 -1
  15. package/build/cjs/blocks/ContentLayout/schema.js +7 -2
  16. package/build/cjs/blocks/ContentLayout/schema.js.map +1 -1
  17. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +1 -1
  18. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js.map +1 -1
  19. package/build/cjs/blocks/ExtendedFeatures/schema.js +7 -1
  20. package/build/cjs/blocks/ExtendedFeatures/schema.js.map +1 -1
  21. package/build/cjs/blocks/FilterBlock/schema.js +13 -3
  22. package/build/cjs/blocks/FilterBlock/schema.js.map +1 -1
  23. package/build/cjs/blocks/Form/Form.js +3 -4
  24. package/build/cjs/blocks/Form/Form.js.map +1 -1
  25. package/build/cjs/blocks/Form/schema.js +15 -7
  26. package/build/cjs/blocks/Form/schema.js.map +1 -1
  27. package/build/cjs/blocks/Header/Header.css +6 -0
  28. package/build/cjs/blocks/Header/Header.js +17 -8
  29. package/build/cjs/blocks/Header/Header.js.map +1 -1
  30. package/build/cjs/blocks/Header/schema.d.ts +6 -0
  31. package/build/cjs/blocks/Header/schema.js +12 -2
  32. package/build/cjs/blocks/Header/schema.js.map +1 -1
  33. package/build/cjs/blocks/HeaderSlider/HeaderSlider.js +2 -3
  34. package/build/cjs/blocks/HeaderSlider/HeaderSlider.js.map +1 -1
  35. package/build/cjs/blocks/HeaderSlider/schema.d.ts +3 -0
  36. package/build/cjs/blocks/HeaderSlider/schema.js +7 -3
  37. package/build/cjs/blocks/HeaderSlider/schema.js.map +1 -1
  38. package/build/cjs/blocks/Icons/Icons.js +2 -2
  39. package/build/cjs/blocks/Icons/Icons.js.map +1 -1
  40. package/build/cjs/blocks/Icons/schema.js +17 -6
  41. package/build/cjs/blocks/Icons/schema.js.map +1 -1
  42. package/build/cjs/blocks/Info/Info.js +8 -4
  43. package/build/cjs/blocks/Info/Info.js.map +1 -1
  44. package/build/cjs/blocks/Info/schema.js +15 -5
  45. package/build/cjs/blocks/Info/schema.js.map +1 -1
  46. package/build/cjs/blocks/Map/Map.js +2 -3
  47. package/build/cjs/blocks/Map/Map.js.map +1 -1
  48. package/build/cjs/blocks/Map/schema.js +4 -1
  49. package/build/cjs/blocks/Map/schema.js.map +1 -1
  50. package/build/cjs/blocks/Media/Media.js +1 -1
  51. package/build/cjs/blocks/Media/Media.js.map +1 -1
  52. package/build/cjs/blocks/Media/schema.js +25 -10
  53. package/build/cjs/blocks/Media/schema.js.map +1 -1
  54. package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +1 -1
  55. package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js.map +1 -1
  56. package/build/cjs/blocks/PromoFeaturesBlock/schema.js +8 -2
  57. package/build/cjs/blocks/PromoFeaturesBlock/schema.js.map +1 -1
  58. package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +1 -1
  59. package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
  60. package/build/cjs/blocks/Questions/schema.js +7 -3
  61. package/build/cjs/blocks/Questions/schema.js.map +1 -1
  62. package/build/cjs/blocks/Share/schema.js +7 -3
  63. package/build/cjs/blocks/Share/schema.js.map +1 -1
  64. package/build/cjs/blocks/Slider/Slider.js +18 -17
  65. package/build/cjs/blocks/Slider/Slider.js.map +1 -1
  66. package/build/cjs/blocks/Slider/schema.js +6 -1
  67. package/build/cjs/blocks/Slider/schema.js.map +1 -1
  68. package/build/cjs/blocks/Slider/utils.js +9 -6
  69. package/build/cjs/blocks/Slider/utils.js.map +1 -1
  70. package/build/cjs/blocks/SliderNew/Arrow/Arrow.js +1 -1
  71. package/build/cjs/blocks/SliderNew/Arrow/Arrow.js.map +1 -1
  72. package/build/cjs/blocks/SliderNew/Slider.d.ts +1 -1
  73. package/build/cjs/blocks/SliderNew/Slider.js +15 -4
  74. package/build/cjs/blocks/SliderNew/Slider.js.map +1 -1
  75. package/build/cjs/blocks/SliderNew/schema.js +6 -1
  76. package/build/cjs/blocks/SliderNew/schema.js.map +1 -1
  77. package/build/cjs/blocks/SliderNew/useSlider.js +1 -2
  78. package/build/cjs/blocks/SliderNew/useSlider.js.map +1 -1
  79. package/build/cjs/blocks/SliderNew/utils.js +8 -4
  80. package/build/cjs/blocks/SliderNew/utils.js.map +1 -1
  81. package/build/cjs/blocks/Table/Table.js +1 -1
  82. package/build/cjs/blocks/Table/Table.js.map +1 -1
  83. package/build/cjs/blocks/Table/schema.js +22 -10
  84. package/build/cjs/blocks/Table/schema.js.map +1 -1
  85. package/build/cjs/blocks/Tabs/Tabs.js +16 -18
  86. package/build/cjs/blocks/Tabs/Tabs.js.map +1 -1
  87. package/build/cjs/blocks/Tabs/schema.js +25 -10
  88. package/build/cjs/blocks/Tabs/schema.js.map +1 -1
  89. package/build/cjs/components/Author/Author.js +1 -1
  90. package/build/cjs/components/Author/Author.js.map +1 -1
  91. package/build/cjs/components/Author/schema.js +5 -1
  92. package/build/cjs/components/Author/schema.js.map +1 -1
  93. package/build/cjs/components/BackLink/BackLink.js +5 -2
  94. package/build/cjs/components/BackLink/BackLink.js.map +1 -1
  95. package/build/cjs/components/BackgroundImage/BackgroundImage.js +1 -1
  96. package/build/cjs/components/BackgroundImage/BackgroundImage.js.map +1 -1
  97. package/build/cjs/components/BackgroundMedia/BackgroundMedia.js +4 -4
  98. package/build/cjs/components/BackgroundMedia/BackgroundMedia.js.map +1 -1
  99. package/build/cjs/components/BalancedMasonry/BalancedMasonry.js +4 -4
  100. package/build/cjs/components/BalancedMasonry/BalancedMasonry.js.map +1 -1
  101. package/build/cjs/components/BrandFooter/BrandFooter.css +21 -17
  102. package/build/cjs/components/BrandFooter/BrandFooter.js +1 -1
  103. package/build/cjs/components/BrandFooter/BrandFooter.js.map +1 -1
  104. package/build/cjs/components/Button/Button.js +9 -6
  105. package/build/cjs/components/Button/Button.js.map +1 -1
  106. package/build/cjs/components/Button/utils.js +2 -2
  107. package/build/cjs/components/Button/utils.js.map +1 -1
  108. package/build/cjs/components/Buttons/Buttons.js +4 -1
  109. package/build/cjs/components/Buttons/Buttons.js.map +1 -1
  110. package/build/cjs/components/CardBase/CardBase.css +1 -0
  111. package/build/cjs/components/CardBase/CardBase.js +6 -2
  112. package/build/cjs/components/CardBase/CardBase.js.map +1 -1
  113. package/build/cjs/components/ContentList/ContentList.css +7 -7
  114. package/build/cjs/components/ContentList/ContentList.js +1 -1
  115. package/build/cjs/components/ContentList/ContentList.js.map +1 -1
  116. package/build/cjs/components/ContentList/ContentListItemIcon.js +1 -1
  117. package/build/cjs/components/ContentList/ContentListItemIcon.js.map +1 -1
  118. package/build/cjs/components/DefaultVideo/DefaultVideo.js +3 -4
  119. package/build/cjs/components/DefaultVideo/DefaultVideo.js.map +1 -1
  120. package/build/cjs/components/FileLink/FileLink.js +9 -2
  121. package/build/cjs/components/FileLink/FileLink.js.map +1 -1
  122. package/build/cjs/components/FullWidthBackground/FullWidthBackground.js +13 -18
  123. package/build/cjs/components/FullWidthBackground/FullWidthBackground.js.map +1 -1
  124. package/build/cjs/components/FullscreenImage/FullscreenImage.js +1 -1
  125. package/build/cjs/components/FullscreenImage/FullscreenImage.js.map +1 -1
  126. package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
  127. package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
  128. package/build/cjs/components/IconWrapper/IconWrapper.js +2 -2
  129. package/build/cjs/components/IconWrapper/IconWrapper.js.map +1 -1
  130. package/build/cjs/components/Image/schema.js +40 -12
  131. package/build/cjs/components/Image/schema.js.map +1 -1
  132. package/build/cjs/components/ImageBase/ImageBase.js +3 -4
  133. package/build/cjs/components/ImageBase/ImageBase.js.map +1 -1
  134. package/build/cjs/components/InnerForm/InnerForm.js +5 -5
  135. package/build/cjs/components/InnerForm/InnerForm.js.map +1 -1
  136. package/build/cjs/components/Link/Link.js +12 -3
  137. package/build/cjs/components/Link/Link.js.map +1 -1
  138. package/build/cjs/components/Links/Links.js +4 -1
  139. package/build/cjs/components/Links/Links.js.map +1 -1
  140. package/build/cjs/components/Map/GoogleMap.js +1 -1
  141. package/build/cjs/components/Map/GoogleMap.js.map +1 -1
  142. package/build/cjs/components/Map/Map.js +2 -2
  143. package/build/cjs/components/Map/Map.js.map +1 -1
  144. package/build/cjs/components/Map/YMap/YMap.js +6 -5
  145. package/build/cjs/components/Map/YMap/YMap.js.map +1 -1
  146. package/build/cjs/components/Map/YMap/YandexMap.js +2 -3
  147. package/build/cjs/components/Map/YMap/YandexMap.js.map +1 -1
  148. package/build/cjs/components/Map/YMap/YandexMapApiLoader.js +2 -1
  149. package/build/cjs/components/Map/YMap/YandexMapApiLoader.js.map +1 -1
  150. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js +1 -1
  151. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js.map +1 -1
  152. package/build/cjs/components/Media/Image/Image.js +4 -4
  153. package/build/cjs/components/Media/Image/Image.js.map +1 -1
  154. package/build/cjs/components/Media/Media.js +13 -5
  155. package/build/cjs/components/Media/Media.js.map +1 -1
  156. package/build/cjs/components/MediaBase/MediaBase.js +3 -3
  157. package/build/cjs/components/MediaBase/MediaBase.js.map +1 -1
  158. package/build/cjs/components/MediaBase/MediaBaseContent.js +1 -1
  159. package/build/cjs/components/MediaBase/MediaBaseContent.js.map +1 -1
  160. package/build/cjs/components/OutsideClick/OutsideClick.js +10 -13
  161. package/build/cjs/components/OutsideClick/OutsideClick.js.map +1 -1
  162. package/build/cjs/components/OverflowScroller/OverflowScroller.js +47 -50
  163. package/build/cjs/components/OverflowScroller/OverflowScroller.js.map +1 -1
  164. package/build/cjs/components/ReactPlayer/ReactPlayer.js +11 -13
  165. package/build/cjs/components/ReactPlayer/ReactPlayer.js.map +1 -1
  166. package/build/cjs/components/ReactPlayer/utils.js +1 -2
  167. package/build/cjs/components/ReactPlayer/utils.js.map +1 -1
  168. package/build/cjs/components/Title/Title.js +2 -2
  169. package/build/cjs/components/Title/Title.js.map +1 -1
  170. package/build/cjs/components/Title/TitleItem.css +8 -1
  171. package/build/cjs/components/Title/TitleItem.js +2 -1
  172. package/build/cjs/components/Title/TitleItem.js.map +1 -1
  173. package/build/cjs/components/VideoBlock/VideoBlock.js +6 -3
  174. package/build/cjs/components/VideoBlock/VideoBlock.js.map +1 -1
  175. package/build/cjs/components/YandexForm/YandexForm.js +3 -3
  176. package/build/cjs/components/YandexForm/YandexForm.js.map +1 -1
  177. package/build/cjs/components/YandexForm/schema.js +7 -3
  178. package/build/cjs/components/YandexForm/schema.js.map +1 -1
  179. package/build/cjs/containers/Loadable/Loadable.js +3 -3
  180. package/build/cjs/containers/Loadable/Loadable.js.map +1 -1
  181. package/build/cjs/containers/PageConstructor/PageConstructor.css +1 -0
  182. package/build/cjs/containers/PageConstructor/PageConstructor.d.ts +1 -1
  183. package/build/cjs/containers/PageConstructor/PageConstructor.js +15 -8
  184. package/build/cjs/containers/PageConstructor/PageConstructor.js.map +1 -1
  185. package/build/cjs/containers/PageConstructor/Provider.js +1 -1
  186. package/build/cjs/containers/PageConstructor/Provider.js.map +1 -1
  187. package/build/cjs/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +2 -2
  188. package/build/cjs/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js.map +1 -1
  189. package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +1 -1
  190. package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js.map +1 -1
  191. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +2 -2
  192. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js.map +1 -1
  193. package/build/cjs/context/theme/withTheme.js +7 -9
  194. package/build/cjs/context/theme/withTheme.js.map +1 -1
  195. package/build/cjs/customization/BlockDecoration.js +3 -5
  196. package/build/cjs/customization/BlockDecoration.js.map +1 -1
  197. package/build/cjs/editor/components/AddBlock/AddBlock.js +7 -9
  198. package/build/cjs/editor/components/AddBlock/AddBlock.js.map +1 -1
  199. package/build/cjs/editor/components/BlockForm/BlockForm.js +11 -6
  200. package/build/cjs/editor/components/BlockForm/BlockForm.js.map +1 -1
  201. package/build/cjs/editor/components/CodeEditor/CodeEditor.js +1 -1
  202. package/build/cjs/editor/components/CodeEditor/CodeEditor.js.map +1 -1
  203. package/build/cjs/editor/components/ControlPanel/ControlPanel.css +1 -1
  204. package/build/cjs/editor/components/DeviceEmulation/DeviceEmulationMobile/DeviceEmulationMobile.js +4 -4
  205. package/build/cjs/editor/components/DeviceEmulation/DeviceEmulationMobile/DeviceEmulationMobile.js.map +1 -1
  206. package/build/cjs/editor/components/EditBlock/EditBlock.js +2 -2
  207. package/build/cjs/editor/components/EditBlock/EditBlock.js.map +1 -1
  208. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.js +2 -5
  209. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  210. package/build/cjs/editor/components/Layout/Layout.js +3 -3
  211. package/build/cjs/editor/components/Layout/Layout.js.map +1 -1
  212. package/build/cjs/editor/components/PageSettings/PageSettings.js +3 -3
  213. package/build/cjs/editor/components/PageSettings/PageSettings.js.map +1 -1
  214. package/build/cjs/editor/containers/Editor/Editor.js +1 -1
  215. package/build/cjs/editor/containers/Editor/Editor.js.map +1 -1
  216. package/build/cjs/editor/containers/Editor/hooks/useCode.js +2 -4
  217. package/build/cjs/editor/containers/Editor/hooks/useCode.js.map +1 -1
  218. package/build/cjs/editor/containers/Editor/hooks/useEditorState.js +10 -7
  219. package/build/cjs/editor/containers/Editor/hooks/useEditorState.js.map +1 -1
  220. package/build/cjs/editor/containers/Form/Form.js +5 -2
  221. package/build/cjs/editor/containers/Form/Form.js.map +1 -1
  222. package/build/cjs/editor/data/index.js +4 -1
  223. package/build/cjs/editor/data/index.js.map +1 -1
  224. package/build/cjs/editor/data/previews/default-preview.js +1 -1
  225. package/build/cjs/editor/data/previews/default-preview.js.map +1 -1
  226. package/build/cjs/editor/data/previews/header-block.js +1 -1
  227. package/build/cjs/editor/data/previews/header-block.js.map +1 -1
  228. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +16 -14
  229. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js.map +1 -1
  230. package/build/cjs/editor/dynamic-forms-custom/config.js +1 -1
  231. package/build/cjs/editor/dynamic-forms-custom/config.js.map +1 -1
  232. package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.js +10 -12
  233. package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.js.map +1 -1
  234. package/build/cjs/editor/dynamic-forms-custom/parser/index.js +150 -120
  235. package/build/cjs/editor/dynamic-forms-custom/parser/index.js.map +1 -1
  236. package/build/cjs/editor/dynamic-forms-custom/parser/views.js +2 -4
  237. package/build/cjs/editor/dynamic-forms-custom/parser/views.js.map +1 -1
  238. package/build/cjs/editor/icons/Tablet.js +1 -1
  239. package/build/cjs/editor/icons/Tablet.js.map +1 -1
  240. package/build/cjs/editor/store/main/index.js +7 -4
  241. package/build/cjs/editor/store/main/index.js.map +1 -1
  242. package/build/cjs/editor/store/main/reducer.js +17 -3
  243. package/build/cjs/editor/store/main/reducer.js.map +1 -1
  244. package/build/cjs/editor/store/main/utils.js +2 -2
  245. package/build/cjs/editor/store/main/utils.js.map +1 -1
  246. package/build/cjs/editor/store/settings/reducer.js +16 -4
  247. package/build/cjs/editor/store/settings/reducer.js.map +1 -1
  248. package/build/cjs/editor/utils/code.js +4 -2
  249. package/build/cjs/editor/utils/code.js.map +1 -1
  250. package/build/cjs/editor/utils/index.js +8 -2
  251. package/build/cjs/editor/utils/index.js.map +1 -1
  252. package/build/cjs/editor/utils/validation.js +1 -1
  253. package/build/cjs/editor/utils/validation.js.map +1 -1
  254. package/build/cjs/editor/widget/index.js +8 -8
  255. package/build/cjs/editor/widget/index.js.map +1 -1
  256. package/build/cjs/grid/Col/Col.js +1 -1
  257. package/build/cjs/grid/Col/Col.js.map +1 -1
  258. package/build/cjs/hooks/useAnalytics.js +4 -1
  259. package/build/cjs/hooks/useAnalytics.js.map +1 -1
  260. package/build/cjs/hooks/useFocus.js +1 -1
  261. package/build/cjs/hooks/useFocus.js.map +1 -1
  262. package/build/cjs/hooks/useHeightCalculator.js +1 -1
  263. package/build/cjs/hooks/useHeightCalculator.js.map +1 -1
  264. package/build/cjs/hooks/useWindowBreakpoint.js +1 -1
  265. package/build/cjs/hooks/useWindowBreakpoint.js.map +1 -1
  266. package/build/cjs/icons/BrandIconDark.js +1 -1
  267. package/build/cjs/icons/BrandIconDark.js.map +1 -1
  268. package/build/cjs/icons/BrandIconLight.js +1 -1
  269. package/build/cjs/icons/BrandIconLight.js.map +1 -1
  270. package/build/cjs/icons/BrandName.js +1 -1
  271. package/build/cjs/icons/BrandName.js.map +1 -1
  272. package/build/cjs/icons/Chevron.js +1 -1
  273. package/build/cjs/icons/Chevron.js.map +1 -1
  274. package/build/cjs/icons/Facebook.js +1 -1
  275. package/build/cjs/icons/Facebook.js.map +1 -1
  276. package/build/cjs/icons/Github.js +1 -1
  277. package/build/cjs/icons/Github.js.map +1 -1
  278. package/build/cjs/icons/Linkedin.js +1 -1
  279. package/build/cjs/icons/Linkedin.js.map +1 -1
  280. package/build/cjs/icons/NavigationArrow.js +1 -1
  281. package/build/cjs/icons/NavigationArrow.js.map +1 -1
  282. package/build/cjs/icons/NavigationChevron.js +1 -1
  283. package/build/cjs/icons/NavigationChevron.js.map +1 -1
  284. package/build/cjs/icons/Telegram.js +1 -1
  285. package/build/cjs/icons/Telegram.js.map +1 -1
  286. package/build/cjs/icons/Twitter.js +1 -1
  287. package/build/cjs/icons/Twitter.js.map +1 -1
  288. package/build/cjs/icons/Vk.js +1 -1
  289. package/build/cjs/icons/Vk.js.map +1 -1
  290. package/build/cjs/models/constructor-items/blocks.d.ts +2 -1
  291. package/build/cjs/models/constructor-items/blocks.js.map +1 -1
  292. package/build/cjs/models/constructor-items/common.d.ts +2 -2
  293. package/build/cjs/models/constructor-items/common.js.map +1 -1
  294. package/build/cjs/navigation/components/DesktopNavigation/DesktopNavigation.js +1 -1
  295. package/build/cjs/navigation/components/DesktopNavigation/DesktopNavigation.js.map +1 -1
  296. package/build/cjs/navigation/components/Logo/Logo.js +4 -5
  297. package/build/cjs/navigation/components/Logo/Logo.js.map +1 -1
  298. package/build/cjs/navigation/components/MobileNavigation/MobileNavigation.js +2 -3
  299. package/build/cjs/navigation/components/MobileNavigation/MobileNavigation.js.map +1 -1
  300. package/build/cjs/navigation/components/NavigationItem/NavigationItem.js +8 -6
  301. package/build/cjs/navigation/components/NavigationItem/NavigationItem.js.map +1 -1
  302. package/build/cjs/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js +1 -1
  303. package/build/cjs/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js.map +1 -1
  304. package/build/cjs/navigation/components/NavigationItem/components/GithubButton/GithubButton.js +2 -3
  305. package/build/cjs/navigation/components/NavigationItem/components/GithubButton/GithubButton.js.map +1 -1
  306. package/build/cjs/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js +1 -1
  307. package/build/cjs/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js.map +1 -1
  308. package/build/cjs/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js +2 -3
  309. package/build/cjs/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js.map +1 -1
  310. package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +4 -4
  311. package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js.map +1 -1
  312. package/build/cjs/navigation/components/NavigationItem/hooks/useNavigationItemMap.js +1 -1
  313. package/build/cjs/navigation/components/NavigationItem/hooks/useNavigationItemMap.js.map +1 -1
  314. package/build/cjs/navigation/components/NavigationList/NavigationList.js +1 -4
  315. package/build/cjs/navigation/components/NavigationList/NavigationList.js.map +1 -1
  316. package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.js +2 -3
  317. package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.js.map +1 -1
  318. package/build/cjs/navigation/components/SocialIcon/SocialIcon.js +1 -1
  319. package/build/cjs/navigation/components/SocialIcon/SocialIcon.js.map +1 -1
  320. package/build/cjs/navigation/components/Standalone/index.js +1 -1
  321. package/build/cjs/navigation/components/Standalone/index.js.map +1 -1
  322. package/build/cjs/navigation/hooks/useActiveNavItem.d.ts +2 -2
  323. package/build/cjs/navigation/hooks/useActiveNavItem.js +1 -1
  324. package/build/cjs/navigation/hooks/useActiveNavItem.js.map +1 -1
  325. package/build/cjs/navigation/hooks/useShowBorder.js +1 -1
  326. package/build/cjs/navigation/hooks/useShowBorder.js.map +1 -1
  327. package/build/cjs/navigation/schema.js +20 -7
  328. package/build/cjs/navigation/schema.js.map +1 -1
  329. package/build/cjs/navigation/utils.d.ts +1 -1
  330. package/build/cjs/navigation/utils.js +1 -1
  331. package/build/cjs/navigation/utils.js.map +1 -1
  332. package/build/cjs/schema/constants.js +33 -2
  333. package/build/cjs/schema/constants.js.map +1 -1
  334. package/build/cjs/schema/index.js +23 -6
  335. package/build/cjs/schema/index.js.map +1 -1
  336. package/build/cjs/schema/validators/common.js +78 -32
  337. package/build/cjs/schema/validators/common.js.map +1 -1
  338. package/build/cjs/schema/validators/utils.js +9 -2
  339. package/build/cjs/schema/validators/utils.js.map +1 -1
  340. package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +1 -1
  341. package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js.map +1 -1
  342. package/build/cjs/sub-blocks/BackgroundCard/schema.js +24 -9
  343. package/build/cjs/sub-blocks/BackgroundCard/schema.js.map +1 -1
  344. package/build/cjs/sub-blocks/BannerCard/BannerCard.js +1 -1
  345. package/build/cjs/sub-blocks/BannerCard/BannerCard.js.map +1 -1
  346. package/build/cjs/sub-blocks/BasicCard/BasicCard.js +2 -2
  347. package/build/cjs/sub-blocks/BasicCard/BasicCard.js.map +1 -1
  348. package/build/cjs/sub-blocks/BasicCard/schema.js +18 -7
  349. package/build/cjs/sub-blocks/BasicCard/schema.js.map +1 -1
  350. package/build/cjs/sub-blocks/Content/Content.css +53 -6
  351. package/build/cjs/sub-blocks/Content/Content.js +3 -1
  352. package/build/cjs/sub-blocks/Content/Content.js.map +1 -1
  353. package/build/cjs/sub-blocks/Content/schema.js +10 -3
  354. package/build/cjs/sub-blocks/Content/schema.js.map +1 -1
  355. package/build/cjs/sub-blocks/Divider/schema.js +6 -2
  356. package/build/cjs/sub-blocks/Divider/schema.js.map +1 -1
  357. package/build/cjs/sub-blocks/HubspotForm/index.js +3 -3
  358. package/build/cjs/sub-blocks/HubspotForm/index.js.map +1 -1
  359. package/build/cjs/sub-blocks/HubspotForm/loadHubspotScript.js +1 -2
  360. package/build/cjs/sub-blocks/HubspotForm/loadHubspotScript.js.map +1 -1
  361. package/build/cjs/sub-blocks/HubspotForm/schema.js +11 -5
  362. package/build/cjs/sub-blocks/HubspotForm/schema.js.map +1 -1
  363. package/build/cjs/sub-blocks/ImageCard/ImageCard.css +2 -0
  364. package/build/cjs/sub-blocks/ImageCard/ImageCard.js +1 -1
  365. package/build/cjs/sub-blocks/ImageCard/ImageCard.js.map +1 -1
  366. package/build/cjs/sub-blocks/ImageCard/schema.js +18 -7
  367. package/build/cjs/sub-blocks/ImageCard/schema.js.map +1 -1
  368. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +11 -9
  369. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js.map +1 -1
  370. package/build/cjs/sub-blocks/LayoutItem/schema.js +20 -7
  371. package/build/cjs/sub-blocks/LayoutItem/schema.js.map +1 -1
  372. package/build/cjs/sub-blocks/LayoutItem/utils.js +4 -1
  373. package/build/cjs/sub-blocks/LayoutItem/utils.js.map +1 -1
  374. package/build/cjs/sub-blocks/MediaCard/MediaCard.js +1 -5
  375. package/build/cjs/sub-blocks/MediaCard/MediaCard.js.map +1 -1
  376. package/build/cjs/sub-blocks/MediaCard/schema.js +12 -3
  377. package/build/cjs/sub-blocks/MediaCard/schema.js.map +1 -1
  378. package/build/cjs/sub-blocks/PriceCard/PriceCard.js +3 -4
  379. package/build/cjs/sub-blocks/PriceCard/PriceCard.js.map +1 -1
  380. package/build/cjs/sub-blocks/PriceCard/schema.js +25 -11
  381. package/build/cjs/sub-blocks/PriceCard/schema.js.map +1 -1
  382. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +1 -1
  383. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js.map +1 -1
  384. package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +2 -2
  385. package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js.map +1 -1
  386. package/build/cjs/sub-blocks/PriceDetailed/PriceDetailed.js +1 -1
  387. package/build/cjs/sub-blocks/PriceDetailed/PriceDetailed.js.map +1 -1
  388. package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +1 -4
  389. package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js.map +1 -1
  390. package/build/cjs/sub-blocks/PriceDetailed/schema.js +44 -12
  391. package/build/cjs/sub-blocks/PriceDetailed/schema.js.map +1 -1
  392. package/build/cjs/sub-blocks/Quote/Quote.js +6 -3
  393. package/build/cjs/sub-blocks/Quote/Quote.js.map +1 -1
  394. package/build/cjs/sub-blocks/Quote/schema.js +21 -8
  395. package/build/cjs/sub-blocks/Quote/schema.js.map +1 -1
  396. package/build/cjs/text-transform/common.js +10 -7
  397. package/build/cjs/text-transform/common.js.map +1 -1
  398. package/build/cjs/text-transform/config.js +26 -19
  399. package/build/cjs/text-transform/config.js.map +1 -1
  400. package/build/cjs/text-transform/filter.js +4 -1
  401. package/build/cjs/text-transform/filter.js.map +1 -1
  402. package/build/cjs/text-transform/transformers.js +3 -3
  403. package/build/cjs/text-transform/transformers.js.map +1 -1
  404. package/build/cjs/text-transform/utils.js +8 -5
  405. package/build/cjs/text-transform/utils.js.map +1 -1
  406. package/build/cjs/utils/analytics.js +2 -3
  407. package/build/cjs/utils/analytics.js.map +1 -1
  408. package/build/cjs/utils/blocks.js +3 -2
  409. package/build/cjs/utils/blocks.js.map +1 -1
  410. package/build/cjs/utils/common.js +1 -2
  411. package/build/cjs/utils/common.js.map +1 -1
  412. package/build/cjs/utils/hubspot.js +6 -7
  413. package/build/cjs/utils/hubspot.js.map +1 -1
  414. package/build/cjs/utils/microdata.js +1 -1
  415. package/build/cjs/utils/microdata.js.map +1 -1
  416. package/build/cjs/utils/url.js +10 -5
  417. package/build/cjs/utils/url.js.map +1 -1
  418. package/build/esm/blocks/Banner/Banner.js +2 -3
  419. package/build/esm/blocks/Banner/Banner.js.map +1 -1
  420. package/build/esm/blocks/Banner/schema.js +20 -8
  421. package/build/esm/blocks/Banner/schema.js.map +1 -1
  422. package/build/esm/blocks/CardLayout/CardLayout.js +3 -4
  423. package/build/esm/blocks/CardLayout/CardLayout.js.map +1 -1
  424. package/build/esm/blocks/CardLayout/schema.js +19 -4
  425. package/build/esm/blocks/CardLayout/schema.js.map +1 -1
  426. package/build/esm/blocks/Companies/Companies.js +1 -1
  427. package/build/esm/blocks/Companies/Companies.js.map +1 -1
  428. package/build/esm/blocks/Companies/schema.js +10 -4
  429. package/build/esm/blocks/Companies/schema.js.map +1 -1
  430. package/build/esm/blocks/ContentLayout/ContentLayout.js +1 -1
  431. package/build/esm/blocks/ContentLayout/ContentLayout.js.map +1 -1
  432. package/build/esm/blocks/ContentLayout/schema.js +7 -2
  433. package/build/esm/blocks/ContentLayout/schema.js.map +1 -1
  434. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +1 -1
  435. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js.map +1 -1
  436. package/build/esm/blocks/ExtendedFeatures/schema.js +7 -1
  437. package/build/esm/blocks/ExtendedFeatures/schema.js.map +1 -1
  438. package/build/esm/blocks/FilterBlock/schema.js +13 -3
  439. package/build/esm/blocks/FilterBlock/schema.js.map +1 -1
  440. package/build/esm/blocks/Form/Form.js +3 -4
  441. package/build/esm/blocks/Form/Form.js.map +1 -1
  442. package/build/esm/blocks/Form/schema.js +15 -7
  443. package/build/esm/blocks/Form/schema.js.map +1 -1
  444. package/build/esm/blocks/Header/Header.css +6 -0
  445. package/build/esm/blocks/Header/Header.js +17 -8
  446. package/build/esm/blocks/Header/Header.js.map +1 -1
  447. package/build/esm/blocks/Header/schema.d.ts +6 -0
  448. package/build/esm/blocks/Header/schema.js +12 -2
  449. package/build/esm/blocks/Header/schema.js.map +1 -1
  450. package/build/esm/blocks/HeaderSlider/HeaderSlider.js +2 -4
  451. package/build/esm/blocks/HeaderSlider/HeaderSlider.js.map +1 -1
  452. package/build/esm/blocks/HeaderSlider/schema.d.ts +3 -0
  453. package/build/esm/blocks/HeaderSlider/schema.js +7 -3
  454. package/build/esm/blocks/HeaderSlider/schema.js.map +1 -1
  455. package/build/esm/blocks/Icons/Icons.js +2 -2
  456. package/build/esm/blocks/Icons/Icons.js.map +1 -1
  457. package/build/esm/blocks/Icons/schema.js +17 -6
  458. package/build/esm/blocks/Icons/schema.js.map +1 -1
  459. package/build/esm/blocks/Info/Info.js +8 -4
  460. package/build/esm/blocks/Info/Info.js.map +1 -1
  461. package/build/esm/blocks/Info/schema.js +15 -5
  462. package/build/esm/blocks/Info/schema.js.map +1 -1
  463. package/build/esm/blocks/Map/Map.js +2 -4
  464. package/build/esm/blocks/Map/Map.js.map +1 -1
  465. package/build/esm/blocks/Map/schema.js +4 -1
  466. package/build/esm/blocks/Map/schema.js.map +1 -1
  467. package/build/esm/blocks/Media/Media.js +1 -1
  468. package/build/esm/blocks/Media/Media.js.map +1 -1
  469. package/build/esm/blocks/Media/schema.js +25 -10
  470. package/build/esm/blocks/Media/schema.js.map +1 -1
  471. package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +1 -1
  472. package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js.map +1 -1
  473. package/build/esm/blocks/PromoFeaturesBlock/schema.js +8 -2
  474. package/build/esm/blocks/PromoFeaturesBlock/schema.js.map +1 -1
  475. package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +1 -1
  476. package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
  477. package/build/esm/blocks/Questions/schema.js +7 -3
  478. package/build/esm/blocks/Questions/schema.js.map +1 -1
  479. package/build/esm/blocks/Share/schema.js +7 -3
  480. package/build/esm/blocks/Share/schema.js.map +1 -1
  481. package/build/esm/blocks/Slider/Slider.js +18 -17
  482. package/build/esm/blocks/Slider/Slider.js.map +1 -1
  483. package/build/esm/blocks/Slider/schema.js +6 -1
  484. package/build/esm/blocks/Slider/schema.js.map +1 -1
  485. package/build/esm/blocks/Slider/utils.js +9 -6
  486. package/build/esm/blocks/Slider/utils.js.map +1 -1
  487. package/build/esm/blocks/SliderNew/Arrow/Arrow.js +1 -1
  488. package/build/esm/blocks/SliderNew/Arrow/Arrow.js.map +1 -1
  489. package/build/esm/blocks/SliderNew/Slider.d.ts +1 -1
  490. package/build/esm/blocks/SliderNew/Slider.js +15 -4
  491. package/build/esm/blocks/SliderNew/Slider.js.map +1 -1
  492. package/build/esm/blocks/SliderNew/schema.js +6 -1
  493. package/build/esm/blocks/SliderNew/schema.js.map +1 -1
  494. package/build/esm/blocks/SliderNew/useSlider.js +1 -3
  495. package/build/esm/blocks/SliderNew/useSlider.js.map +1 -1
  496. package/build/esm/blocks/SliderNew/utils.js +8 -4
  497. package/build/esm/blocks/SliderNew/utils.js.map +1 -1
  498. package/build/esm/blocks/Table/Table.js +1 -1
  499. package/build/esm/blocks/Table/Table.js.map +1 -1
  500. package/build/esm/blocks/Table/schema.js +22 -10
  501. package/build/esm/blocks/Table/schema.js.map +1 -1
  502. package/build/esm/blocks/Tabs/Tabs.js +16 -18
  503. package/build/esm/blocks/Tabs/Tabs.js.map +1 -1
  504. package/build/esm/blocks/Tabs/schema.js +25 -10
  505. package/build/esm/blocks/Tabs/schema.js.map +1 -1
  506. package/build/esm/components/Author/Author.js +1 -1
  507. package/build/esm/components/Author/Author.js.map +1 -1
  508. package/build/esm/components/Author/schema.js +5 -1
  509. package/build/esm/components/Author/schema.js.map +1 -1
  510. package/build/esm/components/BackLink/BackLink.js +5 -2
  511. package/build/esm/components/BackLink/BackLink.js.map +1 -1
  512. package/build/esm/components/BackgroundImage/BackgroundImage.js +1 -1
  513. package/build/esm/components/BackgroundImage/BackgroundImage.js.map +1 -1
  514. package/build/esm/components/BackgroundMedia/BackgroundMedia.js +4 -5
  515. package/build/esm/components/BackgroundMedia/BackgroundMedia.js.map +1 -1
  516. package/build/esm/components/BalancedMasonry/BalancedMasonry.js +4 -4
  517. package/build/esm/components/BalancedMasonry/BalancedMasonry.js.map +1 -1
  518. package/build/esm/components/BrandFooter/BrandFooter.css +21 -17
  519. package/build/esm/components/BrandFooter/BrandFooter.js +1 -1
  520. package/build/esm/components/BrandFooter/BrandFooter.js.map +1 -1
  521. package/build/esm/components/Button/Button.js +10 -8
  522. package/build/esm/components/Button/Button.js.map +1 -1
  523. package/build/esm/components/Button/utils.js +2 -2
  524. package/build/esm/components/Button/utils.js.map +1 -1
  525. package/build/esm/components/Buttons/Buttons.js +4 -1
  526. package/build/esm/components/Buttons/Buttons.js.map +1 -1
  527. package/build/esm/components/CardBase/CardBase.css +1 -0
  528. package/build/esm/components/CardBase/CardBase.js +6 -2
  529. package/build/esm/components/CardBase/CardBase.js.map +1 -1
  530. package/build/esm/components/ContentList/ContentList.css +7 -7
  531. package/build/esm/components/ContentList/ContentList.js +1 -1
  532. package/build/esm/components/ContentList/ContentList.js.map +1 -1
  533. package/build/esm/components/ContentList/ContentListItemIcon.js +1 -1
  534. package/build/esm/components/ContentList/ContentListItemIcon.js.map +1 -1
  535. package/build/esm/components/DefaultVideo/DefaultVideo.js +3 -4
  536. package/build/esm/components/DefaultVideo/DefaultVideo.js.map +1 -1
  537. package/build/esm/components/FileLink/FileLink.js +9 -2
  538. package/build/esm/components/FileLink/FileLink.js.map +1 -1
  539. package/build/esm/components/FullWidthBackground/FullWidthBackground.js +13 -18
  540. package/build/esm/components/FullWidthBackground/FullWidthBackground.js.map +1 -1
  541. package/build/esm/components/FullscreenImage/FullscreenImage.js +1 -1
  542. package/build/esm/components/FullscreenImage/FullscreenImage.js.map +1 -1
  543. package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
  544. package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
  545. package/build/esm/components/IconWrapper/IconWrapper.js +2 -2
  546. package/build/esm/components/IconWrapper/IconWrapper.js.map +1 -1
  547. package/build/esm/components/Image/schema.js +40 -12
  548. package/build/esm/components/Image/schema.js.map +1 -1
  549. package/build/esm/components/ImageBase/ImageBase.js +3 -5
  550. package/build/esm/components/ImageBase/ImageBase.js.map +1 -1
  551. package/build/esm/components/InnerForm/InnerForm.js +5 -6
  552. package/build/esm/components/InnerForm/InnerForm.js.map +1 -1
  553. package/build/esm/components/Link/Link.js +13 -4
  554. package/build/esm/components/Link/Link.js.map +1 -1
  555. package/build/esm/components/Links/Links.js +4 -1
  556. package/build/esm/components/Links/Links.js.map +1 -1
  557. package/build/esm/components/Map/GoogleMap.js +1 -1
  558. package/build/esm/components/Map/GoogleMap.js.map +1 -1
  559. package/build/esm/components/Map/Map.js +2 -2
  560. package/build/esm/components/Map/Map.js.map +1 -1
  561. package/build/esm/components/Map/YMap/YMap.js +6 -5
  562. package/build/esm/components/Map/YMap/YMap.js.map +1 -1
  563. package/build/esm/components/Map/YMap/YandexMap.js +2 -3
  564. package/build/esm/components/Map/YMap/YandexMap.js.map +1 -1
  565. package/build/esm/components/Map/YMap/YandexMapApiLoader.js +2 -1
  566. package/build/esm/components/Map/YMap/YandexMapApiLoader.js.map +1 -1
  567. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js +1 -1
  568. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js.map +1 -1
  569. package/build/esm/components/Media/Image/Image.js +4 -4
  570. package/build/esm/components/Media/Image/Image.js.map +1 -1
  571. package/build/esm/components/Media/Media.js +13 -5
  572. package/build/esm/components/Media/Media.js.map +1 -1
  573. package/build/esm/components/MediaBase/MediaBase.js +3 -4
  574. package/build/esm/components/MediaBase/MediaBase.js.map +1 -1
  575. package/build/esm/components/MediaBase/MediaBaseContent.js +1 -1
  576. package/build/esm/components/MediaBase/MediaBaseContent.js.map +1 -1
  577. package/build/esm/components/OutsideClick/OutsideClick.js +10 -13
  578. package/build/esm/components/OutsideClick/OutsideClick.js.map +1 -1
  579. package/build/esm/components/OverflowScroller/OverflowScroller.js +47 -50
  580. package/build/esm/components/OverflowScroller/OverflowScroller.js.map +1 -1
  581. package/build/esm/components/ReactPlayer/ReactPlayer.js +11 -13
  582. package/build/esm/components/ReactPlayer/ReactPlayer.js.map +1 -1
  583. package/build/esm/components/ReactPlayer/utils.js +1 -2
  584. package/build/esm/components/ReactPlayer/utils.js.map +1 -1
  585. package/build/esm/components/Title/Title.js +2 -3
  586. package/build/esm/components/Title/Title.js.map +1 -1
  587. package/build/esm/components/Title/TitleItem.css +8 -1
  588. package/build/esm/components/Title/TitleItem.js +2 -1
  589. package/build/esm/components/Title/TitleItem.js.map +1 -1
  590. package/build/esm/components/VideoBlock/VideoBlock.js +6 -3
  591. package/build/esm/components/VideoBlock/VideoBlock.js.map +1 -1
  592. package/build/esm/components/YandexForm/YandexForm.js +3 -3
  593. package/build/esm/components/YandexForm/YandexForm.js.map +1 -1
  594. package/build/esm/components/YandexForm/schema.js +7 -3
  595. package/build/esm/components/YandexForm/schema.js.map +1 -1
  596. package/build/esm/containers/Loadable/Loadable.js +3 -3
  597. package/build/esm/containers/Loadable/Loadable.js.map +1 -1
  598. package/build/esm/containers/PageConstructor/PageConstructor.css +1 -0
  599. package/build/esm/containers/PageConstructor/PageConstructor.d.ts +1 -1
  600. package/build/esm/containers/PageConstructor/PageConstructor.js +15 -9
  601. package/build/esm/containers/PageConstructor/PageConstructor.js.map +1 -1
  602. package/build/esm/containers/PageConstructor/Provider.js +1 -1
  603. package/build/esm/containers/PageConstructor/Provider.js.map +1 -1
  604. package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +2 -2
  605. package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js.map +1 -1
  606. package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +1 -1
  607. package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js.map +1 -1
  608. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +2 -3
  609. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js.map +1 -1
  610. package/build/esm/context/theme/withTheme.js +7 -9
  611. package/build/esm/context/theme/withTheme.js.map +1 -1
  612. package/build/esm/customization/BlockDecoration.js +3 -6
  613. package/build/esm/customization/BlockDecoration.js.map +1 -1
  614. package/build/esm/editor/components/AddBlock/AddBlock.js +7 -9
  615. package/build/esm/editor/components/AddBlock/AddBlock.js.map +1 -1
  616. package/build/esm/editor/components/BlockForm/BlockForm.js +11 -7
  617. package/build/esm/editor/components/BlockForm/BlockForm.js.map +1 -1
  618. package/build/esm/editor/components/CodeEditor/CodeEditor.js +1 -1
  619. package/build/esm/editor/components/CodeEditor/CodeEditor.js.map +1 -1
  620. package/build/esm/editor/components/ControlPanel/ControlPanel.css +1 -1
  621. package/build/esm/editor/components/DeviceEmulation/DeviceEmulationMobile/DeviceEmulationMobile.js +4 -5
  622. package/build/esm/editor/components/DeviceEmulation/DeviceEmulationMobile/DeviceEmulationMobile.js.map +1 -1
  623. package/build/esm/editor/components/EditBlock/EditBlock.js +2 -2
  624. package/build/esm/editor/components/EditBlock/EditBlock.js.map +1 -1
  625. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.js +2 -5
  626. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  627. package/build/esm/editor/components/Layout/Layout.js +3 -3
  628. package/build/esm/editor/components/Layout/Layout.js.map +1 -1
  629. package/build/esm/editor/components/PageSettings/PageSettings.js +3 -4
  630. package/build/esm/editor/components/PageSettings/PageSettings.js.map +1 -1
  631. package/build/esm/editor/containers/Editor/Editor.js +1 -1
  632. package/build/esm/editor/containers/Editor/Editor.js.map +1 -1
  633. package/build/esm/editor/containers/Editor/hooks/useCode.js +2 -4
  634. package/build/esm/editor/containers/Editor/hooks/useCode.js.map +1 -1
  635. package/build/esm/editor/containers/Editor/hooks/useEditorState.js +10 -8
  636. package/build/esm/editor/containers/Editor/hooks/useEditorState.js.map +1 -1
  637. package/build/esm/editor/containers/Form/Form.js +5 -2
  638. package/build/esm/editor/containers/Form/Form.js.map +1 -1
  639. package/build/esm/editor/data/index.js +4 -1
  640. package/build/esm/editor/data/index.js.map +1 -1
  641. package/build/esm/editor/data/previews/default-preview.js +1 -1
  642. package/build/esm/editor/data/previews/default-preview.js.map +1 -1
  643. package/build/esm/editor/data/previews/header-block.js +1 -1
  644. package/build/esm/editor/data/previews/header-block.js.map +1 -1
  645. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +16 -14
  646. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js.map +1 -1
  647. package/build/esm/editor/dynamic-forms-custom/config.js +1 -1
  648. package/build/esm/editor/dynamic-forms-custom/config.js.map +1 -1
  649. package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.js +10 -12
  650. package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.js.map +1 -1
  651. package/build/esm/editor/dynamic-forms-custom/parser/index.js +150 -120
  652. package/build/esm/editor/dynamic-forms-custom/parser/index.js.map +1 -1
  653. package/build/esm/editor/dynamic-forms-custom/parser/views.js +2 -4
  654. package/build/esm/editor/dynamic-forms-custom/parser/views.js.map +1 -1
  655. package/build/esm/editor/icons/Tablet.js +1 -1
  656. package/build/esm/editor/icons/Tablet.js.map +1 -1
  657. package/build/esm/editor/store/main/index.js +7 -5
  658. package/build/esm/editor/store/main/index.js.map +1 -1
  659. package/build/esm/editor/store/main/reducer.js +17 -3
  660. package/build/esm/editor/store/main/reducer.js.map +1 -1
  661. package/build/esm/editor/store/main/utils.js +2 -2
  662. package/build/esm/editor/store/main/utils.js.map +1 -1
  663. package/build/esm/editor/store/settings/reducer.js +16 -4
  664. package/build/esm/editor/store/settings/reducer.js.map +1 -1
  665. package/build/esm/editor/utils/code.js +4 -2
  666. package/build/esm/editor/utils/code.js.map +1 -1
  667. package/build/esm/editor/utils/index.js +8 -2
  668. package/build/esm/editor/utils/index.js.map +1 -1
  669. package/build/esm/editor/utils/validation.js +1 -1
  670. package/build/esm/editor/utils/validation.js.map +1 -1
  671. package/build/esm/editor/widget/index.js +8 -8
  672. package/build/esm/editor/widget/index.js.map +1 -1
  673. package/build/esm/grid/Col/Col.js +1 -2
  674. package/build/esm/grid/Col/Col.js.map +1 -1
  675. package/build/esm/hooks/useAnalytics.js +4 -1
  676. package/build/esm/hooks/useAnalytics.js.map +1 -1
  677. package/build/esm/hooks/useFocus.js +1 -1
  678. package/build/esm/hooks/useFocus.js.map +1 -1
  679. package/build/esm/hooks/useHeightCalculator.js +1 -1
  680. package/build/esm/hooks/useHeightCalculator.js.map +1 -1
  681. package/build/esm/hooks/useWindowBreakpoint.js +1 -1
  682. package/build/esm/hooks/useWindowBreakpoint.js.map +1 -1
  683. package/build/esm/icons/BrandIconDark.js +1 -1
  684. package/build/esm/icons/BrandIconDark.js.map +1 -1
  685. package/build/esm/icons/BrandIconLight.js +1 -1
  686. package/build/esm/icons/BrandIconLight.js.map +1 -1
  687. package/build/esm/icons/BrandName.js +1 -1
  688. package/build/esm/icons/BrandName.js.map +1 -1
  689. package/build/esm/icons/Chevron.js +1 -1
  690. package/build/esm/icons/Chevron.js.map +1 -1
  691. package/build/esm/icons/Facebook.js +1 -1
  692. package/build/esm/icons/Facebook.js.map +1 -1
  693. package/build/esm/icons/Github.js +1 -1
  694. package/build/esm/icons/Github.js.map +1 -1
  695. package/build/esm/icons/Linkedin.js +1 -1
  696. package/build/esm/icons/Linkedin.js.map +1 -1
  697. package/build/esm/icons/NavigationArrow.js +1 -1
  698. package/build/esm/icons/NavigationArrow.js.map +1 -1
  699. package/build/esm/icons/NavigationChevron.js +1 -1
  700. package/build/esm/icons/NavigationChevron.js.map +1 -1
  701. package/build/esm/icons/Telegram.js +1 -1
  702. package/build/esm/icons/Telegram.js.map +1 -1
  703. package/build/esm/icons/Twitter.js +1 -1
  704. package/build/esm/icons/Twitter.js.map +1 -1
  705. package/build/esm/icons/Vk.js +1 -1
  706. package/build/esm/icons/Vk.js.map +1 -1
  707. package/build/esm/models/constructor-items/blocks.d.ts +2 -1
  708. package/build/esm/models/constructor-items/blocks.js.map +1 -1
  709. package/build/esm/models/constructor-items/common.d.ts +2 -2
  710. package/build/esm/models/constructor-items/common.js.map +1 -1
  711. package/build/esm/navigation/components/DesktopNavigation/DesktopNavigation.js +1 -1
  712. package/build/esm/navigation/components/DesktopNavigation/DesktopNavigation.js.map +1 -1
  713. package/build/esm/navigation/components/Logo/Logo.js +4 -6
  714. package/build/esm/navigation/components/Logo/Logo.js.map +1 -1
  715. package/build/esm/navigation/components/MobileNavigation/MobileNavigation.js +2 -4
  716. package/build/esm/navigation/components/MobileNavigation/MobileNavigation.js.map +1 -1
  717. package/build/esm/navigation/components/NavigationItem/NavigationItem.js +8 -7
  718. package/build/esm/navigation/components/NavigationItem/NavigationItem.js.map +1 -1
  719. package/build/esm/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js +1 -1
  720. package/build/esm/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js.map +1 -1
  721. package/build/esm/navigation/components/NavigationItem/components/GithubButton/GithubButton.js +2 -3
  722. package/build/esm/navigation/components/NavigationItem/components/GithubButton/GithubButton.js.map +1 -1
  723. package/build/esm/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js +1 -1
  724. package/build/esm/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js.map +1 -1
  725. package/build/esm/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js +2 -4
  726. package/build/esm/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js.map +1 -1
  727. package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +4 -5
  728. package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js.map +1 -1
  729. package/build/esm/navigation/components/NavigationItem/hooks/useNavigationItemMap.js +1 -1
  730. package/build/esm/navigation/components/NavigationItem/hooks/useNavigationItemMap.js.map +1 -1
  731. package/build/esm/navigation/components/NavigationList/NavigationList.js +1 -5
  732. package/build/esm/navigation/components/NavigationList/NavigationList.js.map +1 -1
  733. package/build/esm/navigation/components/NavigationListItem/NavigationListItem.js +2 -4
  734. package/build/esm/navigation/components/NavigationListItem/NavigationListItem.js.map +1 -1
  735. package/build/esm/navigation/components/SocialIcon/SocialIcon.js +1 -1
  736. package/build/esm/navigation/components/SocialIcon/SocialIcon.js.map +1 -1
  737. package/build/esm/navigation/components/Standalone/index.js +1 -1
  738. package/build/esm/navigation/components/Standalone/index.js.map +1 -1
  739. package/build/esm/navigation/hooks/useActiveNavItem.d.ts +2 -2
  740. package/build/esm/navigation/hooks/useActiveNavItem.js +1 -1
  741. package/build/esm/navigation/hooks/useActiveNavItem.js.map +1 -1
  742. package/build/esm/navigation/hooks/useShowBorder.js +1 -1
  743. package/build/esm/navigation/hooks/useShowBorder.js.map +1 -1
  744. package/build/esm/navigation/schema.js +20 -7
  745. package/build/esm/navigation/schema.js.map +1 -1
  746. package/build/esm/navigation/utils.d.ts +1 -1
  747. package/build/esm/navigation/utils.js +1 -1
  748. package/build/esm/navigation/utils.js.map +1 -1
  749. package/build/esm/schema/constants.js +33 -2
  750. package/build/esm/schema/constants.js.map +1 -1
  751. package/build/esm/schema/index.js +23 -6
  752. package/build/esm/schema/index.js.map +1 -1
  753. package/build/esm/schema/validators/common.js +78 -32
  754. package/build/esm/schema/validators/common.js.map +1 -1
  755. package/build/esm/schema/validators/utils.js +9 -2
  756. package/build/esm/schema/validators/utils.js.map +1 -1
  757. package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +1 -1
  758. package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js.map +1 -1
  759. package/build/esm/sub-blocks/BackgroundCard/schema.js +24 -9
  760. package/build/esm/sub-blocks/BackgroundCard/schema.js.map +1 -1
  761. package/build/esm/sub-blocks/BannerCard/BannerCard.js +1 -1
  762. package/build/esm/sub-blocks/BannerCard/BannerCard.js.map +1 -1
  763. package/build/esm/sub-blocks/BasicCard/BasicCard.js +2 -3
  764. package/build/esm/sub-blocks/BasicCard/BasicCard.js.map +1 -1
  765. package/build/esm/sub-blocks/BasicCard/schema.js +18 -7
  766. package/build/esm/sub-blocks/BasicCard/schema.js.map +1 -1
  767. package/build/esm/sub-blocks/Content/Content.css +53 -6
  768. package/build/esm/sub-blocks/Content/Content.js +3 -1
  769. package/build/esm/sub-blocks/Content/Content.js.map +1 -1
  770. package/build/esm/sub-blocks/Content/schema.js +10 -3
  771. package/build/esm/sub-blocks/Content/schema.js.map +1 -1
  772. package/build/esm/sub-blocks/Divider/schema.js +6 -2
  773. package/build/esm/sub-blocks/Divider/schema.js.map +1 -1
  774. package/build/esm/sub-blocks/HubspotForm/index.js +3 -3
  775. package/build/esm/sub-blocks/HubspotForm/index.js.map +1 -1
  776. package/build/esm/sub-blocks/HubspotForm/loadHubspotScript.js +1 -2
  777. package/build/esm/sub-blocks/HubspotForm/loadHubspotScript.js.map +1 -1
  778. package/build/esm/sub-blocks/HubspotForm/schema.js +11 -5
  779. package/build/esm/sub-blocks/HubspotForm/schema.js.map +1 -1
  780. package/build/esm/sub-blocks/ImageCard/ImageCard.css +2 -0
  781. package/build/esm/sub-blocks/ImageCard/ImageCard.js +1 -1
  782. package/build/esm/sub-blocks/ImageCard/ImageCard.js.map +1 -1
  783. package/build/esm/sub-blocks/ImageCard/schema.js +18 -7
  784. package/build/esm/sub-blocks/ImageCard/schema.js.map +1 -1
  785. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +11 -10
  786. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js.map +1 -1
  787. package/build/esm/sub-blocks/LayoutItem/schema.js +20 -7
  788. package/build/esm/sub-blocks/LayoutItem/schema.js.map +1 -1
  789. package/build/esm/sub-blocks/LayoutItem/utils.js +4 -1
  790. package/build/esm/sub-blocks/LayoutItem/utils.js.map +1 -1
  791. package/build/esm/sub-blocks/MediaCard/MediaCard.js +1 -5
  792. package/build/esm/sub-blocks/MediaCard/MediaCard.js.map +1 -1
  793. package/build/esm/sub-blocks/MediaCard/schema.js +12 -3
  794. package/build/esm/sub-blocks/MediaCard/schema.js.map +1 -1
  795. package/build/esm/sub-blocks/PriceCard/PriceCard.js +2 -2
  796. package/build/esm/sub-blocks/PriceCard/PriceCard.js.map +1 -1
  797. package/build/esm/sub-blocks/PriceCard/schema.js +25 -11
  798. package/build/esm/sub-blocks/PriceCard/schema.js.map +1 -1
  799. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +1 -1
  800. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js.map +1 -1
  801. package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +2 -2
  802. package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js.map +1 -1
  803. package/build/esm/sub-blocks/PriceDetailed/PriceDetailed.js +1 -1
  804. package/build/esm/sub-blocks/PriceDetailed/PriceDetailed.js.map +1 -1
  805. package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +1 -5
  806. package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js.map +1 -1
  807. package/build/esm/sub-blocks/PriceDetailed/schema.js +44 -12
  808. package/build/esm/sub-blocks/PriceDetailed/schema.js.map +1 -1
  809. package/build/esm/sub-blocks/Quote/Quote.js +6 -3
  810. package/build/esm/sub-blocks/Quote/Quote.js.map +1 -1
  811. package/build/esm/sub-blocks/Quote/schema.js +21 -8
  812. package/build/esm/sub-blocks/Quote/schema.js.map +1 -1
  813. package/build/esm/text-transform/common.js +10 -7
  814. package/build/esm/text-transform/common.js.map +1 -1
  815. package/build/esm/text-transform/config.js +26 -19
  816. package/build/esm/text-transform/config.js.map +1 -1
  817. package/build/esm/text-transform/filter.js +4 -1
  818. package/build/esm/text-transform/filter.js.map +1 -1
  819. package/build/esm/text-transform/transformers.js +3 -3
  820. package/build/esm/text-transform/transformers.js.map +1 -1
  821. package/build/esm/text-transform/utils.js +8 -6
  822. package/build/esm/text-transform/utils.js.map +1 -1
  823. package/build/esm/utils/analytics.js +2 -3
  824. package/build/esm/utils/analytics.js.map +1 -1
  825. package/build/esm/utils/blocks.js +3 -2
  826. package/build/esm/utils/blocks.js.map +1 -1
  827. package/build/esm/utils/common.js +1 -2
  828. package/build/esm/utils/common.js.map +1 -1
  829. package/build/esm/utils/hubspot.js +6 -7
  830. package/build/esm/utils/hubspot.js.map +1 -1
  831. package/build/esm/utils/microdata.js +1 -1
  832. package/build/esm/utils/microdata.js.map +1 -1
  833. package/build/esm/utils/url.js +10 -5
  834. package/build/esm/utils/url.js.map +1 -1
  835. package/package.json +16 -11
  836. package/schema/index.js +1 -1
  837. package/server/models/constructor-items/blocks.d.ts +2 -1
  838. package/server/models/constructor-items/common.d.ts +2 -2
  839. package/server/utils/blocks.js +1 -0
  840. package/styles/root.scss +1 -0
  841. package/widget/2957.index.js +1 -1
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import { Controller, GroupIndent, SpecTypes, transformArrOut, } from '@gravity-ui/dynamic-forms';
4
4
  import Ajv from 'ajv';
5
- import isEmpty from 'lodash/isEmpty';
5
+ import isEmpty from "lodash/isEmpty.js";
6
6
  import { block } from "../../../../utils/index.js";
7
7
  import { getSpecTypeDefaultValue, useOneOf } from "../../hooks/useOneOf.js";
8
8
  import './OneOfCustom.css';
@@ -14,7 +14,7 @@ const ajv = new Ajv({
14
14
  strictTypes: false,
15
15
  strictRequired: false,
16
16
  });
17
- const getOneOfCustomSpecDefaultType = (spec) => { var _a, _b; return ((_b = (_a = spec.viewSpec) === null || _a === void 0 ? void 0 : _a.order) === null || _b === void 0 ? void 0 : _b[0]) || Object.keys(spec.properties || {})[0]; };
17
+ const getOneOfCustomSpecDefaultType = (spec) => spec.viewSpec?.order?.[0] || Object.keys(spec.properties || {})[0];
18
18
  // dynamic-forms pass {} as default value for required properties of all types
19
19
  // this function replaces {} with default value accordingly to selected OneOf option spec type
20
20
  const getControllerDefautValue = (value, valueSpecType) => {
@@ -39,29 +39,31 @@ const getControllerDefautValue = (value, valueSpecType) => {
39
39
  * @returns {React.FC<ObjectIndependentInputProps>}
40
40
  */
41
41
  export const OneOfCustom = (props) => {
42
- var _a;
43
42
  const { spec, input, name } = props;
44
43
  const { properties } = spec;
45
44
  //getting oneOf option type from initial value
46
- const valueType = React.useMemo(() => {
47
- var _a;
48
- return (properties &&
49
- ((_a = Object.keys(properties)) === null || _a === void 0 ? void 0 : _a.find((key) => {
50
- const fieldSchema = (properties === null || properties === void 0 ? void 0 : properties[key]).__schema;
51
- return fieldSchema && ajv.validate(fieldSchema, transformArrOut(input.value));
52
- }))) ||
53
- getOneOfCustomSpecDefaultType(spec);
54
- },
45
+ const valueType = React.useMemo(() => (properties &&
46
+ Object.keys(properties)?.find((key) => {
47
+ const fieldSchema = (properties?.[key]).__schema;
48
+ return fieldSchema && ajv.validate(fieldSchema, transformArrOut(input.value));
49
+ })) ||
50
+ getOneOfCustomSpecDefaultType(spec),
55
51
  // eslint-disable-next-line react-hooks/exhaustive-deps
56
52
  []);
57
53
  const { oneOfValue, specProperties, toggler } = useOneOf({
58
- props: Object.assign(Object.assign({}, props), { input: Object.assign(Object.assign({}, input), { value: valueType ? { [valueType]: input.value } : input.value }) }),
54
+ props: {
55
+ ...props,
56
+ input: {
57
+ ...input,
58
+ value: valueType ? { [valueType]: input.value } : input.value,
59
+ },
60
+ },
59
61
  });
60
62
  const parentOnChange = React.useCallback((_childName, childValue, childErrors) => {
61
63
  input.onChange(childValue, childErrors);
62
64
  }, [input]);
63
65
  const parentOnUnmount = React.useCallback((childName) => input.onChange((currentValue) => currentValue, { [childName]: false }), [input]);
64
- const valueSpecType = ((_a = specProperties[oneOfValue]) === null || _a === void 0 ? void 0 : _a.type) || SpecTypes.Object;
66
+ const valueSpecType = specProperties[oneOfValue]?.type || SpecTypes.Object;
65
67
  return (_jsxs("div", { className: b(), children: [_jsx("div", { children: toggler }), specProperties[oneOfValue] && (_jsx(GroupIndent, { children: _jsx(Controller, { value: getControllerDefautValue(input.value, valueSpecType), name: name, spec: specProperties[oneOfValue], parentOnChange: parentOnChange, parentOnUnmount: parentOnUnmount }, `${name}.${oneOfValue}`) }))] }));
66
68
  };
67
69
  //# sourceMappingURL=OneOfCustom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneOfCustom.js","sourceRoot":"../../../../../../src","sources":["editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {\n Controller,\n FieldObjectValue,\n FieldValue,\n GroupIndent,\n ObjectIndependentInputProps,\n ObjectSpec,\n SpecTypes,\n ValidateError,\n transformArrOut,\n} from '@gravity-ui/dynamic-forms';\nimport Ajv from 'ajv';\nimport isEmpty from 'lodash/isEmpty';\n\nimport {block} from '../../../../utils';\nimport {getSpecTypeDefaultValue, useOneOf} from '../../hooks/useOneOf';\nimport {SpecCustomProps} from '../../parser/types';\n\nimport './OneOfCustom.scss';\n\nconst b = block('one-of-custom');\n\nconst ajv = new Ajv({\n $data: true,\n strict: false,\n strictSchema: false,\n strictTypes: false,\n strictRequired: false,\n});\n\nconst getOneOfCustomSpecDefaultType = (spec: ObjectSpec) =>\n spec.viewSpec?.order?.[0] || Object.keys(spec.properties || {})[0];\n\n// dynamic-forms pass {} as default value for required properties of all types\n// this function replaces {} with default value accordingly to selected OneOf option spec type\nconst getControllerDefautValue = (value: FieldValue, valueSpecType?: SpecTypes) => {\n const isDefaultValue = typeof value === 'object' && isEmpty(value);\n const defaultValue = valueSpecType ? getSpecTypeDefaultValue(valueSpecType) : undefined;\n\n return isDefaultValue ? (defaultValue as FieldValue) : value;\n};\n\n/**\n * Customization of @gravity-ui/dynamic-forms OneOf component\n *\n * Main differences from original component:\n *\n * 1. Custom component can detect initial data type by it's json schema passed it __schema property of spec and\n * shows according input\n *\n * 2. Custom component doesn't create additional nested level of data for each OneOf option and doesn't wraps data value, e.g.\n *\n * custom component: {propertyName: propertyValue}\n * original component: {propertyName: {option1: {value: propertyValue}}}\n *\n * @param {ObjectIndependentInputProps} props - props of original OneOf component\n * @returns {React.FC<ObjectIndependentInputProps>}\n */\nexport const OneOfCustom: React.FC<ObjectIndependentInputProps> = (props) => {\n const {spec, input, name} = props;\n const {properties} = spec;\n\n //getting oneOf option type from initial value\n const valueType = React.useMemo(\n () =>\n (properties &&\n Object.keys(properties)?.find((key) => {\n const fieldSchema = (properties?.[key] as SpecCustomProps).__schema;\n\n return fieldSchema && ajv.validate(fieldSchema, transformArrOut(input.value));\n })) ||\n getOneOfCustomSpecDefaultType(spec),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const {oneOfValue, specProperties, toggler} = useOneOf({\n props: {\n ...props,\n input: {\n ...input,\n value: valueType ? {[valueType]: input.value} : input.value,\n },\n },\n });\n\n const parentOnChange = React.useCallback(\n (\n _childName: string,\n childValue: FieldValue,\n childErrors?: Record<string, ValidateError>,\n ) => {\n input.onChange(childValue as FieldObjectValue, childErrors);\n },\n [input],\n );\n\n const parentOnUnmount = React.useCallback(\n (childName: string) => input.onChange((currentValue) => currentValue, {[childName]: false}),\n [input],\n );\n\n const valueSpecType = specProperties[oneOfValue]?.type || SpecTypes.Object;\n\n return (\n <div className={b()}>\n <div>{toggler}</div>\n {specProperties[oneOfValue] && (\n <GroupIndent>\n <Controller\n value={getControllerDefautValue(input.value, valueSpecType)}\n name={name}\n spec={specProperties[oneOfValue]}\n parentOnChange={parentOnChange}\n parentOnUnmount={parentOnUnmount}\n key={`${name}.${oneOfValue}`}\n />\n </GroupIndent>\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"OneOfCustom.js","sourceRoot":"../../../../../../src","sources":["editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {\n Controller,\n FieldObjectValue,\n FieldValue,\n GroupIndent,\n ObjectIndependentInputProps,\n ObjectSpec,\n SpecTypes,\n ValidateError,\n transformArrOut,\n} from '@gravity-ui/dynamic-forms';\nimport Ajv from 'ajv';\nimport isEmpty from 'lodash/isEmpty';\n\nimport {block} from '../../../../utils';\nimport {getSpecTypeDefaultValue, useOneOf} from '../../hooks/useOneOf';\nimport {SpecCustomProps} from '../../parser/types';\n\nimport './OneOfCustom.scss';\n\nconst b = block('one-of-custom');\n\nconst ajv = new Ajv({\n $data: true,\n strict: false,\n strictSchema: false,\n strictTypes: false,\n strictRequired: false,\n});\n\nconst getOneOfCustomSpecDefaultType = (spec: ObjectSpec) =>\n spec.viewSpec?.order?.[0] || Object.keys(spec.properties || {})[0];\n\n// dynamic-forms pass {} as default value for required properties of all types\n// this function replaces {} with default value accordingly to selected OneOf option spec type\nconst getControllerDefautValue = (value: FieldValue, valueSpecType?: SpecTypes) => {\n const isDefaultValue = typeof value === 'object' && isEmpty(value);\n const defaultValue = valueSpecType ? getSpecTypeDefaultValue(valueSpecType) : undefined;\n\n return isDefaultValue ? (defaultValue as FieldValue) : value;\n};\n\n/**\n * Customization of @gravity-ui/dynamic-forms OneOf component\n *\n * Main differences from original component:\n *\n * 1. Custom component can detect initial data type by it's json schema passed it __schema property of spec and\n * shows according input\n *\n * 2. Custom component doesn't create additional nested level of data for each OneOf option and doesn't wraps data value, e.g.\n *\n * custom component: {propertyName: propertyValue}\n * original component: {propertyName: {option1: {value: propertyValue}}}\n *\n * @param {ObjectIndependentInputProps} props - props of original OneOf component\n * @returns {React.FC<ObjectIndependentInputProps>}\n */\nexport const OneOfCustom: React.FC<ObjectIndependentInputProps> = (props) => {\n const {spec, input, name} = props;\n const {properties} = spec;\n\n //getting oneOf option type from initial value\n const valueType = React.useMemo(\n () =>\n (properties &&\n Object.keys(properties)?.find((key) => {\n const fieldSchema = (properties?.[key] as SpecCustomProps).__schema;\n\n return fieldSchema && ajv.validate(fieldSchema, transformArrOut(input.value));\n })) ||\n getOneOfCustomSpecDefaultType(spec),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const {oneOfValue, specProperties, toggler} = useOneOf({\n props: {\n ...props,\n input: {\n ...input,\n value: valueType ? {[valueType]: input.value} : input.value,\n },\n },\n });\n\n const parentOnChange = React.useCallback(\n (\n _childName: string,\n childValue: FieldValue,\n childErrors?: Record<string, ValidateError>,\n ) => {\n input.onChange(childValue as FieldObjectValue, childErrors);\n },\n [input],\n );\n\n const parentOnUnmount = React.useCallback(\n (childName: string) => input.onChange((currentValue) => currentValue, {[childName]: false}),\n [input],\n );\n\n const valueSpecType = specProperties[oneOfValue]?.type || SpecTypes.Object;\n\n return (\n <div className={b()}>\n <div>{toggler}</div>\n {specProperties[oneOfValue] && (\n <GroupIndent>\n <Controller\n value={getControllerDefautValue(input.value, valueSpecType)}\n name={name}\n spec={specProperties[oneOfValue]}\n parentOnChange={parentOnChange}\n parentOnUnmount={parentOnUnmount}\n key={`${name}.${oneOfValue}`}\n />\n </GroupIndent>\n )}\n </div>\n );\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { dynamicConfig as libConfig } from '@gravity-ui/dynamic-forms';
2
- import cloneDeep from 'lodash/cloneDeep';
2
+ import cloneDeep from "lodash/cloneDeep.js";
3
3
  import { OneOfCustom } from "./components/OneOfCustom/OneOfCustom.js";
4
4
  const getDynamicConfig = () => {
5
5
  const dynamicConfig = cloneDeep(libConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"../../../../src","sources":["editor/dynamic-forms-custom/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACxF,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAC,WAAW,EAAC,gDAA6C;AAEjE,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC1B,MAAM,aAAa,GAAsB,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9D,aAAa;IACb,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;IAE1F,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC","sourcesContent":["import {DynamicFormConfig, dynamicConfig as libConfig} from '@gravity-ui/dynamic-forms';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport {OneOfCustom} from './components/OneOfCustom/OneOfCustom';\n\nconst getDynamicConfig = () => {\n const dynamicConfig: DynamicFormConfig = cloneDeep(libConfig);\n\n // @ts-ignore\n dynamicConfig.object.inputs['oneof_custom'] = {Component: OneOfCustom, independent: true};\n\n return dynamicConfig;\n};\n\nexport const dynamicConfig = getDynamicConfig();\n"]}
1
+ {"version":3,"file":"config.js","sourceRoot":"../../../../src","sources":["editor/dynamic-forms-custom/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACxF,OAAO,SAAS,4BAAyB;AAEzC,OAAO,EAAC,WAAW,EAAC,gDAA6C;AAEjE,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC1B,MAAM,aAAa,GAAsB,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9D,aAAa;IACb,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;IAE1F,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC","sourcesContent":["import {DynamicFormConfig, dynamicConfig as libConfig} from '@gravity-ui/dynamic-forms';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport {OneOfCustom} from './components/OneOfCustom/OneOfCustom';\n\nconst getDynamicConfig = () => {\n const dynamicConfig: DynamicFormConfig = cloneDeep(libConfig);\n\n // @ts-ignore\n dynamicConfig.object.inputs['oneof_custom'] = {Component: OneOfCustom, independent: true};\n\n return dynamicConfig;\n};\n\nexport const dynamicConfig = getDynamicConfig();\n"]}
@@ -2,8 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import { SpecTypes, } from '@gravity-ui/dynamic-forms';
4
4
  import { SegmentedRadioGroup, Select } from '@gravity-ui/uikit';
5
- import isObjectLike from 'lodash/isObjectLike';
6
- import some from 'lodash/some';
5
+ import isObjectLike from "lodash/isObjectLike.js";
6
+ import some from "lodash/some.js";
7
7
  const MAX_TAB_TITLE_LENGTH = 20;
8
8
  export const getSpecTypeDefaultValue = (type) => {
9
9
  switch (type) {
@@ -32,18 +32,16 @@ export const useOneOf = ({ props, onTogglerChange }) => {
32
32
  return (valueKeys || order || Object.keys(specProperties))[0];
33
33
  });
34
34
  const onOneOfChange = React.useCallback(([newValue]) => {
35
- var _a;
36
35
  if (newValue !== oneOfValue) {
37
- const specType = ((_a = specProperties[newValue]) === null || _a === void 0 ? void 0 : _a.type) || SpecTypes.Object;
36
+ const specType = specProperties[newValue]?.type || SpecTypes.Object;
38
37
  input.onChange(getSpecTypeDefaultValue(specType));
39
38
  setOneOfValue(newValue);
40
- onTogglerChange === null || onTogglerChange === void 0 ? void 0 : onTogglerChange(newValue);
39
+ onTogglerChange?.(newValue);
41
40
  }
42
41
  }, [setOneOfValue, input, oneOfValue, specProperties, onTogglerChange]);
43
42
  const options = React.useMemo(() => (order || Object.keys(specProperties)).map((value) => {
44
- var _a, _b;
45
- const title = ((_a = spec.description) === null || _a === void 0 ? void 0 : _a[value]) ||
46
- ((_b = specProperties[value]) === null || _b === void 0 ? void 0 : _b.viewSpec.layoutTitle) ||
43
+ const title = spec.description?.[value] ||
44
+ specProperties[value]?.viewSpec.layoutTitle ||
47
45
  value ||
48
46
  '';
49
47
  return {
@@ -53,17 +51,17 @@ export const useOneOf = ({ props, onTogglerChange }) => {
53
51
  };
54
52
  }), [spec.description, order, specProperties]);
55
53
  const togglerInput = React.useMemo(() => {
56
- if ((oneOfParams === null || oneOfParams === void 0 ? void 0 : oneOfParams.toggler) !== 'radio' &&
57
- ((oneOfParams === null || oneOfParams === void 0 ? void 0 : oneOfParams.toggler) === 'select' ||
54
+ if (oneOfParams?.toggler !== 'radio' &&
55
+ (oneOfParams?.toggler === 'select' ||
58
56
  options.length > 3 ||
59
57
  some(options, ({ title }) => title.length > MAX_TAB_TITLE_LENGTH))) {
60
58
  return (_jsx(Select, { width: "max", value: [oneOfValue], onUpdate: onOneOfChange, options: options, disabled: disabled, filterable: options.length > 7, qa: name }));
61
59
  }
62
60
  return (_jsx(SegmentedRadioGroup, { value: oneOfValue, onChange: (event) => onOneOfChange([event.target.value]), disabled: disabled, qa: name, children: options.map(({ value, title }) => (_jsx(SegmentedRadioGroup.Option, { value: value, children: title }, value))) }));
63
- }, [options, oneOfValue, onOneOfChange, name, oneOfParams === null || oneOfParams === void 0 ? void 0 : oneOfParams.toggler, disabled]);
61
+ }, [options, oneOfValue, onOneOfChange, name, oneOfParams?.toggler, disabled]);
64
62
  const toggler = React.useMemo(() => {
65
63
  if (Layout) {
66
- return _jsx(Layout, Object.assign({}, props, { children: togglerInput }));
64
+ return _jsx(Layout, { ...props, children: togglerInput });
67
65
  }
68
66
  return togglerInput;
69
67
  }, [Layout, togglerInput, props]);
@@ -1 +1 @@
1
- {"version":3,"file":"useOneOf.js","sourceRoot":"../../../../../src","sources":["editor/dynamic-forms-custom/hooks/useOneOf.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAIH,SAAS,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC9D,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,IAAI,MAAM,aAAa,CAAC;AAE/B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAOhC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAe,EAAE,EAAE;IACvD,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,SAAS,CAAC,KAAK;YAChB,OAAO,EAAE,CAAC;QACd,KAAK,SAAS,CAAC,OAAO,CAAC;QACvB,KAAK,SAAS,CAAC,MAAM,CAAC;QACtB,KAAK,SAAS,CAAC,MAAM;YACjB,OAAO,SAAS,CAAC;QACrB;YACI,OAAO,EAAE,CAAC;IAClB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAC,KAAK,EAAE,eAAe,EAAiB,EAAE,EAAE;IACjE,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC,GAAG,KAAK,CAAC;IAC1C,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IAErD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,UAAmC,CAAC,CAAC,CAAC,EAAE,CAAC,EACtF,CAAC,IAAI,CAAC,UAAU,CAAC,CACpB,CAAC;IAEF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACpD,IAAI,SAA+B,CAAC;QAEpC,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,SAAS,GAAG,IAAI,CAAC;YACrB,CAAC;QACL,CAAC;QAED,OAAO,CAAC,SAAS,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,CAAC,QAAQ,CAAW,EAAE,EAAE;;QACrB,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,CAAA,MAAA,cAAc,CAAC,QAAQ,CAAC,0CAAE,IAAI,KAAI,SAAS,CAAC,MAAM,CAAC;YACpE,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAqB,CAAC,CAAC;YACtE,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,QAAQ,CAAC,CAAC;QAChC,CAAC;IACL,CAAC,EACD,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,CAAC,CACtE,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CACzB,GAAG,EAAE,CACD,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;QACjD,MAAM,KAAK,GACP,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAG,KAAK,CAAC;aACzB,MAAA,cAAc,CAAC,KAAK,CAAC,0CAAE,QAAQ,CAAC,WAAW,CAAA;YAC3C,KAAK;YACL,EAAE,CAAC;QAEP,OAAO;YACH,KAAK;YACL,KAAK;YACL,OAAO,EAAE,KAAK;SACjB,CAAC;IACN,CAAC,CAAC,EACN,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CAC5C,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,IACI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAK,OAAO;YAChC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAK,QAAQ;gBAC9B,OAAO,CAAC,MAAM,GAAG,CAAC;gBAClB,IAAI,CAAC,OAAO,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,EACtE,CAAC;YACC,OAAO,CACH,KAAC,MAAM,IACH,KAAK,EAAC,KAAK,EACX,KAAK,EAAE,CAAC,UAAU,CAAC,EACnB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAC9B,EAAE,EAAE,IAAI,GACV,CACL,CAAC;QACN,CAAC;QAED,OAAO,CACH,KAAC,mBAAmB,IAChB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACxD,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,IAAI,YAEP,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAC7B,KAAC,mBAAmB,CAAC,MAAM,IAAa,KAAK,EAAE,KAAK,YAC/C,KAAK,IADuB,KAAK,CAET,CAChC,CAAC,GACgB,CACzB,CAAC;IACN,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,KAAC,MAAM,oBAAK,KAAK,cAAG,YAAY,IAAU,CAAC;QACtD,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAElC,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAC,CAAC;AAC/D,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {\n FieldObjectValue,\n ObjectIndependentInputProps,\n Spec,\n SpecTypes,\n} from '@gravity-ui/dynamic-forms';\nimport {SegmentedRadioGroup, Select} from '@gravity-ui/uikit';\nimport isObjectLike from 'lodash/isObjectLike';\nimport some from 'lodash/some';\n\nconst MAX_TAB_TITLE_LENGTH = 20;\n\nexport interface UseOneOfParams {\n props: ObjectIndependentInputProps;\n onTogglerChange?: (value: string) => void;\n}\n\nexport const getSpecTypeDefaultValue = (type: SpecTypes) => {\n switch (type) {\n case SpecTypes.Array:\n return [];\n case SpecTypes.Boolean:\n case SpecTypes.Number:\n case SpecTypes.String:\n return undefined;\n default:\n return {};\n }\n};\n\nexport const useOneOf = ({props, onTogglerChange}: UseOneOfParams) => {\n const {name, input, spec, Layout} = props;\n const {order, disabled, oneOfParams} = spec.viewSpec;\n\n const specProperties = React.useMemo(\n () => (isObjectLike(spec.properties) ? (spec.properties as Record<string, Spec>) : {}),\n [spec.properties],\n );\n\n const [oneOfValue, setOneOfValue] = React.useState(() => {\n let valueKeys: string[] | undefined;\n\n if (isObjectLike(input.value)) {\n const keys = Object.keys(input.value);\n\n if (keys.length) {\n valueKeys = keys;\n }\n }\n\n return (valueKeys || order || Object.keys(specProperties))[0];\n });\n\n const onOneOfChange = React.useCallback(\n ([newValue]: string[]) => {\n if (newValue !== oneOfValue) {\n const specType = specProperties[newValue]?.type || SpecTypes.Object;\n input.onChange(getSpecTypeDefaultValue(specType) as FieldObjectValue);\n setOneOfValue(newValue);\n onTogglerChange?.(newValue);\n }\n },\n [setOneOfValue, input, oneOfValue, specProperties, onTogglerChange],\n );\n\n const options = React.useMemo(\n () =>\n (order || Object.keys(specProperties)).map((value) => {\n const title =\n spec.description?.[value] ||\n specProperties[value]?.viewSpec.layoutTitle ||\n value ||\n '';\n\n return {\n value,\n title,\n content: title,\n };\n }),\n [spec.description, order, specProperties],\n );\n\n const togglerInput = React.useMemo(() => {\n if (\n oneOfParams?.toggler !== 'radio' &&\n (oneOfParams?.toggler === 'select' ||\n options.length > 3 ||\n some(options, ({title}) => title.length > MAX_TAB_TITLE_LENGTH))\n ) {\n return (\n <Select\n width=\"max\"\n value={[oneOfValue]}\n onUpdate={onOneOfChange}\n options={options}\n disabled={disabled}\n filterable={options.length > 7}\n qa={name}\n />\n );\n }\n\n return (\n <SegmentedRadioGroup\n value={oneOfValue}\n onChange={(event) => onOneOfChange([event.target.value])}\n disabled={disabled}\n qa={name}\n >\n {options.map(({value, title}) => (\n <SegmentedRadioGroup.Option key={value} value={value}>\n {title}\n </SegmentedRadioGroup.Option>\n ))}\n </SegmentedRadioGroup>\n );\n }, [options, oneOfValue, onOneOfChange, name, oneOfParams?.toggler, disabled]);\n\n const toggler = React.useMemo(() => {\n if (Layout) {\n return <Layout {...props}>{togglerInput}</Layout>;\n }\n\n return togglerInput;\n }, [Layout, togglerInput, props]);\n\n return {oneOfValue, specProperties, toggler, togglerInput};\n};\n"]}
1
+ {"version":3,"file":"useOneOf.js","sourceRoot":"../../../../../src","sources":["editor/dynamic-forms-custom/hooks/useOneOf.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {\n FieldObjectValue,\n ObjectIndependentInputProps,\n Spec,\n SpecTypes,\n} from '@gravity-ui/dynamic-forms';\nimport {SegmentedRadioGroup, Select} from '@gravity-ui/uikit';\nimport isObjectLike from 'lodash/isObjectLike';\nimport some from 'lodash/some';\n\nconst MAX_TAB_TITLE_LENGTH = 20;\n\nexport interface UseOneOfParams {\n props: ObjectIndependentInputProps;\n onTogglerChange?: (value: string) => void;\n}\n\nexport const getSpecTypeDefaultValue = (type: SpecTypes) => {\n switch (type) {\n case SpecTypes.Array:\n return [];\n case SpecTypes.Boolean:\n case SpecTypes.Number:\n case SpecTypes.String:\n return undefined;\n default:\n return {};\n }\n};\n\nexport const useOneOf = ({props, onTogglerChange}: UseOneOfParams) => {\n const {name, input, spec, Layout} = props;\n const {order, disabled, oneOfParams} = spec.viewSpec;\n\n const specProperties = React.useMemo(\n () => (isObjectLike(spec.properties) ? (spec.properties as Record<string, Spec>) : {}),\n [spec.properties],\n );\n\n const [oneOfValue, setOneOfValue] = React.useState(() => {\n let valueKeys: string[] | undefined;\n\n if (isObjectLike(input.value)) {\n const keys = Object.keys(input.value);\n\n if (keys.length) {\n valueKeys = keys;\n }\n }\n\n return (valueKeys || order || Object.keys(specProperties))[0];\n });\n\n const onOneOfChange = React.useCallback(\n ([newValue]: string[]) => {\n if (newValue !== oneOfValue) {\n const specType = specProperties[newValue]?.type || SpecTypes.Object;\n input.onChange(getSpecTypeDefaultValue(specType) as FieldObjectValue);\n setOneOfValue(newValue);\n onTogglerChange?.(newValue);\n }\n },\n [setOneOfValue, input, oneOfValue, specProperties, onTogglerChange],\n );\n\n const options = React.useMemo(\n () =>\n (order || Object.keys(specProperties)).map((value) => {\n const title =\n spec.description?.[value] ||\n specProperties[value]?.viewSpec.layoutTitle ||\n value ||\n '';\n\n return {\n value,\n title,\n content: title,\n };\n }),\n [spec.description, order, specProperties],\n );\n\n const togglerInput = React.useMemo(() => {\n if (\n oneOfParams?.toggler !== 'radio' &&\n (oneOfParams?.toggler === 'select' ||\n options.length > 3 ||\n some(options, ({title}) => title.length > MAX_TAB_TITLE_LENGTH))\n ) {\n return (\n <Select\n width=\"max\"\n value={[oneOfValue]}\n onUpdate={onOneOfChange}\n options={options}\n disabled={disabled}\n filterable={options.length > 7}\n qa={name}\n />\n );\n }\n\n return (\n <SegmentedRadioGroup\n value={oneOfValue}\n onChange={(event) => onOneOfChange([event.target.value])}\n disabled={disabled}\n qa={name}\n >\n {options.map(({value, title}) => (\n <SegmentedRadioGroup.Option key={value} value={value}>\n {title}\n </SegmentedRadioGroup.Option>\n ))}\n </SegmentedRadioGroup>\n );\n }, [options, oneOfValue, onOneOfChange, name, oneOfParams?.toggler, disabled]);\n\n const toggler = React.useMemo(() => {\n if (Layout) {\n return <Layout {...props}>{togglerInput}</Layout>;\n }\n\n return togglerInput;\n }, [Layout, togglerInput, props]);\n\n return {oneOfValue, specProperties, toggler, togglerInput};\n};\n"]}
@@ -1,123 +1,11 @@
1
- import { __rest } from "tslib";
2
1
  /* eslint-disable no-param-reassign */
3
2
  /* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */
4
3
  import { SpecTypes } from '@gravity-ui/dynamic-forms';
5
4
  import { ParserType, detectParserType } from "./detect.js";
6
5
  import { getArrayViewSpec, getObjectViewSpec, getOneOfViewSpec, getPrimitiveViewSpec } from "./views.js";
7
6
  class FormSpecParser {
8
- constructor() {
9
- this.schema = {};
10
- this.definitions = {};
11
- this.getChildrenSpec = (data) => {
12
- var _a, _b, _c;
13
- const childrenType = (_c = (_b = (_a = data.items) === null || _a === void 0 ? void 0 : _a.$ref) === null || _b === void 0 ? void 0 : _b.split('/')) === null || _c === void 0 ? void 0 : _c.pop();
14
- return this.definitions[childrenType];
15
- };
16
- this.getRequiredProperties = (data) => Array.isArray(data.required) ? data.required : [];
17
- this.childrenParser = ({ data, name, required }) => {
18
- const childSpec = this.getChildrenSpec(data);
19
- const properties = childSpec &&
20
- Object.entries(childSpec).reduce((parsedChildSpecProperties, [childName, childSchema]) => {
21
- const childRequiredProperties = this.getRequiredProperties(childSchema);
22
- const childProperies = childSchema.properties &&
23
- Object.entries(childSchema.properties).reduce((parsedChildProperties, [childPropertyName, childPropertyData]) => {
24
- parsedChildProperties[childPropertyName] = this.parseSchemaProperty({
25
- data: childPropertyData,
26
- name: childPropertyName,
27
- required: childRequiredProperties.includes(childPropertyName),
28
- });
29
- return parsedChildProperties;
30
- }, {});
31
- const childJsonSchema = Object.assign(Object.assign({}, childSchema), { properties: Object.assign(Object.assign({}, childSchema.properties), { type: {
32
- type: SpecTypes.String,
33
- enum: [childName],
34
- } }) });
35
- parsedChildSpecProperties[childName] = {
36
- type: SpecTypes.Array,
37
- items: Object.assign(Object.assign({}, childSchema), { type: SpecTypes.Object, properties: Object.assign(Object.assign({}, childProperies), { type: {
38
- type: SpecTypes.String,
39
- defaultValue: childName,
40
- viewSpec: {
41
- type: 'hidden',
42
- },
43
- } }), viewSpec: childProperies &&
44
- getObjectViewSpec({
45
- properties: childProperies,
46
- layoutTitle: childName,
47
- }), __schema: childJsonSchema }),
48
- required: false,
49
- viewSpec: getArrayViewSpec({ layoutTitle: childName }),
50
- __schema: {
51
- type: SpecTypes.Array,
52
- items: childJsonSchema,
53
- },
54
- };
55
- return parsedChildSpecProperties;
56
- }, {});
57
- return {
58
- type: SpecTypes.Object,
59
- properties,
60
- viewSpec: {
61
- type: 'oneof_custom',
62
- layout: 'row',
63
- layoutTitle: name,
64
- oneOfParams: {
65
- toggler: 'select',
66
- },
67
- },
68
- required,
69
- };
70
- };
71
- this.oneOfParser = ({ data, name, required }) => {
72
- const requiredProperties = this.getRequiredProperties(data);
73
- const properties = data.oneOf &&
74
- data.oneOf.reduce((result, propertyData, index) => {
75
- const propertyName = (propertyData === null || propertyData === void 0 ? void 0 : propertyData.optionName)
76
- ? propertyData === null || propertyData === void 0 ? void 0 : propertyData.optionName
77
- : `${name}_${index}`;
78
- result[propertyName] = this.parseSchemaProperty({
79
- data: propertyData,
80
- name: propertyName,
81
- required: requiredProperties.includes(propertyName),
82
- });
83
- return result;
84
- }, {});
85
- return {
86
- type: SpecTypes.Object,
87
- properties,
88
- required,
89
- viewSpec: getOneOfViewSpec({ layoutTitle: name }),
90
- };
91
- };
92
- this.arrayParser = ({ data, name }) => {
93
- const items = data.items && this.parseSchemaProperty({ data: data.items, name });
94
- return Object.assign(Object.assign({}, data), { type: SpecTypes.Array, items, viewSpec: getArrayViewSpec({ layoutTitle: name }) });
95
- };
96
- this.objectParser = ({ data, name, required }) => {
97
- const requiredProperties = this.getRequiredProperties(data);
98
- const properties = data.properties &&
99
- Object.entries(data.properties).reduce((result, [propertyName, propertyData]) => {
100
- result[propertyName] = this.parseSchemaProperty({
101
- data: propertyData,
102
- name: propertyName,
103
- required: requiredProperties.includes(propertyName),
104
- });
105
- return result;
106
- }, {});
107
- return Object.assign(Object.assign({}, data), { type: SpecTypes.Object, properties, viewSpec: getObjectViewSpec({ properties, layoutTitle: name }), required });
108
- };
109
- this.primitiveParser = ({ data, name, required }) => {
110
- return Object.assign(Object.assign({}, data), { type: data.type, required, defaultValue: data.default, viewSpec: getPrimitiveViewSpec({ layoutTitle: name, data }), validator: 'base' });
111
- };
112
- //eslint-disable-next-line @typescript-eslint/member-ordering
113
- this.schemaParserMap = {
114
- [ParserType.Object]: this.objectParser,
115
- [ParserType.Array]: this.arrayParser,
116
- [ParserType.Primitive]: this.primitiveParser,
117
- [ParserType.OneOf]: this.oneOfParser,
118
- [ParserType.Children]: this.childrenParser,
119
- };
120
- }
7
+ schema = {};
8
+ definitions = {};
121
9
  /**
122
10
  * Transforms page-constructor json schema into dynamic-forms specs for each block
123
11
  *
@@ -128,28 +16,170 @@ class FormSpecParser {
128
16
  this.init(schema);
129
17
  return this.getFormSpec();
130
18
  }
19
+ getChildrenSpec = (data) => {
20
+ const childrenType = data.items?.$ref?.split('/')?.pop();
21
+ return this.definitions[childrenType];
22
+ };
23
+ getRequiredProperties = (data) => Array.isArray(data.required) ? data.required : [];
24
+ childrenParser = ({ data, name, required }) => {
25
+ const childSpec = this.getChildrenSpec(data);
26
+ const properties = childSpec &&
27
+ Object.entries(childSpec).reduce((parsedChildSpecProperties, [childName, childSchema]) => {
28
+ const childRequiredProperties = this.getRequiredProperties(childSchema);
29
+ const childProperies = childSchema.properties &&
30
+ Object.entries(childSchema.properties).reduce((parsedChildProperties, [childPropertyName, childPropertyData]) => {
31
+ parsedChildProperties[childPropertyName] = this.parseSchemaProperty({
32
+ data: childPropertyData,
33
+ name: childPropertyName,
34
+ required: childRequiredProperties.includes(childPropertyName),
35
+ });
36
+ return parsedChildProperties;
37
+ }, {});
38
+ const childJsonSchema = {
39
+ ...childSchema,
40
+ properties: {
41
+ ...childSchema.properties,
42
+ type: {
43
+ type: SpecTypes.String,
44
+ enum: [childName],
45
+ },
46
+ },
47
+ };
48
+ parsedChildSpecProperties[childName] = {
49
+ type: SpecTypes.Array,
50
+ items: {
51
+ ...childSchema,
52
+ type: SpecTypes.Object,
53
+ properties: {
54
+ ...childProperies,
55
+ type: {
56
+ type: SpecTypes.String,
57
+ defaultValue: childName,
58
+ viewSpec: {
59
+ type: 'hidden',
60
+ },
61
+ },
62
+ },
63
+ viewSpec: childProperies &&
64
+ getObjectViewSpec({
65
+ properties: childProperies,
66
+ layoutTitle: childName,
67
+ }),
68
+ __schema: childJsonSchema,
69
+ },
70
+ required: false,
71
+ viewSpec: getArrayViewSpec({ layoutTitle: childName }),
72
+ __schema: {
73
+ type: SpecTypes.Array,
74
+ items: childJsonSchema,
75
+ },
76
+ };
77
+ return parsedChildSpecProperties;
78
+ }, {});
79
+ return {
80
+ type: SpecTypes.Object,
81
+ properties,
82
+ viewSpec: {
83
+ type: 'oneof_custom',
84
+ layout: 'row',
85
+ layoutTitle: name,
86
+ oneOfParams: {
87
+ toggler: 'select',
88
+ },
89
+ },
90
+ required,
91
+ };
92
+ };
93
+ oneOfParser = ({ data, name, required }) => {
94
+ const requiredProperties = this.getRequiredProperties(data);
95
+ const properties = data.oneOf &&
96
+ data.oneOf.reduce((result, propertyData, index) => {
97
+ const propertyName = propertyData?.optionName
98
+ ? propertyData?.optionName
99
+ : `${name}_${index}`;
100
+ result[propertyName] = this.parseSchemaProperty({
101
+ data: propertyData,
102
+ name: propertyName,
103
+ required: requiredProperties.includes(propertyName),
104
+ });
105
+ return result;
106
+ }, {});
107
+ return {
108
+ type: SpecTypes.Object,
109
+ properties,
110
+ required,
111
+ viewSpec: getOneOfViewSpec({ layoutTitle: name }),
112
+ };
113
+ };
114
+ arrayParser = ({ data, name }) => {
115
+ const items = data.items && this.parseSchemaProperty({ data: data.items, name });
116
+ return {
117
+ ...data,
118
+ type: SpecTypes.Array,
119
+ items,
120
+ viewSpec: getArrayViewSpec({ layoutTitle: name }),
121
+ };
122
+ };
123
+ objectParser = ({ data, name, required }) => {
124
+ const requiredProperties = this.getRequiredProperties(data);
125
+ const properties = data.properties &&
126
+ Object.entries(data.properties).reduce((result, [propertyName, propertyData]) => {
127
+ result[propertyName] = this.parseSchemaProperty({
128
+ data: propertyData,
129
+ name: propertyName,
130
+ required: requiredProperties.includes(propertyName),
131
+ });
132
+ return result;
133
+ }, {});
134
+ return {
135
+ ...data,
136
+ type: SpecTypes.Object,
137
+ properties,
138
+ viewSpec: getObjectViewSpec({ properties, layoutTitle: name }),
139
+ required,
140
+ };
141
+ };
142
+ primitiveParser = ({ data, name, required }) => {
143
+ return {
144
+ ...data,
145
+ type: data.type,
146
+ required,
147
+ defaultValue: data.default,
148
+ viewSpec: getPrimitiveViewSpec({ layoutTitle: name, data }),
149
+ validator: 'base',
150
+ };
151
+ };
152
+ //eslint-disable-next-line @typescript-eslint/member-ordering
153
+ schemaParserMap = {
154
+ [ParserType.Object]: this.objectParser,
155
+ [ParserType.Array]: this.arrayParser,
156
+ [ParserType.Primitive]: this.primitiveParser,
157
+ [ParserType.OneOf]: this.oneOfParser,
158
+ [ParserType.Children]: this.childrenParser,
159
+ };
131
160
  parseSchemaProperty({ data, name, required }) {
132
161
  const parserType = detectParserType(data);
133
162
  const parser = this.schemaParserMap[parserType];
134
- return Object.assign(Object.assign({}, parser({ data, name, required })), {
163
+ return {
164
+ ...parser({ data, name, required }),
135
165
  //save json schema from constructor to compare with incoming intial data inside oneOf form fields
136
- __schema: data });
166
+ __schema: data,
167
+ };
137
168
  }
138
169
  getBlocksSpec() {
139
170
  const blocks = this.definitions.children;
140
171
  return Object.entries(blocks).reduce((result, [blockName, blockData]) => {
141
172
  result[blockName] = this.parseSchemaProperty({
142
173
  name: blockName,
143
- data: Object.assign({}, blockData),
174
+ data: { ...blockData },
144
175
  required: true,
145
176
  });
146
177
  return result;
147
178
  }, {});
148
179
  }
149
180
  getPageSpec() {
150
- var _a;
151
181
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
152
- const _b = ((_a = this.schema) === null || _a === void 0 ? void 0 : _a.properties) || {}, { blocks } = _b, pageSchema = __rest(_b, ["blocks"]);
182
+ const { blocks, ...pageSchema } = this.schema?.properties || {};
153
183
  const requiredProperties = this.getRequiredProperties(this.schema);
154
184
  const properties = Object.entries(pageSchema).reduce((result, [propertyName, propertyData]) => {
155
185
  result[propertyName] = this.parseSchemaProperty({
@@ -176,7 +206,7 @@ class FormSpecParser {
176
206
  this.schema = schema;
177
207
  if (schema.definitions) {
178
208
  this.definitions = Object.entries(schema.definitions).reduce((result, [childType, childSpec]) => {
179
- result[childType] = childSpec === null || childSpec === void 0 ? void 0 : childSpec.selectCases;
209
+ result[childType] = childSpec?.selectCases;
180
210
  return result;
181
211
  }, {});
182
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["editor/dynamic-forms-custom/parser/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */\nimport {ArraySpec, ObjectSpec, SpecTypes} from '@gravity-ui/dynamic-forms';\n\nimport {Schema, SchemaDefinitions} from '../../../schema';\n\nimport {ParserType, detectParserType} from './detect';\nimport {\n BlocksSpec,\n CustomSpec,\n FormSpecs,\n PageSpec,\n SchemaParser,\n SchemaParserParams,\n Spec,\n} from './types';\nimport {getArrayViewSpec, getObjectViewSpec, getOneOfViewSpec, getPrimitiveViewSpec} from './views';\n\nclass FormSpecParser {\n private schema: Schema = {};\n private definitions: SchemaDefinitions = {};\n\n /**\n * Transforms page-constructor json schema into dynamic-forms specs for each block\n *\n * @param schema {Schema} - page-constructor json schema\n * @returns {FormSpecs} - object containig dynamic-forms specs for each constructor block\n */\n parse(schema: Schema) {\n this.init(schema);\n\n return this.getFormSpec();\n }\n\n private getChildrenSpec = (data: Schema) => {\n const childrenType = (data.items as Schema)?.$ref?.split('/')?.pop();\n\n return this.definitions[childrenType as keyof typeof this.definitions];\n };\n\n private getRequiredProperties = (data: Schema) =>\n Array.isArray(data.required) ? data.required : [];\n\n private childrenParser: SchemaParser = ({data, name, required}) => {\n const childSpec = this.getChildrenSpec(data);\n\n const properties =\n childSpec &&\n Object.entries(childSpec).reduce(\n (parsedChildSpecProperties, [childName, childSchema]: [string, Schema]) => {\n const childRequiredProperties = this.getRequiredProperties(childSchema);\n const childProperies =\n childSchema.properties &&\n Object.entries(childSchema.properties).reduce(\n (parsedChildProperties, [childPropertyName, childPropertyData]) => {\n parsedChildProperties[childPropertyName] = this.parseSchemaProperty(\n {\n data: childPropertyData,\n name: childPropertyName,\n required:\n childRequiredProperties.includes(childPropertyName),\n },\n );\n\n return parsedChildProperties;\n },\n {} as Record<string, CustomSpec>,\n );\n\n const childJsonSchema = {\n ...childSchema,\n properties: {\n ...childSchema.properties,\n type: {\n type: SpecTypes.String,\n enum: [childName],\n },\n },\n };\n\n parsedChildSpecProperties[childName] = {\n type: SpecTypes.Array,\n items: {\n ...childSchema,\n type: SpecTypes.Object,\n properties: {\n ...childProperies,\n type: {\n type: SpecTypes.String,\n defaultValue: childName,\n viewSpec: {\n type: 'hidden',\n },\n },\n },\n viewSpec:\n childProperies &&\n getObjectViewSpec({\n properties: childProperies,\n layoutTitle: childName,\n }),\n __schema: childJsonSchema,\n } as ObjectSpec,\n required: false,\n viewSpec: getArrayViewSpec({layoutTitle: childName}),\n __schema: {\n type: SpecTypes.Array,\n items: childJsonSchema,\n },\n } as ArraySpec;\n\n return parsedChildSpecProperties;\n },\n {} as Record<string, CustomSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n viewSpec: {\n type: 'oneof_custom',\n layout: 'row',\n layoutTitle: name,\n oneOfParams: {\n toggler: 'select',\n },\n },\n required,\n } as CustomSpec;\n };\n\n private oneOfParser: SchemaParser = ({data, name, required}): Spec => {\n const requiredProperties = this.getRequiredProperties(data);\n const properties =\n data.oneOf &&\n data.oneOf.reduce(\n (result: Record<string, Spec>, propertyData, index) => {\n const propertyName = propertyData?.optionName\n ? propertyData?.optionName\n : `${name}_${index}`;\n result[propertyName] = this.parseSchemaProperty({\n data: propertyData,\n name: propertyName,\n required: requiredProperties.includes(propertyName),\n });\n return result;\n },\n {} as Record<string, ObjectSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n required,\n viewSpec: getOneOfViewSpec({layoutTitle: name}),\n } as ObjectSpec;\n };\n\n private arrayParser: SchemaParser = ({data, name}): Spec => {\n const items = data.items && this.parseSchemaProperty({data: data.items, name});\n\n return {\n ...data,\n type: SpecTypes.Array,\n items,\n viewSpec: getArrayViewSpec({layoutTitle: name}),\n } as ArraySpec;\n };\n\n private objectParser: SchemaParser = ({data, name, required}): Spec => {\n const requiredProperties = this.getRequiredProperties(data);\n const properties =\n data.properties &&\n Object.entries(data.properties).reduce(\n (result, [propertyName, propertyData]) => {\n result[propertyName] = this.parseSchemaProperty({\n data: propertyData,\n name: propertyName,\n required: requiredProperties.includes(propertyName),\n });\n\n return result;\n },\n {} as Record<string, Spec>,\n );\n\n return {\n ...data,\n type: SpecTypes.Object,\n properties,\n viewSpec: getObjectViewSpec({properties, layoutTitle: name}),\n required,\n } as ObjectSpec;\n };\n\n private primitiveParser: SchemaParser = ({data, name, required}): Spec => {\n return {\n ...data,\n type: data.type as SpecTypes,\n required,\n defaultValue: data.default,\n viewSpec: getPrimitiveViewSpec({layoutTitle: name, data}),\n validator: 'base',\n } as Spec;\n };\n\n //eslint-disable-next-line @typescript-eslint/member-ordering\n private schemaParserMap = {\n [ParserType.Object]: this.objectParser,\n [ParserType.Array]: this.arrayParser,\n [ParserType.Primitive]: this.primitiveParser,\n [ParserType.OneOf]: this.oneOfParser,\n [ParserType.Children]: this.childrenParser,\n };\n\n private parseSchemaProperty({data, name, required}: SchemaParserParams): CustomSpec {\n const parserType = detectParserType(data);\n const parser = this.schemaParserMap[parserType];\n\n return {\n ...parser({data, name, required}),\n //save json schema from constructor to compare with incoming intial data inside oneOf form fields\n __schema: data,\n };\n }\n\n private getBlocksSpec() {\n const blocks = this.definitions.children;\n\n return Object.entries(blocks).reduce((result, [blockName, blockData]) => {\n result[blockName] = this.parseSchemaProperty({\n name: blockName,\n data: {...blockData},\n required: true,\n });\n\n return result;\n }, {} as BlocksSpec);\n }\n\n private getPageSpec() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {blocks, ...pageSchema} = this.schema?.properties || {};\n const requiredProperties = this.getRequiredProperties(this.schema);\n\n const properties = Object.entries(pageSchema).reduce(\n (result, [propertyName, propertyData]) => {\n result[propertyName] = this.parseSchemaProperty({\n name: propertyName,\n data: propertyData,\n required: requiredProperties.includes(propertyName),\n });\n\n return result;\n },\n {} as Record<string, CustomSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n viewSpec: getObjectViewSpec({properties, layout: 'section'}),\n required: true,\n } as PageSpec;\n }\n\n private getFormSpec() {\n return {\n blocks: this.getBlocksSpec(),\n page: this.getPageSpec(),\n } as FormSpecs;\n }\n\n private init(schema: Schema) {\n this.schema = schema;\n\n if (schema.definitions) {\n this.definitions = Object.entries(schema.definitions).reduce(\n (result, [childType, childSpec]) => {\n result[childType] = childSpec?.selectCases;\n\n return result;\n },\n {} as SchemaDefinitions,\n );\n }\n }\n}\n\nexport default new FormSpecParser();\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["editor/dynamic-forms-custom/parser/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */\nimport {ArraySpec, ObjectSpec, SpecTypes} from '@gravity-ui/dynamic-forms';\n\nimport {Schema, SchemaDefinitions} from '../../../schema';\n\nimport {ParserType, detectParserType} from './detect';\nimport {\n BlocksSpec,\n CustomSpec,\n FormSpecs,\n PageSpec,\n SchemaParser,\n SchemaParserParams,\n Spec,\n} from './types';\nimport {getArrayViewSpec, getObjectViewSpec, getOneOfViewSpec, getPrimitiveViewSpec} from './views';\n\nclass FormSpecParser {\n private schema: Schema = {};\n private definitions: SchemaDefinitions = {};\n\n /**\n * Transforms page-constructor json schema into dynamic-forms specs for each block\n *\n * @param schema {Schema} - page-constructor json schema\n * @returns {FormSpecs} - object containig dynamic-forms specs for each constructor block\n */\n parse(schema: Schema) {\n this.init(schema);\n\n return this.getFormSpec();\n }\n\n private getChildrenSpec = (data: Schema) => {\n const childrenType = (data.items as Schema)?.$ref?.split('/')?.pop();\n\n return this.definitions[childrenType as keyof typeof this.definitions];\n };\n\n private getRequiredProperties = (data: Schema) =>\n Array.isArray(data.required) ? data.required : [];\n\n private childrenParser: SchemaParser = ({data, name, required}) => {\n const childSpec = this.getChildrenSpec(data);\n\n const properties =\n childSpec &&\n Object.entries(childSpec).reduce(\n (parsedChildSpecProperties, [childName, childSchema]: [string, Schema]) => {\n const childRequiredProperties = this.getRequiredProperties(childSchema);\n const childProperies =\n childSchema.properties &&\n Object.entries(childSchema.properties).reduce(\n (parsedChildProperties, [childPropertyName, childPropertyData]) => {\n parsedChildProperties[childPropertyName] = this.parseSchemaProperty(\n {\n data: childPropertyData,\n name: childPropertyName,\n required:\n childRequiredProperties.includes(childPropertyName),\n },\n );\n\n return parsedChildProperties;\n },\n {} as Record<string, CustomSpec>,\n );\n\n const childJsonSchema = {\n ...childSchema,\n properties: {\n ...childSchema.properties,\n type: {\n type: SpecTypes.String,\n enum: [childName],\n },\n },\n };\n\n parsedChildSpecProperties[childName] = {\n type: SpecTypes.Array,\n items: {\n ...childSchema,\n type: SpecTypes.Object,\n properties: {\n ...childProperies,\n type: {\n type: SpecTypes.String,\n defaultValue: childName,\n viewSpec: {\n type: 'hidden',\n },\n },\n },\n viewSpec:\n childProperies &&\n getObjectViewSpec({\n properties: childProperies,\n layoutTitle: childName,\n }),\n __schema: childJsonSchema,\n } as ObjectSpec,\n required: false,\n viewSpec: getArrayViewSpec({layoutTitle: childName}),\n __schema: {\n type: SpecTypes.Array,\n items: childJsonSchema,\n },\n } as ArraySpec;\n\n return parsedChildSpecProperties;\n },\n {} as Record<string, CustomSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n viewSpec: {\n type: 'oneof_custom',\n layout: 'row',\n layoutTitle: name,\n oneOfParams: {\n toggler: 'select',\n },\n },\n required,\n } as CustomSpec;\n };\n\n private oneOfParser: SchemaParser = ({data, name, required}): Spec => {\n const requiredProperties = this.getRequiredProperties(data);\n const properties =\n data.oneOf &&\n data.oneOf.reduce(\n (result: Record<string, Spec>, propertyData, index) => {\n const propertyName = propertyData?.optionName\n ? propertyData?.optionName\n : `${name}_${index}`;\n result[propertyName] = this.parseSchemaProperty({\n data: propertyData,\n name: propertyName,\n required: requiredProperties.includes(propertyName),\n });\n return result;\n },\n {} as Record<string, ObjectSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n required,\n viewSpec: getOneOfViewSpec({layoutTitle: name}),\n } as ObjectSpec;\n };\n\n private arrayParser: SchemaParser = ({data, name}): Spec => {\n const items = data.items && this.parseSchemaProperty({data: data.items, name});\n\n return {\n ...data,\n type: SpecTypes.Array,\n items,\n viewSpec: getArrayViewSpec({layoutTitle: name}),\n } as ArraySpec;\n };\n\n private objectParser: SchemaParser = ({data, name, required}): Spec => {\n const requiredProperties = this.getRequiredProperties(data);\n const properties =\n data.properties &&\n Object.entries(data.properties).reduce(\n (result, [propertyName, propertyData]) => {\n result[propertyName] = this.parseSchemaProperty({\n data: propertyData,\n name: propertyName,\n required: requiredProperties.includes(propertyName),\n });\n\n return result;\n },\n {} as Record<string, Spec>,\n );\n\n return {\n ...data,\n type: SpecTypes.Object,\n properties,\n viewSpec: getObjectViewSpec({properties, layoutTitle: name}),\n required,\n } as ObjectSpec;\n };\n\n private primitiveParser: SchemaParser = ({data, name, required}): Spec => {\n return {\n ...data,\n type: data.type as SpecTypes,\n required,\n defaultValue: data.default,\n viewSpec: getPrimitiveViewSpec({layoutTitle: name, data}),\n validator: 'base',\n } as Spec;\n };\n\n //eslint-disable-next-line @typescript-eslint/member-ordering\n private schemaParserMap = {\n [ParserType.Object]: this.objectParser,\n [ParserType.Array]: this.arrayParser,\n [ParserType.Primitive]: this.primitiveParser,\n [ParserType.OneOf]: this.oneOfParser,\n [ParserType.Children]: this.childrenParser,\n };\n\n private parseSchemaProperty({data, name, required}: SchemaParserParams): CustomSpec {\n const parserType = detectParserType(data);\n const parser = this.schemaParserMap[parserType];\n\n return {\n ...parser({data, name, required}),\n //save json schema from constructor to compare with incoming intial data inside oneOf form fields\n __schema: data,\n };\n }\n\n private getBlocksSpec() {\n const blocks = this.definitions.children;\n\n return Object.entries(blocks).reduce((result, [blockName, blockData]) => {\n result[blockName] = this.parseSchemaProperty({\n name: blockName,\n data: {...blockData},\n required: true,\n });\n\n return result;\n }, {} as BlocksSpec);\n }\n\n private getPageSpec() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {blocks, ...pageSchema} = this.schema?.properties || {};\n const requiredProperties = this.getRequiredProperties(this.schema);\n\n const properties = Object.entries(pageSchema).reduce(\n (result, [propertyName, propertyData]) => {\n result[propertyName] = this.parseSchemaProperty({\n name: propertyName,\n data: propertyData,\n required: requiredProperties.includes(propertyName),\n });\n\n return result;\n },\n {} as Record<string, CustomSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n viewSpec: getObjectViewSpec({properties, layout: 'section'}),\n required: true,\n } as PageSpec;\n }\n\n private getFormSpec() {\n return {\n blocks: this.getBlocksSpec(),\n page: this.getPageSpec(),\n } as FormSpecs;\n }\n\n private init(schema: Schema) {\n this.schema = schema;\n\n if (schema.definitions) {\n this.definitions = Object.entries(schema.definitions).reduce(\n (result, [childType, childSpec]) => {\n result[childType] = childSpec?.selectCases;\n\n return result;\n },\n {} as SchemaDefinitions,\n );\n }\n }\n}\n\nexport default new FormSpecParser();\n"]}
@@ -1,4 +1,3 @@
1
- import { __rest } from "tslib";
2
1
  export const getOneOfViewSpec = ({ layoutTitle }) => {
3
2
  return {
4
3
  type: 'oneof_custom',
@@ -25,9 +24,8 @@ export const getArrayViewSpec = ({ layoutTitle }) => ({
25
24
  layoutOpen: true,
26
25
  itemLabel: 'Add Item',
27
26
  });
28
- export const getPrimitiveViewSpec = (_a) => {
29
- var { layoutTitle } = _a, data = __rest(_a, ["layoutTitle"]);
30
- let type = (data === null || data === void 0 ? void 0 : data.inputType) || 'base';
27
+ export const getPrimitiveViewSpec = ({ layoutTitle, ...data }) => {
28
+ let type = data?.inputType || 'base';
31
29
  if (data && 'enum' in data && data.enum) {
32
30
  type = 'select';
33
31
  }