@gravity-ui/page-constructor 5.13.0 → 5.14.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 (77) hide show
  1. package/build/cjs/editor/components/AddBlock/AddBlock.css +1 -2
  2. package/build/cjs/editor/components/CodeEditor/CodeEditor.css +3 -1
  3. package/build/cjs/editor/components/ControlPanel/ControlPanel.css +2 -4
  4. package/build/cjs/editor/components/ControlPanel/ControlPanel.d.ts +4 -2
  5. package/build/cjs/editor/components/ControlPanel/ControlPanel.js +24 -15
  6. package/build/cjs/editor/components/ControlPanel/i18n/en.json +2 -1
  7. package/build/cjs/editor/components/ControlPanel/i18n/index.d.ts +1 -1
  8. package/build/cjs/editor/components/ControlPanel/i18n/ru.json +2 -1
  9. package/build/cjs/editor/components/Layout/Layout.css +10 -6
  10. package/build/cjs/editor/components/Layout/Layout.d.ts +4 -7
  11. package/build/cjs/editor/components/Layout/Layout.js +8 -10
  12. package/build/cjs/editor/components/PageSettings/PageSettings.css +26 -0
  13. package/build/cjs/editor/components/PageSettings/PageSettings.d.ts +11 -0
  14. package/build/cjs/editor/components/PageSettings/PageSettings.js +30 -0
  15. package/build/cjs/editor/components/PageSettings/i18n/en.json +3 -0
  16. package/build/cjs/editor/components/PageSettings/i18n/index.d.ts +1 -0
  17. package/build/cjs/editor/components/PageSettings/i18n/index.js +9 -0
  18. package/build/cjs/editor/components/PageSettings/i18n/ru.json +3 -0
  19. package/build/cjs/editor/containers/Editor/Editor.css +17 -0
  20. package/build/cjs/editor/containers/Editor/Editor.d.ts +1 -1
  21. package/build/cjs/editor/containers/Editor/Editor.js +17 -65
  22. package/build/cjs/editor/containers/Editor/hooks/useCode.d.ts +14 -0
  23. package/build/cjs/editor/containers/{Form/hooks.js → Editor/hooks/useCode.js} +4 -14
  24. package/build/cjs/editor/containers/Editor/hooks/useEditorState.d.ts +49 -0
  25. package/build/cjs/editor/containers/Editor/hooks/useEditorState.js +99 -0
  26. package/build/cjs/editor/containers/Form/Form.css +0 -10
  27. package/build/cjs/editor/containers/Form/Form.d.ts +1 -8
  28. package/build/cjs/editor/containers/Form/Form.js +14 -39
  29. package/build/cjs/editor/store/main/index.js +1 -1
  30. package/build/cjs/editor/store/settings/index.d.ts +3 -3
  31. package/build/cjs/editor/store/settings/index.js +4 -4
  32. package/build/cjs/editor/store/settings/reducer.d.ts +9 -9
  33. package/build/cjs/editor/store/settings/reducer.js +6 -6
  34. package/build/cjs/editor/types/index.d.ts +3 -4
  35. package/build/cjs/editor/types/index.js +7 -8
  36. package/build/esm/editor/components/AddBlock/AddBlock.css +1 -2
  37. package/build/esm/editor/components/CodeEditor/CodeEditor.css +3 -1
  38. package/build/esm/editor/components/ControlPanel/ControlPanel.css +2 -4
  39. package/build/esm/editor/components/ControlPanel/ControlPanel.d.ts +4 -2
  40. package/build/esm/editor/components/ControlPanel/ControlPanel.js +26 -17
  41. package/build/esm/editor/components/ControlPanel/i18n/en.json +2 -1
  42. package/build/esm/editor/components/ControlPanel/i18n/index.d.ts +1 -1
  43. package/build/esm/editor/components/ControlPanel/i18n/ru.json +2 -1
  44. package/build/esm/editor/components/Layout/Layout.css +10 -6
  45. package/build/esm/editor/components/Layout/Layout.d.ts +4 -7
  46. package/build/esm/editor/components/Layout/Layout.js +9 -11
  47. package/build/esm/editor/components/PageSettings/PageSettings.css +26 -0
  48. package/build/esm/editor/components/PageSettings/PageSettings.d.ts +12 -0
  49. package/build/esm/editor/components/PageSettings/PageSettings.js +27 -0
  50. package/build/esm/editor/components/PageSettings/i18n/en.json +3 -0
  51. package/build/esm/editor/components/PageSettings/i18n/index.d.ts +1 -0
  52. package/build/esm/editor/components/PageSettings/i18n/index.js +5 -0
  53. package/build/esm/editor/components/PageSettings/i18n/ru.json +3 -0
  54. package/build/esm/editor/containers/Editor/Editor.css +17 -0
  55. package/build/esm/editor/containers/Editor/Editor.d.ts +2 -1
  56. package/build/esm/editor/containers/Editor/Editor.js +18 -66
  57. package/build/esm/editor/containers/Editor/hooks/useCode.d.ts +14 -0
  58. package/build/esm/editor/containers/{Form/hooks.js → Editor/hooks/useCode.js} +4 -14
  59. package/build/esm/editor/containers/Editor/hooks/useEditorState.d.ts +49 -0
  60. package/build/esm/editor/containers/Editor/hooks/useEditorState.js +95 -0
  61. package/build/esm/editor/containers/Form/Form.css +0 -10
  62. package/build/esm/editor/containers/Form/Form.d.ts +1 -8
  63. package/build/esm/editor/containers/Form/Form.js +16 -42
  64. package/build/esm/editor/store/main/index.js +1 -1
  65. package/build/esm/editor/store/settings/index.d.ts +3 -3
  66. package/build/esm/editor/store/settings/index.js +5 -5
  67. package/build/esm/editor/store/settings/reducer.d.ts +9 -9
  68. package/build/esm/editor/store/settings/reducer.js +6 -6
  69. package/build/esm/editor/types/index.d.ts +3 -4
  70. package/build/esm/editor/types/index.js +6 -7
  71. package/package.json +1 -1
  72. package/build/cjs/editor/components/PagePropsForm/PagePropsForm.d.ts +0 -10
  73. package/build/cjs/editor/components/PagePropsForm/PagePropsForm.js +0 -17
  74. package/build/cjs/editor/containers/Form/hooks.d.ts +0 -8
  75. package/build/esm/editor/components/PagePropsForm/PagePropsForm.d.ts +0 -10
  76. package/build/esm/editor/components/PagePropsForm/PagePropsForm.js +0 -13
  77. package/build/esm/editor/containers/Form/hooks.d.ts +0 -8
