@gravity-ui/page-constructor 3.3.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 (244) hide show
  1. package/CHANGELOG.md +0 -20
  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 +7 -0
  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 -8
  50. package/build/cjs/editor/store/index.js +15 -61
  51. package/build/cjs/editor/store/reducer.d.ts +9 -17
  52. package/build/cjs/editor/store/reducer.js +31 -14
  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 -11
  56. package/build/cjs/editor/utils/index.d.ts +3 -4
  57. package/build/cjs/editor/utils/index.js +4 -6
  58. package/build/cjs/grid/Col/Col.d.ts +1 -1
  59. package/build/cjs/models/constructor-items/blocks.d.ts +8 -13
  60. package/build/cjs/models/constructor.d.ts +2 -2
  61. package/build/cjs/models/customization.d.ts +8 -3
  62. package/build/cjs/models/navigation.d.ts +0 -1
  63. package/build/cjs/navigation/components/Header/Header.css +0 -2
  64. package/build/cjs/navigation/components/Header/Header.js +4 -15
  65. package/build/cjs/navigation/schema.d.ts +0 -1
  66. package/build/cjs/schema/index.d.ts +228 -9
  67. package/build/cjs/schema/index.js +46 -8
  68. package/build/cjs/schema/validators/common.d.ts +27 -71
  69. package/build/cjs/schema/validators/common.js +17 -50
  70. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +5 -12
  71. package/build/cjs/sub-blocks/BasicCard/schema.d.ts +3 -8
  72. package/build/cjs/sub-blocks/Content/schema.d.ts +6 -14
  73. package/build/cjs/sub-blocks/Content/schema.js +1 -9
  74. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +9 -23
  75. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +6 -16
  76. package/build/cjs/sub-blocks/PriceDetailed/schema.d.ts +0 -1
  77. package/build/cjs/sub-blocks/PriceDetailed/schema.js +1 -5
  78. package/build/cjs/sub-blocks/Quote/schema.d.ts +2 -6
  79. package/build/cjs/text-transform/utils.js +6 -1
  80. package/build/esm/blocks/Banner/schema.d.ts +21 -63
  81. package/build/esm/blocks/CardLayout/schema.d.ts +4 -10
  82. package/build/esm/blocks/Companies/schema.d.ts +2 -5
  83. package/build/esm/blocks/ContentLayout/ContentLayout.js +2 -3
  84. package/build/esm/blocks/ContentLayout/schema.d.ts +61 -107
  85. package/build/esm/blocks/ContentLayout/schema.js +18 -23
  86. package/build/esm/blocks/ExtendedFeatures/schema.d.ts +4 -31
  87. package/build/esm/blocks/ExtendedFeatures/schema.js +4 -3
  88. package/build/esm/blocks/FilterBlock/schema.d.ts +5 -13
  89. package/build/esm/blocks/FilterBlock/schema.js +2 -13
  90. package/build/esm/blocks/Header/Header.css +7 -6
  91. package/build/esm/blocks/Header/schema.d.ts +36 -92
  92. package/build/esm/blocks/Header/schema.js +0 -1
  93. package/build/esm/blocks/HeaderSlider/schema.d.ts +53 -48
  94. package/build/esm/blocks/HeaderSlider/schema.js +1 -2
  95. package/build/esm/blocks/Icons/schema.d.ts +1 -3
  96. package/build/esm/blocks/Icons/schema.js +1 -2
  97. package/build/esm/blocks/Info/schema.d.ts +8 -19
  98. package/build/esm/blocks/Map/schema.d.ts +6 -17
  99. package/build/esm/blocks/Media/schema.d.ts +152 -204
  100. package/build/esm/blocks/Media/schema.js +2 -2
  101. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +8 -22
  102. package/build/esm/blocks/PromoFeaturesBlock/schema.js +0 -1
  103. package/build/esm/blocks/Questions/schema.d.ts +3 -7
  104. package/build/esm/blocks/Slider/schema.d.ts +18 -13
  105. package/build/esm/blocks/Slider/schema.js +5 -4
  106. package/build/esm/blocks/Table/schema.d.ts +2 -5
  107. package/build/esm/blocks/Table/schema.js +2 -12
  108. package/build/esm/blocks/Tabs/schema.d.ts +16 -43
  109. package/build/esm/components/BlockBase/BlockBase.js +2 -2
  110. package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
  111. package/build/esm/components/Image/schema.d.ts +0 -1
  112. package/build/esm/components/Image/schema.js +2 -3
  113. package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +1 -1
  114. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +1 -1
  115. package/build/esm/customization/BlockDecoration.d.ts +1 -1
  116. package/build/esm/customization/BlockDecoration.js +6 -6
  117. package/build/esm/editor/{components → Components}/AddBlock/AddBlock.css +7 -0
  118. package/build/esm/editor/Components/AddBlock/AddBlock.d.ts +8 -0
  119. package/build/esm/editor/{components → Components}/AddBlock/AddBlock.js +2 -2
  120. package/build/esm/editor/Components/EditBlock/EditBlock.d.ts +5 -0
  121. package/build/esm/editor/Components/EditBlock/EditBlock.js +30 -0
  122. package/build/esm/editor/Containers/Editor.d.ts +2 -0
  123. package/build/esm/editor/Containers/Editor.js +20 -0
  124. package/build/esm/editor/index.d.ts +1 -1
  125. package/build/esm/editor/index.js +1 -1
  126. package/build/esm/editor/store/index.d.ts +11 -8
  127. package/build/esm/editor/store/index.js +17 -63
  128. package/build/esm/editor/store/reducer.d.ts +9 -17
  129. package/build/esm/editor/store/reducer.js +29 -12
  130. package/build/esm/editor/store/utils.d.ts +0 -1
  131. package/build/esm/editor/store/utils.js +0 -1
  132. package/build/esm/editor/types/index.d.ts +9 -11
  133. package/build/esm/editor/utils/index.d.ts +3 -4
  134. package/build/esm/editor/utils/index.js +3 -4
  135. package/build/esm/grid/Col/Col.d.ts +1 -1
  136. package/build/esm/models/constructor-items/blocks.d.ts +8 -13
  137. package/build/esm/models/constructor.d.ts +2 -2
  138. package/build/esm/models/customization.d.ts +8 -3
  139. package/build/esm/models/navigation.d.ts +0 -1
  140. package/build/esm/navigation/components/Header/Header.css +0 -2
  141. package/build/esm/navigation/components/Header/Header.js +5 -16
  142. package/build/esm/navigation/schema.d.ts +0 -1
  143. package/build/esm/schema/index.d.ts +228 -9
  144. package/build/esm/schema/index.js +42 -4
  145. package/build/esm/schema/validators/common.d.ts +27 -71
  146. package/build/esm/schema/validators/common.js +16 -49
  147. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +5 -12
  148. package/build/esm/sub-blocks/BasicCard/schema.d.ts +3 -8
  149. package/build/esm/sub-blocks/Content/schema.d.ts +6 -14
  150. package/build/esm/sub-blocks/Content/schema.js +1 -9
  151. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +9 -23
  152. package/build/esm/sub-blocks/MediaCard/schema.d.ts +6 -16
  153. package/build/esm/sub-blocks/PriceDetailed/schema.d.ts +0 -1
  154. package/build/esm/sub-blocks/PriceDetailed/schema.js +1 -5
  155. package/build/esm/sub-blocks/Quote/schema.d.ts +2 -6
  156. package/build/esm/text-transform/utils.js +6 -1
  157. package/package.json +4 -5
  158. package/server/models/constructor-items/blocks.d.ts +8 -13
  159. package/server/models/constructor.d.ts +2 -2
  160. package/server/models/customization.d.ts +8 -3
  161. package/server/models/navigation.d.ts +0 -1
  162. package/server/text-transform/utils.js +6 -1
  163. package/build/cjs/editor/components/AddBlock/AddBlock.d.ts +0 -7
  164. package/build/cjs/editor/components/BlockForm/BlockForm.d.ts +0 -12
  165. package/build/cjs/editor/components/BlockForm/BlockForm.js +0 -26
  166. package/build/cjs/editor/components/EditBlock/EditBlock.d.ts +0 -13
  167. package/build/cjs/editor/components/EditBlock/EditBlock.js +0 -44
  168. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.css +0 -27
  169. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.d.ts +0 -13
  170. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.js +0 -35
  171. package/build/cjs/editor/components/ErrorBoundary/i18n/en.json +0 -4
  172. package/build/cjs/editor/components/ErrorBoundary/i18n/index.d.ts +0 -2
  173. package/build/cjs/editor/components/ErrorBoundary/i18n/index.js +0 -8
  174. package/build/cjs/editor/components/ErrorBoundary/i18n/ru.json +0 -4
  175. package/build/cjs/editor/components/PagePropsForm/PagePropsForm.d.ts +0 -10
  176. package/build/cjs/editor/components/PagePropsForm/PagePropsForm.js +0 -17
  177. package/build/cjs/editor/containers/Editor/Editor.css +0 -28
  178. package/build/cjs/editor/containers/Editor/Editor.d.ts +0 -2
  179. package/build/cjs/editor/containers/Editor/Editor.js +0 -37
  180. package/build/cjs/editor/containers/Form/Form.css +0 -94
  181. package/build/cjs/editor/containers/Form/Form.d.ts +0 -11
  182. package/build/cjs/editor/containers/Form/Form.js +0 -47
  183. package/build/cjs/editor/containers/Form/dynamic-form-custom.css +0 -0
  184. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.css +0 -27
  185. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.d.ts +0 -19
  186. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +0 -72
  187. package/build/cjs/editor/dynamic-forms-custom/config.d.ts +0 -2
  188. package/build/cjs/editor/dynamic-forms-custom/config.js +0 -13
  189. package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.d.ts +0 -12
  190. package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.js +0 -75
  191. package/build/cjs/editor/dynamic-forms-custom/parser/detect.d.ts +0 -9
  192. package/build/cjs/editor/dynamic-forms-custom/parser/detect.js +0 -36
  193. package/build/cjs/editor/dynamic-forms-custom/parser/index.d.ts +0 -28
  194. package/build/cjs/editor/dynamic-forms-custom/parser/index.js +0 -188
  195. package/build/cjs/editor/dynamic-forms-custom/parser/types.d.ts +0 -29
  196. package/build/cjs/editor/dynamic-forms-custom/parser/types.js +0 -2
  197. package/build/cjs/editor/dynamic-forms-custom/parser/views.d.ts +0 -37
  198. package/build/cjs/editor/dynamic-forms-custom/parser/views.js +0 -46
  199. package/build/cjs/editor/hooks/useFormSpec.d.ts +0 -2
  200. package/build/cjs/editor/hooks/useFormSpec.js +0 -13
  201. package/build/cjs/schema/constants.d.ts +0 -908
  202. package/build/cjs/schema/constants.js +0 -42
  203. package/build/esm/editor/components/AddBlock/AddBlock.d.ts +0 -8
  204. package/build/esm/editor/components/BlockForm/BlockForm.d.ts +0 -12
  205. package/build/esm/editor/components/BlockForm/BlockForm.js +0 -23
  206. package/build/esm/editor/components/EditBlock/EditBlock.d.ts +0 -14
  207. package/build/esm/editor/components/EditBlock/EditBlock.js +0 -41
  208. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.css +0 -27
  209. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.d.ts +0 -14
  210. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.js +0 -31
  211. package/build/esm/editor/components/ErrorBoundary/i18n/en.json +0 -4
  212. package/build/esm/editor/components/ErrorBoundary/i18n/index.d.ts +0 -2
  213. package/build/esm/editor/components/ErrorBoundary/i18n/index.js +0 -5
  214. package/build/esm/editor/components/ErrorBoundary/i18n/ru.json +0 -4
  215. package/build/esm/editor/components/PagePropsForm/PagePropsForm.d.ts +0 -10
  216. package/build/esm/editor/components/PagePropsForm/PagePropsForm.js +0 -13
  217. package/build/esm/editor/containers/Editor/Editor.css +0 -28
  218. package/build/esm/editor/containers/Editor/Editor.d.ts +0 -3
  219. package/build/esm/editor/containers/Editor/Editor.js +0 -34
  220. package/build/esm/editor/containers/Form/Form.css +0 -94
  221. package/build/esm/editor/containers/Form/Form.d.ts +0 -12
  222. package/build/esm/editor/containers/Form/Form.js +0 -45
  223. package/build/esm/editor/containers/Form/dynamic-form-custom.css +0 -0
  224. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.css +0 -27
  225. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.d.ts +0 -20
  226. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +0 -68
  227. package/build/esm/editor/dynamic-forms-custom/config.d.ts +0 -2
  228. package/build/esm/editor/dynamic-forms-custom/config.js +0 -9
  229. package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.d.ts +0 -12
  230. package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.js +0 -69
  231. package/build/esm/editor/dynamic-forms-custom/parser/detect.d.ts +0 -9
  232. package/build/esm/editor/dynamic-forms-custom/parser/detect.js +0 -32
  233. package/build/esm/editor/dynamic-forms-custom/parser/index.d.ts +0 -28
  234. package/build/esm/editor/dynamic-forms-custom/parser/index.js +0 -186
  235. package/build/esm/editor/dynamic-forms-custom/parser/types.d.ts +0 -29
  236. package/build/esm/editor/dynamic-forms-custom/parser/types.js +0 -1
  237. package/build/esm/editor/dynamic-forms-custom/parser/views.d.ts +0 -37
  238. package/build/esm/editor/dynamic-forms-custom/parser/views.js +0 -39
  239. package/build/esm/editor/hooks/useFormSpec.d.ts +0 -2
  240. package/build/esm/editor/hooks/useFormSpec.js +0 -9
  241. package/build/esm/schema/constants.d.ts +0 -908
  242. package/build/esm/schema/constants.js +0 -39
  243. /package/build/cjs/editor/{components → Components}/EditBlock/EditBlock.css +0 -0
  244. /package/build/esm/editor/{components → Components}/EditBlock/EditBlock.css +0 -0
@@ -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;