@gravity-ui/page-constructor 5.12.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.
- package/build/cjs/blocks/ContentLayout/schema.d.ts +4 -0
- package/build/cjs/blocks/Form/schema.d.ts +4 -0
- package/build/cjs/blocks/Info/schema.d.ts +8 -0
- package/build/cjs/blocks/Map/schema.d.ts +4 -0
- package/build/cjs/blocks/Media/schema.d.ts +8 -0
- package/build/cjs/blocks/Questions/schema.d.ts +4 -0
- package/build/cjs/blocks/Tabs/schema.d.ts +4 -0
- package/build/cjs/components/IconWrapper/IconWrapper.css +4 -2
- package/build/cjs/components/IconWrapper/IconWrapper.d.ts +2 -2
- package/build/cjs/components/IconWrapper/IconWrapper.js +3 -3
- package/build/cjs/constructor-items.d.ts +1 -1
- package/build/cjs/editor/components/AddBlock/AddBlock.css +1 -2
- package/build/cjs/editor/components/CodeEditor/CodeEditor.css +3 -1
- package/build/cjs/editor/components/ControlPanel/ControlPanel.css +2 -4
- package/build/cjs/editor/components/ControlPanel/ControlPanel.d.ts +4 -2
- package/build/cjs/editor/components/ControlPanel/ControlPanel.js +24 -15
- package/build/cjs/editor/components/ControlPanel/i18n/en.json +2 -1
- package/build/cjs/editor/components/ControlPanel/i18n/index.d.ts +1 -1
- package/build/cjs/editor/components/ControlPanel/i18n/ru.json +2 -1
- package/build/cjs/editor/components/Layout/Layout.css +10 -6
- package/build/cjs/editor/components/Layout/Layout.d.ts +4 -7
- package/build/cjs/editor/components/Layout/Layout.js +8 -10
- package/build/cjs/editor/components/PageSettings/PageSettings.css +26 -0
- package/build/cjs/editor/components/PageSettings/PageSettings.d.ts +11 -0
- package/build/cjs/editor/components/PageSettings/PageSettings.js +30 -0
- package/build/cjs/editor/components/PageSettings/i18n/en.json +3 -0
- package/build/cjs/editor/components/PageSettings/i18n/index.d.ts +1 -0
- package/build/cjs/editor/components/PageSettings/i18n/index.js +9 -0
- package/build/cjs/editor/components/PageSettings/i18n/ru.json +3 -0
- package/build/cjs/editor/containers/Editor/Editor.css +17 -0
- package/build/cjs/editor/containers/Editor/Editor.d.ts +1 -1
- package/build/cjs/editor/containers/Editor/Editor.js +17 -65
- package/build/cjs/editor/containers/Editor/hooks/useCode.d.ts +14 -0
- package/build/cjs/editor/containers/{Form/hooks.js → Editor/hooks/useCode.js} +4 -14
- package/build/cjs/editor/containers/Editor/hooks/useEditorState.d.ts +49 -0
- package/build/cjs/editor/containers/Editor/hooks/useEditorState.js +99 -0
- package/build/cjs/editor/containers/Form/Form.css +0 -10
- package/build/cjs/editor/containers/Form/Form.d.ts +1 -8
- package/build/cjs/editor/containers/Form/Form.js +14 -39
- package/build/cjs/editor/store/main/index.js +1 -1
- package/build/cjs/editor/store/settings/index.d.ts +3 -3
- package/build/cjs/editor/store/settings/index.js +4 -4
- package/build/cjs/editor/store/settings/reducer.d.ts +9 -9
- package/build/cjs/editor/store/settings/reducer.js +6 -6
- package/build/cjs/editor/types/index.d.ts +3 -4
- package/build/cjs/editor/types/index.js +7 -8
- package/build/cjs/models/constructor-items/blocks.d.ts +1 -0
- package/build/cjs/models/constructor-items/sub-blocks.d.ts +3 -3
- package/build/cjs/schema/constants.d.ts +4 -0
- package/build/cjs/schema/validators/common.d.ts +6 -0
- package/build/cjs/schema/validators/common.js +8 -1
- package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.css +3 -6
- package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +2 -5
- package/build/cjs/sub-blocks/BackgroundCard/schema.js +2 -2
- package/build/cjs/sub-blocks/BasicCard/BasicCard.css +4 -4
- package/build/cjs/sub-blocks/BasicCard/BasicCard.js +3 -6
- package/build/cjs/sub-blocks/BasicCard/schema.js +2 -2
- package/build/cjs/sub-blocks/Content/Content.css +11 -0
- package/build/cjs/sub-blocks/Content/Content.js +2 -2
- package/build/cjs/sub-blocks/Content/schema.d.ts +8 -0
- package/build/cjs/sub-blocks/Content/schema.js +4 -0
- package/build/cjs/sub-blocks/ImageCard/ImageCard.css +2 -0
- package/build/cjs/sub-blocks/ImageCard/ImageCard.js +4 -2
- package/build/cjs/sub-blocks/ImageCard/schema.d.ts +4 -0
- package/build/cjs/sub-blocks/ImageCard/schema.js +2 -2
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.css +3 -2
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +4 -6
- package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +4 -0
- package/build/cjs/sub-blocks/LayoutItem/schema.js +1 -4
- package/build/esm/blocks/ContentLayout/schema.d.ts +4 -0
- package/build/esm/blocks/Form/schema.d.ts +4 -0
- package/build/esm/blocks/Info/schema.d.ts +8 -0
- package/build/esm/blocks/Map/schema.d.ts +4 -0
- package/build/esm/blocks/Media/schema.d.ts +8 -0
- package/build/esm/blocks/Questions/schema.d.ts +4 -0
- package/build/esm/blocks/Tabs/schema.d.ts +4 -0
- package/build/esm/components/IconWrapper/IconWrapper.css +4 -2
- package/build/esm/components/IconWrapper/IconWrapper.d.ts +2 -2
- package/build/esm/components/IconWrapper/IconWrapper.js +3 -3
- package/build/esm/constructor-items.d.ts +1 -1
- package/build/esm/editor/components/AddBlock/AddBlock.css +1 -2
- package/build/esm/editor/components/CodeEditor/CodeEditor.css +3 -1
- package/build/esm/editor/components/ControlPanel/ControlPanel.css +2 -4
- package/build/esm/editor/components/ControlPanel/ControlPanel.d.ts +4 -2
- package/build/esm/editor/components/ControlPanel/ControlPanel.js +26 -17
- package/build/esm/editor/components/ControlPanel/i18n/en.json +2 -1
- package/build/esm/editor/components/ControlPanel/i18n/index.d.ts +1 -1
- package/build/esm/editor/components/ControlPanel/i18n/ru.json +2 -1
- package/build/esm/editor/components/Layout/Layout.css +10 -6
- package/build/esm/editor/components/Layout/Layout.d.ts +4 -7
- package/build/esm/editor/components/Layout/Layout.js +9 -11
- package/build/esm/editor/components/PageSettings/PageSettings.css +26 -0
- package/build/esm/editor/components/PageSettings/PageSettings.d.ts +12 -0
- package/build/esm/editor/components/PageSettings/PageSettings.js +27 -0
- package/build/esm/editor/components/PageSettings/i18n/en.json +3 -0
- package/build/esm/editor/components/PageSettings/i18n/index.d.ts +1 -0
- package/build/esm/editor/components/PageSettings/i18n/index.js +5 -0
- package/build/esm/editor/components/PageSettings/i18n/ru.json +3 -0
- package/build/esm/editor/containers/Editor/Editor.css +17 -0
- package/build/esm/editor/containers/Editor/Editor.d.ts +2 -1
- package/build/esm/editor/containers/Editor/Editor.js +18 -66
- package/build/esm/editor/containers/Editor/hooks/useCode.d.ts +14 -0
- package/build/esm/editor/containers/{Form/hooks.js → Editor/hooks/useCode.js} +4 -14
- package/build/esm/editor/containers/Editor/hooks/useEditorState.d.ts +49 -0
- package/build/esm/editor/containers/Editor/hooks/useEditorState.js +95 -0
- package/build/esm/editor/containers/Form/Form.css +0 -10
- package/build/esm/editor/containers/Form/Form.d.ts +1 -8
- package/build/esm/editor/containers/Form/Form.js +16 -42
- package/build/esm/editor/store/main/index.js +1 -1
- package/build/esm/editor/store/settings/index.d.ts +3 -3
- package/build/esm/editor/store/settings/index.js +5 -5
- package/build/esm/editor/store/settings/reducer.d.ts +9 -9
- package/build/esm/editor/store/settings/reducer.js +6 -6
- package/build/esm/editor/types/index.d.ts +3 -4
- package/build/esm/editor/types/index.js +6 -7
- package/build/esm/models/constructor-items/blocks.d.ts +1 -0
- package/build/esm/models/constructor-items/sub-blocks.d.ts +3 -3
- package/build/esm/schema/constants.d.ts +4 -0
- package/build/esm/schema/validators/common.d.ts +6 -0
- package/build/esm/schema/validators/common.js +6 -0
- package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.css +3 -6
- package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +3 -6
- package/build/esm/sub-blocks/BackgroundCard/schema.js +3 -3
- package/build/esm/sub-blocks/BasicCard/BasicCard.css +4 -4
- package/build/esm/sub-blocks/BasicCard/BasicCard.js +4 -7
- package/build/esm/sub-blocks/BasicCard/schema.js +3 -3
- package/build/esm/sub-blocks/Content/Content.css +11 -0
- package/build/esm/sub-blocks/Content/Content.js +2 -2
- package/build/esm/sub-blocks/Content/schema.d.ts +8 -0
- package/build/esm/sub-blocks/Content/schema.js +4 -0
- package/build/esm/sub-blocks/ImageCard/ImageCard.css +2 -0
- package/build/esm/sub-blocks/ImageCard/ImageCard.js +4 -2
- package/build/esm/sub-blocks/ImageCard/schema.d.ts +4 -0
- package/build/esm/sub-blocks/ImageCard/schema.js +3 -3
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.css +3 -2
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +5 -7
- package/build/esm/sub-blocks/LayoutItem/schema.d.ts +4 -0
- package/build/esm/sub-blocks/LayoutItem/schema.js +2 -5
- package/package.json +1 -1
- package/server/models/constructor-items/blocks.d.ts +1 -0
- package/server/models/constructor-items/sub-blocks.d.ts +3 -3
- package/widget/index.js +1 -1
- package/build/cjs/editor/components/PagePropsForm/PagePropsForm.d.ts +0 -10
- package/build/cjs/editor/components/PagePropsForm/PagePropsForm.js +0 -17
- package/build/cjs/editor/containers/Form/hooks.d.ts +0 -8
- package/build/esm/editor/components/PagePropsForm/PagePropsForm.d.ts +0 -10
- package/build/esm/editor/components/PagePropsForm/PagePropsForm.js +0 -13
- package/build/esm/editor/containers/Form/hooks.d.ts +0 -8
|
@@ -4,36 +4,26 @@ exports.useCode = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
7
|
-
const usePreviousValue_1 = tslib_1.__importDefault(require("
|
|
8
|
-
const types_1 = require("../../types");
|
|
7
|
+
const usePreviousValue_1 = tslib_1.__importDefault(require("../../../hooks/usePreviousValue"));
|
|
9
8
|
/**
|
|
10
9
|
* Transorms PageConstructor content in JSON to YAML on code editor mode switching
|
|
11
10
|
*
|
|
12
11
|
* @param {Object} props - props parent from form
|
|
13
12
|
* @returns {string} - updated code
|
|
14
13
|
*/
|
|
15
|
-
function useCode({
|
|
14
|
+
function useCode({ content, codeFullscreeModeOn, isCodeEditMode }) {
|
|
16
15
|
var _a;
|
|
17
16
|
const [code, setCode] = (0, react_1.useState)('');
|
|
18
|
-
const prevTab = (0, usePreviousValue_1.default)(activeTab);
|
|
19
17
|
const prevContentLength = (0, usePreviousValue_1.default)((_a = content.blocks) === null || _a === void 0 ? void 0 : _a.length);
|
|
20
18
|
const prevCodeFullscreeModeOn = (0, usePreviousValue_1.default)(codeFullscreeModeOn);
|
|
21
19
|
(0, react_1.useEffect)(() => {
|
|
22
20
|
var _a;
|
|
23
|
-
const switchedToCodeEditing = activeTab !== prevTab && activeTab === types_1.FormTab.Code;
|
|
24
21
|
const blocksCountChanged = prevContentLength !== ((_a = content.blocks) === null || _a === void 0 ? void 0 : _a.length);
|
|
25
22
|
const codeModeSwitched = codeFullscreeModeOn !== prevCodeFullscreeModeOn;
|
|
26
|
-
if (blocksCountChanged ||
|
|
23
|
+
if (blocksCountChanged || isCodeEditMode || codeModeSwitched) {
|
|
27
24
|
setCode(js_yaml_1.default.dump(content, { lineWidth: -1 }));
|
|
28
25
|
}
|
|
29
|
-
}, [
|
|
30
|
-
activeTab,
|
|
31
|
-
prevTab,
|
|
32
|
-
content,
|
|
33
|
-
prevContentLength,
|
|
34
|
-
codeFullscreeModeOn,
|
|
35
|
-
prevCodeFullscreeModeOn,
|
|
36
|
-
]);
|
|
26
|
+
}, [isCodeEditMode, content, prevContentLength, codeFullscreeModeOn, prevCodeFullscreeModeOn]);
|
|
37
27
|
return code;
|
|
38
28
|
}
|
|
39
29
|
exports.useCode = useCode;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { EditModeItem, EditorProps, ViewModeItem } from '../../../types';
|
|
2
|
+
export declare const useEditorState: ({ customSchema, onChange, providerProps, transformContent, deviceEmulationSettings, theme: editorTheme, ...rest }: EditorProps) => {
|
|
3
|
+
context: {
|
|
4
|
+
constructorProps: {
|
|
5
|
+
content: import("../../../../models").PageContent;
|
|
6
|
+
custom: import("../../../../models").CustomConfig | undefined;
|
|
7
|
+
};
|
|
8
|
+
providerProps: {
|
|
9
|
+
isMobile: boolean;
|
|
10
|
+
theme: import("../../../../models").Theme;
|
|
11
|
+
locale?: import("../../../../context/localeContext").LocaleContextProps | undefined;
|
|
12
|
+
location?: import("../../../../context/locationContext").LocationContextProps | undefined;
|
|
13
|
+
ssrConfig?: import("../../../../context/ssrContext").SSRContextProps | undefined;
|
|
14
|
+
mapsContext?: import("../../../../context/mapsContext/mapsContext").MapsContextType | undefined;
|
|
15
|
+
projectSettings?: import("../../../../context/projectSettingsContext").ProjectSettingsContextProps | undefined;
|
|
16
|
+
analytics?: import("../../../..").AnalyticsContextProps | undefined;
|
|
17
|
+
forms?: import("../../../../context/formsContext").FormsContextProps | undefined;
|
|
18
|
+
image?: import("../../../../context/imageContext").ImageContextProps | undefined;
|
|
19
|
+
};
|
|
20
|
+
deviceEmulationSettings: import("../../../types").DeviceEmulationSettings | undefined;
|
|
21
|
+
theme: import("../../../../models").Theme | undefined;
|
|
22
|
+
};
|
|
23
|
+
viewMode: ViewModeItem;
|
|
24
|
+
editMode: EditModeItem;
|
|
25
|
+
constructorTheme: import("../../../../models").Theme;
|
|
26
|
+
onThemeUpdate: (newTheme: import("../../../../models").Theme) => void;
|
|
27
|
+
onViewModeUpdate: (newViewMode: ViewModeItem) => void;
|
|
28
|
+
onEditModeUpdate: (newEditMode: EditModeItem) => void;
|
|
29
|
+
isCodeEditMode: boolean;
|
|
30
|
+
isDesktopViewMode: boolean;
|
|
31
|
+
content: import("../../../../models").PageContent;
|
|
32
|
+
schema: import("json-schema").JSONSchema4;
|
|
33
|
+
onContentUpdate: (newContent: import("../../../../models").PageContent) => void;
|
|
34
|
+
code: string;
|
|
35
|
+
codeValidator: import("../../../hooks/useCodeValidator").CodeValidator;
|
|
36
|
+
codeFullscreeModeOn: boolean;
|
|
37
|
+
onCodeFullscreeModeOnUpdate: (newCodeFullscreeModeOn: boolean) => void;
|
|
38
|
+
activeBlockIndex: number;
|
|
39
|
+
onSelect: (index: number) => void;
|
|
40
|
+
isCodeOnlyMode: boolean;
|
|
41
|
+
errorBoundaryState: number;
|
|
42
|
+
outgoingProps: {
|
|
43
|
+
content: import("../../../../models").PageContent;
|
|
44
|
+
custom: import("../../../../models").CustomConfig | undefined;
|
|
45
|
+
viewMode: ViewModeItem;
|
|
46
|
+
};
|
|
47
|
+
onAdd: (block: import("../../../../models").Block) => void;
|
|
48
|
+
isFormEditMode: boolean;
|
|
49
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useEditorState = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const schema_1 = require("../../../../schema");
|
|
7
|
+
const EditBlock_1 = tslib_1.__importDefault(require("../../../components/EditBlock/EditBlock"));
|
|
8
|
+
const ErrorBoundary_1 = require("../../../components/ErrorBoundary/ErrorBoundary");
|
|
9
|
+
const NotFoundBlock_1 = require("../../../components/NotFoundBlock/NotFoundBlock");
|
|
10
|
+
const useCodeValidator_1 = require("../../../hooks/useCodeValidator");
|
|
11
|
+
const main_1 = require("../../../store/main");
|
|
12
|
+
const settings_1 = require("../../../store/settings");
|
|
13
|
+
const types_1 = require("../../../types");
|
|
14
|
+
const utils_1 = require("../../../utils");
|
|
15
|
+
const useCode_1 = require("./useCode");
|
|
16
|
+
// Editor business logic
|
|
17
|
+
const useEditorState = (_a) => {
|
|
18
|
+
var { customSchema, onChange, providerProps, transformContent, deviceEmulationSettings, theme: editorTheme } = _a, rest = tslib_1.__rest(_a, ["customSchema", "onChange", "providerProps", "transformContent", "deviceEmulationSettings", "theme"]);
|
|
19
|
+
const { content, activeBlockIndex, errorBoundaryState, onContentUpdate, onAdd, onSelect, injectEditBlockProps, } = (0, main_1.useMainState)(rest);
|
|
20
|
+
const { viewMode, editMode, onEditModeUpdate, theme: constructorTheme, onViewModeUpdate, onThemeUpdate, codeFullscreeModeOn, onCodeFullscreeModeOnUpdate, } = (0, settings_1.useSettingsState)();
|
|
21
|
+
const isCodeEditMode = editMode === types_1.EditModeItem.Code;
|
|
22
|
+
const isViewEditMode = editMode === types_1.EditModeItem.View;
|
|
23
|
+
const isFormEditMode = editMode === types_1.EditModeItem.Form;
|
|
24
|
+
const isDesktopViewMode = viewMode === types_1.ViewModeItem.Desktop;
|
|
25
|
+
const isCodeOnlyMode = codeFullscreeModeOn && isCodeEditMode;
|
|
26
|
+
const transformedContent = (0, react_1.useMemo)(() => (transformContent ? transformContent(content, { viewMode }) : content), [content, transformContent, viewMode]);
|
|
27
|
+
const schema = (0, react_1.useMemo)(() => (0, schema_1.generateDefaultSchema)(customSchema), [customSchema]);
|
|
28
|
+
const codeValidator = (0, useCodeValidator_1.useCodeValidator)(schema);
|
|
29
|
+
const outgoingProps = (0, react_1.useMemo)(() => {
|
|
30
|
+
const custom = isCodeEditMode || isViewEditMode
|
|
31
|
+
? rest.custom
|
|
32
|
+
: (0, utils_1.addCustomDecorator)([
|
|
33
|
+
(props) => react_1.default.createElement(NotFoundBlock_1.NotFoundBlock, Object.assign({}, props)),
|
|
34
|
+
(props) => (react_1.default.createElement(EditBlock_1.default, Object.assign({}, injectEditBlockProps(props)))),
|
|
35
|
+
// need errorBoundaryState flag to reset error on content update
|
|
36
|
+
(props) => (react_1.default.createElement(ErrorBoundary_1.ErrorBoundary, Object.assign({}, props, { key: `${(0, utils_1.getBlockId)(props)}-${errorBoundaryState}` }))),
|
|
37
|
+
], rest.custom);
|
|
38
|
+
return {
|
|
39
|
+
content: transformedContent,
|
|
40
|
+
custom,
|
|
41
|
+
viewMode,
|
|
42
|
+
};
|
|
43
|
+
}, [
|
|
44
|
+
injectEditBlockProps,
|
|
45
|
+
errorBoundaryState,
|
|
46
|
+
viewMode,
|
|
47
|
+
transformedContent,
|
|
48
|
+
rest.custom,
|
|
49
|
+
isCodeEditMode,
|
|
50
|
+
isViewEditMode,
|
|
51
|
+
]);
|
|
52
|
+
const context = (0, react_1.useMemo)(() => ({
|
|
53
|
+
constructorProps: {
|
|
54
|
+
content: transformedContent,
|
|
55
|
+
custom: rest.custom,
|
|
56
|
+
},
|
|
57
|
+
providerProps: Object.assign(Object.assign({}, providerProps), { isMobile: (0, utils_1.checkIsMobile)(viewMode), theme: constructorTheme }),
|
|
58
|
+
deviceEmulationSettings,
|
|
59
|
+
theme: editorTheme,
|
|
60
|
+
}), [
|
|
61
|
+
providerProps,
|
|
62
|
+
rest.custom,
|
|
63
|
+
viewMode,
|
|
64
|
+
transformedContent,
|
|
65
|
+
deviceEmulationSettings,
|
|
66
|
+
constructorTheme,
|
|
67
|
+
editorTheme,
|
|
68
|
+
]);
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
70
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(content);
|
|
71
|
+
}, [content, onChange]);
|
|
72
|
+
const code = (0, useCode_1.useCode)({ isCodeEditMode, content, codeFullscreeModeOn });
|
|
73
|
+
return {
|
|
74
|
+
context,
|
|
75
|
+
viewMode,
|
|
76
|
+
editMode,
|
|
77
|
+
constructorTheme,
|
|
78
|
+
onThemeUpdate,
|
|
79
|
+
onViewModeUpdate,
|
|
80
|
+
onEditModeUpdate,
|
|
81
|
+
isCodeEditMode,
|
|
82
|
+
isDesktopViewMode,
|
|
83
|
+
content,
|
|
84
|
+
schema,
|
|
85
|
+
onContentUpdate,
|
|
86
|
+
code,
|
|
87
|
+
codeValidator,
|
|
88
|
+
codeFullscreeModeOn,
|
|
89
|
+
onCodeFullscreeModeOnUpdate,
|
|
90
|
+
activeBlockIndex,
|
|
91
|
+
onSelect,
|
|
92
|
+
isCodeOnlyMode,
|
|
93
|
+
errorBoundaryState,
|
|
94
|
+
outgoingProps,
|
|
95
|
+
onAdd,
|
|
96
|
+
isFormEditMode,
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
exports.useEditorState = useEditorState;
|
|
@@ -82,16 +82,6 @@ unpredictable css rules order in build */
|
|
|
82
82
|
.pc-editor-form + .pc-editor-form {
|
|
83
83
|
margin-top: 12px;
|
|
84
84
|
}
|
|
85
|
-
.pc-editor-form__tabs {
|
|
86
|
-
--g-color-base-brand: var(--pc-color-base-neon);
|
|
87
|
-
margin-bottom: 20px;
|
|
88
|
-
}
|
|
89
85
|
.pc-editor-form__block-form {
|
|
90
86
|
margin-bottom: 16px;
|
|
91
|
-
}
|
|
92
|
-
.pc-editor-form_code-editor-active {
|
|
93
|
-
height: calc(100% - var(--pc-editor-code-header-height));
|
|
94
|
-
}
|
|
95
|
-
.pc-editor-form_code-editor-active .pc-editor-form__tabs {
|
|
96
|
-
margin-bottom: 0;
|
|
97
87
|
}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { JSONSchema4 } from 'json-schema';
|
|
3
3
|
import { PageContent } from '../../../models';
|
|
4
|
-
import { FormTab } from '../../types';
|
|
5
|
-
import { CodeEditorMessageProps } from '../../utils/validation';
|
|
6
4
|
export interface FormProps {
|
|
7
5
|
content: PageContent;
|
|
8
6
|
schema: JSONSchema4;
|
|
9
7
|
activeBlockIndex: number;
|
|
10
|
-
activeTab: FormTab;
|
|
11
|
-
codeFullscreeModeOn: boolean;
|
|
12
|
-
onActiveTabUpdate: (tab: FormTab) => void;
|
|
13
|
-
onCodeFullscreeModeOnUpdate: (codeFullscreeModeOn: boolean) => void;
|
|
14
|
-
codeValidator: (code: string) => CodeEditorMessageProps;
|
|
15
8
|
onChange: (content: PageContent) => void;
|
|
16
9
|
onSelect: (index: number) => void;
|
|
17
10
|
}
|
|
18
|
-
export declare const Form: React.MemoExoticComponent<({ content, onChange, activeBlockIndex, onSelect, schema
|
|
11
|
+
export declare const Form: React.MemoExoticComponent<({ content, onChange, activeBlockIndex, onSelect, schema }: FormProps) => JSX.Element>;
|
|
@@ -6,47 +6,22 @@ const react_1 = tslib_1.__importStar(require("react"));
|
|
|
6
6
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
7
7
|
const utils_1 = require("../../../utils");
|
|
8
8
|
const BlockForm_1 = require("../../components/BlockForm/BlockForm");
|
|
9
|
-
const CodeEditor_1 = require("../../components/CodeEditor/CodeEditor");
|
|
10
|
-
const PagePropsForm_1 = require("../../components/PagePropsForm/PagePropsForm");
|
|
11
9
|
const useFormSpec_1 = tslib_1.__importDefault(require("../../hooks/useFormSpec"));
|
|
12
|
-
const types_1 = require("../../types");
|
|
13
|
-
const hooks_1 = require("./hooks");
|
|
14
10
|
const b = (0, utils_1.block)('editor-form');
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}));
|
|
19
|
-
exports.Form = (0, react_1.memo)(({ content, onChange, activeBlockIndex, onSelect, schema, codeValidator, activeTab, onActiveTabUpdate, codeFullscreeModeOn, onCodeFullscreeModeOnUpdate, }) => {
|
|
20
|
-
const _a = content || {}, { blocks } = _a, page = tslib_1.__rest(_a, ["blocks"]);
|
|
21
|
-
const code = (0, hooks_1.useCode)({ activeTab, content, codeFullscreeModeOn });
|
|
11
|
+
// TODO in https://github.com/gravity-ui/page-constructor/issues/884 this component will be extremely refactor
|
|
12
|
+
exports.Form = (0, react_1.memo)(({ content, onChange, activeBlockIndex, onSelect, schema }) => {
|
|
13
|
+
const { blocks } = content || {};
|
|
22
14
|
const spec = (0, useFormSpec_1.default)(schema);
|
|
23
|
-
const { blocks: blocksSpec
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
react_1.default.createElement(BlockForm_1.BlockForm, { spec: blocksSpec[blockData.type], data: blockData, active: activeBlockIndex === index, onChange: (data) => {
|
|
35
|
-
onChange(Object.assign(Object.assign({}, content), { blocks: [
|
|
36
|
-
...blocks.slice(0, index),
|
|
37
|
-
data,
|
|
38
|
-
...blocks.slice(index + 1),
|
|
39
|
-
] }));
|
|
40
|
-
}, onSelect: () => onSelect(index) }))) : null)));
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
case types_1.FormTab.Code: {
|
|
44
|
-
form = (react_1.default.createElement(CodeEditor_1.CodeEditor, { code: code, onChange: onChange, validator: codeValidator, fullscreenModeOn: codeFullscreeModeOn, onFullscreenModeOnUpdate: onCodeFullscreeModeOnUpdate }));
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return (react_1.default.createElement("div", { className: b({ 'code-editor-active': activeTab === types_1.FormTab.Code }) },
|
|
49
|
-
react_1.default.createElement(uikit_1.Tabs, { activeTab: activeTab, className: b('tabs'), items: tabsItems, onSelectTab: onActiveTabUpdate }),
|
|
50
|
-
form));
|
|
15
|
+
const { blocks: blocksSpec } = spec || {};
|
|
16
|
+
return (react_1.default.createElement("div", { className: b() },
|
|
17
|
+
react_1.default.createElement(uikit_1.Text, { variant: "body-2" }, 'Blocks'),
|
|
18
|
+
blocks.map((blockData, index) => blocksSpec[blockData.type] ? (react_1.default.createElement("div", { className: b('block-form'), key: (0, utils_1.getBlockKey)(blockData, index) },
|
|
19
|
+
react_1.default.createElement(BlockForm_1.BlockForm, { spec: blocksSpec[blockData.type], data: blockData, active: activeBlockIndex === index, onChange: (data) => {
|
|
20
|
+
onChange(Object.assign(Object.assign({}, content), { blocks: [
|
|
21
|
+
...blocks.slice(0, index),
|
|
22
|
+
data,
|
|
23
|
+
...blocks.slice(index + 1),
|
|
24
|
+
] }));
|
|
25
|
+
}, onSelect: () => onSelect(index) }))) : null)));
|
|
51
26
|
});
|
|
52
27
|
exports.Form.displayName = 'Form';
|
|
@@ -15,7 +15,7 @@ function useMainState({ content: intialContent, custom }) {
|
|
|
15
15
|
activeBlockIndex: 0,
|
|
16
16
|
errorBoundaryState: 0,
|
|
17
17
|
content: (0, utils_2.addEditorProps)(intialContent),
|
|
18
|
-
viewMode: types_1.ViewModeItem.
|
|
18
|
+
viewMode: types_1.ViewModeItem.Desktop,
|
|
19
19
|
theme: constants_1.DEFAULT_THEME,
|
|
20
20
|
});
|
|
21
21
|
return (0, react_1.useMemo)(() => {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Theme } from '../../../models';
|
|
2
|
-
import {
|
|
2
|
+
import { EditModeItem, ViewModeItem } from '../../types';
|
|
3
3
|
export declare function useSettingsState(): {
|
|
4
|
-
formTab: FormTab;
|
|
5
4
|
viewMode: ViewModeItem;
|
|
5
|
+
editMode: EditModeItem;
|
|
6
6
|
theme: Theme;
|
|
7
7
|
codeFullscreeModeOn: boolean;
|
|
8
|
-
onFormTabUpdate: (newFormTab: FormTab) => void;
|
|
9
8
|
onViewModeUpdate: (newViewMode: ViewModeItem) => void;
|
|
9
|
+
onEditModeUpdate: (newEditMode: EditModeItem) => void;
|
|
10
10
|
onThemeUpdate: (newTheme: Theme) => void;
|
|
11
11
|
onCodeFullscreeModeOnUpdate: (newCodeFullscreeModeOn: boolean) => void;
|
|
12
12
|
};
|
|
@@ -4,18 +4,18 @@ exports.useSettingsState = void 0;
|
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const reducer_1 = require("./reducer");
|
|
6
6
|
function useSettingsState() {
|
|
7
|
-
const [{
|
|
7
|
+
const [{ viewMode, editMode, theme, codeFullscreeModeOn }, dispatch] = (0, react_1.useReducer)(reducer_1.reducer, reducer_1.initialState);
|
|
8
8
|
return (0, react_1.useMemo)(() => {
|
|
9
9
|
return {
|
|
10
|
-
formTab,
|
|
11
10
|
viewMode,
|
|
11
|
+
editMode,
|
|
12
12
|
theme,
|
|
13
13
|
codeFullscreeModeOn,
|
|
14
|
-
onFormTabUpdate: (newFormTab) => dispatch({ type: reducer_1.UPDATE_FORM_TAB, payload: newFormTab }),
|
|
15
14
|
onViewModeUpdate: (newViewMode) => dispatch({ type: reducer_1.UPDATE_VIEW_MODE, payload: newViewMode }),
|
|
15
|
+
onEditModeUpdate: (newEditMode) => dispatch({ type: reducer_1.UPDATE_EDIT_MODE, payload: newEditMode }),
|
|
16
16
|
onThemeUpdate: (newTheme) => dispatch({ type: reducer_1.UPDATE_THEME, payload: newTheme }),
|
|
17
17
|
onCodeFullscreeModeOnUpdate: (newCodeFullscreeModeOn) => dispatch({ type: reducer_1.UPDATE_CODE_FULLSCREEN_MODE_ON, payload: newCodeFullscreeModeOn }),
|
|
18
18
|
};
|
|
19
|
-
}, [
|
|
19
|
+
}, [viewMode, theme, codeFullscreeModeOn, editMode]);
|
|
20
20
|
}
|
|
21
21
|
exports.useSettingsState = useSettingsState;
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { Theme } from '../../../models';
|
|
2
|
-
import {
|
|
3
|
-
export declare const UPDATE_FORM_TAB = "UPDATE_FORM_TAB";
|
|
2
|
+
import { EditModeItem, ViewModeItem } from '../../types';
|
|
4
3
|
export declare const UPDATE_CODE_FULLSCREEN_MODE_ON = "UPDATE_CODE_FULLSCREEN_MODE_ON";
|
|
5
4
|
export declare const UPDATE_VIEW_MODE = "UPDATE_VIEW_MODE";
|
|
5
|
+
export declare const UPDATE_EDIT_MODE = "UPDATE_EDIT_MODE";
|
|
6
6
|
export declare const UPDATE_THEME = "UPDATE_THEME";
|
|
7
7
|
interface EditorSettingsState {
|
|
8
8
|
theme: Theme;
|
|
9
9
|
viewMode: ViewModeItem;
|
|
10
|
+
editMode: EditModeItem;
|
|
10
11
|
codeFullscreeModeOn: boolean;
|
|
11
|
-
formTab: FormTab;
|
|
12
12
|
}
|
|
13
13
|
interface UpdateViewMode {
|
|
14
14
|
type: typeof UPDATE_VIEW_MODE;
|
|
15
15
|
payload: ViewModeItem;
|
|
16
16
|
}
|
|
17
|
+
interface UpdateEditMode {
|
|
18
|
+
type: typeof UPDATE_EDIT_MODE;
|
|
19
|
+
payload: EditModeItem;
|
|
20
|
+
}
|
|
17
21
|
interface UpdateTheme {
|
|
18
22
|
type: typeof UPDATE_THEME;
|
|
19
23
|
payload: Theme;
|
|
@@ -22,16 +26,12 @@ interface UpdateCodeFullscreenModeOn {
|
|
|
22
26
|
type: typeof UPDATE_CODE_FULLSCREEN_MODE_ON;
|
|
23
27
|
payload: boolean;
|
|
24
28
|
}
|
|
25
|
-
|
|
26
|
-
type: typeof UPDATE_FORM_TAB;
|
|
27
|
-
payload: FormTab;
|
|
28
|
-
}
|
|
29
|
-
export type EditorSettingsAction = UpdateViewMode | UpdateTheme | UpdateCodeFullscreenModeOn | UpdateFormTab;
|
|
29
|
+
export type EditorSettingsAction = UpdateViewMode | UpdateEditMode | UpdateTheme | UpdateCodeFullscreenModeOn;
|
|
30
30
|
export declare const reducer: (state: EditorSettingsState, action: EditorSettingsAction) => EditorSettingsState;
|
|
31
31
|
export declare const initialState: {
|
|
32
32
|
viewMode: ViewModeItem;
|
|
33
|
+
editMode: EditModeItem;
|
|
33
34
|
theme: Theme;
|
|
34
35
|
codeFullscreeModeOn: boolean;
|
|
35
|
-
formTab: FormTab;
|
|
36
36
|
};
|
|
37
37
|
export {};
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initialState = exports.reducer = exports.UPDATE_THEME = exports.
|
|
3
|
+
exports.initialState = exports.reducer = exports.UPDATE_THEME = exports.UPDATE_EDIT_MODE = exports.UPDATE_VIEW_MODE = exports.UPDATE_CODE_FULLSCREEN_MODE_ON = void 0;
|
|
4
4
|
const constants_1 = require("../../../components/constants");
|
|
5
5
|
const types_1 = require("../../types");
|
|
6
6
|
// actions
|
|
7
|
-
exports.UPDATE_FORM_TAB = 'UPDATE_FORM_TAB';
|
|
8
7
|
exports.UPDATE_CODE_FULLSCREEN_MODE_ON = 'UPDATE_CODE_FULLSCREEN_MODE_ON';
|
|
9
8
|
exports.UPDATE_VIEW_MODE = 'UPDATE_VIEW_MODE';
|
|
9
|
+
exports.UPDATE_EDIT_MODE = 'UPDATE_EDIT_MODE';
|
|
10
10
|
exports.UPDATE_THEME = 'UPDATE_THEME';
|
|
11
11
|
// reducer
|
|
12
12
|
const reducer = (state, action) => {
|
|
13
13
|
switch (action.type) {
|
|
14
14
|
case exports.UPDATE_VIEW_MODE:
|
|
15
15
|
return Object.assign(Object.assign({}, state), { viewMode: action.payload });
|
|
16
|
+
case exports.UPDATE_EDIT_MODE:
|
|
17
|
+
return Object.assign(Object.assign({}, state), { editMode: action.payload });
|
|
16
18
|
case exports.UPDATE_THEME:
|
|
17
19
|
return Object.assign(Object.assign({}, state), { theme: action.payload });
|
|
18
20
|
case exports.UPDATE_CODE_FULLSCREEN_MODE_ON:
|
|
19
21
|
return Object.assign(Object.assign({}, state), { codeFullscreeModeOn: action.payload });
|
|
20
|
-
case exports.UPDATE_FORM_TAB:
|
|
21
|
-
return Object.assign(Object.assign({}, state), { formTab: action.payload });
|
|
22
22
|
default:
|
|
23
23
|
return state;
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
exports.reducer = reducer;
|
|
27
27
|
exports.initialState = {
|
|
28
|
-
viewMode: types_1.ViewModeItem.
|
|
28
|
+
viewMode: types_1.ViewModeItem.Desktop,
|
|
29
|
+
editMode: types_1.EditModeItem.Form,
|
|
29
30
|
theme: constants_1.DEFAULT_THEME,
|
|
30
31
|
codeFullscreeModeOn: false,
|
|
31
|
-
formTab: types_1.FormTab.Blocks,
|
|
32
32
|
};
|
|
@@ -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
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
export declare enum EditModeItem {
|
|
37
|
+
View = "view",
|
|
38
|
+
Form = "form",
|
|
40
39
|
Code = "code"
|
|
41
40
|
}
|
|
42
41
|
export {};
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.EditModeItem = exports.ViewModeItem = void 0;
|
|
4
4
|
var ViewModeItem;
|
|
5
5
|
(function (ViewModeItem) {
|
|
6
|
-
ViewModeItem["Edititng"] = "editing";
|
|
7
6
|
ViewModeItem["Desktop"] = "desktop";
|
|
8
7
|
ViewModeItem["Tablet"] = "tablet";
|
|
9
8
|
ViewModeItem["Mobile"] = "mobile";
|
|
10
9
|
})(ViewModeItem = exports.ViewModeItem || (exports.ViewModeItem = {}));
|
|
11
|
-
var
|
|
12
|
-
(function (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
})(
|
|
10
|
+
var EditModeItem;
|
|
11
|
+
(function (EditModeItem) {
|
|
12
|
+
EditModeItem["View"] = "view";
|
|
13
|
+
EditModeItem["Form"] = "form";
|
|
14
|
+
EditModeItem["Code"] = "code";
|
|
15
|
+
})(EditModeItem = exports.EditModeItem || (exports.EditModeItem = {}));
|
|
@@ -96,14 +96,14 @@ export interface QuoteProps extends Themable, CardBaseProps {
|
|
|
96
96
|
quoteType?: QuoteType;
|
|
97
97
|
button?: ButtonProps;
|
|
98
98
|
}
|
|
99
|
-
export interface BackgroundCardProps extends CardBaseProps, AnalyticsEventsBase, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered'> {
|
|
99
|
+
export interface BackgroundCardProps extends CardBaseProps, AnalyticsEventsBase, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'controlPosition'> {
|
|
100
100
|
url?: string;
|
|
101
101
|
urlTitle?: string;
|
|
102
102
|
background?: ThemeSupporting<ImageObjectProps>;
|
|
103
103
|
paddingBottom?: 's' | 'm' | 'l' | 'xl';
|
|
104
104
|
backgroundColor?: string;
|
|
105
105
|
}
|
|
106
|
-
export interface BasicCardProps extends CardBaseProps, AnalyticsEventsBase, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {
|
|
106
|
+
export interface BasicCardProps extends CardBaseProps, AnalyticsEventsBase, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme' | 'controlPosition'> {
|
|
107
107
|
url: string;
|
|
108
108
|
urlTitle?: string;
|
|
109
109
|
icon?: ImageProps;
|
|
@@ -141,7 +141,7 @@ export interface LayoutItemProps extends ClassNameProps, CardLayoutProps, Analyt
|
|
|
141
141
|
fullscreen?: boolean;
|
|
142
142
|
icon?: PositionedIcon;
|
|
143
143
|
}
|
|
144
|
-
export interface ImageCardProps extends CardBaseProps, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered'> {
|
|
144
|
+
export interface ImageCardProps extends CardBaseProps, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'controlPosition'> {
|
|
145
145
|
image: ImageProps;
|
|
146
146
|
enableImageBorderRadius?: boolean;
|
|
147
147
|
margins?: ImageCardMargins;
|
|
@@ -29,6 +29,12 @@ export declare const BaseProps: {
|
|
|
29
29
|
type: string;
|
|
30
30
|
};
|
|
31
31
|
};
|
|
32
|
+
export declare const CardLayoutProps: {
|
|
33
|
+
controlPosition: {
|
|
34
|
+
type: string;
|
|
35
|
+
enum: string[];
|
|
36
|
+
};
|
|
37
|
+
};
|
|
32
38
|
export declare const containerSizesObject: {
|
|
33
39
|
type: string;
|
|
34
40
|
additionalProperties: boolean;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CardBase = exports.BorderProps = exports.MapProps = exports.YMapMarker = exports.YMapMarkerLabel = exports.MediaProps = exports.ButtonBlock = exports.TitleProps = exports.BlockBaseProps = exports.AnchorProps = exports.withTheme = exports.MenuProps = exports.ButtonProps = exports.authorItem = exports.FileLinkProps = exports.LinkProps = exports.BackgroundProps = exports.DataLensProps = exports.DataLensObjectProps = exports.JustifyProps = exports.ThemeProps = exports.VideoProps = exports.CustomControlsOptionsProps = exports.PlayButtonProps = exports.LoopProps = exports.ChildrenCardsProps = exports.ChildrenProps = exports.AnimatableProps = exports.sliderSizesObject = exports.containerSizesObject = exports.CardLayoutProps = exports.BaseProps = exports.customControlsButtonPositioning = exports.customControlsType = exports.mediaView = exports.quoteTypes = exports.contentThemes = exports.sizeNumber = exports.dividerEnum = exports.fileLinkTypes = exports.videoControlsTypes = exports.playIconThemes = exports.playIconTypes = exports.videoTypes = exports.contentTextWidth = exports.contentSizes = exports.sliderSizesArray = exports.containerSizesArray = exports.textSize = exports.mediaDirection = void 0;
|
|
4
|
+
exports.BlockHeaderProps = void 0;
|
|
4
5
|
const schema_1 = require("../../components/Image/schema");
|
|
5
6
|
const models_1 = require("../../models");
|
|
6
7
|
const event_1 = require("./event");
|
|
@@ -35,6 +36,12 @@ exports.BaseProps = {
|
|
|
35
36
|
type: 'string',
|
|
36
37
|
},
|
|
37
38
|
};
|
|
39
|
+
exports.CardLayoutProps = {
|
|
40
|
+
controlPosition: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
enum: ['content', 'footer'],
|
|
43
|
+
},
|
|
44
|
+
};
|
|
38
45
|
exports.containerSizesObject = {
|
|
39
46
|
type: 'object',
|
|
40
47
|
additionalProperties: false,
|
|
@@ -26,6 +26,9 @@ unpredictable css rules order in build */
|
|
|
26
26
|
cursor: default;
|
|
27
27
|
border: none;
|
|
28
28
|
}
|
|
29
|
+
.pc-background-card__content {
|
|
30
|
+
display: flex;
|
|
31
|
+
}
|
|
29
32
|
.pc-background-card__image {
|
|
30
33
|
position: absolute;
|
|
31
34
|
top: 0;
|
|
@@ -37,12 +40,6 @@ unpredictable css rules order in build */
|
|
|
37
40
|
object-fit: cover;
|
|
38
41
|
object-position: left;
|
|
39
42
|
}
|
|
40
|
-
.pc-background-card__footer {
|
|
41
|
-
margin-top: 0px;
|
|
42
|
-
}
|
|
43
|
-
.pc-background-card__links, .pc-background-card__buttons {
|
|
44
|
-
margin-top: 16px;
|
|
45
|
-
}
|
|
46
43
|
|
|
47
44
|
a.pc-background-card_theme_light {
|
|
48
45
|
background-color: var(--pc-color-base-silver);
|
|
@@ -15,12 +15,9 @@ const BackgroundCard = (props) => {
|
|
|
15
15
|
const hasBackgroundColor = backgroundColor || cardTheme !== 'default';
|
|
16
16
|
const borderType = hasBackgroundColor ? 'none' : border;
|
|
17
17
|
const areControlsInFooter = !paddingBottom && controlPosition === 'footer';
|
|
18
|
-
return (react_1.default.createElement(components_1.CardBase, { className: b({ padding: paddingBottom, theme: cardTheme }), url: url, border: borderType, analyticsEvents: analyticsEvents, urlTitle: urlTitle },
|
|
18
|
+
return (react_1.default.createElement(components_1.CardBase, { className: b({ padding: paddingBottom, theme: cardTheme }), contentClassName: b('content'), url: url, border: borderType, analyticsEvents: analyticsEvents, urlTitle: urlTitle },
|
|
19
19
|
react_1.default.createElement(components_1.CardBase.Content, null,
|
|
20
20
|
react_1.default.createElement(components_1.BackgroundImage, Object.assign({ className: b('image') }, (0, utils_1.getThemedValue)(background, theme), { style: { backgroundColor } })),
|
|
21
|
-
react_1.default.createElement(Content_1.default, { titleId: titleId, title: title, text: text, additionalInfo: additionalInfo, size: "s", theme: cardTheme, links:
|
|
22
|
-
areControlsInFooter && (links || buttons) && (react_1.default.createElement(components_1.CardBase.Footer, null,
|
|
23
|
-
react_1.default.createElement(components_1.Links, { className: b('links'), size: "s", links: links, titleId: titleId }),
|
|
24
|
-
react_1.default.createElement(components_1.Buttons, { className: b('buttons'), size: "s", buttons: buttons, titleId: titleId })))));
|
|
21
|
+
react_1.default.createElement(Content_1.default, { titleId: titleId, title: title, text: text, additionalInfo: additionalInfo, size: "s", theme: cardTheme, links: links, buttons: buttons, list: list, colSizes: { all: 12, md: 12 }, controlPosition: areControlsInFooter ? 'bottom' : 'default' }))));
|
|
25
22
|
};
|
|
26
23
|
exports.default = BackgroundCard;
|
|
@@ -7,12 +7,12 @@ const schema_1 = require("../../components/Image/schema");
|
|
|
7
7
|
const common_1 = require("../../schema/validators/common");
|
|
8
8
|
const event_1 = require("../../schema/validators/event");
|
|
9
9
|
const schema_2 = require("../Content/schema");
|
|
10
|
-
const BackgroundCardContentProps = (0, omit_1.default)(schema_2.ContentBase, ['size']);
|
|
10
|
+
const BackgroundCardContentProps = (0, omit_1.default)(schema_2.ContentBase, ['size', 'controlPosition']);
|
|
11
11
|
exports.BackgroundCard = {
|
|
12
12
|
'background-card': {
|
|
13
13
|
additionalProperties: false,
|
|
14
14
|
required: ['title', 'text'],
|
|
15
|
-
properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.CardBase), BackgroundCardContentProps), { url: {
|
|
15
|
+
properties: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.CardBase), common_1.CardLayoutProps), BackgroundCardContentProps), { url: {
|
|
16
16
|
type: 'string',
|
|
17
17
|
}, urlTitle: {
|
|
18
18
|
type: 'string',
|
|
@@ -4,9 +4,9 @@ unpredictable css rules order in build */
|
|
|
4
4
|
min-height: auto;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.pc-basic-
|
|
8
|
-
|
|
7
|
+
.pc-basic-card__content {
|
|
8
|
+
display: flex;
|
|
9
9
|
}
|
|
10
|
-
.pc-basic-
|
|
11
|
-
|
|
10
|
+
.pc-basic-card__wrapper {
|
|
11
|
+
flex: auto;
|
|
12
12
|
}
|