@@ -1,28 +1,28 @@
1
1
  import { DEFAULT_THEME } from '../../../components/constants';
2
- import { FormTab, ViewModeItem } from '../../types';
2
+ import { EditModeItem, ViewModeItem } from '../../types';
3
3
  // actions
4
- export const UPDATE_FORM_TAB = 'UPDATE_FORM_TAB';
5
4
  export const UPDATE_CODE_FULLSCREEN_MODE_ON = 'UPDATE_CODE_FULLSCREEN_MODE_ON';
6
5
  export const UPDATE_VIEW_MODE = 'UPDATE_VIEW_MODE';
6
+ export const UPDATE_EDIT_MODE = 'UPDATE_EDIT_MODE';
7
7
  export const UPDATE_THEME = 'UPDATE_THEME';
8
8
  // reducer
9
9
  export const reducer = (state, action) => {
10
10
  switch (action.type) {
11
11
  case UPDATE_VIEW_MODE:
12
12
  return Object.assign(Object.assign({}, state), { viewMode: action.payload });
13
+ case UPDATE_EDIT_MODE:
14
+ return Object.assign(Object.assign({}, state), { editMode: action.payload });
13
15
  case UPDATE_THEME:
14
16
  return Object.assign(Object.assign({}, state), { theme: action.payload });
15
17
  case UPDATE_CODE_FULLSCREEN_MODE_ON:
16
18
  return Object.assign(Object.assign({}, state), { codeFullscreeModeOn: action.payload });
17
- case UPDATE_FORM_TAB:
18
- return Object.assign(Object.assign({}, state), { formTab: action.payload });
19
19
  default:
20
20
  return state;
21
21
  }
22
22
  };
23
23
  export const initialState = {
24
- viewMode: ViewModeItem.Edititng,
24
+ viewMode: ViewModeItem.Desktop,
25
+ editMode: EditModeItem.Form,
25
26
  theme: DEFAULT_THEME,
26
27
  codeFullscreeModeOn: false,
27
- formTab: FormTab.Blocks,
28
28
  };
@@ -29,14 +29,13 @@ export interface EditBlockProps extends EditBlockEditorProps, BlockDecorationPro
29
29
  isHeader?: boolean;
30
30
  }
31
31
  export declare enum ViewModeItem {
32
- Edititng = "editing",
33
32
  Desktop = "desktop",
34
33
  Tablet = "tablet",
35
34
  Mobile = "mobile"
36
35
  }
