@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
@@ -9,14 +9,14 @@ const utils_1 = require("../../../utils");
9
9
  const data_1 = tslib_1.__importDefault(require("../../data"));
10
10
  const b = (0, utils_1.block)('add-block');
11
11
  const sortedBlockNames = Object.keys(constructor_items_1.blockMap).sort();
12
- const AddBlock = ({ onAdd, className }) => {
12
+ const AddBlock = ({ onAdd }) => {
13
13
  const [isOpened, setIsOpened] = (0, react_1.useState)(false);
14
14
  const [search, setSearch] = (0, react_1.useState)('');
15
15
  const ref = (0, react_1.useRef)(null);
16
16
  const blocks = (0, react_1.useMemo)(() => sortedBlockNames.filter((blockName) => data_1.default[blockName].meta.title
17
17
  .toLocaleLowerCase()
18
18
  .startsWith(search.toLocaleLowerCase())), [search]);
19
- return (react_1.default.createElement("div", { className: b(null, className), ref: ref },
19
+ return (react_1.default.createElement("div", { className: b(), ref: ref },
20
20
  react_1.default.createElement("button", { className: b('button'), onClick: () => {
21
21
  setIsOpened(!isOpened);
22
22
  setSearch('');
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { EditBlockProps } from '../../../editor/types';
3
+ declare const _default: React.MemoExoticComponent<({ id, isHeader, activeBlockId, onDelete, onSelect, onCopy, onOrderChange, children, orderedBlocksCount, }: EditBlockProps) => JSX.Element>;
4
+ export default _default;
@@ -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.__importStar(require("react"));
5
+ const icons_1 = require("@gravity-ui/icons");
6
+ const utils_1 = require("../../../utils");
7
+ const b = (0, utils_1.block)('edit-block');
8
+ const EditBlock = ({ id, isHeader, activeBlockId, onDelete, onSelect, onCopy, onOrderChange, children, orderedBlocksCount, }) => {
9
+ const ref = (0, react_1.useRef)(null);
10
+ const controlsActive = activeBlockId === id;
11
+ (0, react_1.useEffect)(() => {
12
+ var _a;
13
+ if (controlsActive && ref.current) {
14
+ (_a = ref.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ behavior: 'smooth', block: 'center' });
15
+ }
16
+ }, [controlsActive]);
17
+ return (react_1.default.createElement("div", { className: b(), onClick: () => {
18
+ onSelect(id);
19
+ }, ref: ref },
20
+ react_1.default.createElement("div", { className: b('controls', { active: controlsActive, isHeader }) }, controlsActive && (react_1.default.createElement("div", { className: b('controls-content'), onClick: (e) => e.stopPropagation() },
21
+ typeof id === 'number' && (react_1.default.createElement(react_1.Fragment, null,
22
+ id > 0 && (react_1.default.createElement("div", { className: b('control'), onClick: () => onOrderChange(id, id - 1) },
23
+ react_1.default.createElement(icons_1.ChevronUp, null))),
24
+ id < orderedBlocksCount - 1 && (react_1.default.createElement("div", { className: b('control'), onClick: () => onOrderChange(id, id + 1) },
25
+ react_1.default.createElement(icons_1.ChevronDown, null))),
26
+ react_1.default.createElement("div", { className: b('control'), onClick: () => onCopy(id) },
27
+ react_1.default.createElement(icons_1.Copy, null)))),
28
+ react_1.default.createElement("div", { className: b('control'), onClick: () => onDelete(id) },
29
+ react_1.default.createElement(icons_1.TrashBin, null))))),
30
+ children));
31
+ };
32
+ exports.default = react_1.default.memo(EditBlock);
@@ -0,0 +1,2 @@
1
+ import { EditorProps } from '../types';
2
+ export declare const Editor: ({ children, ...rest }: EditorProps) => JSX.Element;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Editor = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const AddBlock_1 = tslib_1.__importDefault(require("../Components/AddBlock/AddBlock"));
7
+ const EditBlock_1 = tslib_1.__importDefault(require("../Components/EditBlock/EditBlock"));
8
+ const store_1 = require("../store");
9
+ const utils_1 = require("../utils");
10
+ const Editor = (_a) => {
11
+ var { children } = _a, rest = tslib_1.__rest(_a, ["children"]);
12
+ const { content, onAdd, editControlsProps } = (0, store_1.useEditorState)(rest);
13
+ const constructorProps = (0, react_1.useMemo)(() => {
14
+ const editControlsDecorator = (props) => (react_1.default.createElement(EditBlock_1.default, Object.assign({}, props, editControlsProps)));
15
+ return {
16
+ content,
17
+ custom: (0, utils_1.addCustomDecorator)(editControlsDecorator, rest.custom),
18
+ };
19
+ }, [editControlsProps, content, rest.custom]);
20
+ return (react_1.default.createElement("div", null,
21
+ children(constructorProps),
22
+ react_1.default.createElement(AddBlock_1.default, { onAdd: onAdd })));
23
+ };
24
+ exports.Editor = Editor;
@@ -1,2 +1,2 @@
1
- export { Editor } from './containers/Editor/Editor';
1
+ export { Editor } from './Containers/Editor';
2
2
  export * from './types';
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Editor = void 0;
4
4
  const tslib_1 = require("tslib");
5
- var Editor_1 = require("./containers/Editor/Editor");
5
+ var Editor_1 = require("./Containers/Editor");
6
6
  Object.defineProperty(exports, "Editor", { enumerable: true, get: function () { return Editor_1.Editor; } });
7
7
  tslib_1.__exportStar(require("./types"), exports);
@@ -1,12 +1,15 @@
1
- import { Block, BlockDecorationProps, PageContent } from '../../models';
2
- import { EditBlockProps, EditorProps } from '../types';
1
+ import { Block } from '../../models';
2
+ import { EditorProps } from '../types';
3
3
  export type EditorBlockId = number | string;
4
4
  export declare function useEditorState({ content: intialContent, custom }: Omit<EditorProps, 'children'>): {
5
- activeBlockIndex: number;
6
- content: PageContent;
7
- errorBoundaryState: number;
8
- injectEditBlockProps: ({ type, index: relativeIndex, children, }: BlockDecorationProps) => EditBlockProps;
5
+ content: import("../../models").PageContent;
6
+ editControlsProps: {
7
+ activeBlockId: import("./reducer").EditorBlockId;
8
+ orderedBlocksCount: number;
9
+ onDelete: (id: EditorBlockId) => void;
10
+ onSelect: (id: EditorBlockId) => void;
11
+ onCopy: (index: number) => void;
12
+ onOrderChange: (oldIndex: number, newIndex: number) => void;
13
+ };
9
14
  onAdd: (block: Block) => void;
10
- onSelect: (index: number) => void;
11
- onContentUpdate: (newContent: PageContent) => void;
12
15
  };
@@ -4,75 +4,29 @@ exports.useEditorState = void 0;
4
4
  const react_1 = require("react");
5
5
  const models_1 = require("../../models");
6
6
  const utils_1 = require("../../utils");
7
- const EditBlock_1 = require("../components/EditBlock/EditBlock");
8
7
  const reducer_1 = require("./reducer");
9
8
  const utils_2 = require("./utils");
10
9
  function useEditorState({ content: intialContent, custom }) {
11
- const [{ activeBlockIndex, content, errorBoundaryState }, dispatch] = (0, react_1.useReducer)(reducer_1.reducer, {
12
- activeBlockIndex: 0,
13
- errorBoundaryState: 0,
10
+ const headerBlockTypes = (0, react_1.useMemo)(() => [...models_1.HeaderBlockTypes, ...(0, utils_1.getCustomHeaderTypes)(custom)], [custom]);
11
+ const reducer = (0, react_1.useMemo)(() => (0, reducer_1.getReducer)(headerBlockTypes), [headerBlockTypes]);
12
+ const [{ activeBlockId, content, orderedBlocksCount }, dispatch] = (0, react_1.useReducer)(reducer, {
13
+ activeBlockId: 0,
14
+ orderedBlocksCount: (0, utils_1.getOrderedBlocks)(intialContent.blocks, headerBlockTypes).length,
14
15
  content: (0, utils_2.addEditorProps)(intialContent),
15
16
  });
16
17
  return (0, react_1.useMemo)(() => {
17
- const headerBlockTypes = [...models_1.HeaderBlockTypes, ...(0, utils_1.getCustomHeaderTypes)(custom)];
18
- const contentHasHeader = Boolean((0, utils_1.getHeaderBlock)(content.blocks, headerBlockTypes));
19
- const checkIsHeader = (type) => headerBlockTypes.includes(type);
20
- const onAdd = (block) => {
21
- const isHeader = checkIsHeader(block.type);
22
- if (contentHasHeader && isHeader) {
23
- //TODO: add warning that it should be only one header block
24
- return;
25
- }
26
- // eslint-disable-next-line no-nested-ternary
27
- const index = isHeader
28
- ? 0
29
- : activeBlockIndex === -1
30
- ? content.blocks.length
31
- : activeBlockIndex + 1;
32
- dispatch({ type: reducer_1.ADD_BLOCK, payload: { block, index } });
33
- };
34
- const onSelect = (index) => dispatch({ type: reducer_1.SELECT_BLOCK, payload: index });
35
- const onContentUpdate = (newContent) => dispatch({ type: reducer_1.UPDATE_CONTENT, payload: newContent });
36
- const injectEditBlockProps = ({ type, index: relativeIndex = 0, children, }) => {
37
- const orderedBlocksStartIndex = contentHasHeader ? 1 : 0;
38
- const isHeader = checkIsHeader(type);
39
- const index = isHeader ? 0 : relativeIndex + orderedBlocksStartIndex;
40
- const isActive = activeBlockIndex === index;
41
- const actions = {
42
- [EditBlock_1.EditBlockControls.Delete]: () => dispatch({ type: reducer_1.DELETE_BLOCK, payload: index }),
43
- };
44
- if (!isHeader) {
45
- actions[EditBlock_1.EditBlockControls.Copy] = () => dispatch({ type: reducer_1.COPY_BLOCK, payload: index });
46
- if (index > orderedBlocksStartIndex) {
47
- actions[EditBlock_1.EditBlockControls.Up] = () => dispatch({
48
- type: reducer_1.ORDER_BLOCK,
49
- payload: { oldIndex: index, newIndex: index - 1 },
50
- });
51
- }
52
- if (index < content.blocks.length - 1) {
53
- actions[EditBlock_1.EditBlockControls.Down] = () => dispatch({
54
- type: reducer_1.ORDER_BLOCK,
55
- payload: { oldIndex: index, newIndex: index + 1 },
56
- });
57
- }
58
- }
59
- return {
60
- children,
61
- isHeader,
62
- isActive,
63
- actions,
64
- onSelect: () => onSelect(index),
65
- };
66
- };
67
18
  return {
68
- activeBlockIndex,
69
19
  content,
70
- errorBoundaryState,
71
- injectEditBlockProps,
72
- onAdd,
73
- onSelect,
74
- onContentUpdate,
20
+ editControlsProps: {
21
+ activeBlockId,
22
+ orderedBlocksCount,
23
+ onDelete: (id) => dispatch({ type: reducer_1.DELETE_BLOCK, payload: id }),
24
+ onSelect: (id) => dispatch({ type: reducer_1.SELECT_BLOCK, payload: id }),
25
+ onCopy: (index) => dispatch({ type: reducer_1.COPY_BLOCK, payload: index }),
26
+ onOrderChange: (oldIndex, newIndex) => dispatch({ type: reducer_1.ORDER_BLOCK, payload: { oldIndex, newIndex } }),
27
+ },
28
+ onAdd: (block) => dispatch({ type: reducer_1.ADD_BLOCK, payload: block }),
75
29
  };
76
- }, [content, activeBlockIndex, errorBoundaryState, custom]);
30
+ }, [content, activeBlockId, orderedBlocksCount]);
77
31
  }
78
32
  exports.useEditorState = useEditorState;
@@ -1,32 +1,28 @@
1
- import { Block, PageContent } from '../../models';
1
+ import { Block, CustomConfig, PageContent } from '../../models';
2
2
  export type EditorBlockId = number | string;
3
3
  interface EditorState {
4
4
  content: PageContent;
5
- activeBlockIndex: number;
6
- errorBoundaryState: number;
5
+ activeBlockId: EditorBlockId;
6
+ orderedBlocksCount: number;
7
+ custom?: CustomConfig;
7
8
  }
8
9
  interface OrderBlockParams {
9
10
  oldIndex: number;
10
11
  newIndex: number;
11
12
  }
12
- interface AddBlockParams {
13
- block: Block;
14
- index: number;
15
- }
16
13
  export declare const SELECT_BLOCK = "SELECT_BLOCK";
17
14
  export declare const DELETE_BLOCK = "DELETE_BLOCK";
18
15
  export declare const COPY_BLOCK = "COPY_BLOCK";
19
16
  export declare const ADD_BLOCK = "ADD_BLOCK";
20
17
  export declare const SET_REGION = "SET_REGION";
21
18
  export declare const ORDER_BLOCK = "ORDER_BLOCK";
22
- export declare const UPDATE_CONTENT = "UPDATE_CONTENT";
23
19
  interface SelectBlock {
24
20
  type: typeof SELECT_BLOCK;
25
- payload: number;
21
+ payload: EditorBlockId;
26
22
  }
27
23
  interface DeleteBlock {
28
24
  type: typeof DELETE_BLOCK;
29
- payload: number;
25
+ payload: EditorBlockId;
30
26
  }
31
27
  interface CopyBlock {
32
28
  type: typeof COPY_BLOCK;
@@ -34,16 +30,12 @@ interface CopyBlock {
34
30
  }
35
31
  interface AddBlock {
36
32
  type: typeof ADD_BLOCK;
37
- payload: AddBlockParams;
33
+ payload: Block;
38
34
  }
39
35
  interface OrderBlock {
40
36
  type: typeof ORDER_BLOCK;
41
37
  payload: OrderBlockParams;
42
38
  }
43
- interface UpdateContent {
44
- type: typeof UPDATE_CONTENT;
45
- payload: PageContent;
46
- }
47
- export type EditorAction = SelectBlock | DeleteBlock | CopyBlock | AddBlock | OrderBlock | UpdateContent;
48
- export declare const reducer: (state: EditorState, action: EditorAction) => EditorState;
39
+ export type EditorAction = SelectBlock | DeleteBlock | CopyBlock | AddBlock | OrderBlock;
40
+ export declare const getReducer: (headerBlockTypes: string[]) => (state: EditorState, action: EditorAction) => EditorState;
49
41
  export {};
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.reducer = exports.UPDATE_CONTENT = exports.ORDER_BLOCK = exports.SET_REGION = exports.ADD_BLOCK = exports.COPY_BLOCK = exports.DELETE_BLOCK = exports.SELECT_BLOCK = void 0;
4
- const utils_1 = require("./utils");
3
+ exports.getReducer = exports.ORDER_BLOCK = exports.SET_REGION = exports.ADD_BLOCK = exports.COPY_BLOCK = exports.DELETE_BLOCK = exports.SELECT_BLOCK = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const utils_2 = require("./utils");
5
6
  // actions
6
7
  exports.SELECT_BLOCK = 'SELECT_BLOCK';
7
8
  exports.DELETE_BLOCK = 'DELETE_BLOCK';
@@ -9,34 +10,50 @@ exports.COPY_BLOCK = 'COPY_BLOCK';
9
10
  exports.ADD_BLOCK = 'ADD_BLOCK';
10
11
  exports.SET_REGION = 'SET_REGION';
11
12
  exports.ORDER_BLOCK = 'ORDER_BLOCK';
12
- exports.UPDATE_CONTENT = 'UPDATE_CONTENT';
13
13
  // reducer
14
- const reducer = (state, action) => {
14
+ const getReducer = (headerBlockTypes) => (state, action) => {
15
15
  const { content } = state;
16
- const getNewState = (blocks, activeBlockIndex) => (Object.assign(Object.assign({}, state), { content: Object.assign(Object.assign({}, content), { blocks }), activeBlockIndex }));
16
+ const header = (0, utils_1.getHeaderBlock)(content.blocks, headerBlockTypes);
17
+ const orderedBlocks = (0, utils_1.getOrderedBlocks)(content.blocks, headerBlockTypes);
18
+ const withHeader = (blocks) => [header, ...blocks].filter(Boolean);
19
+ const getNewState = (blocks, activeBlockId) => (Object.assign(Object.assign({}, state), { content: Object.assign(Object.assign({}, content), { blocks }), activeBlockId, orderedBlocksCount: orderedBlocks.length }));
17
20
  switch (action.type) {
18
- case exports.UPDATE_CONTENT:
19
- return Object.assign(Object.assign({}, state), { content: action.payload, errorBoundaryState: (0, utils_1.getErrorBoundaryState)(state.errorBoundaryState) });
20
21
  case exports.SELECT_BLOCK:
21
- return Object.assign(Object.assign({}, state), { activeBlockIndex: action.payload });
22
+ return getNewState(content.blocks, action.payload);
22
23
  case exports.DELETE_BLOCK: {
23
24
  const blockId = action.payload;
24
- return getNewState(content.blocks.filter((_block, index) => index !== blockId), -1);
25
+ return getNewState(typeof blockId === 'string'
26
+ ? content.blocks.filter(({ type }) => type !== blockId)
27
+ : withHeader(orderedBlocks.filter((_block, index) => index !== blockId)), -1);
25
28
  }
26
29
  case exports.COPY_BLOCK: {
27
30
  const index = action.payload;
28
- return getNewState((0, utils_1.duplicateBlock)(content.blocks, index), index + 1);
31
+ return getNewState(withHeader((0, utils_2.duplicateBlock)(orderedBlocks, index)), index + 1);
29
32
  }
30
33
  case exports.ADD_BLOCK: {
31
- const { block, index } = action.payload;
32
- return getNewState((0, utils_1.addBlock)(content.blocks, block, index), index);
34
+ let blocks;
35
+ let activeBlockId;
36
+ const block = action.payload;
37
+ if (headerBlockTypes.includes(block.type)) {
38
+ blocks = header ? blocks : [block, ...orderedBlocks];
39
+ activeBlockId = block.type;
40
+ }
41
+ else {
42
+ const newBlockIndex = (0, utils_2.getNewBlockIndex)(state.activeBlockId, orderedBlocks.length);
43
+ blocks = withHeader((0, utils_2.addBlock)(orderedBlocks, block, newBlockIndex));
44
+ activeBlockId = newBlockIndex;
45
+ }
46
+ if (blocks) {
47
+ return getNewState(blocks, activeBlockId);
48
+ }
49
+ return state;
33
50
  }
34
51
  case exports.ORDER_BLOCK: {
35
52
  const { oldIndex, newIndex } = action.payload;
36
- return getNewState((0, utils_1.changeBlocksOrder)(content.blocks, oldIndex, newIndex), newIndex);
53
+ return getNewState(withHeader((0, utils_2.changeBlocksOrder)(orderedBlocks, oldIndex, newIndex)), newIndex);
37
54
  }
38
55
  default:
39
56
  return state;
40
57
  }
41
58
  };
42
- exports.reducer = reducer;
59
+ exports.getReducer = getReducer;
@@ -10,4 +10,3 @@ export declare const addEditorProps: (content: PageContent) => {
10
10
  menu?: import("../../models").Menu | undefined;
11
11
  background?: import("../../models").ThemedMediaProps | undefined;
12
12
  };
13
- export declare const getErrorBoundaryState: (prevState: number) => number;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getErrorBoundaryState = exports.addEditorProps = exports.addBlock = exports.getNewBlockIndex = exports.duplicateBlock = exports.changeBlocksOrder = void 0;
3
+ exports.addEditorProps = exports.addBlock = exports.getNewBlockIndex = exports.duplicateBlock = exports.changeBlocksOrder = void 0;
4
4
  const changeBlocksOrder = (array, oldIndex, newIndex) => {
5
5
  const result = [...array];
6
6
  const element = result.splice(oldIndex, 1)[0];
@@ -32,5 +32,3 @@ const addEditorProps = (content) => {
32
32
  return Object.assign(Object.assign({}, content), { animated: false });
33
33
  };
34
34
  exports.addEditorProps = addEditorProps;
35
- const getErrorBoundaryState = (prevState) => prevState === Number.MAX_SAFE_INTEGER ? 0 : prevState + 1;
36
- exports.getErrorBoundaryState = getErrorBoundaryState;
@@ -1,19 +1,17 @@
1
1
  /// <reference types="react" />
2
2
  import { PageConstructorProps } from '../../containers/PageConstructor';
3
- import { BlockDecorationProps, PageContent } from '../../models';
4
- import { SchemaCustomConfig } from '../../schema';
5
- import { EditBlockActions } from '../components/EditBlock/EditBlock';
3
+ import { BlockDecoratorProps, PageData } from '../../models';
6
4
  export type EditorBlockId = number | string;
7
5
  export interface EditorProps extends Required<Pick<PageConstructorProps, 'content'>>, Partial<Omit<PageConstructorProps, 'content'>> {
8
6
  children: (props: Partial<PageConstructorProps>) => React.ReactNode;
9
- onChange?: (data: PageContent) => void;
10
- customSchema?: SchemaCustomConfig;
7
+ onChange?: (data: PageData) => void;
11
8
  }
12
9
  export interface EditBlockEditorProps {
13
- isActive?: boolean;
14
- onSelect: () => void;
15
- actions: EditBlockActions;
16
- }
17
- export interface EditBlockProps extends EditBlockEditorProps, BlockDecorationProps {
18
- isHeader?: boolean;
10
+ activeBlockId: EditorBlockId;
11
+ orderedBlocksCount: number;
12
+ onSelect: (index: EditorBlockId) => void;
13
+ onDelete: (index: EditorBlockId) => void;
14
+ onCopy: (index: number) => void;
15
+ onOrderChange: (index: number, newIndex: number) => void;
19
16
  }
17
+ export type EditBlockProps = EditBlockEditorProps & BlockDecoratorProps;
@@ -1,12 +1,11 @@
1
- import { BlockDecorationProps, BlockDecorator, CustomConfig } from '../../models';
1
+ import { BlockDecorator, CustomConfig } from '../../models';
2
2
  export declare const formatBlockName: (name: string) => string;
3
- export declare const addCustomDecorator: (decorators: BlockDecorator[], custom?: CustomConfig) => {
3
+ export declare const addCustomDecorator: (decorator: BlockDecorator, custom?: CustomConfig) => {
4
4
  decorators: {
5
- block: ((props: BlockDecorationProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>)[];
5
+ block: ((props: import("../../models").BlockDecoratorProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>)[];
6
6
  };
7
7
  blocks?: import("../../models").CustomItems | undefined;
8
8
  subBlocks?: import("../../models").CustomItems | undefined;
9
9
  headers?: import("../../models").CustomItems | undefined;
10
10
  loadable?: import("../../models").LoadableConfig | undefined;
11
11
  };
12
- export declare const getBlockId: ({ index, type }: BlockDecorationProps) => string;
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBlockId = exports.addCustomDecorator = exports.formatBlockName = void 0;
3
+ exports.addCustomDecorator = exports.formatBlockName = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const lodash_1 = tslib_1.__importDefault(require("lodash"));
6
6
  const formatBlockName = (name) => lodash_1.default.capitalize(name).replace(/(block|-)/g, ' ');
7
7
  exports.formatBlockName = formatBlockName;
8
- const addCustomDecorator = (decorators, custom = {}) => {
9
- const customDecorators = custom.decorators || {};
10
- return Object.assign(Object.assign({}, custom), { decorators: Object.assign(Object.assign({}, customDecorators), { block: [...(customDecorators.block || []), ...decorators] }) });
8
+ const addCustomDecorator = (decorator, custom = {}) => {
9
+ const decorators = custom.decorators || {};
10
+ return Object.assign(Object.assign({}, custom), { decorators: Object.assign(Object.assign({}, decorators), { block: [...(decorators.block || []), decorator] }) });
11
11
  };
12
12
  exports.addCustomDecorator = addCustomDecorator;
13
- const getBlockId = ({ index, type }) => `${type}${index === undefined ? '' : `-${index}`}`;
14
- exports.getBlockId = getBlockId;
@@ -7,4 +7,4 @@ export interface GridColumnProps extends GridColumnClassParams, Refable<HTMLDivE
7
7
  dataQa?: string;
8
8
  children?: React.ReactNode;
9
9
  }
10
- export declare const Col: React.ForwardRefExoticComponent<Pick<WithChildren<GridColumnProps>, "style" | "children" | "className" | "visible" | "reset" | "sizes" | "offsets" | "orders" | "hidden" | "alignSelf" | "justifyContent" | "dataQa"> & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const Col: React.ForwardRefExoticComponent<Pick<WithChildren<GridColumnProps>, "style" | "children" | "className" | "reset" | "visible" | "sizes" | "offsets" | "orders" | "hidden" | "alignSelf" | "justifyContent" | "dataQa"> & React.RefAttributes<HTMLDivElement>>;
@@ -30,7 +30,6 @@ export interface Childable {
30
30
  children?: SubBlock[];
31
31
  }
32
32
  export interface BlockBaseProps {
33
- type: BlockType;
34
33
  index?: number;
35
34
  anchor?: AnchorProps;
36
35
  visible?: GridColumnSize;
@@ -245,18 +244,14 @@ export interface IconsBlockProps {
245
244
  src: string;
246
245
  }[];
247
246
  }
248
- interface ContentLayoutBlockParams {
249
- size?: ContentSize;
250
- background?: BackgroundImageProps;
251
- centered?: boolean;
252
- theme?: ContentTheme;
253
- textWidth?: ContentTextSize;
254
- }
255
- export interface ContentLayoutBlockProps extends ContentLayoutBlockParams {
256
- /**
257
- * @deprecated Use params on top level instead
258
- */
259
- properties?: ContentLayoutBlockParams;
247
+ export interface ContentLayoutBlockProps {
248
+ properties?: {
249
+ size?: ContentSize;
250
+ background?: BackgroundImageProps;
251
+ centered?: boolean;
252
+ theme?: ContentTheme;
253
+ textWidth?: ContentTextSize;
254
+ };
260
255
  textContent: ContentBlockProps;
261
256
  fileContent?: FileLinkProps[];
262
257
  }
@@ -1,5 +1,5 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
- import { Animatable, Block, BlockDecorationProps, ConstructorItem, ThemedMediaProps, WithChildren } from './';
2
+ import { Animatable, Block, BlockDecoratorProps, ConstructorItem, ThemedMediaProps, WithChildren } from './';
3
3
  export interface PageData {
4
4
  content: PageContent;
5
5
  }
@@ -41,7 +41,7 @@ export interface CustomConfig {
41
41
  headers?: CustomItems;
42
42
  loadable?: LoadableConfig;
43
43
  decorators?: {
44
- block?: ((props: BlockDecorationProps) => React.ReactElement)[];
44
+ block?: ((props: BlockDecoratorProps) => React.ReactElement)[];
45
45
  };
46
46
  }
47
47
  export {};
@@ -1,4 +1,9 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { BlockBaseProps } from './constructor-items';
3
- export type BlockDecorationProps = Pick<BlockBaseProps, 'index' | 'type'> & PropsWithChildren;
4
- export type BlockDecorator = (props: BlockDecorationProps) => React.ReactElement;
2
+ export interface BlockDecorationProps extends PropsWithChildren {
3
+ id: string | number;
4
+ }
5
+ export interface BlockDecoratorProps extends PropsWithChildren {
6
+ id: string | number;
7
+ isHeader?: boolean;
8
+ }
9
+ export type BlockDecorator = (props: BlockDecoratorProps) => React.ReactElement;
@@ -63,7 +63,6 @@ export interface HeaderData {
63
63
  leftItems: NavigationItemModel[];
64
64
  rightItems?: NavigationItemModel[];
65
65
  iconSize?: number;
66
- withBorder?: boolean;
67
66
  }
68
67
  export interface FooterColumn {
69
68
  title: string;
@@ -9,8 +9,6 @@ unpredictable css rules order in build */
9
9
  align-items: center;
10
10
  height: var(--header-height);
11
11
  background-color: var(--yc-color-base-background);
12
- }
13
- .pc-header_with-border {
14
12
  box-shadow: inset 0 -1px 0 var(--yc-color-line-generic);
15
13
  }
16
14
  .pc-header__wrapper {
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Header = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
7
6
  const Control_1 = tslib_1.__importDefault(require("../../../components/Control/Control"));
8
7
  const OutsideClick_1 = tslib_1.__importDefault(require("../../../components/OutsideClick/OutsideClick"));
9
8
  const grid_1 = require("../../../grid");
@@ -31,10 +30,9 @@ const iconSizeKey = 'iconSize';
31
30
  const isButtonItem = (item) => item.type === models_1.NavigationItemType.Button;
32
31
  const isDropdownItem = (item) => item.type === models_1.NavigationItemType.Dropdown;
33
32
  const Header = ({ data, logo }) => {
34
- const { leftItems, rightItems, iconSize = 20, withBorder = false } = data;
33
+ const { leftItems, rightItems, iconSize = 20 } = data;
35
34
  const [isSidebarOpened, setIsSidebarOpened] = (0, react_1.useState)(false);
36
- const [activeItemId, setActiveItemId] = (0, react_1.useState)(undefined);
37
- const [showBorder, setShowBorder] = (0, react_1.useState)(withBorder);
35
+ const [activeItemId, setactiveItemId] = (0, react_1.useState)(undefined);
38
36
  const getNavigationItemWithIconSize = (0, react_1.useCallback)((item) => {
39
37
  const newItem = Object.assign({}, item);
40
38
  if ('items' in newItem && isDropdownItem(newItem)) {
@@ -48,7 +46,7 @@ const Header = ({ data, logo }) => {
48
46
  const leftItemsWithIconSize = (0, react_1.useMemo)(() => leftItems.map(getNavigationItemWithIconSize), [getNavigationItemWithIconSize, leftItems]);
49
47
  const rightItemsWithIconSize = (0, react_1.useMemo)(() => rightItems === null || rightItems === void 0 ? void 0 : rightItems.map(getNavigationItemWithIconSize), [getNavigationItemWithIconSize, rightItems]);
50
48
  const onActiveItemChange = (0, react_1.useCallback)((id) => {
51
- setActiveItemId(id);
49
+ setactiveItemId(id);
52
50
  }, []);
53
51
  const hidePopup = (0, react_1.useCallback)(() => {
54
52
  onActiveItemChange();
@@ -59,16 +57,7 @@ const Header = ({ data, logo }) => {
59
57
  const hideSidebar = (0, react_1.useCallback)(() => {
60
58
  setIsSidebarOpened(false);
61
59
  }, []);
62
- (0, react_1.useEffect)(() => {
63
- const showBorderOnScroll = () => {
64
- if (!showBorder) {
65
- setShowBorder(window.scrollY > 0);
66
- }
67
- };
68
- window.addEventListener('scroll', lodash_1.default.debounce(showBorderOnScroll, 20), { passive: true });
69
- return () => window.removeEventListener('scroll', lodash_1.default.debounce(showBorderOnScroll, 20));
70
- });
71
- return (react_1.default.createElement(grid_1.Grid, { className: b({ 'with-border': showBorder }) },
60
+ return (react_1.default.createElement(grid_1.Grid, { className: b() },
72
61
  react_1.default.createElement(grid_1.Row, null,
73
62
  react_1.default.createElement(grid_1.Col, null,
74
63
  react_1.default.createElement("header", { className: b('wrapper') },
@@ -14,7 +14,6 @@ export declare const LogoProps: {
14
14
  } | {
15
15
  type: string;
16
16
  pattern: string;
17
- optionName: string;
18
17
  })[];
19
18
  };
20
19
  text: {