@gravity-ui/page-constructor 6.3.2-alpha.6 → 6.3.2-alpha.9

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 (397) hide show
  1. package/build/cjs/blocks/Banner/index.js +1 -1
  2. package/build/cjs/blocks/Banner/index.js.map +1 -1
  3. package/build/cjs/blocks/CardLayout/index.js +1 -1
  4. package/build/cjs/blocks/CardLayout/index.js.map +1 -1
  5. package/build/cjs/blocks/Companies/index.js +1 -1
  6. package/build/cjs/blocks/Companies/index.js.map +1 -1
  7. package/build/cjs/blocks/ContentLayout/index.js +1 -1
  8. package/build/cjs/blocks/ContentLayout/index.js.map +1 -1
  9. package/build/cjs/blocks/ExtendedFeatures/index.js +1 -1
  10. package/build/cjs/blocks/ExtendedFeatures/index.js.map +1 -1
  11. package/build/cjs/blocks/FilterBlock/index.js +1 -1
  12. package/build/cjs/blocks/FilterBlock/index.js.map +1 -1
  13. package/build/cjs/blocks/Form/index.js +1 -1
  14. package/build/cjs/blocks/Form/index.js.map +1 -1
  15. package/build/cjs/blocks/Header/index.js +1 -1
  16. package/build/cjs/blocks/Header/index.js.map +1 -1
  17. package/build/cjs/blocks/HeaderSlider/index.js +1 -1
  18. package/build/cjs/blocks/HeaderSlider/index.js.map +1 -1
  19. package/build/cjs/blocks/Icons/index.js +1 -1
  20. package/build/cjs/blocks/Icons/index.js.map +1 -1
  21. package/build/cjs/blocks/Info/index.js +1 -1
  22. package/build/cjs/blocks/Info/index.js.map +1 -1
  23. package/build/cjs/blocks/Map/index.js +1 -1
  24. package/build/cjs/blocks/Map/index.js.map +1 -1
  25. package/build/cjs/blocks/Media/index.js +1 -1
  26. package/build/cjs/blocks/Media/index.js.map +1 -1
  27. package/build/cjs/blocks/PromoFeaturesBlock/index.js +1 -1
  28. package/build/cjs/blocks/PromoFeaturesBlock/index.js.map +1 -1
  29. package/build/cjs/blocks/Questions/index.js +1 -1
  30. package/build/cjs/blocks/Questions/index.js.map +1 -1
  31. package/build/cjs/blocks/Share/index.js +1 -1
  32. package/build/cjs/blocks/Share/index.js.map +1 -1
  33. package/build/cjs/blocks/Slider/index.js +1 -1
  34. package/build/cjs/blocks/Slider/index.js.map +1 -1
  35. package/build/cjs/blocks/Table/index.js +1 -1
  36. package/build/cjs/blocks/Table/index.js.map +1 -1
  37. package/build/cjs/blocks/Tabs/index.js +1 -1
  38. package/build/cjs/blocks/Tabs/index.js.map +1 -1
  39. package/build/cjs/components/FullscreenMedia/FullscreenMedia.css +1 -3
  40. package/build/cjs/containers/PageConstructor/PageConstructor.css +1 -1
  41. package/build/cjs/editor-v2/components/BlockCard/BlockCard.css +27 -0
  42. package/build/cjs/editor-v2/components/BlockCard/BlockCard.d.ts +9 -0
  43. package/build/cjs/editor-v2/components/BlockCard/BlockCard.js +17 -0
  44. package/build/cjs/editor-v2/components/BlockCard/BlockCard.js.map +1 -0
  45. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.css +5 -0
  46. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.d.ts +4 -3
  47. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.js +20 -10
  48. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.js.map +1 -1
  49. package/build/cjs/editor-v2/components/DynamicForm/FieldBase/FieldBase.css +18 -9
  50. package/build/cjs/editor-v2/components/DynamicForm/FieldBase/FieldBase.js +3 -3
  51. package/build/cjs/editor-v2/components/DynamicForm/FieldBase/FieldBase.js.map +1 -1
  52. package/build/cjs/editor-v2/components/DynamicForm/Fields/AnyOf/AnyOf.js +1 -1
  53. package/build/cjs/editor-v2/components/DynamicForm/Fields/AnyOf/AnyOf.js.map +1 -1
  54. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.css +2 -1
  55. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.js +2 -2
  56. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.js.map +1 -1
  57. package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.d.ts +1 -1
  58. package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.js +1 -2
  59. package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.js.map +1 -1
  60. package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.css +1 -1
  61. package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js +7 -7
  62. package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js.map +1 -1
  63. package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.d.ts +2 -2
  64. package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.js +3 -1
  65. package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.js.map +1 -1
  66. package/build/cjs/editor-v2/components/MessageCard/MessageCard.css +51 -0
  67. package/build/cjs/editor-v2/components/MessageCard/MessageCard.d.ts +10 -0
  68. package/build/cjs/editor-v2/components/MessageCard/MessageCard.js +20 -0
  69. package/build/cjs/editor-v2/components/MessageCard/MessageCard.js.map +1 -0
  70. package/build/cjs/editor-v2/components/MessageCard/index.d.ts +2 -0
  71. package/build/cjs/editor-v2/components/MessageCard/index.js +6 -0
  72. package/build/cjs/editor-v2/components/MessageCard/index.js.map +1 -0
  73. package/build/cjs/editor-v2/components/Panels/Panels.css +1 -1
  74. package/build/cjs/editor-v2/components/Sidebar/Sidebar.css +40 -6
  75. package/build/cjs/editor-v2/components/Sidebar/Sidebar.d.ts +2 -2
  76. package/build/cjs/editor-v2/components/Sidebar/Sidebar.js.map +1 -1
  77. package/build/cjs/editor-v2/components/Tabs/Tabs.css +69 -5
  78. package/build/cjs/editor-v2/components/Tabs/Tabs.d.ts +3 -2
  79. package/build/cjs/editor-v2/components/Tabs/Tabs.js +16 -12
  80. package/build/cjs/editor-v2/components/Tabs/Tabs.js.map +1 -1
  81. package/build/cjs/editor-v2/constants/messages.d.ts +10 -0
  82. package/build/cjs/editor-v2/constants/messages.js +14 -0
  83. package/build/cjs/editor-v2/constants/messages.js.map +1 -0
  84. package/build/cjs/editor-v2/containers/BlockConfigForm/BlockConfigForm.css +3 -2
  85. package/build/cjs/editor-v2/containers/BlockConfigForm/BlockConfigForm.js +5 -3
  86. package/build/cjs/editor-v2/containers/BlockConfigForm/BlockConfigForm.js.map +1 -1
  87. package/build/cjs/editor-v2/containers/BlocksList/BlocksList.css +37 -27
  88. package/build/cjs/editor-v2/containers/BlocksList/BlocksList.d.ts +4 -1
  89. package/build/cjs/editor-v2/containers/BlocksList/BlocksList.js +46 -6
  90. package/build/cjs/editor-v2/containers/BlocksList/BlocksList.js.map +1 -1
  91. package/build/cjs/editor-v2/containers/GlobalConfig/GlobalConfig.css +0 -3
  92. package/build/cjs/editor-v2/containers/GlobalConfig/GlobalConfig.js +1 -1
  93. package/build/cjs/editor-v2/containers/GlobalConfig/GlobalConfig.js.map +1 -1
  94. package/build/cjs/editor-v2/containers/MiddleScreen/MiddleScreen.css +39 -2
  95. package/build/cjs/editor-v2/containers/MiddleScreen/MiddleScreen.js +8 -4
  96. package/build/cjs/editor-v2/containers/MiddleScreen/MiddleScreen.js.map +1 -1
  97. package/build/cjs/editor-v2/containers/Overlay/Overlay.js +14 -4
  98. package/build/cjs/editor-v2/containers/Overlay/Overlay.js.map +1 -1
  99. package/build/cjs/editor-v2/containers/Source/Source.css +1 -0
  100. package/build/cjs/editor-v2/containers/Source/Source.js +1 -1
  101. package/build/cjs/editor-v2/containers/Source/Source.js.map +1 -1
  102. package/build/cjs/editor-v2/containers/SourceCode/SourceCode.css +58 -9
  103. package/build/cjs/editor-v2/containers/SourceCode/SourceCode.d.ts +1 -2
  104. package/build/cjs/editor-v2/containers/SourceCode/SourceCode.js +12 -2
  105. package/build/cjs/editor-v2/containers/SourceCode/SourceCode.js.map +1 -1
  106. package/build/cjs/editor-v2/containers/SourceCode/UpdateModal/UpdateModal.css +6 -0
  107. package/build/cjs/editor-v2/containers/SourceCode/UpdateModal/UpdateModal.d.ts +2 -1
  108. package/build/cjs/editor-v2/containers/SourceCode/UpdateModal/UpdateModal.js +8 -3
  109. package/build/cjs/editor-v2/containers/SourceCode/UpdateModal/UpdateModal.js.map +1 -1
  110. package/build/cjs/editor-v2/containers/Tree/Tree.d.ts +4 -1
  111. package/build/cjs/editor-v2/containers/Tree/Tree.js +2 -3
  112. package/build/cjs/editor-v2/containers/Tree/Tree.js.map +1 -1
  113. package/build/cjs/editor-v2/containers/ViewSwitches/ViewSwitches.js +3 -3
  114. package/build/cjs/editor-v2/containers/ViewSwitches/ViewSwitches.js.map +1 -1
  115. package/build/cjs/editor-v2/hooks/useEditorTabs.d.ts +11 -5
  116. package/build/cjs/editor-v2/hooks/useEditorTabs.js +14 -18
  117. package/build/cjs/editor-v2/hooks/useEditorTabs.js.map +1 -1
  118. package/build/cjs/editor-v2/utils/index.js +1 -1
  119. package/build/cjs/editor-v2/utils/index.js.map +1 -1
  120. package/build/cjs/form-generator/components/AddPropertyButton/AddPropertyButton.css +3 -0
  121. package/build/cjs/form-generator/components/AddPropertyButton/AddPropertyButton.d.ts +13 -0
  122. package/build/cjs/form-generator/components/AddPropertyButton/AddPropertyButton.js +16 -0
  123. package/build/cjs/form-generator/components/AddPropertyButton/AddPropertyButton.js.map +1 -0
  124. package/build/cjs/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.css +23 -0
  125. package/build/cjs/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.d.ts +11 -0
  126. package/build/cjs/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.js +27 -0
  127. package/build/cjs/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.js.map +1 -0
  128. package/build/cjs/form-generator/components/ConfigRow/ConfigRow.css +12 -0
  129. package/build/cjs/form-generator/components/ConfigRow/ConfigRow.d.ts +8 -0
  130. package/build/cjs/form-generator/components/ConfigRow/ConfigRow.js +17 -0
  131. package/build/cjs/form-generator/components/ConfigRow/ConfigRow.js.map +1 -0
  132. package/build/cjs/form-generator/components/FieldCard/FieldCard.css +15 -0
  133. package/build/cjs/form-generator/components/FieldCard/FieldCard.d.ts +8 -0
  134. package/build/cjs/form-generator/components/FieldCard/FieldCard.js +57 -0
  135. package/build/cjs/form-generator/components/FieldCard/FieldCard.js.map +1 -0
  136. package/build/cjs/form-generator/components/FieldHeader/FieldHeader.css +6 -0
  137. package/build/cjs/form-generator/components/FieldHeader/FieldHeader.d.ts +9 -0
  138. package/build/cjs/form-generator/components/FieldHeader/FieldHeader.js +11 -0
  139. package/build/cjs/form-generator/components/FieldHeader/FieldHeader.js.map +1 -0
  140. package/build/cjs/form-generator/components/FormBuilder/FormBuilder.css +93 -0
  141. package/build/cjs/form-generator/components/FormBuilder/FormBuilder.d.ts +8 -0
  142. package/build/cjs/form-generator/components/FormBuilder/FormBuilder.js +64 -0
  143. package/build/cjs/form-generator/components/FormBuilder/FormBuilder.js.map +1 -0
  144. package/build/cjs/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.css +6 -0
  145. package/build/cjs/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.d.ts +11 -0
  146. package/build/cjs/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.js +16 -0
  147. package/build/cjs/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.js.map +1 -0
  148. package/build/cjs/form-generator/components/OptionHeader/OptionHeader.css +6 -0
  149. package/build/cjs/form-generator/components/OptionHeader/OptionHeader.d.ts +6 -0
  150. package/build/cjs/form-generator/components/OptionHeader/OptionHeader.js +11 -0
  151. package/build/cjs/form-generator/components/OptionHeader/OptionHeader.js.map +1 -0
  152. package/build/cjs/form-generator/components/OptionsRenderer/OptionsRenderer.css +31 -0
  153. package/build/cjs/form-generator/components/OptionsRenderer/OptionsRenderer.d.ts +11 -0
  154. package/build/cjs/form-generator/components/OptionsRenderer/OptionsRenderer.js +24 -0
  155. package/build/cjs/form-generator/components/OptionsRenderer/OptionsRenderer.js.map +1 -0
  156. package/build/cjs/form-generator/components/SectionHeader/SectionHeader.css +3 -0
  157. package/build/cjs/form-generator/components/SectionHeader/SectionHeader.d.ts +7 -0
  158. package/build/cjs/form-generator/components/SectionHeader/SectionHeader.js +11 -0
  159. package/build/cjs/form-generator/components/SectionHeader/SectionHeader.js.map +1 -0
  160. package/build/cjs/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.css +36 -0
  161. package/build/cjs/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.d.ts +7 -0
  162. package/build/cjs/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.js +65 -0
  163. package/build/cjs/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.js.map +1 -0
  164. package/build/cjs/form-generator/hooks/FormContext.d.ts +7 -0
  165. package/build/cjs/form-generator/hooks/FormContext.js +22 -0
  166. package/build/cjs/form-generator/hooks/FormContext.js.map +1 -0
  167. package/build/cjs/form-generator/hooks/types.d.ts +48 -0
  168. package/build/cjs/form-generator/hooks/types.js +3 -0
  169. package/build/cjs/form-generator/hooks/types.js.map +1 -0
  170. package/build/cjs/form-generator/hooks/useFormFields.d.ts +18 -0
  171. package/build/cjs/form-generator/hooks/useFormFields.js +570 -0
  172. package/build/cjs/form-generator/hooks/useFormFields.js.map +1 -0
  173. package/build/cjs/form-generator/index.d.ts +7 -0
  174. package/build/cjs/form-generator/index.js +11 -0
  175. package/build/cjs/form-generator/index.js.map +1 -0
  176. package/build/cjs/hooks/usePCEditorBlockMouseEvents.js +1 -0
  177. package/build/cjs/hooks/usePCEditorBlockMouseEvents.js.map +1 -1
  178. package/build/cjs/sub-blocks/BackgroundCard/index.js +1 -1
  179. package/build/cjs/sub-blocks/BackgroundCard/index.js.map +1 -1
  180. package/build/cjs/sub-blocks/BannerCard/index.js +1 -1
  181. package/build/cjs/sub-blocks/BannerCard/index.js.map +1 -1
  182. package/build/cjs/sub-blocks/BasicCard/index.js +1 -1
  183. package/build/cjs/sub-blocks/BasicCard/index.js.map +1 -1
  184. package/build/cjs/sub-blocks/Content/index.js +1 -1
  185. package/build/cjs/sub-blocks/Content/index.js.map +1 -1
  186. package/build/cjs/sub-blocks/ImageCard/index.js +1 -1
  187. package/build/cjs/sub-blocks/ImageCard/index.js.map +1 -1
  188. package/build/cjs/sub-blocks/LayoutItem/index.js +1 -1
  189. package/build/cjs/sub-blocks/LayoutItem/index.js.map +1 -1
  190. package/build/cjs/sub-blocks/MediaCard/index.js +1 -1
  191. package/build/cjs/sub-blocks/MediaCard/index.js.map +1 -1
  192. package/build/cjs/sub-blocks/PriceCard/index.js +1 -1
  193. package/build/cjs/sub-blocks/PriceCard/index.js.map +1 -1
  194. package/build/cjs/sub-blocks/PriceDetailed/index.js +1 -1
  195. package/build/cjs/sub-blocks/PriceDetailed/index.js.map +1 -1
  196. package/build/cjs/sub-blocks/Quote/index.js +1 -1
  197. package/build/cjs/sub-blocks/Quote/index.js.map +1 -1
  198. package/build/esm/blocks/Banner/index.js +1 -1
  199. package/build/esm/blocks/Banner/index.js.map +1 -1
  200. package/build/esm/blocks/CardLayout/index.js +1 -1
  201. package/build/esm/blocks/CardLayout/index.js.map +1 -1
  202. package/build/esm/blocks/Companies/index.js +1 -1
  203. package/build/esm/blocks/Companies/index.js.map +1 -1
  204. package/build/esm/blocks/ContentLayout/index.js +1 -1
  205. package/build/esm/blocks/ContentLayout/index.js.map +1 -1
  206. package/build/esm/blocks/ExtendedFeatures/index.js +1 -1
  207. package/build/esm/blocks/ExtendedFeatures/index.js.map +1 -1
  208. package/build/esm/blocks/FilterBlock/index.js +1 -1
  209. package/build/esm/blocks/FilterBlock/index.js.map +1 -1
  210. package/build/esm/blocks/Form/index.js +1 -1
  211. package/build/esm/blocks/Form/index.js.map +1 -1
  212. package/build/esm/blocks/Header/index.js +1 -1
  213. package/build/esm/blocks/Header/index.js.map +1 -1
  214. package/build/esm/blocks/HeaderSlider/index.js +1 -1
  215. package/build/esm/blocks/HeaderSlider/index.js.map +1 -1
  216. package/build/esm/blocks/Icons/index.js +1 -1
  217. package/build/esm/blocks/Icons/index.js.map +1 -1
  218. package/build/esm/blocks/Info/index.js +1 -1
  219. package/build/esm/blocks/Info/index.js.map +1 -1
  220. package/build/esm/blocks/Map/index.js +1 -1
  221. package/build/esm/blocks/Map/index.js.map +1 -1
  222. package/build/esm/blocks/Media/index.js +1 -1
  223. package/build/esm/blocks/Media/index.js.map +1 -1
  224. package/build/esm/blocks/PromoFeaturesBlock/index.js +1 -1
  225. package/build/esm/blocks/PromoFeaturesBlock/index.js.map +1 -1
  226. package/build/esm/blocks/Questions/index.js +1 -1
  227. package/build/esm/blocks/Questions/index.js.map +1 -1
  228. package/build/esm/blocks/Share/index.js +1 -1
  229. package/build/esm/blocks/Share/index.js.map +1 -1
  230. package/build/esm/blocks/Slider/index.js +1 -1
  231. package/build/esm/blocks/Slider/index.js.map +1 -1
  232. package/build/esm/blocks/Table/index.js +1 -1
  233. package/build/esm/blocks/Table/index.js.map +1 -1
  234. package/build/esm/blocks/Tabs/index.js +1 -1
  235. package/build/esm/blocks/Tabs/index.js.map +1 -1
  236. package/build/esm/components/FullscreenMedia/FullscreenMedia.css +1 -3
  237. package/build/esm/containers/PageConstructor/PageConstructor.css +1 -1
  238. package/build/esm/editor-v2/components/BlockCard/BlockCard.css +27 -0
  239. package/build/esm/editor-v2/components/BlockCard/BlockCard.d.ts +10 -0
  240. package/build/esm/editor-v2/components/BlockCard/BlockCard.js +15 -0
  241. package/build/esm/editor-v2/components/BlockCard/BlockCard.js.map +1 -0
  242. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.css +5 -0
  243. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.d.ts +4 -3
  244. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.js +21 -11
  245. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.js.map +1 -1
  246. package/build/esm/editor-v2/components/DynamicForm/FieldBase/FieldBase.css +18 -9
  247. package/build/esm/editor-v2/components/DynamicForm/FieldBase/FieldBase.js +3 -3
  248. package/build/esm/editor-v2/components/DynamicForm/FieldBase/FieldBase.js.map +1 -1
  249. package/build/esm/editor-v2/components/DynamicForm/Fields/AnyOf/AnyOf.js +1 -1
  250. package/build/esm/editor-v2/components/DynamicForm/Fields/AnyOf/AnyOf.js.map +1 -1
  251. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.css +2 -1
  252. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.js +3 -3
  253. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.js.map +1 -1
  254. package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.d.ts +1 -1
  255. package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.js +1 -2
  256. package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.js.map +1 -1
  257. package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.css +1 -1
  258. package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js +8 -8
  259. package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js.map +1 -1
  260. package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.d.ts +2 -2
  261. package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.js +3 -1
  262. package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.js.map +1 -1
  263. package/build/esm/editor-v2/components/MessageCard/MessageCard.css +51 -0
  264. package/build/esm/editor-v2/components/MessageCard/MessageCard.d.ts +11 -0
  265. package/build/esm/editor-v2/components/MessageCard/MessageCard.js +17 -0
  266. package/build/esm/editor-v2/components/MessageCard/MessageCard.js.map +1 -0
  267. package/build/esm/editor-v2/components/MessageCard/index.d.ts +2 -0
  268. package/build/esm/editor-v2/components/MessageCard/index.js +2 -0
  269. package/build/esm/editor-v2/components/MessageCard/index.js.map +1 -0
  270. package/build/esm/editor-v2/components/Panels/Panels.css +1 -1
  271. package/build/esm/editor-v2/components/Sidebar/Sidebar.css +40 -6
  272. package/build/esm/editor-v2/components/Sidebar/Sidebar.d.ts +2 -2
  273. package/build/esm/editor-v2/components/Sidebar/Sidebar.js.map +1 -1
  274. package/build/esm/editor-v2/components/Tabs/Tabs.css +69 -5
  275. package/build/esm/editor-v2/components/Tabs/Tabs.d.ts +3 -2
  276. package/build/esm/editor-v2/components/Tabs/Tabs.js +16 -12
  277. package/build/esm/editor-v2/components/Tabs/Tabs.js.map +1 -1
  278. package/build/esm/editor-v2/constants/messages.d.ts +10 -0
  279. package/build/esm/editor-v2/constants/messages.js +11 -0
  280. package/build/esm/editor-v2/constants/messages.js.map +1 -0
  281. package/build/esm/editor-v2/containers/BlockConfigForm/BlockConfigForm.css +3 -2
  282. package/build/esm/editor-v2/containers/BlockConfigForm/BlockConfigForm.js +5 -3
  283. package/build/esm/editor-v2/containers/BlockConfigForm/BlockConfigForm.js.map +1 -1
  284. package/build/esm/editor-v2/containers/BlocksList/BlocksList.css +37 -27
  285. package/build/esm/editor-v2/containers/BlocksList/BlocksList.d.ts +4 -1
  286. package/build/esm/editor-v2/containers/BlocksList/BlocksList.js +48 -8
  287. package/build/esm/editor-v2/containers/BlocksList/BlocksList.js.map +1 -1
  288. package/build/esm/editor-v2/containers/GlobalConfig/GlobalConfig.css +0 -3
  289. package/build/esm/editor-v2/containers/GlobalConfig/GlobalConfig.js +1 -1
  290. package/build/esm/editor-v2/containers/GlobalConfig/GlobalConfig.js.map +1 -1
  291. package/build/esm/editor-v2/containers/MiddleScreen/MiddleScreen.css +39 -2
  292. package/build/esm/editor-v2/containers/MiddleScreen/MiddleScreen.js +8 -4
  293. package/build/esm/editor-v2/containers/MiddleScreen/MiddleScreen.js.map +1 -1
  294. package/build/esm/editor-v2/containers/Overlay/Overlay.js +14 -4
  295. package/build/esm/editor-v2/containers/Overlay/Overlay.js.map +1 -1
  296. package/build/esm/editor-v2/containers/Source/Source.css +1 -0
  297. package/build/esm/editor-v2/containers/Source/Source.js +1 -1
  298. package/build/esm/editor-v2/containers/Source/Source.js.map +1 -1
  299. package/build/esm/editor-v2/containers/SourceCode/SourceCode.css +58 -9
  300. package/build/esm/editor-v2/containers/SourceCode/SourceCode.d.ts +1 -2
  301. package/build/esm/editor-v2/containers/SourceCode/SourceCode.js +15 -5
  302. package/build/esm/editor-v2/containers/SourceCode/SourceCode.js.map +1 -1
  303. package/build/esm/editor-v2/containers/SourceCode/UpdateModal/UpdateModal.css +6 -0
  304. package/build/esm/editor-v2/containers/SourceCode/UpdateModal/UpdateModal.d.ts +2 -1
  305. package/build/esm/editor-v2/containers/SourceCode/UpdateModal/UpdateModal.js +8 -3
  306. package/build/esm/editor-v2/containers/SourceCode/UpdateModal/UpdateModal.js.map +1 -1
  307. package/build/esm/editor-v2/containers/Tree/Tree.d.ts +4 -1
  308. package/build/esm/editor-v2/containers/Tree/Tree.js +2 -3
  309. package/build/esm/editor-v2/containers/Tree/Tree.js.map +1 -1
  310. package/build/esm/editor-v2/containers/ViewSwitches/ViewSwitches.js +4 -4
  311. package/build/esm/editor-v2/containers/ViewSwitches/ViewSwitches.js.map +1 -1
  312. package/build/esm/editor-v2/hooks/useEditorTabs.d.ts +11 -5
  313. package/build/esm/editor-v2/hooks/useEditorTabs.js +14 -18
  314. package/build/esm/editor-v2/hooks/useEditorTabs.js.map +1 -1
  315. package/build/esm/editor-v2/utils/index.js +1 -1
  316. package/build/esm/editor-v2/utils/index.js.map +1 -1
  317. package/build/esm/form-generator/components/AddPropertyButton/AddPropertyButton.css +3 -0
  318. package/build/esm/form-generator/components/AddPropertyButton/AddPropertyButton.d.ts +14 -0
  319. package/build/esm/form-generator/components/AddPropertyButton/AddPropertyButton.js +12 -0
  320. package/build/esm/form-generator/components/AddPropertyButton/AddPropertyButton.js.map +1 -0
  321. package/build/esm/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.css +23 -0
  322. package/build/esm/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.d.ts +12 -0
  323. package/build/esm/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.js +23 -0
  324. package/build/esm/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.js.map +1 -0
  325. package/build/esm/form-generator/components/ConfigRow/ConfigRow.css +12 -0
  326. package/build/esm/form-generator/components/ConfigRow/ConfigRow.d.ts +9 -0
  327. package/build/esm/form-generator/components/ConfigRow/ConfigRow.js +14 -0
  328. package/build/esm/form-generator/components/ConfigRow/ConfigRow.js.map +1 -0
  329. package/build/esm/form-generator/components/FieldCard/FieldCard.css +15 -0
  330. package/build/esm/form-generator/components/FieldCard/FieldCard.d.ts +9 -0
  331. package/build/esm/form-generator/components/FieldCard/FieldCard.js +53 -0
  332. package/build/esm/form-generator/components/FieldCard/FieldCard.js.map +1 -0
  333. package/build/esm/form-generator/components/FieldHeader/FieldHeader.css +6 -0
  334. package/build/esm/form-generator/components/FieldHeader/FieldHeader.d.ts +10 -0
  335. package/build/esm/form-generator/components/FieldHeader/FieldHeader.js +7 -0
  336. package/build/esm/form-generator/components/FieldHeader/FieldHeader.js.map +1 -0
  337. package/build/esm/form-generator/components/FormBuilder/FormBuilder.css +93 -0
  338. package/build/esm/form-generator/components/FormBuilder/FormBuilder.d.ts +9 -0
  339. package/build/esm/form-generator/components/FormBuilder/FormBuilder.js +60 -0
  340. package/build/esm/form-generator/components/FormBuilder/FormBuilder.js.map +1 -0
  341. package/build/esm/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.css +6 -0
  342. package/build/esm/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.d.ts +12 -0
  343. package/build/esm/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.js +12 -0
  344. package/build/esm/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.js.map +1 -0
  345. package/build/esm/form-generator/components/OptionHeader/OptionHeader.css +6 -0
  346. package/build/esm/form-generator/components/OptionHeader/OptionHeader.d.ts +7 -0
  347. package/build/esm/form-generator/components/OptionHeader/OptionHeader.js +7 -0
  348. package/build/esm/form-generator/components/OptionHeader/OptionHeader.js.map +1 -0
  349. package/build/esm/form-generator/components/OptionsRenderer/OptionsRenderer.css +31 -0
  350. package/build/esm/form-generator/components/OptionsRenderer/OptionsRenderer.d.ts +12 -0
  351. package/build/esm/form-generator/components/OptionsRenderer/OptionsRenderer.js +20 -0
  352. package/build/esm/form-generator/components/OptionsRenderer/OptionsRenderer.js.map +1 -0
  353. package/build/esm/form-generator/components/SectionHeader/SectionHeader.css +3 -0
  354. package/build/esm/form-generator/components/SectionHeader/SectionHeader.d.ts +8 -0
  355. package/build/esm/form-generator/components/SectionHeader/SectionHeader.js +7 -0
  356. package/build/esm/form-generator/components/SectionHeader/SectionHeader.js.map +1 -0
  357. package/build/esm/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.css +36 -0
  358. package/build/esm/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.d.ts +8 -0
  359. package/build/esm/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.js +61 -0
  360. package/build/esm/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.js.map +1 -0
  361. package/build/esm/form-generator/hooks/FormContext.d.ts +7 -0
  362. package/build/esm/form-generator/hooks/FormContext.js +16 -0
  363. package/build/esm/form-generator/hooks/FormContext.js.map +1 -0
  364. package/build/esm/form-generator/hooks/types.d.ts +48 -0
  365. package/build/esm/form-generator/hooks/types.js +2 -0
  366. package/build/esm/form-generator/hooks/types.js.map +1 -0
  367. package/build/esm/form-generator/hooks/useFormFields.d.ts +18 -0
  368. package/build/esm/form-generator/hooks/useFormFields.js +565 -0
  369. package/build/esm/form-generator/hooks/useFormFields.js.map +1 -0
  370. package/build/esm/form-generator/index.d.ts +7 -0
  371. package/build/esm/form-generator/index.js +8 -0
  372. package/build/esm/form-generator/index.js.map +1 -0
  373. package/build/esm/hooks/usePCEditorBlockMouseEvents.js +1 -0
  374. package/build/esm/hooks/usePCEditorBlockMouseEvents.js.map +1 -1
  375. package/build/esm/sub-blocks/BackgroundCard/index.js +1 -1
  376. package/build/esm/sub-blocks/BackgroundCard/index.js.map +1 -1
  377. package/build/esm/sub-blocks/BannerCard/index.js +1 -1
  378. package/build/esm/sub-blocks/BannerCard/index.js.map +1 -1
  379. package/build/esm/sub-blocks/BasicCard/index.js +1 -1
  380. package/build/esm/sub-blocks/BasicCard/index.js.map +1 -1
  381. package/build/esm/sub-blocks/Content/index.js +1 -1
  382. package/build/esm/sub-blocks/Content/index.js.map +1 -1
  383. package/build/esm/sub-blocks/ImageCard/index.js +1 -1
  384. package/build/esm/sub-blocks/ImageCard/index.js.map +1 -1
  385. package/build/esm/sub-blocks/LayoutItem/index.js +1 -1
  386. package/build/esm/sub-blocks/LayoutItem/index.js.map +1 -1
  387. package/build/esm/sub-blocks/MediaCard/index.js +1 -1
  388. package/build/esm/sub-blocks/MediaCard/index.js.map +1 -1
  389. package/build/esm/sub-blocks/PriceCard/index.js +1 -1
  390. package/build/esm/sub-blocks/PriceCard/index.js.map +1 -1
  391. package/build/esm/sub-blocks/PriceDetailed/index.js +1 -1
  392. package/build/esm/sub-blocks/PriceDetailed/index.js.map +1 -1
  393. package/build/esm/sub-blocks/Quote/index.js +1 -1
  394. package/build/esm/sub-blocks/Quote/index.js.map +1 -1
  395. package/package.json +10 -5
  396. package/styles/styles.css +1 -1
  397. package/styles/yfm.scss +1 -1