37
- export declare enum FormTab {
38
- Blocks = "blocks",
39
- Page = "page",
36
+ export declare enum EditModeItem {
37
+ View = "view",
38
+ Form = "form",
40
39
  Code = "code"
41
40
  }
42
41
  export {};
@@ -1,13 +1,12 @@
1
1
  export var ViewModeItem;
2
2
  (function (ViewModeItem) {
3
- ViewModeItem["Edititng"] = "editing";
4
3
  ViewModeItem["Desktop"] = "desktop";
5
4
  ViewModeItem["Tablet"] = "tablet";
6
5
  ViewModeItem["Mobile"] = "mobile";
7
6
  })(ViewModeItem || (ViewModeItem = {}));
8
- export var FormTab;
9
- (function (FormTab) {
10
- FormTab["Blocks"] = "blocks";
11
- FormTab["Page"] = "page";
12
- FormTab["Code"] = "code";
13
- })(FormTab || (FormTab = {}));
7
+ export var EditModeItem;
8
+ (function (EditModeItem) {
9
+ EditModeItem["View"] = "view";
10
+ EditModeItem["Form"] = "form";
11
+ EditModeItem["Code"] = "code";
12
+ })(EditModeItem || (EditModeItem = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "5.13.0",
3
+ "version": "5.14.0",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { PageContent } from '../../../models';
3
- import { CustomSpec } from '../../dynamic-forms-custom/parser/types';
4
- export type PagePropsFormData = Omit<PageContent, 'blocks'>;
5
- export interface PagePropsFormProps {
6
- data: PagePropsFormData;
7
- spec: CustomSpec;
8
- onChange: (data: PagePropsFormData) => void;
9
- }
10
- export declare const PagePropsForm: React.MemoExoticComponent<({ data: content, spec, onChange }: PagePropsFormProps) => JSX.Element>;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PagePropsForm = void 0;
4
- const tslib_1 = require("tslib");
5
- const react_1 = tslib_1.__importStar(require("react"));
6
- const dynamic_forms_1 = require("@gravity-ui/dynamic-forms");
7
- const noop_1 = tslib_1.__importDefault(require("lodash/noop"));
8
- const react_final_form_1 = require("react-final-form");
9
- const config_1 = require("../../dynamic-forms-custom/config");
10
- exports.PagePropsForm = (0, react_1.memo)(({ data: content, spec, onChange }) => {
11
- // eslint-disable-next-line react-hooks/exhaustive-deps
12
- const initialValues = (0, react_1.useMemo)(() => ({ content }), []);
13
- return (react_1.default.createElement(react_final_form_1.Form, { initialValues: initialValues, onSubmit: noop_1.default }, () => (react_1.default.createElement("div", null,
14
- react_1.default.createElement(react_final_form_1.FormSpy, { onChange: ({ values }) => onChange(Object.assign({}, values.content)), subscription: { values: true } }),
15
- react_1.default.createElement(dynamic_forms_1.DynamicField, { name: "content", spec: spec, config: config_1.dynamicConfig })))));
16
- });
17
- exports.PagePropsForm.displayName = 'PagePropsForm';
@@ -1,8 +0,0 @@
1
- import { FormProps } from './Form';
2
- /**
3
- * Transorms PageConstructor content in JSON to YAML on code editor mode switching
4
- *
5
- * @param {Object} props - props parent from form
6
- * @returns {string} - updated code
7
- */
8
- export declare function useCode({ activeTab, content, codeFullscreeModeOn, }: Pick<FormProps, 'activeTab' | 'content' | 'codeFullscreeModeOn'>): string;
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { PageContent } from '../../../models';
3
- import { CustomSpec } from '../../dynamic-forms-custom/parser/types';
4
- export type PagePropsFormData = Omit<PageContent, 'blocks'>;
5
- export interface PagePropsFormProps {
6
- data: PagePropsFormData;
7
- spec: CustomSpec;
8
- onChange: (data: PagePropsFormData) => void;
9
- }
10
- export declare const PagePropsForm: React.MemoExoticComponent<({ data: content, spec, onChange }: PagePropsFormProps) => JSX.Element>;
@@ -1,13 +0,0 @@
1
- import React, { memo, useMemo } from 'react';
2
- import { DynamicField } from '@gravity-ui/dynamic-forms';
3
- import noop from 'lodash/noop';
4
- import { Form as FinalForm, FormSpy } from 'react-final-form';
5
- import { dynamicConfig } from '../../dynamic-forms-custom/config';
6
- export const PagePropsForm = memo(({ data: content, spec, onChange }) => {
7
- // eslint-disable-next-line react-hooks/exhaustive-deps
8
- const initialValues = useMemo(() => ({ content }), []);
9
- return (React.createElement(FinalForm, { initialValues: initialValues, onSubmit: noop }, () => (React.createElement("div", null,
10
- React.createElement(FormSpy, { onChange: ({ values }) => onChange(Object.assign({}, values.content)), subscription: { values: true } }),
11
- React.createElement(DynamicField, { name: "content", spec: spec, config: dynamicConfig })))));
12
- });
13
- PagePropsForm.displayName = 'PagePropsForm';
@@ -1,8 +0,0 @@
1
- import { FormProps } from './Form';
2
- /**
3
- * Transorms PageConstructor content in JSON to YAML on code editor mode switching
4
- *
5
- * @param {Object} props - props parent from form
6
- * @returns {string} - updated code
7
- */
8
- export declare function useCode({ activeTab, content, codeFullscreeModeOn, }: Pick<FormProps, 'activeTab' | 'content' | 'codeFullscreeModeOn'>): string;