@gravity-ui/page-constructor 3.4.0 → 3.5.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/CHANGELOG.md +0 -27
  2. package/README.md +0 -2
  3. package/build/cjs/blocks/Banner/schema.d.ts +21 -63
  4. package/build/cjs/blocks/CardLayout/schema.d.ts +4 -10
  5. package/build/cjs/blocks/Companies/schema.d.ts +2 -5
  6. package/build/cjs/blocks/ContentLayout/ContentLayout.js +2 -3
  7. package/build/cjs/blocks/ContentLayout/schema.d.ts +61 -107
  8. package/build/cjs/blocks/ContentLayout/schema.js +18 -23
  9. package/build/cjs/blocks/ExtendedFeatures/schema.d.ts +4 -31
  10. package/build/cjs/blocks/ExtendedFeatures/schema.js +3 -2
  11. package/build/cjs/blocks/FilterBlock/schema.d.ts +5 -13
  12. package/build/cjs/blocks/FilterBlock/schema.js +2 -13
  13. package/build/cjs/blocks/Header/Header.css +7 -6
  14. package/build/cjs/blocks/Header/schema.d.ts +36 -92
  15. package/build/cjs/blocks/Header/schema.js +0 -1
  16. package/build/cjs/blocks/HeaderSlider/schema.d.ts +53 -48
  17. package/build/cjs/blocks/HeaderSlider/schema.js +1 -3
  18. package/build/cjs/blocks/Icons/schema.d.ts +1 -3
  19. package/build/cjs/blocks/Icons/schema.js +1 -2
  20. package/build/cjs/blocks/Info/schema.d.ts +8 -19
  21. package/build/cjs/blocks/Map/schema.d.ts +6 -17
  22. package/build/cjs/blocks/Media/schema.d.ts +152 -204
  23. package/build/cjs/blocks/Media/schema.js +1 -1
  24. package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +8 -22
  25. package/build/cjs/blocks/PromoFeaturesBlock/schema.js +0 -1
  26. package/build/cjs/blocks/Questions/schema.d.ts +3 -7
  27. package/build/cjs/blocks/Slider/schema.d.ts +18 -13
  28. package/build/cjs/blocks/Slider/schema.js +5 -4
  29. package/build/cjs/blocks/Table/schema.d.ts +2 -5
  30. package/build/cjs/blocks/Table/schema.js +2 -12
  31. package/build/cjs/blocks/Tabs/schema.d.ts +16 -43
  32. package/build/cjs/components/BlockBase/BlockBase.js +2 -2
  33. package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
  34. package/build/cjs/components/Image/schema.d.ts +0 -1
  35. package/build/cjs/components/Image/schema.js +2 -3
  36. package/build/cjs/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +1 -1
  37. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +1 -1
  38. package/build/cjs/customization/BlockDecoration.d.ts +1 -1
  39. package/build/cjs/customization/BlockDecoration.js +6 -5
  40. package/build/cjs/editor/{components → Components}/AddBlock/AddBlock.css +1 -1
  41. package/build/cjs/editor/Components/AddBlock/AddBlock.d.ts +7 -0
  42. package/build/cjs/editor/{components → Components}/AddBlock/AddBlock.js +2 -2
  43. package/build/cjs/editor/Components/EditBlock/EditBlock.d.ts +4 -0
  44. package/build/cjs/editor/Components/EditBlock/EditBlock.js +32 -0
  45. package/build/cjs/editor/Containers/Editor.d.ts +2 -0
  46. package/build/cjs/editor/Containers/Editor.js +24 -0
  47. package/build/cjs/editor/index.d.ts +1 -1
  48. package/build/cjs/editor/index.js +1 -1
  49. package/build/cjs/editor/store/index.d.ts +11 -10
  50. package/build/cjs/editor/store/index.js +15 -66
  51. package/build/cjs/editor/store/reducer.d.ts +9 -24
  52. package/build/cjs/editor/store/reducer.js +31 -17
  53. package/build/cjs/editor/store/utils.d.ts +0 -1
  54. package/build/cjs/editor/store/utils.js +1 -3
  55. package/build/cjs/editor/types/index.d.ts +9 -15
  56. package/build/cjs/editor/types/index.js +0 -6
  57. package/build/cjs/editor/utils/index.d.ts +3 -4
  58. package/build/cjs/editor/utils/index.js +4 -6
  59. package/build/cjs/grid/Col/Col.d.ts +1 -1
  60. package/build/cjs/models/constructor-items/blocks.d.ts +8 -13
  61. package/build/cjs/models/constructor.d.ts +2 -2
  62. package/build/cjs/models/customization.d.ts +8 -3
  63. package/build/cjs/models/navigation.d.ts +0 -1
  64. package/build/cjs/navigation/components/Header/Header.css +0 -2
  65. package/build/cjs/navigation/components/Header/Header.js +4 -15
  66. package/build/cjs/navigation/schema.d.ts +0 -1
  67. package/build/cjs/schema/index.d.ts +228 -9
  68. package/build/cjs/schema/index.js +46 -8
  69. package/build/cjs/schema/validators/common.d.ts +27 -71
  70. package/build/cjs/schema/validators/common.js +17 -50
  71. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +5 -12
  72. package/build/cjs/sub-blocks/BasicCard/schema.d.ts +3 -8
  73. package/build/cjs/sub-blocks/Content/schema.d.ts +6 -14
  74. package/build/cjs/sub-blocks/Content/schema.js +1 -9
  75. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +9 -23
  76. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +6 -16
  77. package/build/cjs/sub-blocks/PriceDetailed/schema.d.ts +0 -1
  78. package/build/cjs/sub-blocks/PriceDetailed/schema.js +1 -5
  79. package/build/cjs/sub-blocks/Quote/schema.d.ts +2 -6
  80. package/build/cjs/text-transform/utils.js +6 -1
  81. package/build/esm/blocks/Banner/schema.d.ts +21 -63
  82. package/build/esm/blocks/CardLayout/schema.d.ts +4 -10
  83. package/build/esm/blocks/Companies/schema.d.ts +2 -5
  84. package/build/esm/blocks/ContentLayout/ContentLayout.js +2 -3
  85. package/build/esm/blocks/ContentLayout/schema.d.ts +61 -107
  86. package/build/esm/blocks/ContentLayout/schema.js +18 -23
  87. package/build/esm/blocks/ExtendedFeatures/schema.d.ts +4 -31
  88. package/build/esm/blocks/ExtendedFeatures/schema.js +4 -3
  89. package/build/esm/blocks/FilterBlock/schema.d.ts +5 -13
  90. package/build/esm/blocks/FilterBlock/schema.js +2 -13
  91. package/build/esm/blocks/Header/Header.css +7 -6
  92. package/build/esm/blocks/Header/schema.d.ts +36 -92
  93. package/build/esm/blocks/Header/schema.js +0 -1
  94. package/build/esm/blocks/HeaderSlider/schema.d.ts +53 -48
  95. package/build/esm/blocks/HeaderSlider/schema.js +1 -2
  96. package/build/esm/blocks/Icons/schema.d.ts +1 -3
  97. package/build/esm/blocks/Icons/schema.js +1 -2
  98. package/build/esm/blocks/Info/schema.d.ts +8 -19
  99. package/build/esm/blocks/Map/schema.d.ts +6 -17
  100. package/build/esm/blocks/Media/schema.d.ts +152 -204
  101. package/build/esm/blocks/Media/schema.js +2 -2
  102. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +8 -22
  103. package/build/esm/blocks/PromoFeaturesBlock/schema.js +0 -1
  104. package/build/esm/blocks/Questions/schema.d.ts +3 -7
  105. package/build/esm/blocks/Slider/schema.d.ts +18 -13
  106. package/build/esm/blocks/Slider/schema.js +5 -4
  107. package/build/esm/blocks/Table/schema.d.ts +2 -5
  108. package/build/esm/blocks/Table/schema.js +2 -12
  109. package/build/esm/blocks/Tabs/schema.d.ts +16 -43
  110. package/build/esm/components/BlockBase/BlockBase.js +2 -2
  111. package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
  112. package/build/esm/components/Image/schema.d.ts +0 -1
  113. package/build/esm/components/Image/schema.js +2 -3
  114. package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +1 -1
  115. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +1 -1
  116. package/build/esm/customization/BlockDecoration.d.ts +1 -1
  117. package/build/esm/customization/BlockDecoration.js +6 -6
  118. package/build/esm/editor/{components → Components}/AddBlock/AddBlock.css +1 -1
  119. package/build/esm/editor/Components/AddBlock/AddBlock.d.ts +8 -0
  120. package/build/esm/editor/{components → Components}/AddBlock/AddBlock.js +2 -2
  121. package/build/esm/editor/Components/EditBlock/EditBlock.d.ts +5 -0
  122. package/build/esm/editor/Components/EditBlock/EditBlock.js +30 -0
  123. package/build/esm/editor/Containers/Editor.d.ts +2 -0
  124. package/build/esm/editor/Containers/Editor.js +20 -0
  125. package/build/esm/editor/index.d.ts +1 -1
  126. package/build/esm/editor/index.js +1 -1
  127. package/build/esm/editor/store/index.d.ts +11 -10
  128. package/build/esm/editor/store/index.js +17 -68
  129. package/build/esm/editor/store/reducer.d.ts +9 -24
  130. package/build/esm/editor/store/reducer.js +29 -15
  131. package/build/esm/editor/store/utils.d.ts +0 -1
  132. package/build/esm/editor/store/utils.js +0 -1
  133. package/build/esm/editor/types/index.d.ts +9 -15
  134. package/build/esm/editor/types/index.js +1 -5
  135. package/build/esm/editor/utils/index.d.ts +3 -4
  136. package/build/esm/editor/utils/index.js +3 -4
  137. package/build/esm/grid/Col/Col.d.ts +1 -1
  138. package/build/esm/models/constructor-items/blocks.d.ts +8 -13
  139. package/build/esm/models/constructor.d.ts +2 -2
  140. package/build/esm/models/customization.d.ts +8 -3
  141. package/build/esm/models/navigation.d.ts +0 -1
  142. package/build/esm/navigation/components/Header/Header.css +0 -2
  143. package/build/esm/navigation/components/Header/Header.js +5 -16
  144. package/build/esm/navigation/schema.d.ts +0 -1
  145. package/build/esm/schema/index.d.ts +228 -9
  146. package/build/esm/schema/index.js +42 -4
  147. package/build/esm/schema/validators/common.d.ts +27 -71
  148. package/build/esm/schema/validators/common.js +16 -49
  149. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +5 -12
  150. package/build/esm/sub-blocks/BasicCard/schema.d.ts +3 -8
  151. package/build/esm/sub-blocks/Content/schema.d.ts +6 -14
  152. package/build/esm/sub-blocks/Content/schema.js +1 -9
  153. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +9 -23
  154. package/build/esm/sub-blocks/MediaCard/schema.d.ts +6 -16
  155. package/build/esm/sub-blocks/PriceDetailed/schema.d.ts +0 -1
  156. package/build/esm/sub-blocks/PriceDetailed/schema.js +1 -5
  157. package/build/esm/sub-blocks/Quote/schema.d.ts +2 -6
  158. package/build/esm/text-transform/utils.js +6 -1
  159. package/package.json +4 -5
  160. package/server/models/constructor-items/blocks.d.ts +8 -13
  161. package/server/models/constructor.d.ts +2 -2
  162. package/server/models/customization.d.ts +8 -3
  163. package/server/models/navigation.d.ts +0 -1
  164. package/server/text-transform/utils.js +6 -1
  165. package/build/cjs/editor/components/AddBlock/AddBlock.d.ts +0 -7
  166. package/build/cjs/editor/components/BlockForm/BlockForm.d.ts +0 -12
  167. package/build/cjs/editor/components/BlockForm/BlockForm.js +0 -33
  168. package/build/cjs/editor/components/ControlPanel/ControlPanel.css +0 -26
  169. package/build/cjs/editor/components/ControlPanel/ControlPanel.d.ts +0 -8
  170. package/build/cjs/editor/components/ControlPanel/ControlPanel.js +0 -24
  171. package/build/cjs/editor/components/ControlPanel/i18n/en.json +0 -3
  172. package/build/cjs/editor/components/ControlPanel/i18n/index.d.ts +0 -2
  173. package/build/cjs/editor/components/ControlPanel/i18n/index.js +0 -8
  174. package/build/cjs/editor/components/ControlPanel/i18n/ru.json +0 -3
  175. package/build/cjs/editor/components/EditBlock/EditBlock.d.ts +0 -13
  176. package/build/cjs/editor/components/EditBlock/EditBlock.js +0 -44
  177. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.css +0 -27
  178. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.d.ts +0 -13
  179. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.js +0 -35
  180. package/build/cjs/editor/components/ErrorBoundary/i18n/en.json +0 -4
  181. package/build/cjs/editor/components/ErrorBoundary/i18n/index.d.ts +0 -2
  182. package/build/cjs/editor/components/ErrorBoundary/i18n/index.js +0 -8
  183. package/build/cjs/editor/components/ErrorBoundary/i18n/ru.json +0 -4
  184. package/build/cjs/editor/components/Layout/Layout.css +0 -36
  185. package/build/cjs/editor/components/Layout/Layout.d.ts +0 -16
  186. package/build/cjs/editor/components/Layout/Layout.js +0 -34
  187. package/build/cjs/editor/components/PagePropsForm/PagePropsForm.d.ts +0 -10
  188. package/build/cjs/editor/components/PagePropsForm/PagePropsForm.js +0 -17
  189. package/build/cjs/editor/containers/Editor/Editor.d.ts +0 -2
  190. package/build/cjs/editor/containers/Editor/Editor.js +0 -40
  191. package/build/cjs/editor/containers/Form/Form.css +0 -94
  192. package/build/cjs/editor/containers/Form/Form.d.ts +0 -11
  193. package/build/cjs/editor/containers/Form/Form.js +0 -47
  194. package/build/cjs/editor/containers/Form/dynamic-form-custom.css +0 -0
  195. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.css +0 -27
  196. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.d.ts +0 -19
  197. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +0 -72
  198. package/build/cjs/editor/dynamic-forms-custom/config.d.ts +0 -2
  199. package/build/cjs/editor/dynamic-forms-custom/config.js +0 -13
  200. package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.d.ts +0 -12
  201. package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.js +0 -75
  202. package/build/cjs/editor/dynamic-forms-custom/parser/detect.d.ts +0 -9
  203. package/build/cjs/editor/dynamic-forms-custom/parser/detect.js +0 -36
  204. package/build/cjs/editor/dynamic-forms-custom/parser/index.d.ts +0 -28
  205. package/build/cjs/editor/dynamic-forms-custom/parser/index.js +0 -188
  206. package/build/cjs/editor/dynamic-forms-custom/parser/types.d.ts +0 -29
  207. package/build/cjs/editor/dynamic-forms-custom/parser/types.js +0 -2
  208. package/build/cjs/editor/dynamic-forms-custom/parser/views.d.ts +0 -37
  209. package/build/cjs/editor/dynamic-forms-custom/parser/views.js +0 -46
  210. package/build/cjs/editor/hooks/useFormSpec.d.ts +0 -2
  211. package/build/cjs/editor/hooks/useFormSpec.js +0 -13
  212. package/build/cjs/editor/hooks/usePreviousValue.d.ts +0 -1
  213. package/build/cjs/editor/hooks/usePreviousValue.js +0 -11
  214. package/build/cjs/editor/styles/root.css +0 -5
  215. package/build/cjs/schema/constants.d.ts +0 -908
  216. package/build/cjs/schema/constants.js +0 -42
  217. package/build/esm/editor/components/AddBlock/AddBlock.d.ts +0 -8
  218. package/build/esm/editor/components/BlockForm/BlockForm.d.ts +0 -12
  219. package/build/esm/editor/components/BlockForm/BlockForm.js +0 -30
  220. package/build/esm/editor/components/ControlPanel/ControlPanel.css +0 -26
  221. package/build/esm/editor/components/ControlPanel/ControlPanel.d.ts +0 -9
  222. package/build/esm/editor/components/ControlPanel/ControlPanel.js +0 -22
  223. package/build/esm/editor/components/ControlPanel/i18n/en.json +0 -3
  224. package/build/esm/editor/components/ControlPanel/i18n/index.d.ts +0 -2
  225. package/build/esm/editor/components/ControlPanel/i18n/index.js +0 -5
  226. package/build/esm/editor/components/ControlPanel/i18n/ru.json +0 -3
  227. package/build/esm/editor/components/EditBlock/EditBlock.d.ts +0 -14
  228. package/build/esm/editor/components/EditBlock/EditBlock.js +0 -41
  229. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.css +0 -27
  230. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.d.ts +0 -14
  231. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.js +0 -31
  232. package/build/esm/editor/components/ErrorBoundary/i18n/en.json +0 -4
  233. package/build/esm/editor/components/ErrorBoundary/i18n/index.d.ts +0 -2
  234. package/build/esm/editor/components/ErrorBoundary/i18n/index.js +0 -5
  235. package/build/esm/editor/components/ErrorBoundary/i18n/ru.json +0 -4
  236. package/build/esm/editor/components/Layout/Layout.css +0 -36
  237. package/build/esm/editor/components/Layout/Layout.d.ts +0 -17
  238. package/build/esm/editor/components/Layout/Layout.js +0 -32
  239. package/build/esm/editor/components/PagePropsForm/PagePropsForm.d.ts +0 -10
  240. package/build/esm/editor/components/PagePropsForm/PagePropsForm.js +0 -13
  241. package/build/esm/editor/containers/Editor/Editor.d.ts +0 -2
  242. package/build/esm/editor/containers/Editor/Editor.js +0 -36
  243. package/build/esm/editor/containers/Form/Form.css +0 -94
  244. package/build/esm/editor/containers/Form/Form.d.ts +0 -12
  245. package/build/esm/editor/containers/Form/Form.js +0 -45
  246. package/build/esm/editor/containers/Form/dynamic-form-custom.css +0 -0
  247. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.css +0 -27
  248. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.d.ts +0 -20
  249. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +0 -68
  250. package/build/esm/editor/dynamic-forms-custom/config.d.ts +0 -2
  251. package/build/esm/editor/dynamic-forms-custom/config.js +0 -9
  252. package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.d.ts +0 -12
  253. package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.js +0 -69
  254. package/build/esm/editor/dynamic-forms-custom/parser/detect.d.ts +0 -9
  255. package/build/esm/editor/dynamic-forms-custom/parser/detect.js +0 -32
  256. package/build/esm/editor/dynamic-forms-custom/parser/index.d.ts +0 -28
  257. package/build/esm/editor/dynamic-forms-custom/parser/index.js +0 -186
  258. package/build/esm/editor/dynamic-forms-custom/parser/types.d.ts +0 -29
  259. package/build/esm/editor/dynamic-forms-custom/parser/types.js +0 -1
  260. package/build/esm/editor/dynamic-forms-custom/parser/views.d.ts +0 -37
  261. package/build/esm/editor/dynamic-forms-custom/parser/views.js +0 -39
  262. package/build/esm/editor/hooks/useFormSpec.d.ts +0 -2
  263. package/build/esm/editor/hooks/useFormSpec.js +0 -9
  264. package/build/esm/editor/hooks/usePreviousValue.d.ts +0 -1
  265. package/build/esm/editor/hooks/usePreviousValue.js +0 -8
  266. package/build/esm/editor/styles/root.css +0 -5
  267. package/build/esm/schema/constants.d.ts +0 -908
  268. package/build/esm/schema/constants.js +0 -39
  269. /package/build/cjs/editor/{components → Components}/EditBlock/EditBlock.css +0 -0
  270. /package/build/esm/editor/{components → Components}/EditBlock/EditBlock.css +0 -0