@@ -0,0 +1,565 @@
1
+ import * as React from 'react';
2
+ export const useFormFields = () => {
3
+ const [formFields, setFormFields] = React.useState([]);
4
+ const [nextId, setNextId] = React.useState(1);
5
+ const generateId = () => {
6
+ const id = `field_id_${nextId}`;
7
+ setNextId((prev) => prev + 1);
8
+ return id;
9
+ };
10
+ const generateName = () => {
11
+ const name = `field_${nextId}`;
12
+ return name;
13
+ };
14
+ const createField = (type, name = '') => {
15
+ const fieldName = name || generateName();
16
+ const fieldId = generateId();
17
+ let newField;
18
+ switch (type) {
19
+ case 'text':
20
+ newField = {
21
+ type: 'text',
22
+ name: fieldName,
23
+ title: 'Text Input',
24
+ id: fieldId,
25
+ };
26
+ break;
27
+ case 'number':
28
+ newField = {
29
+ type: 'number',
30
+ name: fieldName,
31
+ title: 'Number Input',
32
+ id: fieldId,
33
+ };
34
+ break;
35
+ case 'boolean':
36
+ newField = {
37
+ type: 'boolean',
38
+ name: fieldName,
39
+ title: 'Boolean Input',
40
+ id: fieldId,
41
+ };
42
+ break;
43
+ case 'textarea':
44
+ newField = {
45
+ type: 'textarea',
46
+ name: fieldName,
47
+ title: 'Textarea Input',
48
+ id: fieldId,
49
+ };
50
+ break;
51
+ case 'select':
52
+ newField = {
53
+ type: 'select',
54
+ name: fieldName,
55
+ title: 'Select Input',
56
+ view: 'select',
57
+ mode: 'single',
58
+ enum: [
59
+ { content: 'Option 1', value: 'option1' },
60
+ { content: 'Option 2', value: 'option2' },
61
+ ],
62
+ id: fieldId,
63
+ };
64
+ break;
65
+ case 'object':
66
+ newField = {
67
+ type: 'object',
68
+ name: fieldName,
69
+ title: 'Object Input',
70
+ properties: [
71
+ {
72
+ type: 'text',
73
+ name: 'property1',
74
+ title: 'Property 1',
75
+ id: generateId(),
76
+ },
77
+ ],
78
+ id: fieldId,
79
+ };
80
+ break;
81
+ case 'array':
82
+ newField = {
83
+ type: 'array',
84
+ name: fieldName,
85
+ title: 'Array Input',
86
+ buttonText: 'Add Item',
87
+ arrayType: 'text',
88
+ id: fieldId,
89
+ };
90
+ break;
91
+ case 'oneOf':
92
+ newField = {
93
+ type: 'oneOf',
94
+ name: fieldName,
95
+ title: 'OneOf Input',
96
+ options: [
97
+ {
98
+ title: 'Option A',
99
+ value: 'optionA',
100
+ properties: [
101
+ {
102
+ type: 'text',
103
+ name: 'textField',
104
+ title: 'Text Field',
105
+ id: generateId(),
106
+ },
107
+ ],
108
+ },
109
+ {
110
+ title: 'Option B',
111
+ value: 'optionB',
112
+ properties: [
113
+ {
114
+ type: 'number',
115
+ name: 'numberField',
116
+ title: 'Number Field',
117
+ id: generateId(),
118
+ },
119
+ ],
120
+ },
121
+ ],
122
+ id: fieldId,
123
+ };
124
+ break;
125
+ case 'anyOf':
126
+ newField = {
127
+ type: 'anyOf',
128
+ name: fieldName,
129
+ title: 'AnyOf Input',
130
+ options: [
131
+ {
132
+ title: 'Option A',
133
+ value: 'optionA',
134
+ properties: [
135
+ {
136
+ type: 'text',
137
+ name: 'textField',
138
+ title: 'Text Field',
139
+ id: generateId(),
140
+ },
141
+ ],
142
+ },
143
+ {
144
+ title: 'Option B',
145
+ value: 'optionB',
146
+ properties: [
147
+ {
148
+ type: 'boolean',
149
+ name: 'booleanField',
150
+ title: 'Boolean Field',
151
+ id: generateId(),
152
+ },
153
+ ],
154
+ },
155
+ ],
156
+ id: fieldId,
157
+ };
158
+ break;
159
+ default:
160
+ return createField('text', fieldName);
161
+ }
162
+ return newField;
163
+ };
164
+ const updateFieldById = (fields, fieldId, updates) => {
165
+ return fields.map((field) => {
166
+ if (field.id === fieldId) {
167
+ return { ...field, ...updates };
168
+ }
169
+ if (field.type === 'object' && field.properties) {
170
+ const objectField = field;
171
+ return {
172
+ ...field,
173
+ properties: updateFieldById(objectField.properties, fieldId, updates),
174
+ };
175
+ }
176
+ if ((field.type === 'oneOf' || field.type === 'anyOf') &&
177
+ field.options) {
178
+ const optionsField = field;
179
+ return {
180
+ ...field,
181
+ options: optionsField.options.map((option) => ({
182
+ ...option,
183
+ properties: updateFieldById(option.properties, fieldId, updates),
184
+ })),
185
+ };
186
+ }
187
+ if (field.type === 'array' && field.arrayType === 'object') {
188
+ const arrayField = field;
189
+ return {
190
+ ...field,
191
+ properties: updateFieldById(arrayField.properties, fieldId, updates),
192
+ };
193
+ }
194
+ return field;
195
+ });
196
+ };
197
+ const addField = (type) => {
198
+ const newField = createField(type);
199
+ setFormFields((prev) => [...prev, newField]);
200
+ };
201
+ const removeField = (fieldId) => {
202
+ setFormFields((prev) => prev.filter((field) => field.id !== fieldId));
203
+ };
204
+ const updateField = (fieldId, updates) => {
205
+ setFormFields((prev) => updateFieldById(prev, fieldId, updates));
206
+ };
207
+ const addPropertyToObjectById = (fields, objectId, type = 'text') => {
208
+ return fields.map((field) => {
209
+ if (field.id === objectId && field.type === 'object') {
210
+ const objectField = field;
211
+ const propertyName = `property${(objectField.properties?.length || 0) + 1}`;
212
+ const newProperty = createField(type, propertyName);
213
+ return {
214
+ ...field,
215
+ properties: [...(objectField.properties || []), newProperty],
216
+ };
217
+ }
218
+ if (field.type === 'object' && field.properties) {
219
+ const objectField = field;
220
+ return {
221
+ ...field,
222
+ properties: addPropertyToObjectById(objectField.properties, objectId, type),
223
+ };
224
+ }
225
+ if ((field.type === 'oneOf' || field.type === 'anyOf') &&
226
+ field.options) {
227
+ const optionsField = field;
228
+ return {
229
+ ...field,
230
+ options: optionsField.options.map((option) => ({
231
+ ...option,
232
+ properties: addPropertyToObjectById(option.properties, objectId, type),
233
+ })),
234
+ };
235
+ }
236
+ if (field.type === 'array' && field.arrayType === 'object') {
237
+ const arrayField = field;
238
+ if (field.id === objectId) {
239
+ const propertyName = `property${(arrayField.properties?.length || 0) + 1}`;
240
+ const newProperty = createField(type, propertyName);
241
+ return {
242
+ ...field,
243
+ properties: [...(arrayField.properties || []), newProperty],
244
+ };
245
+ }
246
+ if (arrayField.properties && arrayField.properties.length > 0) {
247
+ return {
248
+ ...field,
249
+ properties: addPropertyToObjectById(arrayField.properties, objectId, type),
250
+ };
251
+ }
252
+ }
253
+ return field;
254
+ });
255
+ };
256
+ const addObjectProperty = (objectId, type = 'text') => {
257
+ setFormFields((prev) => addPropertyToObjectById(prev, objectId, type));
258
+ };
259
+ const addOptionProperty = (fieldId, optionIndex, type = 'text') => {
260
+ const addPropertyToOptionRecursive = (fields, targetFieldId, targetOptionIndex) => {
261
+ return fields.map((field) => {
262
+ if (field.id === targetFieldId &&
263
+ (field.type === 'oneOf' || field.type === 'anyOf')) {
264
+ const updatedField = JSON.parse(JSON.stringify(field));
265
+ const options = updatedField.options;
266
+ if (options &&
267
+ Array.isArray(options) &&
268
+ targetOptionIndex >= 0 &&
269
+ targetOptionIndex < options.length &&
270
+ options[targetOptionIndex].properties) {
271
+ const propertyName = `property${options[targetOptionIndex].properties.length + 1}`;
272
+ const newProperty = createField(type, propertyName);
273
+ options[targetOptionIndex].properties.push(newProperty);
274
+ }
275
+ return updatedField;
276
+ }
277
+ if (field.type === 'object' && field.properties) {
278
+ const objectField = field;
279
+ return {
280
+ ...field,
281
+ properties: addPropertyToOptionRecursive(objectField.properties, targetFieldId, targetOptionIndex),
282
+ };
283
+ }
284
+ if ((field.type === 'oneOf' || field.type === 'anyOf') &&
285
+ field.options) {
286
+ const optionsField = field;
287
+ return {
288
+ ...field,
289
+ options: optionsField.options.map((option) => ({
290
+ ...option,
291
+ properties: addPropertyToOptionRecursive(option.properties, targetFieldId, targetOptionIndex),
292
+ })),
293
+ };
294
+ }
295
+ if (field.type === 'array' &&
296
+ field.arrayType === 'object' &&
297
+ field.properties) {
298
+ const arrayField = field;
299
+ return {
300
+ ...field,
301
+ properties: addPropertyToOptionRecursive(arrayField.properties, targetFieldId, targetOptionIndex),
302
+ };
303
+ }
304
+ return field;
305
+ });
306
+ };
307
+ setFormFields((prev) => addPropertyToOptionRecursive(prev, fieldId, optionIndex));
308
+ };
309
+ const removeObjectProperty = (fieldId, propertyIndex) => {
310
+ setFormFields((prev) => {
311
+ return prev.map((field) => {
312
+ if (field.id !== fieldId)
313
+ return field;
314
+ const updatedField = JSON.parse(JSON.stringify(field));
315
+ const objectInput = updatedField;
316
+ objectInput.properties.splice(propertyIndex, 1);
317
+ return updatedField;
318
+ });
319
+ });
320
+ };
321
+ const removeOptionProperty = (fieldId, optionIndex, propertyIndex) => {
322
+ const removePropertyFromOptionRecursive = (fields, targetFieldId, targetOptionIndex, targetPropertyIndex) => {
323
+ return fields.map((field) => {
324
+ if (field.id === targetFieldId &&
325
+ (field.type === 'oneOf' || field.type === 'anyOf')) {
326
+ const updatedField = JSON.parse(JSON.stringify(field));
327
+ const options = updatedField.options;
328
+ if (options &&
329
+ Array.isArray(options) &&
330
+ targetOptionIndex >= 0 &&
331
+ targetOptionIndex < options.length &&
332
+ options[targetOptionIndex].properties &&
333
+ targetPropertyIndex >= 0 &&
334
+ targetPropertyIndex < options[targetOptionIndex].properties.length) {
335
+ options[targetOptionIndex].properties.splice(targetPropertyIndex, 1);
336
+ }
337
+ return updatedField;
338
+ }
339
+ if (field.type === 'object' && field.properties) {
340
+ const objectField = field;
341
+ return {
342
+ ...field,
343
+ properties: removePropertyFromOptionRecursive(objectField.properties, targetFieldId, targetOptionIndex, targetPropertyIndex),
344
+ };
345
+ }
346
+ if ((field.type === 'oneOf' || field.type === 'anyOf') &&
347
+ field.options) {
348
+ const optionsField = field;
349
+ return {
350
+ ...field,
351
+ options: optionsField.options.map((option) => ({
352
+ ...option,
353
+ properties: removePropertyFromOptionRecursive(option.properties, targetFieldId, targetOptionIndex, targetPropertyIndex),
354
+ })),
355
+ };
356
+ }
357
+ if (field.type === 'array' &&
358
+ field.arrayType === 'object' &&
359
+ field.properties) {
360
+ const arrayField = field;
361
+ return {
362
+ ...field,
363
+ properties: removePropertyFromOptionRecursive(arrayField.properties, targetFieldId, targetOptionIndex, targetPropertyIndex),
364
+ };
365
+ }
366
+ return field;
367
+ });
368
+ };
369
+ setFormFields((prev) => removePropertyFromOptionRecursive(prev, fieldId, optionIndex, propertyIndex));
370
+ };
371
+ const updateObjectProperty = (fieldId, propertyIndex, updates) => {
372
+ setFormFields((prev) => {
373
+ return prev.map((field) => {
374
+ if (field.id !== fieldId)
375
+ return field;
376
+ const updatedField = JSON.parse(JSON.stringify(field));
377
+ const objectInput = updatedField;
378
+ objectInput.properties[propertyIndex] = {
379
+ ...objectInput.properties[propertyIndex],
380
+ ...updates,
381
+ };
382
+ return updatedField;
383
+ });
384
+ });
385
+ };
386
+ const updateOptionProperty = (fieldId, optionIndex, propertyIndex, updates) => {
387
+ const updatePropertyInOptionRecursive = (fields, targetFieldId, targetOptionIndex, targetPropertyIndex, propertyUpdates) => {
388
+ return fields.map((field) => {
389
+ if (field.id === targetFieldId &&
390
+ (field.type === 'oneOf' || field.type === 'anyOf')) {
391
+ const updatedField = JSON.parse(JSON.stringify(field));
392
+ const options = updatedField.options;
393
+ if (options &&
394
+ Array.isArray(options) &&
395
+ targetOptionIndex >= 0 &&
396
+ targetOptionIndex < options.length &&
397
+ options[targetOptionIndex].properties &&
398
+ targetPropertyIndex >= 0 &&
399
+ targetPropertyIndex < options[targetOptionIndex].properties.length) {
400
+ options[targetOptionIndex].properties[targetPropertyIndex] = {
401
+ ...options[targetOptionIndex].properties[targetPropertyIndex],
402
+ ...propertyUpdates,
403
+ };
404
+ }
405
+ return updatedField;
406
+ }
407
+ if (field.type === 'object' && field.properties) {
408
+ const objectField = field;
409
+ return {
410
+ ...field,
411
+ properties: updatePropertyInOptionRecursive(objectField.properties, targetFieldId, targetOptionIndex, targetPropertyIndex, propertyUpdates),
412
+ };
413
+ }
414
+ if ((field.type === 'oneOf' || field.type === 'anyOf') &&
415
+ field.options) {
416
+ const optionsField = field;
417
+ return {
418
+ ...field,
419
+ options: optionsField.options.map((option) => ({
420
+ ...option,
421
+ properties: updatePropertyInOptionRecursive(option.properties, targetFieldId, targetOptionIndex, targetPropertyIndex, propertyUpdates),
422
+ })),
423
+ };
424
+ }
425
+ if (field.type === 'array' &&
426
+ field.arrayType === 'object' &&
427
+ field.properties) {
428
+ const arrayField = field;
429
+ return {
430
+ ...field,
431
+ properties: updatePropertyInOptionRecursive(arrayField.properties, targetFieldId, targetOptionIndex, targetPropertyIndex, propertyUpdates),
432
+ };
433
+ }
434
+ return field;
435
+ });
436
+ };
437
+ setFormFields((prev) => updatePropertyInOptionRecursive(prev, fieldId, optionIndex, propertyIndex, updates));
438
+ };
439
+ const addOption = (fieldId) => {
440
+ const addOptionRecursive = (fields, targetFieldId) => {
441
+ return fields.map((field) => {
442
+ if (field.id === targetFieldId &&
443
+ (field.type === 'oneOf' || field.type === 'anyOf')) {
444
+ const updatedField = JSON.parse(JSON.stringify(field));
445
+ const options = updatedField.options;
446
+ if (options && Array.isArray(options)) {
447
+ const optionLetter = String.fromCharCode(65 + options.length);
448
+ const newOption = {
449
+ title: `Option ${optionLetter}`,
450
+ value: `option${optionLetter.toLowerCase()}`,
451
+ properties: [
452
+ {
453
+ type: 'text',
454
+ name: 'textField',
455
+ title: 'Text Field',
456
+ id: generateId(),
457
+ },
458
+ ],
459
+ };
460
+ options.push(newOption);
461
+ }
462
+ return updatedField;
463
+ }
464
+ if (field.type === 'object' && field.properties) {
465
+ const objectField = field;
466
+ return {
467
+ ...field,
468
+ properties: addOptionRecursive(objectField.properties, targetFieldId),
469
+ };
470
+ }
471
+ if ((field.type === 'oneOf' || field.type === 'anyOf') &&
472
+ field.options) {
473
+ const optionsField = field;
474
+ return {
475
+ ...field,
476
+ options: optionsField.options.map((option) => ({
477
+ ...option,
478
+ properties: addOptionRecursive(option.properties, targetFieldId),
479
+ })),
480
+ };
481
+ }
482
+ if (field.type === 'array' &&
483
+ field.arrayType === 'object' &&
484
+ field.properties) {
485
+ const arrayField = field;
486
+ return {
487
+ ...field,
488
+ properties: addOptionRecursive(arrayField.properties, targetFieldId),
489
+ };
490
+ }
491
+ return field;
492
+ });
493
+ };
494
+ setFormFields((prev) => addOptionRecursive(prev, fieldId));
495
+ };
496
+ const removeOption = (fieldId, optionIndex) => {
497
+ const removeOptionRecursive = (fields, targetFieldId, targetOptionIndex) => {
498
+ return fields.map((field) => {
499
+ if (field.id === targetFieldId &&
500
+ (field.type === 'oneOf' || field.type === 'anyOf')) {
501
+ const updatedField = JSON.parse(JSON.stringify(field));
502
+ const options = updatedField.options;
503
+ if (options &&
504
+ Array.isArray(options) &&
505
+ targetOptionIndex >= 0 &&
506
+ targetOptionIndex < options.length) {
507
+ if (options.length > 1) {
508
+ options.splice(targetOptionIndex, 1);
509
+ }
510
+ }
511
+ return updatedField;
512
+ }
513
+ if (field.type === 'object' && field.properties) {
514
+ const objectField = field;
515
+ return {
516
+ ...field,
517
+ properties: removeOptionRecursive(objectField.properties, targetFieldId, targetOptionIndex),
518
+ };
519
+ }
520
+ if ((field.type === 'oneOf' || field.type === 'anyOf') &&
521
+ field.options) {
522
+ const optionsField = field;
523
+ return {
524
+ ...field,
525
+ options: optionsField.options.map((option) => ({
526
+ ...option,
527
+ properties: removeOptionRecursive(option.properties, targetFieldId, targetOptionIndex),
528
+ })),
529
+ };
530
+ }
531
+ if (field.type === 'array' &&
532
+ field.arrayType === 'object' &&
533
+ field.properties) {
534
+ const arrayField = field;
535
+ return {
536
+ ...field,
537
+ properties: removeOptionRecursive(arrayField.properties, targetFieldId, targetOptionIndex),
538
+ };
539
+ }
540
+ return field;
541
+ });
542
+ };
543
+ setFormFields((prev) => removeOptionRecursive(prev, fieldId, optionIndex));
544
+ };
545
+ const resetForm = () => {
546
+ setFormFields([]);
547
+ };
548
+ return {
549
+ formFields,
550
+ createField,
551
+ addField,
552
+ removeField,
553
+ updateField,
554
+ addObjectProperty,
555
+ addOptionProperty,
556
+ removeObjectProperty,
557
+ removeOptionProperty,
558
+ updateObjectProperty,
559
+ updateOptionProperty,
560
+ addOption,
561
+ removeOption,
562
+ resetForm,
563
+ };
564
+ };
565
+ //# sourceMappingURL=useFormFields.js.map