@gravity-ui/page-constructor 5.14.4-alpha.0 → 5.14.4-alpha.2

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 (387) hide show
  1. package/README.md +31 -1
  2. package/build/cjs/blocks/CardLayout/index.d.ts +1 -1
  3. package/build/cjs/blocks/ContentLayout/index.d.ts +1 -1
  4. package/build/cjs/blocks/ExtendedFeatures/index.d.ts +1 -1
  5. package/build/cjs/blocks/FilterBlock/index.d.ts +1 -1
  6. package/build/cjs/blocks/Form/index.d.ts +1 -1
  7. package/build/cjs/blocks/Header/dynamic-form.d.ts +2 -2
  8. package/build/cjs/blocks/Header/index.d.ts +1 -1
  9. package/build/cjs/blocks/HeaderSlider/index.d.ts +1 -1
  10. package/build/cjs/blocks/Icons/index.d.ts +1 -1
  11. package/build/cjs/blocks/Info/index.d.ts +1 -1
  12. package/build/cjs/blocks/Map/index.d.ts +1 -1
  13. package/build/cjs/blocks/Media/index.d.ts +1 -1
  14. package/build/cjs/blocks/PromoFeaturesBlock/index.d.ts +1 -1
  15. package/build/cjs/blocks/Questions/index.d.ts +1 -1
  16. package/build/cjs/blocks/Share/index.d.ts +1 -1
  17. package/build/cjs/blocks/Slider/dynamic-form.d.ts +3 -3
  18. package/build/cjs/blocks/Slider/index.d.ts +1 -1
  19. package/build/cjs/blocks/Table/index.d.ts +1 -1
  20. package/build/cjs/blocks/Tabs/index.d.ts +1 -1
  21. package/build/cjs/blocks/TestEditorBlock/form.d.ts +1 -1
  22. package/build/cjs/blocks/TestEditorBlock/index.d.ts +1 -1
  23. package/build/cjs/common/hooks/usePostMessage.d.ts +11 -0
  24. package/build/cjs/common/hooks/usePostMessage.js +94 -0
  25. package/build/{esm → cjs/common}/types/actions/initial.d.ts +1 -1
  26. package/build/{esm → cjs/common}/types/actions/other.d.ts +1 -1
  27. package/build/cjs/{types → common/types}/actions/reorder.d.ts +3 -1
  28. package/build/cjs/{types/index.d.ts → common/types/common.d.ts} +3 -3
  29. package/build/cjs/{types/dynamic-form.d.ts → common/types/forms.d.ts} +2 -1
  30. package/build/cjs/common/types/index.d.ts +4 -0
  31. package/build/cjs/common/types/index.js +7 -0
  32. package/build/cjs/{context/messagesContext/types.d.ts → common/types/messages.d.ts} +1 -1
  33. package/build/cjs/components/Image/dynamic-form.d.ts +1 -1
  34. package/build/cjs/constructor-items.d.ts +7 -1
  35. package/build/cjs/constructor-items.js +6 -0
  36. package/build/cjs/containers/PageConstructor/components/ConstructorBlock/hooks/useEditorBlockMouseEvents.js +1 -1
  37. package/build/cjs/context/editorContext/store.d.ts +1 -1
  38. package/build/cjs/context/editorContext/store.js +7 -7
  39. package/build/cjs/context/messagesContext/hooks/useMessageObserver.d.ts +1 -1
  40. package/build/cjs/context/messagesContext/hooks/useMessageSender.d.ts +1 -1
  41. package/build/cjs/context/messagesContext/messagesContext.d.ts +1 -2
  42. package/build/cjs/context/messagesContext/messagesProvider.js +7 -53
  43. package/build/cjs/context/messagesContext/store.d.ts +1 -2
  44. package/build/cjs/editor/data/templates/test-editor-block.json +18 -0
  45. package/build/cjs/editor-v2/components/BigOverlay/BigOverlay.css +33 -0
  46. package/build/cjs/editor-v2/components/BigOverlay/BigOverlay.d.ts +6 -0
  47. package/build/cjs/editor-v2/components/BigOverlay/BigOverlay.js +40 -0
  48. package/build/cjs/editor-v2/components/BlockConfig/BlockConfig.css +33 -0
  49. package/build/cjs/editor-v2/components/BlockConfig/BlockConfig.d.ts +6 -0
  50. package/build/cjs/editor-v2/components/BlockConfig/BlockConfig.js +35 -0
  51. package/build/cjs/editor-v2/components/BlocksList/BlocksList.css +42 -0
  52. package/build/cjs/editor-v2/components/BlocksList/BlocksList.d.ts +7 -0
  53. package/build/cjs/editor-v2/components/BlocksList/BlocksList.js +22 -0
  54. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.css +2 -0
  55. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.d.ts +11 -0
  56. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.js +118 -0
  57. package/build/cjs/editor-v2/components/DynamicForm/FieldBase/FieldBase.css +61 -0
  58. package/build/cjs/editor-v2/components/DynamicForm/FieldBase/FieldBase.d.ts +12 -0
  59. package/build/cjs/editor-v2/components/DynamicForm/FieldBase/FieldBase.js +32 -0
  60. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.css +38 -0
  61. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.d.ts +13 -0
  62. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.js +83 -0
  63. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/ItemButton/ItemButton.d.ts +11 -0
  64. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/ItemButton/ItemButton.js +28 -0
  65. package/build/cjs/editor-v2/components/DynamicForm/Fields/Boolean/Boolean.d.ts +9 -0
  66. package/build/cjs/editor-v2/components/DynamicForm/Fields/Boolean/Boolean.js +14 -0
  67. package/build/cjs/editor-v2/components/DynamicForm/Fields/Number/Number.d.ts +9 -0
  68. package/build/cjs/editor-v2/components/DynamicForm/Fields/Number/Number.js +17 -0
  69. package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.css +5 -0
  70. package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.d.ts +12 -0
  71. package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.js +16 -0
  72. package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.css +8 -0
  73. package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.d.ts +11 -0
  74. package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js +34 -0
  75. package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.d.ts +12 -0
  76. package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.js +16 -0
  77. package/build/cjs/editor-v2/components/DynamicForm/Fields/Text/Text.d.ts +9 -0
  78. package/build/cjs/editor-v2/components/DynamicForm/Fields/Text/Text.js +14 -0
  79. package/build/cjs/editor-v2/components/DynamicForm/Fields/TextArea/TextArea.d.ts +9 -0
  80. package/build/cjs/editor-v2/components/DynamicForm/Fields/TextArea/TextArea.js +14 -0
  81. package/build/cjs/editor-v2/components/DynamicForm/utils.d.ts +3 -0
  82. package/build/cjs/editor-v2/components/DynamicForm/utils.js +22 -0
  83. package/build/cjs/editor-v2/components/GlobalConfig/GlobalConfig.css +22 -0
  84. package/build/cjs/editor-v2/components/GlobalConfig/GlobalConfig.d.ts +6 -0
  85. package/build/cjs/editor-v2/components/GlobalConfig/GlobalConfig.js +18 -0
  86. package/build/cjs/editor-v2/components/MiddleScreen/MiddleScreen.css +53 -0
  87. package/build/cjs/editor-v2/components/MiddleScreen/MiddleScreen.d.ts +6 -0
  88. package/build/cjs/editor-v2/components/MiddleScreen/MiddleScreen.js +34 -0
  89. package/build/cjs/editor-v2/components/Overlay/Overlay.css +56 -0
  90. package/build/cjs/editor-v2/components/Overlay/Overlay.d.ts +6 -0
  91. package/build/cjs/editor-v2/components/Overlay/Overlay.js +71 -0
  92. package/build/cjs/editor-v2/components/Sidebar/Sidebar.css +66 -0
  93. package/build/cjs/editor-v2/components/Sidebar/Sidebar.d.ts +7 -0
  94. package/build/cjs/editor-v2/components/Sidebar/Sidebar.js +68 -0
  95. package/build/cjs/editor-v2/components/Source/Source.css +21 -0
  96. package/build/cjs/editor-v2/components/Source/Source.d.ts +6 -0
  97. package/build/cjs/editor-v2/components/Source/Source.js +30 -0
  98. package/build/cjs/editor-v2/components/SourceCode/SourceCode.css +44 -0
  99. package/build/cjs/editor-v2/components/SourceCode/SourceCode.d.ts +6 -0
  100. package/build/cjs/editor-v2/components/SourceCode/SourceCode.js +55 -0
  101. package/build/cjs/editor-v2/components/TopBar/TopBar.css +34 -0
  102. package/build/cjs/editor-v2/components/TopBar/TopBar.d.ts +10 -0
  103. package/build/cjs/editor-v2/components/TopBar/TopBar.js +15 -0
  104. package/build/cjs/editor-v2/components/Tree/Tree.css +148 -0
  105. package/build/cjs/editor-v2/components/Tree/Tree.d.ts +7 -0
  106. package/build/cjs/editor-v2/components/Tree/Tree.js +32 -0
  107. package/build/cjs/editor-v2/components/ViewSwitches/ViewSwitches.css +23 -0
  108. package/build/cjs/editor-v2/components/ViewSwitches/ViewSwitches.d.ts +10 -0
  109. package/build/cjs/editor-v2/components/ViewSwitches/ViewSwitches.js +22 -0
  110. package/build/cjs/editor-v2/constants.d.ts +1 -0
  111. package/build/cjs/editor-v2/constants.js +4 -0
  112. package/build/cjs/editor-v2/containers/Editor/Editor.css +54 -0
  113. package/build/cjs/editor-v2/containers/Editor/Editor.d.ts +9 -0
  114. package/build/cjs/editor-v2/containers/Editor/Editor.js +66 -0
  115. package/build/cjs/editor-v2/containers/Editor/hooks/useAdminInitialize.d.ts +2 -0
  116. package/build/cjs/editor-v2/containers/Editor/hooks/useAdminInitialize.js +25 -0
  117. package/build/cjs/editor-v2/context/contentConfig/contentConfigContext.d.ts +10 -0
  118. package/build/cjs/editor-v2/context/contentConfig/contentConfigContext.js +9 -0
  119. package/build/cjs/editor-v2/context/contentConfig/contentConfigProvider.d.ts +8 -0
  120. package/build/cjs/editor-v2/context/contentConfig/contentConfigProvider.js +19 -0
  121. package/build/cjs/editor-v2/context/contentConfig/hooks/useContentConfigStore.d.ts +2 -0
  122. package/build/cjs/editor-v2/context/contentConfig/hooks/useContentConfigStore.js +15 -0
  123. package/build/cjs/editor-v2/context/contentConfig/index.d.ts +4 -0
  124. package/build/cjs/editor-v2/context/contentConfig/index.js +7 -0
  125. package/build/cjs/editor-v2/context/contentConfig/store.d.ts +35 -0
  126. package/build/cjs/editor-v2/context/contentConfig/store.js +106 -0
  127. package/build/cjs/editor-v2/context/editorContext/editorContext.d.ts +11 -0
  128. package/build/cjs/editor-v2/context/editorContext/editorContext.js +10 -0
  129. package/build/cjs/editor-v2/context/editorContext/editorProvider.d.ts +2 -0
  130. package/build/cjs/editor-v2/context/editorContext/editorProvider.js +15 -0
  131. package/build/cjs/editor-v2/context/editorContext/hooks/useEditorStore.d.ts +2 -0
  132. package/build/cjs/editor-v2/context/editorContext/hooks/useEditorStore.js +15 -0
  133. package/build/cjs/editor-v2/context/editorContext/index.d.ts +4 -0
  134. package/build/cjs/editor-v2/context/editorContext/index.js +7 -0
  135. package/build/cjs/editor-v2/context/editorContext/store.d.ts +26 -0
  136. package/build/cjs/editor-v2/context/editorContext/store.js +55 -0
  137. package/build/cjs/editor-v2/context/iframeContext/hooks/useIframeStore.d.ts +2 -0
  138. package/build/cjs/editor-v2/context/iframeContext/hooks/useIframeStore.js +15 -0
  139. package/build/cjs/editor-v2/context/iframeContext/iframeContext.d.ts +13 -0
  140. package/build/cjs/editor-v2/context/iframeContext/iframeContext.js +9 -0
  141. package/build/cjs/editor-v2/context/iframeContext/iframeProvider.d.ts +7 -0
  142. package/build/cjs/editor-v2/context/iframeContext/iframeProvider.js +23 -0
  143. package/build/cjs/editor-v2/context/iframeContext/index.d.ts +4 -0
  144. package/build/cjs/editor-v2/context/iframeContext/index.js +7 -0
  145. package/build/cjs/editor-v2/context/iframeContext/store.d.ts +26 -0
  146. package/build/cjs/editor-v2/context/iframeContext/store.js +45 -0
  147. package/build/cjs/editor-v2/context/messagesContext/hooks/useMessageObserver.d.ts +4 -0
  148. package/build/cjs/editor-v2/context/messagesContext/hooks/useMessageObserver.js +17 -0
  149. package/build/cjs/editor-v2/context/messagesContext/hooks/useMessageSender.d.ts +2 -0
  150. package/build/cjs/editor-v2/context/messagesContext/hooks/useMessageSender.js +11 -0
  151. package/build/cjs/editor-v2/context/messagesContext/hooks/useMessagesStore.d.ts +2 -0
  152. package/build/cjs/editor-v2/context/messagesContext/hooks/useMessagesStore.js +15 -0
  153. package/build/cjs/editor-v2/context/messagesContext/index.d.ts +5 -0
  154. package/build/cjs/editor-v2/context/messagesContext/index.js +8 -0
  155. package/build/cjs/editor-v2/context/messagesContext/messagesContext.d.ts +13 -0
  156. package/build/cjs/editor-v2/context/messagesContext/messagesContext.js +12 -0
  157. package/build/cjs/editor-v2/context/messagesContext/messagesProvider.d.ts +2 -0
  158. package/build/cjs/editor-v2/context/messagesContext/messagesProvider.js +35 -0
  159. package/build/cjs/editor-v2/context/messagesContext/store.d.ts +22 -0
  160. package/build/cjs/editor-v2/context/messagesContext/store.js +17 -0
  161. package/build/cjs/editor-v2/icons/Tablet.d.ts +2 -0
  162. package/build/cjs/editor-v2/icons/Tablet.js +9 -0
  163. package/build/cjs/editor-v2/index.d.ts +2 -0
  164. package/build/cjs/editor-v2/index.js +7 -0
  165. package/build/cjs/editor-v2/styles/mixins.css +0 -0
  166. package/build/cjs/editor-v2/styles/root.css +9 -0
  167. package/build/cjs/editor-v2/styles/variables.css +0 -0
  168. package/build/cjs/editor-v2/utils/code.d.ts +6 -0
  169. package/build/cjs/editor-v2/utils/code.js +11 -0
  170. package/build/cjs/editor-v2/utils/index.d.ts +17 -0
  171. package/build/cjs/editor-v2/utils/index.js +151 -0
  172. package/build/cjs/editor-v2/utils/store.d.ts +14 -0
  173. package/build/cjs/editor-v2/utils/store.js +9 -0
  174. package/build/cjs/hooks/useEditorInitialize.js +9 -9
  175. package/build/cjs/sub-blocks/BackgroundCard/dynamic-form.d.ts +2 -2
  176. package/build/cjs/sub-blocks/LayoutItem/form.d.ts +1 -1
  177. package/build/cjs/utils/form-generator.d.ts +1 -1
  178. package/build/esm/blocks/CardLayout/index.d.ts +1 -1
  179. package/build/esm/blocks/ContentLayout/index.d.ts +1 -1
  180. package/build/esm/blocks/ExtendedFeatures/index.d.ts +1 -1
  181. package/build/esm/blocks/FilterBlock/index.d.ts +1 -1
  182. package/build/esm/blocks/Form/index.d.ts +1 -1
  183. package/build/esm/blocks/Header/dynamic-form.d.ts +2 -2
  184. package/build/esm/blocks/Header/index.d.ts +1 -1
  185. package/build/esm/blocks/HeaderSlider/index.d.ts +1 -1
  186. package/build/esm/blocks/Icons/index.d.ts +1 -1
  187. package/build/esm/blocks/Info/index.d.ts +1 -1
  188. package/build/esm/blocks/Map/index.d.ts +1 -1
  189. package/build/esm/blocks/Media/index.d.ts +1 -1
  190. package/build/esm/blocks/PromoFeaturesBlock/index.d.ts +1 -1
  191. package/build/esm/blocks/Questions/index.d.ts +1 -1
  192. package/build/esm/blocks/Share/index.d.ts +1 -1
  193. package/build/esm/blocks/Slider/dynamic-form.d.ts +3 -3
  194. package/build/esm/blocks/Slider/index.d.ts +1 -1
  195. package/build/esm/blocks/Table/index.d.ts +1 -1
  196. package/build/esm/blocks/Tabs/index.d.ts +1 -1
  197. package/build/esm/blocks/TestEditorBlock/form.d.ts +1 -1
  198. package/build/esm/blocks/TestEditorBlock/index.d.ts +1 -1
  199. package/build/esm/common/hooks/usePostMessage.d.ts +11 -0
  200. package/build/esm/common/hooks/usePostMessage.js +90 -0
  201. package/build/{cjs → esm/common}/types/actions/initial.d.ts +1 -1
  202. package/build/{cjs → esm/common}/types/actions/other.d.ts +1 -1
  203. package/build/esm/{types → common/types}/actions/reorder.d.ts +3 -1
  204. package/build/esm/{types/index.d.ts → common/types/common.d.ts} +3 -3
  205. package/build/esm/{types/dynamic-form.d.ts → common/types/forms.d.ts} +2 -1
  206. package/build/esm/common/types/index.d.ts +4 -0
  207. package/build/esm/common/types/index.js +4 -0
  208. package/build/esm/{context/messagesContext/types.d.ts → common/types/messages.d.ts} +1 -1
  209. package/build/esm/components/Image/dynamic-form.d.ts +1 -1
  210. package/build/esm/constructor-items.d.ts +7 -1
  211. package/build/esm/constructor-items.js +6 -0
  212. package/build/esm/containers/PageConstructor/components/ConstructorBlock/hooks/useEditorBlockMouseEvents.js +1 -1
  213. package/build/esm/context/editorContext/store.d.ts +1 -1
  214. package/build/esm/context/editorContext/store.js +1 -1
  215. package/build/esm/context/messagesContext/hooks/useMessageObserver.d.ts +1 -1
  216. package/build/esm/context/messagesContext/hooks/useMessageSender.d.ts +1 -1
  217. package/build/esm/context/messagesContext/messagesContext.d.ts +1 -2
  218. package/build/esm/context/messagesContext/messagesProvider.js +8 -54
  219. package/build/esm/context/messagesContext/store.d.ts +1 -2
  220. package/build/esm/editor/data/templates/test-editor-block.json +18 -0
  221. package/build/esm/editor-v2/components/BigOverlay/BigOverlay.css +33 -0
  222. package/build/esm/editor-v2/components/BigOverlay/BigOverlay.d.ts +7 -0
  223. package/build/esm/editor-v2/components/BigOverlay/BigOverlay.js +38 -0
  224. package/build/esm/editor-v2/components/BlockConfig/BlockConfig.css +33 -0
  225. package/build/esm/editor-v2/components/BlockConfig/BlockConfig.d.ts +7 -0
  226. package/build/esm/editor-v2/components/BlockConfig/BlockConfig.js +33 -0
  227. package/build/esm/editor-v2/components/BlocksList/BlocksList.css +42 -0
  228. package/build/esm/editor-v2/components/BlocksList/BlocksList.d.ts +8 -0
  229. package/build/esm/editor-v2/components/BlocksList/BlocksList.js +20 -0
  230. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.css +2 -0
  231. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.d.ts +12 -0
  232. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.js +116 -0
  233. package/build/esm/editor-v2/components/DynamicForm/FieldBase/FieldBase.css +61 -0
  234. package/build/esm/editor-v2/components/DynamicForm/FieldBase/FieldBase.d.ts +13 -0
  235. package/build/esm/editor-v2/components/DynamicForm/FieldBase/FieldBase.js +30 -0
  236. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.css +38 -0
  237. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.d.ts +14 -0
  238. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.js +81 -0
  239. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/ItemButton/ItemButton.d.ts +11 -0
  240. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/ItemButton/ItemButton.js +25 -0
  241. package/build/esm/editor-v2/components/DynamicForm/Fields/Boolean/Boolean.d.ts +9 -0
  242. package/build/esm/editor-v2/components/DynamicForm/Fields/Boolean/Boolean.js +11 -0
  243. package/build/esm/editor-v2/components/DynamicForm/Fields/Number/Number.d.ts +9 -0
  244. package/build/esm/editor-v2/components/DynamicForm/Fields/Number/Number.js +14 -0
  245. package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.css +5 -0
  246. package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.d.ts +13 -0
  247. package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.js +14 -0
  248. package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.css +8 -0
  249. package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.d.ts +12 -0
  250. package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js +32 -0
  251. package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.d.ts +12 -0
  252. package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.js +13 -0
  253. package/build/esm/editor-v2/components/DynamicForm/Fields/Text/Text.d.ts +9 -0
  254. package/build/esm/editor-v2/components/DynamicForm/Fields/Text/Text.js +11 -0
  255. package/build/esm/editor-v2/components/DynamicForm/Fields/TextArea/TextArea.d.ts +9 -0
  256. package/build/esm/editor-v2/components/DynamicForm/Fields/TextArea/TextArea.js +11 -0
  257. package/build/esm/editor-v2/components/DynamicForm/utils.d.ts +3 -0
  258. package/build/esm/editor-v2/components/DynamicForm/utils.js +16 -0
  259. package/build/esm/editor-v2/components/GlobalConfig/GlobalConfig.css +22 -0
  260. package/build/esm/editor-v2/components/GlobalConfig/GlobalConfig.d.ts +7 -0
  261. package/build/esm/editor-v2/components/GlobalConfig/GlobalConfig.js +16 -0
  262. package/build/esm/editor-v2/components/MiddleScreen/MiddleScreen.css +53 -0
  263. package/build/esm/editor-v2/components/MiddleScreen/MiddleScreen.d.ts +7 -0
  264. package/build/esm/editor-v2/components/MiddleScreen/MiddleScreen.js +32 -0
  265. package/build/esm/editor-v2/components/Overlay/Overlay.css +56 -0
  266. package/build/esm/editor-v2/components/Overlay/Overlay.d.ts +7 -0
  267. package/build/esm/editor-v2/components/Overlay/Overlay.js +69 -0
  268. package/build/esm/editor-v2/components/Sidebar/Sidebar.css +66 -0
  269. package/build/esm/editor-v2/components/Sidebar/Sidebar.d.ts +8 -0
  270. package/build/esm/editor-v2/components/Sidebar/Sidebar.js +64 -0
  271. package/build/esm/editor-v2/components/Source/Source.css +21 -0
  272. package/build/esm/editor-v2/components/Source/Source.d.ts +7 -0
  273. package/build/esm/editor-v2/components/Source/Source.js +28 -0
  274. package/build/esm/editor-v2/components/SourceCode/SourceCode.css +44 -0
  275. package/build/esm/editor-v2/components/SourceCode/SourceCode.d.ts +7 -0
  276. package/build/esm/editor-v2/components/SourceCode/SourceCode.js +53 -0
  277. package/build/esm/editor-v2/components/TopBar/TopBar.css +34 -0
  278. package/build/esm/editor-v2/components/TopBar/TopBar.d.ts +11 -0
  279. package/build/esm/editor-v2/components/TopBar/TopBar.js +13 -0
  280. package/build/esm/editor-v2/components/Tree/Tree.css +148 -0
  281. package/build/esm/editor-v2/components/Tree/Tree.d.ts +8 -0
  282. package/build/esm/editor-v2/components/Tree/Tree.js +30 -0
  283. package/build/esm/editor-v2/components/ViewSwitches/ViewSwitches.css +23 -0
  284. package/build/esm/editor-v2/components/ViewSwitches/ViewSwitches.d.ts +11 -0
  285. package/build/esm/editor-v2/components/ViewSwitches/ViewSwitches.js +20 -0
  286. package/build/esm/editor-v2/constants.d.ts +1 -0
  287. package/build/esm/editor-v2/constants.js +1 -0
  288. package/build/esm/editor-v2/containers/Editor/Editor.css +54 -0
  289. package/build/esm/editor-v2/containers/Editor/Editor.d.ts +10 -0
  290. package/build/esm/editor-v2/containers/Editor/Editor.js +62 -0
  291. package/build/esm/editor-v2/containers/Editor/hooks/useAdminInitialize.d.ts +2 -0
  292. package/build/esm/editor-v2/containers/Editor/hooks/useAdminInitialize.js +23 -0
  293. package/build/esm/editor-v2/context/contentConfig/contentConfigContext.d.ts +10 -0
  294. package/build/esm/editor-v2/context/contentConfig/contentConfigContext.js +5 -0
  295. package/build/esm/editor-v2/context/contentConfig/contentConfigProvider.d.ts +8 -0
  296. package/build/esm/editor-v2/context/contentConfig/contentConfigProvider.js +14 -0
  297. package/build/esm/editor-v2/context/contentConfig/hooks/useContentConfigStore.d.ts +2 -0
  298. package/build/esm/editor-v2/context/contentConfig/hooks/useContentConfigStore.js +11 -0
  299. package/build/esm/editor-v2/context/contentConfig/index.d.ts +4 -0
  300. package/build/esm/editor-v2/context/contentConfig/index.js +4 -0
  301. package/build/esm/editor-v2/context/contentConfig/store.d.ts +35 -0
  302. package/build/esm/editor-v2/context/contentConfig/store.js +102 -0
  303. package/build/esm/editor-v2/context/editorContext/editorContext.d.ts +11 -0
  304. package/build/esm/editor-v2/context/editorContext/editorContext.js +6 -0
  305. package/build/esm/editor-v2/context/editorContext/editorProvider.d.ts +2 -0
  306. package/build/esm/editor-v2/context/editorContext/editorProvider.js +10 -0
  307. package/build/esm/editor-v2/context/editorContext/hooks/useEditorStore.d.ts +2 -0
  308. package/build/esm/editor-v2/context/editorContext/hooks/useEditorStore.js +11 -0
  309. package/build/esm/editor-v2/context/editorContext/index.d.ts +4 -0
  310. package/build/esm/editor-v2/context/editorContext/index.js +4 -0
  311. package/build/esm/editor-v2/context/editorContext/store.d.ts +26 -0
  312. package/build/esm/editor-v2/context/editorContext/store.js +52 -0
  313. package/build/esm/editor-v2/context/iframeContext/hooks/useIframeStore.d.ts +2 -0
  314. package/build/esm/editor-v2/context/iframeContext/hooks/useIframeStore.js +11 -0
  315. package/build/esm/editor-v2/context/iframeContext/iframeContext.d.ts +13 -0
  316. package/build/esm/editor-v2/context/iframeContext/iframeContext.js +5 -0
  317. package/build/esm/editor-v2/context/iframeContext/iframeProvider.d.ts +7 -0
  318. package/build/esm/editor-v2/context/iframeContext/iframeProvider.js +18 -0
  319. package/build/esm/editor-v2/context/iframeContext/index.d.ts +4 -0
  320. package/build/esm/editor-v2/context/iframeContext/index.js +4 -0
  321. package/build/esm/editor-v2/context/iframeContext/store.d.ts +26 -0
  322. package/build/esm/editor-v2/context/iframeContext/store.js +42 -0
  323. package/build/esm/editor-v2/context/messagesContext/hooks/useMessageObserver.d.ts +4 -0
  324. package/build/esm/editor-v2/context/messagesContext/hooks/useMessageObserver.js +12 -0
  325. package/build/esm/editor-v2/context/messagesContext/hooks/useMessageSender.d.ts +2 -0
  326. package/build/esm/editor-v2/context/messagesContext/hooks/useMessageSender.js +7 -0
  327. package/build/esm/editor-v2/context/messagesContext/hooks/useMessagesStore.d.ts +2 -0
  328. package/build/esm/editor-v2/context/messagesContext/hooks/useMessagesStore.js +11 -0
  329. package/build/esm/editor-v2/context/messagesContext/index.d.ts +5 -0
  330. package/build/esm/editor-v2/context/messagesContext/index.js +5 -0
  331. package/build/esm/editor-v2/context/messagesContext/messagesContext.d.ts +13 -0
  332. package/build/esm/editor-v2/context/messagesContext/messagesContext.js +8 -0
  333. package/build/esm/editor-v2/context/messagesContext/messagesProvider.d.ts +2 -0
  334. package/build/esm/editor-v2/context/messagesContext/messagesProvider.js +30 -0
  335. package/build/esm/editor-v2/context/messagesContext/store.d.ts +22 -0
  336. package/build/esm/editor-v2/context/messagesContext/store.js +14 -0
  337. package/build/esm/editor-v2/icons/Tablet.d.ts +2 -0
  338. package/build/esm/editor-v2/icons/Tablet.js +4 -0
  339. package/build/esm/editor-v2/index.d.ts +2 -0
  340. package/build/esm/editor-v2/index.js +2 -0
  341. package/build/esm/editor-v2/styles/mixins.css +0 -0
  342. package/build/esm/editor-v2/styles/root.css +9 -0
  343. package/build/esm/editor-v2/styles/variables.css +0 -0
  344. package/build/esm/editor-v2/utils/code.d.ts +6 -0
  345. package/build/esm/editor-v2/utils/code.js +6 -0
  346. package/build/esm/editor-v2/utils/index.d.ts +17 -0
  347. package/build/esm/editor-v2/utils/index.js +134 -0
  348. package/build/esm/editor-v2/utils/store.d.ts +14 -0
  349. package/build/esm/editor-v2/utils/store.js +5 -0
  350. package/build/esm/hooks/useEditorInitialize.js +1 -1
  351. package/build/esm/sub-blocks/BackgroundCard/dynamic-form.d.ts +2 -2
  352. package/build/esm/sub-blocks/LayoutItem/form.d.ts +1 -1
  353. package/build/esm/utils/form-generator.d.ts +1 -1
  354. package/package.json +12 -3
  355. package/widget/index.js +1 -1
  356. package/build/cjs/{types → common/types}/actions/codes.d.ts +0 -0
  357. package/build/cjs/{types → common/types}/actions/codes.js +0 -0
  358. package/build/cjs/{types → common/types}/actions/index.d.ts +1 -1
  359. package/build/cjs/{types → common/types}/actions/index.js +1 -1
  360. package/build/cjs/{types → common/types}/actions/initial.js +0 -0
  361. package/build/cjs/{types → common/types}/actions/insert.d.ts +0 -0
  362. package/build/cjs/{types → common/types}/actions/insert.js +0 -0
  363. package/build/cjs/{types → common/types}/actions/other.js +0 -0
  364. package/build/cjs/{types → common/types}/actions/overlay.d.ts +0 -0
  365. package/build/cjs/{types → common/types}/actions/overlay.js +0 -0
  366. package/build/cjs/{types → common/types}/actions/reorder.js +0 -0
  367. package/build/cjs/{types → common/types}/actions/select.d.ts +0 -0
  368. package/build/cjs/{types → common/types}/actions/select.js +0 -0
  369. package/build/cjs/{context/messagesContext/types.js → common/types/common.js} +0 -0
  370. package/build/cjs/{types/dynamic-form.js → common/types/forms.js} +0 -0
  371. package/build/cjs/{types/index.js → common/types/messages.js} +0 -0
  372. package/build/esm/{types → common/types}/actions/codes.d.ts +0 -0
  373. package/build/esm/{types → common/types}/actions/codes.js +0 -0
  374. package/build/esm/{types → common/types}/actions/index.d.ts +1 -1
  375. package/build/esm/{types → common/types}/actions/index.js +1 -1
  376. /package/build/esm/{types → common/types}/actions/initial.js +0 -0
  377. /package/build/esm/{types → common/types}/actions/insert.d.ts +0 -0
  378. /package/build/esm/{types → common/types}/actions/insert.js +0 -0
  379. /package/build/esm/{types → common/types}/actions/other.js +0 -0
  380. /package/build/esm/{types → common/types}/actions/overlay.d.ts +0 -0
  381. /package/build/esm/{types → common/types}/actions/overlay.js +0 -0
  382. /package/build/esm/{types → common/types}/actions/reorder.js +0 -0
  383. /package/build/esm/{types → common/types}/actions/select.d.ts +0 -0
  384. /package/build/esm/{types → common/types}/actions/select.js +0 -0
  385. /package/build/esm/{context/messagesContext/types.js → common/types/common.js} +0 -0
  386. /package/build/esm/{types/dynamic-form.js → common/types/forms.js} +0 -0
  387. /package/build/esm/{types/index.js → common/types/messages.js} +0 -0
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const icons_1 = require("@gravity-ui/icons");
6
+ const uikit_1 = require("@gravity-ui/uikit");
7
+ const types_1 = require("../../../common/types");
8
+ const utils_1 = require("../../../utils");
9
+ const contentConfig_1 = require("../../context/contentConfig");
10
+ const editorContext_1 = require("../../context/editorContext");
11
+ const iframeContext_1 = require("../../context/iframeContext");
12
+ const messagesContext_1 = require("../../context/messagesContext");
13
+ const b = (0, utils_1.block)('overlay');
14
+ const Overlay = ({ className }) => {
15
+ const { selectedBlock } = (0, editorContext_1.useEditorStore)();
16
+ const [insertLineBox, setInsertLineBox] = (0, react_1.useState)(undefined);
17
+ const { height } = (0, iframeContext_1.useIframeStore)();
18
+ const { deleteBlock, duplicateBlock } = (0, contentConfig_1.useContentConfigStore)();
19
+ const sendMessage = (0, messagesContext_1.useMessageSender)();
20
+ const margin = 0;
21
+ (0, messagesContext_1.useMessageObserver)(types_1.ActionTypes.OverlayModeOnMove, (payload) => {
22
+ if (payload && payload.block) {
23
+ const { rect, cursorPosition } = payload.block;
24
+ setInsertLineBox({
25
+ left: rect.x,
26
+ top: rect.y,
27
+ height: rect.height,
28
+ width: rect.width,
29
+ position: cursorPosition,
30
+ });
31
+ }
32
+ });
33
+ (0, messagesContext_1.useMessageObserver)(types_1.ActionTypes.InsertModeDisable, () => {
34
+ setInsertLineBox(undefined);
35
+ });
36
+ (0, messagesContext_1.useMessageObserver)(types_1.ActionTypes.ReorderModeDisable, () => {
37
+ setInsertLineBox(undefined);
38
+ });
39
+ const onMouseDown = (0, react_1.useCallback)(() => {
40
+ if (selectedBlock) {
41
+ sendMessage({
42
+ type: types_1.ActionTypes.ReorderModeEnable,
43
+ payload: { path: selectedBlock.path },
44
+ });
45
+ }
46
+ }, [selectedBlock, sendMessage]);
47
+ return (react_1.default.createElement("div", { className: b(null, className), style: { height: `${height}px` } },
48
+ selectedBlock ? (react_1.default.createElement("div", { className: b('border'), style: {
49
+ top: selectedBlock.rect.top - margin,
50
+ left: selectedBlock.rect.left - margin,
51
+ width: selectedBlock.rect.width + margin * 2,
52
+ height: selectedBlock.rect.height + margin * 2,
53
+ } },
54
+ react_1.default.createElement("div", { className: b('actions') },
55
+ react_1.default.createElement("div", { onMouseDown: onMouseDown },
56
+ react_1.default.createElement(uikit_1.Button, { pin: 'round-clear', className: `${b('action-button', { grip: true })}`, size: 'm', view: 'action' },
57
+ react_1.default.createElement(uikit_1.Icon, { data: icons_1.Grip, size: 18 }))),
58
+ react_1.default.createElement(uikit_1.Button, { pin: 'clear-clear', className: b('action-button'), size: 'm', view: 'action', onClick: () => selectedBlock && deleteBlock(selectedBlock.path) },
59
+ react_1.default.createElement(uikit_1.Icon, { data: icons_1.TrashBin, size: 18 })),
60
+ react_1.default.createElement(uikit_1.Button, { pin: 'clear-round', className: b('action-button'), size: 'm', view: 'action', onClick: () => selectedBlock && duplicateBlock(selectedBlock.path) },
61
+ react_1.default.createElement(uikit_1.Icon, { data: icons_1.Copy, size: 18 }))))) : null,
62
+ insertLineBox ? (react_1.default.createElement("div", { className: b('line', {
63
+ position: insertLineBox.position,
64
+ }), style: {
65
+ top: insertLineBox.top,
66
+ left: insertLineBox.left,
67
+ width: insertLineBox.width,
68
+ height: insertLineBox.height,
69
+ } })) : null));
70
+ };
71
+ exports.default = Overlay;
@@ -0,0 +1,66 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ body {
4
+ --pc-editor-header-height: 48px;
5
+ --pc-editor-code-header-height: 36px;
6
+ --pc-editor-divider-width: 12px;
7
+ --pc-editor-left-column-width: calc(400px + var(--pc-editor-divider-width));
8
+ --pc-editor-base-color: var(--g-color-base-brand);
9
+ --pc-editor-control-color: var(--g-color-base-brand);
10
+ --pc-editor-control-icon-color: var(--g-color-text-dark-primary);
11
+ }
12
+
13
+ .pc-sidebar {
14
+ position: relative;
15
+ height: 100%;
16
+ width: 100%;
17
+ display: flex;
18
+ }
19
+ .pc-sidebar_position_left {
20
+ flex-direction: row;
21
+ }
22
+ .pc-sidebar_position_right {
23
+ flex-direction: row-reverse;
24
+ }
25
+ .pc-sidebar__buttons-wrapper {
26
+ border-right: 1px solid var(--g-color-line-generic);
27
+ }
28
+ .pc-sidebar__buttons {
29
+ display: inline-flex;
30
+ flex-direction: column;
31
+ padding: 8px;
32
+ gap: 8px;
33
+ }
34
+ .pc-sidebar__buttons:hover .pc-sidebar__label-wrapper {
35
+ opacity: 1;
36
+ }
37
+ .pc-sidebar__body {
38
+ flex: 1;
39
+ border-right: 1px solid var(--g-color-line-generic);
40
+ overflow-y: auto;
41
+ }
42
+ .pc-sidebar__button-wrapper {
43
+ position: relative;
44
+ }
45
+ .pc-sidebar_position_right .pc-sidebar__button-wrapper:hover .pc-sidebar__label-wrapper {
46
+ right: 40px;
47
+ }
48
+ .pc-sidebar_position_right .pc-sidebar__label-wrapper {
49
+ right: 50px;
50
+ }
51
+ .pc-sidebar_position_left .pc-sidebar__button-wrapper:hover .pc-sidebar__label-wrapper {
52
+ left: 40px;
53
+ }
54
+ .pc-sidebar_position_left .pc-sidebar__label-wrapper {
55
+ left: 50px;
56
+ }
57
+ .pc-sidebar__label-wrapper {
58
+ pointer-events: none;
59
+ opacity: 0;
60
+ background-color: var(--g-color-base-background);
61
+ position: absolute;
62
+ top: 50%;
63
+ transform: translateY(-50%);
64
+ z-index: 100;
65
+ transition: left 0.1s ease, right 0.1s ease, opacity 0.1s ease;
66
+ }
@@ -0,0 +1,7 @@
1
+ import { ClassNameProps } from '../../../models';
2
+ interface SidebarProps extends ClassNameProps {
3
+ position: 'left' | 'right';
4
+ startMenu?: string;
5
+ }
6
+ export declare const Sidebar: ({ className, position, startMenu }: SidebarProps) => JSX.Element;
7
+ export {};
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Sidebar = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const icons_1 = require("@gravity-ui/icons");
7
+ const uikit_1 = require("@gravity-ui/uikit");
8
+ const utils_1 = require("../../../utils");
9
+ const BlockConfig_1 = tslib_1.__importDefault(require("../BlockConfig/BlockConfig"));
10
+ const BlocksList_1 = tslib_1.__importDefault(require("../BlocksList/BlocksList"));
11
+ const GlobalConfig_1 = tslib_1.__importDefault(require("../GlobalConfig/GlobalConfig"));
12
+ const SourceCode_1 = tslib_1.__importDefault(require("../SourceCode/SourceCode"));
13
+ const Tree_1 = tslib_1.__importDefault(require("../Tree/Tree"));
14
+ const b = (0, utils_1.block)('sidebar');
15
+ const Sidebar = ({ className, position, startMenu }) => {
16
+ const [currentTab, setCurrentTab] = (0, react_1.useState)(startMenu || 'blocks-list');
17
+ const defaultTabs = (0, react_1.useMemo)(() => [
18
+ {
19
+ id: 'blocks-list',
20
+ name: 'Блоки',
21
+ icon: icons_1.Rectangles4,
22
+ component: BlocksList_1.default,
23
+ position: 'left',
24
+ },
25
+ {
26
+ id: 'global-config',
27
+ name: 'Глобальная конфигурация',
28
+ icon: icons_1.Gear,
29
+ component: GlobalConfig_1.default,
30
+ position: 'left',
31
+ },
32
+ {
33
+ id: 'tree',
34
+ name: 'Дерево',
35
+ icon: icons_1.FolderTree,
36
+ component: Tree_1.default,
37
+ position: 'left',
38
+ },
39
+ {
40
+ id: 'block-config',
41
+ name: 'Конфигурация блока',
42
+ icon: icons_1.Square,
43
+ component: BlockConfig_1.default,
44
+ position: 'right',
45
+ },
46
+ {
47
+ id: 'source-code',
48
+ name: 'Исходный код',
49
+ icon: icons_1.Code,
50
+ component: SourceCode_1.default,
51
+ position: 'both',
52
+ },
53
+ ], []);
54
+ const filteredTabs = defaultTabs.filter(({ position: tabPosition }) => tabPosition === 'both' || tabPosition === position);
55
+ const TabComponent = (0, react_1.useMemo)(() => {
56
+ const findTab = defaultTabs.find(({ id }) => id === currentTab);
57
+ return findTab === null || findTab === void 0 ? void 0 : findTab.component;
58
+ }, [currentTab, defaultTabs]);
59
+ return (react_1.default.createElement("div", { className: `${b(null, className)} ${b('', { position })}` },
60
+ react_1.default.createElement("div", { className: b('buttons-wrapper') },
61
+ react_1.default.createElement("div", { className: b('buttons') }, filteredTabs.map(({ id, icon, name }) => (react_1.default.createElement("div", { className: b('button-wrapper'), key: id },
62
+ react_1.default.createElement(uikit_1.Button, { view: currentTab === id ? 'action' : 'flat', size: "m", onClick: () => setCurrentTab(id) },
63
+ react_1.default.createElement(uikit_1.Icon, { data: icon, size: 18 })),
64
+ react_1.default.createElement("div", { className: b('label-wrapper') },
65
+ react_1.default.createElement(uikit_1.Label, { theme: 'normal', size: 'm' }, name))))))),
66
+ react_1.default.createElement("div", { className: b('body') }, TabComponent && react_1.default.createElement(TabComponent, null))));
67
+ };
68
+ exports.Sidebar = Sidebar;
@@ -0,0 +1,21 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ body {
4
+ --pc-editor-header-height: 48px;
5
+ --pc-editor-code-header-height: 36px;
6
+ --pc-editor-divider-width: 12px;
7
+ --pc-editor-left-column-width: calc(400px + var(--pc-editor-divider-width));
8
+ --pc-editor-base-color: var(--g-color-base-brand);
9
+ --pc-editor-control-color: var(--g-color-base-brand);
10
+ --pc-editor-control-icon-color: var(--g-color-text-dark-primary);
11
+ }
12
+
13
+ .pc-source {
14
+ display: inline-flex;
15
+ align-items: center;
16
+ padding: 0 8px;
17
+ gap: 8px;
18
+ }
19
+ .pc-source__text {
20
+ flex: 1;
21
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { ClassNameProps } from '../../../models';
3
+ interface SourceProps extends ClassNameProps {
4
+ }
5
+ declare const Source: React.FC<SourceProps>;
6
+ export default Source;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const icons_1 = require("@gravity-ui/icons");
6
+ const uikit_1 = require("@gravity-ui/uikit");
7
+ const utils_1 = require("../../../utils");
8
+ const editorContext_1 = require("../../context/editorContext");
9
+ const iframeContext_1 = require("../../context/iframeContext");
10
+ const b = (0, utils_1.block)('source');
11
+ const Source = ({ className }) => {
12
+ const { url, setUrl } = (0, iframeContext_1.useIframeStore)();
13
+ const { resetInitialize } = (0, editorContext_1.useEditorStore)();
14
+ const { disableUrlField } = (0, react_1.useContext)(iframeContext_1.IframeContext);
15
+ const onUpdateUrl = (0, react_1.useCallback)((value) => {
16
+ setUrl(value);
17
+ resetInitialize();
18
+ }, [resetInitialize, setUrl]);
19
+ const reloadIframe = () => {
20
+ setUrl('');
21
+ setTimeout(() => {
22
+ setUrl(url);
23
+ }, 0);
24
+ };
25
+ return (react_1.default.createElement("div", { className: b(null, className) },
26
+ react_1.default.createElement(uikit_1.Button, { view: "flat", size: "m", onClick: reloadIframe },
27
+ react_1.default.createElement(uikit_1.Icon, { data: icons_1.ArrowRotateRight, size: 18 })),
28
+ react_1.default.createElement(uikit_1.TextInput, { disabled: disableUrlField, className: b('text'), size: "s", value: url, onUpdate: onUpdateUrl })));
29
+ };
30
+ exports.default = Source;
@@ -0,0 +1,44 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ body {
4
+ --pc-editor-header-height: 48px;
5
+ --pc-editor-code-header-height: 36px;
6
+ --pc-editor-divider-width: 12px;
7
+ --pc-editor-left-column-width: calc(400px + var(--pc-editor-divider-width));
8
+ --pc-editor-base-color: var(--g-color-base-brand);
9
+ --pc-editor-control-color: var(--g-color-base-brand);
10
+ --pc-editor-control-icon-color: var(--g-color-text-dark-primary);
11
+ }
12
+
13
+ .pc-source-code {
14
+ height: 100%;
15
+ box-sizing: border-box;
16
+ display: flex;
17
+ flex-direction: column;
18
+ gap: 10px;
19
+ }
20
+ .pc-source-code__code {
21
+ white-space: pre;
22
+ font-family: var(--g-font-family-monospace);
23
+ font-size: var(--g-text-code-inline-1-font-size);
24
+ line-height: var(--g-text-code-inline-1-line-height);
25
+ font-weight: var(--g-text-code-font-weight);
26
+ padding: 0 10px 10px;
27
+ overflow: auto;
28
+ }
29
+ .pc-source-code__head {
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: flex-start;
33
+ gap: 8px;
34
+ padding: 10px 10px 0;
35
+ }
36
+ .pc-source-code__textarea textarea {
37
+ font-family: var(--g-font-family-monospace);
38
+ font-size: var(--g-text-code-inline-1-font-size);
39
+ line-height: var(--g-text-code-inline-1-line-height);
40
+ font-weight: var(--g-text-code-font-weight);
41
+ }
42
+ .pc-source-code__alert {
43
+ margin-bottom: 8px;
44
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { ClassNameProps } from '../../../models';
3
+ interface SourceCodeProps extends ClassNameProps {
4
+ }
5
+ declare const SourceCode: React.FC<SourceCodeProps>;
6
+ export default SourceCode;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const icons_1 = require("@gravity-ui/icons");
6
+ const uikit_1 = require("@gravity-ui/uikit");
7
+ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
8
+ const utils_1 = require("../../../utils");
9
+ const useContentConfigStore_1 = require("../../context/contentConfig/hooks/useContentConfigStore");
10
+ const b = (0, utils_1.block)('source-code');
11
+ const SourceCode = ({ className }) => {
12
+ const { config, setConfig } = (0, useContentConfigStore_1.useContentConfigStore)();
13
+ const [isOpen, setIsOpen] = (0, react_1.useState)(false);
14
+ const [tempConfig, setTempConfig] = (0, react_1.useState)('');
15
+ const [format, setFormat] = (0, react_1.useState)('yaml');
16
+ const onUpdate = () => {
17
+ let object;
18
+ try {
19
+ if (tempConfig.trim().startsWith('{') && tempConfig.trim().endsWith('}')) {
20
+ object = JSON.parse(tempConfig);
21
+ }
22
+ else {
23
+ object = js_yaml_1.default.load(tempConfig);
24
+ }
25
+ }
26
+ catch (_a) {
27
+ // eslint-disable-next-line no-console
28
+ console.error('JSON.parse failed');
29
+ }
30
+ if (object) {
31
+ setConfig(object);
32
+ }
33
+ setIsOpen(false);
34
+ };
35
+ const text = format === 'yaml' ? js_yaml_1.default.dump(config) : JSON.stringify(config, null, 2);
36
+ return (react_1.default.createElement("div", { className: b(null, className) },
37
+ react_1.default.createElement("div", { className: b('head') },
38
+ react_1.default.createElement(uikit_1.RadioButton, { value: format, onUpdate: setFormat },
39
+ react_1.default.createElement(uikit_1.RadioButton.Option, { value: 'yaml', content: 'YAML' }),
40
+ react_1.default.createElement(uikit_1.RadioButton.Option, { value: 'json', content: 'JSON' })),
41
+ react_1.default.createElement(uikit_1.CopyToClipboard, { text: text, timeout: 1000 }, (status) => (react_1.default.createElement(uikit_1.Button, null,
42
+ status === 'pending' ? (react_1.default.createElement(uikit_1.Icon, { data: icons_1.Copy })) : (react_1.default.createElement(uikit_1.Icon, { data: icons_1.CopyCheck })),
43
+ "Copy"))),
44
+ react_1.default.createElement(uikit_1.Button, { onClick: () => setIsOpen(true) },
45
+ react_1.default.createElement(uikit_1.Icon, { data: icons_1.ArrowDownToSquare }),
46
+ "Import")),
47
+ react_1.default.createElement("div", { className: b('code') }, text),
48
+ react_1.default.createElement(uikit_1.Dialog, { onClose: () => setIsOpen(false), open: isOpen, size: 'l' },
49
+ react_1.default.createElement(uikit_1.Dialog.Header, { caption: "New configuration" }),
50
+ react_1.default.createElement(uikit_1.Dialog.Body, null,
51
+ react_1.default.createElement(uikit_1.Alert, { className: b('alert'), theme: 'info', title: 'You can use YAML or JSON', message: 'The editor will automatically understand which format is needed.' }),
52
+ react_1.default.createElement(uikit_1.TextArea, { className: b('textarea'), value: tempConfig, onUpdate: setTempConfig, rows: 25 })),
53
+ react_1.default.createElement(uikit_1.Dialog.Footer, { showError: false, listenKeyEnter: true, preset: 'default', textButtonApply: 'Apply', textButtonCancel: 'Cancel', onClickButtonApply: onUpdate, onClickButtonCancel: () => setIsOpen(false) }))));
54
+ };
55
+ exports.default = SourceCode;
@@ -0,0 +1,34 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ body {
4
+ --pc-editor-header-height: 48px;
5
+ --pc-editor-code-header-height: 36px;
6
+ --pc-editor-divider-width: 12px;
7
+ --pc-editor-left-column-width: calc(400px + var(--pc-editor-divider-width));
8
+ --pc-editor-base-color: var(--g-color-base-brand);
9
+ --pc-editor-control-color: var(--g-color-base-brand);
10
+ --pc-editor-control-icon-color: var(--g-color-text-dark-primary);
11
+ }
12
+
13
+ .pc-topbar {
14
+ display: flex;
15
+ justify-content: start;
16
+ align-items: center;
17
+ width: 100%;
18
+ height: 40px;
19
+ border-bottom: 1px solid var(--g-color-line-generic);
20
+ }
21
+ .pc-topbar__switches {
22
+ display: flex;
23
+ align-items: center;
24
+ width: auto;
25
+ height: 100%;
26
+ padding: 0 12px;
27
+ gap: 12px;
28
+ border-right: 1px solid var(--g-color-line-generic);
29
+ }
30
+ .pc-topbar__source {
31
+ flex: 1;
32
+ width: 100%;
33
+ box-sizing: border-box;
34
+ }
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { ClassNameProps } from '../../../models';
3
+ interface TopBarProps extends ClassNameProps {
4
+ onZoomUpdate: (zoom: number) => void;
5
+ onDecreaseZoom: () => void;
6
+ onIncreaseZoom: () => void;
7
+ zoom: number;
8
+ }
9
+ declare const TopBar: React.FC<TopBarProps>;
10
+ export default TopBar;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const utils_1 = require("../../../utils");
6
+ const Source_1 = tslib_1.__importDefault(require("../Source/Source"));
7
+ const ViewSwitches_1 = tslib_1.__importDefault(require("../ViewSwitches/ViewSwitches"));
8
+ const b = (0, utils_1.block)('topbar');
9
+ const TopBar = ({ zoom, onDecreaseZoom, onIncreaseZoom, onZoomUpdate, className, }) => {
10
+ return (react_1.default.createElement("div", { className: b(null, className) },
11
+ react_1.default.createElement("div", { className: b('switches') },
12
+ react_1.default.createElement(ViewSwitches_1.default, { onZoomUpdate: onZoomUpdate, onDecreaseZoom: onDecreaseZoom, onIncreaseZoom: onIncreaseZoom, zoom: zoom })),
13
+ react_1.default.createElement(Source_1.default, { className: b('source') })));
14
+ };
15
+ exports.default = TopBar;
@@ -0,0 +1,148 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ body {
4
+ --pc-editor-header-height: 48px;
5
+ --pc-editor-code-header-height: 36px;
6
+ --pc-editor-divider-width: 12px;
7
+ --pc-editor-left-column-width: calc(400px + var(--pc-editor-divider-width));
8
+ --pc-editor-base-color: var(--g-color-base-brand);
9
+ --pc-editor-control-color: var(--g-color-base-brand);
10
+ --pc-editor-control-icon-color: var(--g-color-text-dark-primary);
11
+ }
12
+
13
+ .pc-tree {
14
+ padding: 12px;
15
+ }
16
+ .pc-tree__item {
17
+ padding: 8px;
18
+ margin-bottom: 8px;
19
+ }
20
+ .pc-tree__item:last-child {
21
+ margin-bottom: 0;
22
+ }
23
+ .pc-tree__item_deep_1 {
24
+ position: relative;
25
+ margin-left: 16px;
26
+ width: calc(100% - 16px);
27
+ }
28
+ .pc-tree__item_deep_1:before {
29
+ content: "";
30
+ position: absolute;
31
+ right: calc(100% + 12px);
32
+ height: 100%;
33
+ width: 2px;
34
+ background-color: var(--g-color-line-generic-accent);
35
+ top: 0;
36
+ }
37
+ .pc-tree__item_deep_2 {
38
+ position: relative;
39
+ margin-left: 32px;
40
+ width: calc(100% - 32px);
41
+ }
42
+ .pc-tree__item_deep_2:before {
43
+ content: "";
44
+ position: absolute;
45
+ right: calc(100% + 12px);
46
+ height: 100%;
47
+ width: 2px;
48
+ background-color: var(--g-color-line-generic-accent);
49
+ top: 0;
50
+ }
51
+ .pc-tree__item_deep_3 {
52
+ position: relative;
53
+ margin-left: 48px;
54
+ width: calc(100% - 48px);
55
+ }
56
+ .pc-tree__item_deep_3:before {
57
+ content: "";
58
+ position: absolute;
59
+ right: calc(100% + 12px);
60
+ height: 100%;
61
+ width: 2px;
62
+ background-color: var(--g-color-line-generic-accent);
63
+ top: 0;
64
+ }
65
+ .pc-tree__item_deep_4 {
66
+ position: relative;
67
+ margin-left: 64px;
68
+ width: calc(100% - 64px);
69
+ }
70
+ .pc-tree__item_deep_4:before {
71
+ content: "";
72
+ position: absolute;
73
+ right: calc(100% + 12px);
74
+ height: 100%;
75
+ width: 2px;
76
+ background-color: var(--g-color-line-generic-accent);
77
+ top: 0;
78
+ }
79
+ .pc-tree__item_deep_5 {
80
+ position: relative;
81
+ margin-left: 80px;
82
+ width: calc(100% - 80px);
83
+ }
84
+ .pc-tree__item_deep_5:before {
85
+ content: "";
86
+ position: absolute;
87
+ right: calc(100% + 12px);
88
+ height: 100%;
89
+ width: 2px;
90
+ background-color: var(--g-color-line-generic-accent);
91
+ top: 0;
92
+ }
93
+ .pc-tree__item_deep_6 {
94
+ position: relative;
95
+ margin-left: 96px;
96
+ width: calc(100% - 96px);
97
+ }
98
+ .pc-tree__item_deep_6:before {
99
+ content: "";
100
+ position: absolute;
101
+ right: calc(100% + 12px);
102
+ height: 100%;
103
+ width: 2px;
104
+ background-color: var(--g-color-line-generic-accent);
105
+ top: 0;
106
+ }
107
+ .pc-tree__item_deep_7 {
108
+ position: relative;
109
+ margin-left: 112px;
110
+ width: calc(100% - 112px);
111
+ }
112
+ .pc-tree__item_deep_7:before {
113
+ content: "";
114
+ position: absolute;
115
+ right: calc(100% + 12px);
116
+ height: 100%;
117
+ width: 2px;
118
+ background-color: var(--g-color-line-generic-accent);
119
+ top: 0;
120
+ }
121
+ .pc-tree__item_deep_8 {
122
+ position: relative;
123
+ margin-left: 128px;
124
+ width: calc(100% - 128px);
125
+ }
126
+ .pc-tree__item_deep_8:before {
127
+ content: "";
128
+ position: absolute;
129
+ right: calc(100% + 12px);
130
+ height: 100%;
131
+ width: 2px;
132
+ background-color: var(--g-color-line-generic-accent);
133
+ top: 0;
134
+ }
135
+ .pc-tree__item_deep_9 {
136
+ position: relative;
137
+ margin-left: 144px;
138
+ width: calc(100% - 144px);
139
+ }
140
+ .pc-tree__item_deep_9:before {
141
+ content: "";
142
+ position: absolute;
143
+ right: calc(100% + 12px);
144
+ height: 100%;
145
+ width: 2px;
146
+ background-color: var(--g-color-line-generic-accent);
147
+ top: 0;
148
+ }
@@ -0,0 +1,7 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { ItemConfig } from '../../../common/types';
3
+ export interface TreeProps {
4
+ blocks: ItemConfig[];
5
+ }
6
+ declare const Tree: (_p: PropsWithChildren<TreeProps>) => JSX.Element;
7
+ export default Tree;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const uikit_1 = require("@gravity-ui/uikit");
6
+ const utils_1 = require("../../../utils");
7
+ const contentConfig_1 = require("../../context/contentConfig");
8
+ const b = (0, utils_1.block)('tree');
9
+ const generateTree = (items) => {
10
+ return items.map((item) => {
11
+ var _a;
12
+ let children;
13
+ if ('children' in item && ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length)) {
14
+ children = generateTree(item.children);
15
+ }
16
+ return {
17
+ type: item.type,
18
+ children,
19
+ };
20
+ });
21
+ };
22
+ const Tree = (_p) => {
23
+ const { config } = (0, contentConfig_1.useContentConfigStore)();
24
+ const blockTree = generateTree(config.blocks);
25
+ const renderTree = (items, deepLevel = 0) => {
26
+ return items.map(({ type, children }, index) => (react_1.default.createElement(react_1.default.Fragment, { key: index },
27
+ react_1.default.createElement(uikit_1.Card, { className: b('item', { deep: deepLevel }) }, type),
28
+ children && renderTree(children, deepLevel + 1))));
29
+ };
30
+ return react_1.default.createElement("div", { className: b() }, renderTree(blockTree));
31
+ };
32
+ exports.default = Tree;
@@ -0,0 +1,23 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ body {
4
+ --pc-editor-header-height: 48px;
5
+ --pc-editor-code-header-height: 36px;
6
+ --pc-editor-divider-width: 12px;
7
+ --pc-editor-left-column-width: calc(400px + var(--pc-editor-divider-width));
8
+ --pc-editor-base-color: var(--g-color-base-brand);
9
+ --pc-editor-control-color: var(--g-color-base-brand);
10
+ --pc-editor-control-icon-color: var(--g-color-text-dark-primary);
11
+ }
12
+
13
+ .pc-view-switches {
14
+ display: inline-flex;
15
+ gap: 12px;
16
+ }
17
+ .pc-view-switches__zoom {
18
+ display: flex;
19
+ gap: 4px;
20
+ }
21
+ .pc-view-switches__zoom-input {
22
+ width: 40px;
23
+ }
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { ClassNameProps } from '../../../models';
3
+ interface ViewSwitchesProps extends ClassNameProps {
4
+ onZoomUpdate: (zoom: number) => void;
5
+ onDecreaseZoom: () => void;
6
+ onIncreaseZoom: () => void;
7
+ zoom: number;
8
+ }
9
+ declare const ViewSwitches: React.FC<ViewSwitchesProps>;
10
+ export default ViewSwitches;