@@ -1,12 +0,0 @@
1
- import { ObjectIndependentInputProps, Spec, SpecTypes } from '@gravity-ui/dynamic-forms';
2
- export interface UseOneOfParams {
3
- props: ObjectIndependentInputProps;
4
- onTogglerChange?: (value: string) => void;
5
- }
6
- export declare const getSpecTypeDefaultValue: (type: SpecTypes) => {} | undefined;
7
- export declare const useOneOf: ({ props, onTogglerChange }: UseOneOfParams) => {
8
- oneOfValue: string;
9
- specProperties: Record<string, Spec>;
10
- toggler: JSX.Element;
11
- togglerInput: JSX.Element;
12
- };
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useOneOf = exports.getSpecTypeDefaultValue = void 0;
4
- const tslib_1 = require("tslib");
5
- const react_1 = tslib_1.__importDefault(require("react"));
6
- const dynamic_forms_1 = require("@gravity-ui/dynamic-forms");
7
- const uikit_1 = require("@gravity-ui/uikit");
8
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
9
- const MAX_TAB_TITLE_LENGTH = 20;
10
- const getSpecTypeDefaultValue = (type) => {
11
- switch (type) {
12
- case dynamic_forms_1.SpecTypes.Array:
13
- return [];
14
- case dynamic_forms_1.SpecTypes.Boolean:
15
- case dynamic_forms_1.SpecTypes.Number:
16
- case dynamic_forms_1.SpecTypes.String:
17
- return undefined;
18
- default:
19
- return {};
20
- }
21
- };
22
- exports.getSpecTypeDefaultValue = getSpecTypeDefaultValue;
23
- const useOneOf = ({ props, onTogglerChange }) => {
24
- const { name, input, spec, Layout } = props;
25
- const { order, disabled, oneOfParams } = spec.viewSpec;
26
- const specProperties = react_1.default.useMemo(() => (lodash_1.default.isObjectLike(spec.properties) ? spec.properties : {}), [spec.properties]);
27
- const [oneOfValue, setOneOfValue] = react_1.default.useState(() => {
28
- let valueKeys;
29
- if (lodash_1.default.isObjectLike(input.value)) {
30
- const keys = Object.keys(input.value);
31
- if (keys.length) {
32
- valueKeys = keys;
33
- }
34
- }
35
- return (valueKeys || order || Object.keys(specProperties))[0];
36
- });
37
- const onOneOfChange = react_1.default.useCallback(([newValue]) => {
38
- var _a;
39
- if (newValue !== oneOfValue) {
40
- const specType = ((_a = specProperties[newValue]) === null || _a === void 0 ? void 0 : _a.type) || dynamic_forms_1.SpecTypes.Object;
41
- input.onChange((0, exports.getSpecTypeDefaultValue)(specType));
42
- setOneOfValue(newValue);
43
- onTogglerChange === null || onTogglerChange === void 0 ? void 0 : onTogglerChange(newValue);
44
- }
45
- }, [setOneOfValue, input, oneOfValue, specProperties, onTogglerChange]);
46
- const options = react_1.default.useMemo(() => (order || Object.keys(specProperties)).map((value) => {
47
- var _a, _b;
48
- const title = ((_a = spec.description) === null || _a === void 0 ? void 0 : _a[value]) ||
49
- ((_b = specProperties[value]) === null || _b === void 0 ? void 0 : _b.viewSpec.layoutTitle) ||
50
- value ||
51
- '';
52
- return {
53
- value,
54
- title,
55
- content: title,
56
- };
57
- }), [spec.description, order, specProperties]);
58
- const togglerInput = react_1.default.useMemo(() => {
59
- if ((oneOfParams === null || oneOfParams === void 0 ? void 0 : oneOfParams.toggler) !== 'radio' &&
60
- ((oneOfParams === null || oneOfParams === void 0 ? void 0 : oneOfParams.toggler) === 'select' ||
61
- options.length > 3 ||
62
- lodash_1.default.some(options, ({ title }) => title.length > MAX_TAB_TITLE_LENGTH))) {
63
- return (react_1.default.createElement(uikit_1.Select, { width: "max", value: [oneOfValue], onUpdate: onOneOfChange, options: options, disabled: disabled, filterable: options.length > 7, qa: name }));
64
- }
65
- return (react_1.default.createElement(uikit_1.RadioButton, { value: oneOfValue, onChange: (event) => onOneOfChange([event.target.value]), disabled: disabled, qa: name }, options.map(({ value, title }) => (react_1.default.createElement(uikit_1.RadioButton.Option, { key: value, value: value }, title)))));
66
- }, [options, oneOfValue, onOneOfChange, name, oneOfParams === null || oneOfParams === void 0 ? void 0 : oneOfParams.toggler, disabled]);
67
- const toggler = react_1.default.useMemo(() => {
68
- if (Layout) {
69
- return react_1.default.createElement(Layout, Object.assign({}, props), togglerInput);
70
- }
71
- return togglerInput;
72
- }, [Layout, togglerInput, props]);
73
- return { oneOfValue, specProperties, toggler, togglerInput };
74
- };
75
- exports.useOneOf = useOneOf;
@@ -1,9 +0,0 @@
1
- import { Schema } from '../../../schema';
2
- export declare enum ParserType {
3
- Object = "object",
4
- Array = "array",
5
- Children = "children",
6
- OneOf = "oneOf",
7
- Primitive = "primitive"
8
- }
9
- export declare const detectParserType: (data: Schema) => ParserType;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectParserType = exports.ParserType = void 0;
4
- const dynamic_forms_1 = require("@gravity-ui/dynamic-forms");
5
- var ParserType;
6
- (function (ParserType) {
7
- ParserType["Object"] = "object";
8
- ParserType["Array"] = "array";
9
- ParserType["Children"] = "children";
10
- ParserType["OneOf"] = "oneOf";
11
- ParserType["Primitive"] = "primitive";
12
- })(ParserType = exports.ParserType || (exports.ParserType = {}));
13
- const isOneOf = (data) => 'oneOf' in data;
14
- const isObject = (data) => 'properties' in data;
15
- const isArray = (data) => 'type' in data && data.type === dynamic_forms_1.SpecTypes.Array;
16
- const isChildren = (data) => 'type' in data &&
17
- data.type === dynamic_forms_1.SpecTypes.Array &&
18
- 'items' in data &&
19
- typeof data.items !== 'undefined' &&
20
- '$ref' in data.items;
21
- //detector applying order matters!
22
- const ParserTypeDetectors = [
23
- { type: ParserType.OneOf, detector: isOneOf },
24
- { type: ParserType.Children, detector: isChildren },
25
- { type: ParserType.Object, detector: isObject },
26
- { type: ParserType.Array, detector: isArray },
27
- ];
28
- const detectParserType = (data) => {
29
- for (const { type, detector } of ParserTypeDetectors) {
30
- if (detector(data)) {
31
- return type;
32
- }
33
- }
34
- return ParserType.Primitive;
35
- };
36
- exports.detectParserType = detectParserType;
@@ -1,28 +0,0 @@
1
- import { Schema } from '../../../schema';
2
- import { FormSpecs } from './types';
3
- declare class FormSpecParser {
4
- private schema;
5
- private definitions;
6
- /**
7
- * Transforms page-constructor json schema into dynamic-forms specs for each block
8
- *
9
- * @param schema {Schema} - page-constructor json schema
10
- * @returns {FormSpecs} - object containig dynamic-forms specs for each constructor block
11
- */
12
- parse(schema: Schema): FormSpecs;
13
- private getChildrenSpec;
14
- private getRequiredProperties;
15
- private childrenParser;
16
- private oneOfParser;
17
- private arrayParser;
18
- private objectParser;
19
- private primitiveParser;
20
- private schemaParserMap;
21
- private parseSchemaProperty;
22
- private getBlocksSpec;
23
- private getPageSpec;
24
- private getFormSpec;
25
- private init;
26
- }
27
- declare const _default: FormSpecParser;
28
- export default _default;
@@ -1,188 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- /* eslint-disable no-param-reassign */
5
- /* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */
6
- const dynamic_forms_1 = require("@gravity-ui/dynamic-forms");
7
- const models_1 = require("../../../models");
8
- const detect_1 = require("./detect");
9
- const views_1 = require("./views");
10
- class FormSpecParser {
11
- constructor() {
12
- this.schema = {};
13
- this.definitions = {};
14
- this.getChildrenSpec = (data) => {
15
- var _a, _b, _c;
16
- const childrenType = (_c = (_b = (_a = data.items) === null || _a === void 0 ? void 0 : _a.$ref) === null || _b === void 0 ? void 0 : _b.split('/')) === null || _c === void 0 ? void 0 : _c.pop();
17
- return this.definitions[childrenType];
18
- };
19
- this.getRequiredProperties = (data) => Array.isArray(data.required) ? data.required : [];
20
- this.childrenParser = ({ data, name, required }) => {
21
- const childSpec = this.getChildrenSpec(data);
22
- const properties = childSpec &&
23
- Object.entries(childSpec).reduce((parsedChildSpecProperties, [childName, childSchema]) => {
24
- const childRequiredProperties = this.getRequiredProperties(childSchema);
25
- const childProperies = childSchema.properties &&
26
- Object.entries(childSchema.properties).reduce((parsedChildProperties, [childPropertyName, childPropertyData]) => {
27
- parsedChildProperties[childPropertyName] = this.parseSchemaProperty({
28
- data: childPropertyData,
29
- name: childPropertyName,
30
- required: childRequiredProperties.includes(childPropertyName),
31
- });
32
- return parsedChildProperties;
33
- }, {});
34
- const childJsonSchema = Object.assign(Object.assign({}, childSchema), { properties: Object.assign(Object.assign({}, childSchema.properties), { type: {
35
- type: dynamic_forms_1.SpecTypes.String,
36
- enum: [childName],
37
- } }) });
38
- parsedChildSpecProperties[childName] = {
39
- type: dynamic_forms_1.SpecTypes.Array,
40
- items: Object.assign(Object.assign({}, childSchema), { type: dynamic_forms_1.SpecTypes.Object, properties: Object.assign(Object.assign({}, childProperies), { type: {
41
- type: dynamic_forms_1.SpecTypes.String,
42
- defaultValue: childName,
43
- viewSpec: {
44
- type: 'hidden',
45
- },
46
- } }), viewSpec: childProperies &&
47
- (0, views_1.getObjectViewSpec)({
48
- properties: childProperies,
49
- layoutTitle: childName,
50
- }), __schema: childJsonSchema }),
51
- required: false,
52
- viewSpec: (0, views_1.getArrayViewSpec)({ layoutTitle: childName }),
53
- __schema: {
54
- type: dynamic_forms_1.SpecTypes.Array,
55
- items: childJsonSchema,
56
- },
57
- };
58
- return parsedChildSpecProperties;
59
- }, {});
60
- return {
61
- type: dynamic_forms_1.SpecTypes.Object,
62
- properties,
63
- viewSpec: {
64
- type: 'oneof_custom',
65
- layout: 'row',
66
- layoutTitle: name,
67
- oneOfParams: {
68
- toggler: 'select',
69
- },
70
- },
71
- required,
72
- };
73
- };
74
- this.oneOfParser = ({ data, name, required }) => {
75
- const requiredProperties = this.getRequiredProperties(data);
76
- const properties = data.oneOf &&
77
- data.oneOf.reduce((result, propertyData, index) => {
78
- const propertyName = (propertyData === null || propertyData === void 0 ? void 0 : propertyData.optionName)
79
- ? propertyData === null || propertyData === void 0 ? void 0 : propertyData.optionName
80
- : `${name}_${index}`;
81
- result[propertyName] = this.parseSchemaProperty({
82
- data: propertyData,
83
- name: propertyName,
84
- required: requiredProperties.includes(propertyName),
85
- });
86
- return result;
87
- }, {});
88
- return {
89
- type: dynamic_forms_1.SpecTypes.Object,
90
- properties,
91
- required,
92
- viewSpec: (0, views_1.getOneOfViewSpec)({ layoutTitle: name }),
93
- };
94
- };
95
- this.arrayParser = ({ data, name }) => {
96
- const items = data.items && this.parseSchemaProperty({ data: data.items, name });
97
- return Object.assign(Object.assign({}, data), { type: dynamic_forms_1.SpecTypes.Array, items, viewSpec: (0, views_1.getArrayViewSpec)({ layoutTitle: name }) });
98
- };
99
- this.objectParser = ({ data, name, required }) => {
100
- const requiredProperties = this.getRequiredProperties(data);
101
- const properties = data.properties &&
102
- Object.entries(data.properties).reduce((result, [propertyName, propertyData]) => {
103
- result[propertyName] = this.parseSchemaProperty({
104
- data: propertyData,
105
- name: propertyName,
106
- required: requiredProperties.includes(propertyName),
107
- });
108
- return result;
109
- }, {});
110
- return Object.assign(Object.assign({}, data), { type: dynamic_forms_1.SpecTypes.Object, properties, viewSpec: (0, views_1.getObjectViewSpec)({ properties, layoutTitle: name }), required });
111
- };
112
- this.primitiveParser = ({ data, name, required }) => {
113
- return Object.assign(Object.assign({}, data), { type: data.type, required, defaultValue: data.default, viewSpec: (0, views_1.getPrimitiveViewSpec)({ layoutTitle: name, data }), validator: 'base' });
114
- };
115
- //eslint-disable-next-line @typescript-eslint/member-ordering
116
- this.schemaParserMap = {
117
- [detect_1.ParserType.Object]: this.objectParser,
118
- [detect_1.ParserType.Array]: this.arrayParser,
119
- [detect_1.ParserType.Primitive]: this.primitiveParser,
120
- [detect_1.ParserType.OneOf]: this.oneOfParser,
121
- [detect_1.ParserType.Children]: this.childrenParser,
122
- };
123
- }
124
- /**
125
- * Transforms page-constructor json schema into dynamic-forms specs for each block
126
- *
127
- * @param schema {Schema} - page-constructor json schema
128
- * @returns {FormSpecs} - object containig dynamic-forms specs for each constructor block
129
- */
130
- parse(schema) {
131
- this.init(schema);
132
- return this.getFormSpec();
133
- }
134
- parseSchemaProperty({ data, name, required }) {
135
- const parserType = (0, detect_1.detectParserType)(data);
136
- const parser = this.schemaParserMap[parserType];
137
- return Object.assign(Object.assign({}, parser({ data, name, required })), {
138
- //save json schema from constructor to compare with incoming intial data inside oneOf form fields
139
- __schema: data });
140
- }
141
- getBlocksSpec() {
142
- const blocks = this.definitions.children;
143
- return Object.values(models_1.BlockType).reduce((result, blockName) => {
144
- result[blockName] = this.parseSchemaProperty({
145
- name: blockName,
146
- data: Object.assign({}, blocks[blockName]),
147
- required: true,
148
- });
149
- return result;
150
- }, {});
151
- }
152
- getPageSpec() {
153
- var _a;
154
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
155
- const _b = ((_a = this.schema) === null || _a === void 0 ? void 0 : _a.properties) || {}, { blocks } = _b, pageSchema = tslib_1.__rest(_b, ["blocks"]);
156
- const requiredProperties = this.getRequiredProperties(this.schema);
157
- const properties = Object.entries(pageSchema).reduce((result, [propertyName, propertyData]) => {
158
- result[propertyName] = this.parseSchemaProperty({
159
- name: propertyName,
160
- data: propertyData,
161
- required: requiredProperties.includes(propertyName),
162
- });
163
- return result;
164
- }, {});
165
- return {
166
- type: dynamic_forms_1.SpecTypes.Object,
167
- properties,
168
- viewSpec: (0, views_1.getObjectViewSpec)({ properties, layout: 'section' }),
169
- required: true,
170
- };
171
- }
172
- getFormSpec() {
173
- return {
174
- blocks: this.getBlocksSpec(),
175
- page: this.getPageSpec(),
176
- };
177
- }
178
- init(schema) {
179
- this.schema = schema;
180
- if (schema.definitions) {
181
- this.definitions = Object.entries(schema.definitions).reduce((result, [childType, childSpec]) => {
182
- result[childType] = childSpec === null || childSpec === void 0 ? void 0 : childSpec.selectCases;
183
- return result;
184
- }, {});
185
- }
186
- }
187
- }
188
- exports.default = new FormSpecParser();
@@ -1,29 +0,0 @@
1
- import { Spec as DynamicFormSpec, ObjectSpec } from '@gravity-ui/dynamic-forms';
2
- import { BlockType } from '../../../models';
3
- import { Schema } from '../../../schema';
4
- export type OneOfSpec = {
5
- oneOf: DynamicFormSpec[];
6
- viewSpec: ObjectSpec['viewSpec'];
7
- };
8
- export type CustomObjectSpec = Omit<ObjectSpec, 'properties'> & {
9
- properties: Record<string, CustomSpec>;
10
- };
11
- export interface SpecCustomProps {
12
- disabled?: boolean;
13
- inputType?: string;
14
- __schema?: Schema;
15
- }
16
- export type Spec = Exclude<DynamicFormSpec, 'ObjectSpec'> | CustomObjectSpec | OneOfSpec;
17
- export type CustomSpec = Spec & SpecCustomProps;
18
- export type BlocksSpec = Record<BlockType, CustomSpec>;
19
- export type PageSpec = CustomSpec;
20
- export interface FormSpecs {
21
- blocks: BlocksSpec;
22
- page: PageSpec;
23
- }
24
- export interface SchemaParserParams {
25
- data: Schema;
26
- name: string;
27
- required?: Schema['required'];
28
- }
29
- export type SchemaParser = (params: SchemaParserParams) => CustomSpec;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,37 +0,0 @@
1
- import { Schema } from '../../../schema';
2
- import { CustomObjectSpec, CustomSpec } from './types';
3
- interface BaseParams {
4
- layoutTitle?: string;
5
- }
6
- interface GetObjectViewSpecParams extends BaseParams, Partial<Extract<CustomSpec, CustomObjectSpec>> {
7
- layout?: string;
8
- }
9
- type GetPrimitiveViewSpecParams = BaseParams & Schema;
10
- export declare const getOneOfViewSpec: ({ layoutTitle }: BaseParams) => {
11
- type: string;
12
- layout: string;
13
- layoutTitle: string | undefined;
14
- oneOfParams: {
15
- toggler: "select";
16
- };
17
- };
18
- export declare const getObjectViewSpec: ({ properties, disabled, layoutTitle, layout, }: GetObjectViewSpecParams) => {
19
- layoutTitle: string | undefined;
20
- type: string;
21
- layout: string;
22
- order: string[] | undefined;
23
- disabled: boolean | undefined;
24
- };
25
- export declare const getArrayViewSpec: ({ layoutTitle }: BaseParams) => {
26
- layoutTitle: string | undefined;
27
- type: string;
28
- layout: string;
29
- layoutOpen: boolean;
30
- itemLabel: string;
31
- };
32
- export declare const getPrimitiveViewSpec: ({ layoutTitle, ...data }: GetPrimitiveViewSpecParams) => {
33
- layout: string;
34
- type: any;
35
- layoutTitle: string | undefined;
36
- };
37
- export {};
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPrimitiveViewSpec = exports.getArrayViewSpec = exports.getObjectViewSpec = exports.getOneOfViewSpec = void 0;
4
- const tslib_1 = require("tslib");
5
- const getOneOfViewSpec = ({ layoutTitle }) => {
6
- return {
7
- type: 'oneof_custom',
8
- layout: 'row',
9
- layoutTitle,
10
- oneOfParams: {
11
- toggler: 'select',
12
- },
13
- };
14
- };
15
- exports.getOneOfViewSpec = getOneOfViewSpec;
16
- const getObjectViewSpec = ({ properties, disabled, layoutTitle, layout = 'accordeon', }) => {
17
- return {
18
- layoutTitle,
19
- type: 'base',
20
- layout,
21
- order: properties && Object.keys(properties).sort(),
22
- disabled,
23
- };
24
- };
25
- exports.getObjectViewSpec = getObjectViewSpec;
26
- const getArrayViewSpec = ({ layoutTitle }) => ({
27
- layoutTitle,
28
- type: 'base',
29
- layout: 'accordeon',
30
- layoutOpen: true,
31
- itemLabel: 'Add Item',
32
- });
33
- exports.getArrayViewSpec = getArrayViewSpec;
34
- const getPrimitiveViewSpec = (_a) => {
35
- var { layoutTitle } = _a, data = tslib_1.__rest(_a, ["layoutTitle"]);
36
- let type = (data === null || data === void 0 ? void 0 : data.inputType) || 'base';
37
- if (data && 'enum' in data && data.enum) {
38
- type = 'select';
39
- }
40
- return {
41
- layout: 'row',
42
- type,
43
- layoutTitle,
44
- };
45
- };
46
- exports.getPrimitiveViewSpec = getPrimitiveViewSpec;
@@ -1,2 +0,0 @@
1
- import { SchemaCustomConfig } from '../../schema';
2
- export default function useFormSpec(customSchema?: SchemaCustomConfig): import("../dynamic-forms-custom/parser/types").FormSpecs;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = require("react");
5
- const schema_1 = require("../../schema");
6
- const parser_1 = tslib_1.__importDefault(require("../dynamic-forms-custom/parser"));
7
- function useFormSpec(customSchema) {
8
- return (0, react_1.useMemo)(() => {
9
- const schema = (0, schema_1.generateDefaultSchema)(customSchema);
10
- return parser_1.default.parse(schema);
11
- }, [customSchema]);
12
- }
13
- exports.default = useFormSpec;
@@ -1 +0,0 @@
1
- export default function usePreviousValue<T>(value: T): T | undefined;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("react");
4
- function usePreviousValue(value) {
5
- const ref = (0, react_1.useRef)();
6
- (0, react_1.useEffect)(() => {
7
- ref.current = value;
8
- }, [value]);
9
- return ref.current;
10
- }
11
- exports.default = usePreviousValue;
@@ -1,5 +0,0 @@
1
- :root {
2
- --editor-header-height: 48px;
3
- --editor-divider-width: 12px;
4
- --editor-left-column-width: calc(400px + var(--editor-divider-width));
5
- }