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