@gravity-ui/page-constructor 2.21.0 → 2.22.0-alpha
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/CHANGELOG.md +0 -53
- package/README.md +1 -1
- package/build/cjs/blocks/Header/schema.d.ts +18 -0
- package/build/cjs/blocks/HeaderSlider/schema.d.ts +6 -0
- package/build/cjs/blocks/Media/schema.d.ts +12 -0
- package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +6 -0
- package/build/cjs/blocks/Security/schema.d.ts +6 -0
- package/build/cjs/blocks/Tabs/schema.d.ts +6 -0
- package/build/cjs/components/Anchor/Anchor.d.ts +2 -2
- package/build/cjs/components/Anchor/Anchor.js +1 -1
- package/build/cjs/components/Anchor/__tests__/Anchor.test.js +21 -0
- package/build/cjs/components/AnimateBlock/__tests__/AnimateBlock.test.js +36 -0
- package/build/cjs/components/Author/__tests__/Author.test.d.ts +1 -0
- package/build/cjs/components/Author/__tests__/Author.test.js +49 -0
- package/build/cjs/components/BackLink/__tests__/BackLink.test.d.ts +1 -0
- package/build/cjs/components/BackLink/__tests__/BackLink.test.js +63 -0
- package/build/cjs/components/BackgroundImage/BackgroundImage.js +2 -2
- package/build/cjs/components/BlockBase/BlockBase.d.ts +2 -3
- package/build/cjs/components/BlockBase/BlockBase.js +2 -4
- package/build/cjs/components/BlockBase/__tests__/BlockBase.test.d.ts +1 -0
- package/build/cjs/components/BlockBase/__tests__/BlockBase.test.js +44 -0
- package/build/cjs/components/Button/Button.css +0 -3
- package/build/cjs/components/Button/Button.js +4 -5
- package/build/cjs/components/Button/__tests__/Button.test.d.ts +1 -0
- package/build/cjs/components/Button/__tests__/Button.test.js +91 -0
- package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +1 -0
- package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.js +58 -0
- package/build/cjs/components/FullscreenImage/FullscreenImage.d.ts +2 -2
- package/build/cjs/components/FullscreenImage/FullscreenImage.js +5 -5
- package/build/cjs/components/FullscreenMedia/FullscreenMedia.d.ts +13 -0
- package/build/cjs/components/FullscreenMedia/{FullScreenMedia.js → FullscreenMedia.js} +3 -3
- package/build/cjs/components/Image/Image.d.ts +0 -1
- package/build/cjs/components/Image/Image.js +2 -2
- package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.d.ts +4 -0
- package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js +10 -0
- package/build/cjs/components/Media/Image/Image.d.ts +1 -0
- package/build/cjs/components/Media/Image/Image.js +10 -3
- package/build/cjs/components/Media/Media.js +25 -4
- package/build/cjs/components/Media/Video/Video.d.ts +1 -1
- package/build/cjs/components/VideoBlock/VideoBlock.d.ts +4 -0
- package/build/cjs/components/VideoBlock/VideoBlock.js +3 -3
- package/build/cjs/components/index.d.ts +1 -1
- package/build/cjs/components/index.js +2 -2
- package/build/cjs/constructor-items.d.ts +1 -1
- package/build/cjs/containers/Loadable/Loadable.d.ts +2 -2
- package/build/cjs/containers/PageConstructor/PageConstructor.js +3 -5
- package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +2 -3
- package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.d.ts +1 -1
- package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +5 -5
- package/build/cjs/context/innerContext/InnerContext.d.ts +1 -2
- package/build/cjs/grid/Col/Col.d.ts +1 -1
- package/build/cjs/hooks/useMetrika.js +7 -0
- package/build/cjs/internal-typings/global.d.ts +16 -18
- package/build/cjs/models/constructor-items/blocks.d.ts +11 -1
- package/build/cjs/models/constructor-items/blocks.js +2 -0
- package/build/cjs/models/constructor-items/common.d.ts +7 -3
- package/build/cjs/models/constructor-items/sub-blocks.d.ts +4 -0
- package/build/cjs/models/constructor.d.ts +1 -4
- package/build/cjs/models/index.d.ts +0 -1
- package/build/cjs/models/index.js +0 -1
- package/build/cjs/schema/validators/common.d.ts +6 -0
- package/build/cjs/schema/validators/common.js +6 -0
- package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +1 -2
- package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.js +2 -5
- package/build/cjs/sub-blocks/HubspotForm/index.d.ts +1 -1
- package/build/cjs/sub-blocks/HubspotForm/index.js +5 -6
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +4 -4
- package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +9 -0
- package/build/cjs/sub-blocks/LayoutItem/schema.js +2 -0
- package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +2 -2
- package/build/cjs/sub-blocks/LayoutItem/utils.js +5 -5
- package/build/cjs/sub-blocks/MediaCard/schema.d.ts +6 -0
- package/build/cjs/utils/blocks.d.ts +1 -4
- package/build/cjs/utils/blocks.js +1 -11
- package/build/esm/blocks/Header/schema.d.ts +18 -0
- package/build/esm/blocks/HeaderSlider/schema.d.ts +6 -0
- package/build/esm/blocks/Media/schema.d.ts +12 -0
- package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +6 -0
- package/build/esm/blocks/Security/schema.d.ts +6 -0
- package/build/esm/blocks/Tabs/Tabs.js +2 -2
- package/build/esm/blocks/Tabs/schema.d.ts +6 -0
- package/build/esm/components/Anchor/Anchor.d.ts +2 -2
- package/build/esm/components/Anchor/Anchor.js +1 -1
- package/build/esm/components/Anchor/__tests__/Anchor.test.d.ts +1 -0
- package/build/esm/components/Anchor/__tests__/Anchor.test.js +18 -0
- package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts +1 -0
- package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.js +33 -0
- package/build/esm/components/Author/__tests__/Author.test.d.ts +1 -0
- package/build/esm/components/Author/__tests__/Author.test.js +46 -0
- package/build/esm/components/BackLink/__tests__/BackLink.test.d.ts +1 -0
- package/build/esm/components/BackLink/__tests__/BackLink.test.js +60 -0
- package/build/esm/components/BackgroundImage/BackgroundImage.js +2 -2
- package/build/esm/components/BlockBase/BlockBase.d.ts +2 -3
- package/build/esm/components/BlockBase/BlockBase.js +2 -4
- package/build/esm/components/BlockBase/__tests__/BlockBase.test.d.ts +1 -0
- package/build/esm/components/BlockBase/__tests__/BlockBase.test.js +41 -0
- package/build/esm/components/Button/Button.css +0 -3
- package/build/esm/components/Button/Button.js +4 -5
- package/build/esm/components/Button/__tests__/Button.test.d.ts +1 -0
- package/build/esm/components/Button/__tests__/Button.test.js +88 -0
- package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +1 -0
- package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.js +55 -0
- package/build/esm/components/FullscreenImage/FullscreenImage.d.ts +3 -3
- package/build/esm/components/FullscreenImage/FullscreenImage.js +6 -6
- package/build/esm/components/FullscreenMedia/FullscreenMedia.d.ts +14 -0
- package/build/esm/components/FullscreenMedia/{FullScreenMedia.js → FullscreenMedia.js} +4 -4
- package/build/esm/components/Image/Image.d.ts +0 -1
- package/build/esm/components/Image/Image.js +2 -2
- package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.d.ts +4 -0
- package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js +7 -0
- package/build/esm/components/Media/Image/Image.d.ts +1 -0
- package/build/esm/components/Media/Image/Image.js +12 -5
- package/build/esm/components/Media/Media.js +25 -4
- package/build/esm/components/Media/Video/Video.d.ts +1 -1
- package/build/esm/components/VideoBlock/VideoBlock.d.ts +4 -0
- package/build/esm/components/VideoBlock/VideoBlock.js +3 -3
- package/build/esm/components/index.d.ts +1 -1
- package/build/esm/components/index.js +1 -1
- package/build/esm/constructor-items.d.ts +1 -1
- package/build/esm/containers/Loadable/Loadable.d.ts +2 -2
- package/build/esm/containers/PageConstructor/PageConstructor.js +4 -6
- package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +2 -3
- package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.d.ts +1 -1
- package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +5 -5
- package/build/esm/context/innerContext/InnerContext.d.ts +1 -2
- package/build/esm/grid/Col/Col.d.ts +1 -1
- package/build/esm/hooks/useMetrika.js +7 -0
- package/build/esm/internal-typings/global.d.ts +16 -18
- package/build/esm/models/constructor-items/blocks.d.ts +11 -1
- package/build/esm/models/constructor-items/blocks.js +2 -0
- package/build/esm/models/constructor-items/common.d.ts +7 -3
- package/build/esm/models/constructor-items/sub-blocks.d.ts +4 -0
- package/build/esm/models/constructor.d.ts +1 -4
- package/build/esm/models/index.d.ts +0 -1
- package/build/esm/models/index.js +0 -1
- package/build/esm/schema/validators/common.d.ts +6 -0
- package/build/esm/schema/validators/common.js +6 -0
- package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +1 -2
- package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.js +3 -6
- package/build/esm/sub-blocks/HubspotForm/index.d.ts +1 -1
- package/build/esm/sub-blocks/HubspotForm/index.js +6 -7
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +5 -5
- package/build/esm/sub-blocks/LayoutItem/schema.d.ts +9 -0
- package/build/esm/sub-blocks/LayoutItem/schema.js +2 -0
- package/build/esm/sub-blocks/LayoutItem/utils.d.ts +2 -2
- package/build/esm/sub-blocks/LayoutItem/utils.js +2 -2
- package/build/esm/sub-blocks/MediaCard/schema.d.ts +6 -0
- package/build/esm/utils/blocks.d.ts +1 -4
- package/build/esm/utils/blocks.js +0 -7
- package/package.json +6 -4
- package/server/models/constructor-items/blocks.d.ts +11 -1
- package/server/models/constructor-items/blocks.js +2 -0
- package/server/models/constructor-items/common.d.ts +7 -3
- package/server/models/constructor-items/sub-blocks.d.ts +4 -0
- package/server/models/constructor.d.ts +1 -4
- package/server/models/index.d.ts +0 -1
- package/server/models/index.js +0 -1
- package/server/utils/blocks.d.ts +1 -4
- package/server/utils/blocks.js +1 -11
- package/build/cjs/components/FullscreenMedia/FullScreenMedia.d.ts +0 -9
- package/build/cjs/customization/BlockDecoration.d.ts +0 -3
- package/build/cjs/customization/BlockDecoration.js +0 -22
- package/build/cjs/editor/Components/AddBlock/AddBlock.css +0 -82
- package/build/cjs/editor/Components/AddBlock/AddBlock.d.ts +0 -7
- package/build/cjs/editor/Components/AddBlock/AddBlock.js +0 -43
- package/build/cjs/editor/Components/EditBlock/EditBlock.css +0 -47
- package/build/cjs/editor/Components/EditBlock/EditBlock.d.ts +0 -4
- package/build/cjs/editor/Components/EditBlock/EditBlock.js +0 -32
- package/build/cjs/editor/Containers/Editor.d.ts +0 -2
- package/build/cjs/editor/Containers/Editor.js +0 -24
- package/build/cjs/editor/data/index.d.ts +0 -13
- package/build/cjs/editor/data/index.js +0 -27
- package/build/cjs/editor/data/previews/default-preview.d.ts +0 -3
- package/build/cjs/editor/data/previews/default-preview.js +0 -18
- package/build/cjs/editor/data/previews/header-block.d.ts +0 -3
- package/build/cjs/editor/data/previews/header-block.js +0 -19
- package/build/cjs/editor/index.d.ts +0 -2
- package/build/cjs/editor/index.js +0 -7
- package/build/cjs/editor/store/index.d.ts +0 -15
- package/build/cjs/editor/store/index.js +0 -32
- package/build/cjs/editor/store/reducer.d.ts +0 -41
- package/build/cjs/editor/store/reducer.js +0 -59
- package/build/cjs/editor/store/utils.d.ts +0 -13
- package/build/cjs/editor/store/utils.js +0 -34
- package/build/cjs/editor/styles/mixins.css +0 -0
- package/build/cjs/editor/styles/variables.css +0 -0
- package/build/cjs/editor/types/index.d.ts +0 -17
- package/build/cjs/editor/types/index.js +0 -2
- package/build/cjs/editor/utils/index.d.ts +0 -11
- package/build/cjs/editor/utils/index.js +0 -12
- package/build/cjs/models/customization.d.ts +0 -9
- package/build/cjs/models/customization.js +0 -2
- package/build/esm/components/FullscreenMedia/FullScreenMedia.d.ts +0 -10
- package/build/esm/customization/BlockDecoration.d.ts +0 -3
- package/build/esm/customization/BlockDecoration.js +0 -17
- package/build/esm/editor/Components/AddBlock/AddBlock.css +0 -82
- package/build/esm/editor/Components/AddBlock/AddBlock.d.ts +0 -8
- package/build/esm/editor/Components/AddBlock/AddBlock.js +0 -41
- package/build/esm/editor/Components/EditBlock/EditBlock.css +0 -47
- package/build/esm/editor/Components/EditBlock/EditBlock.d.ts +0 -5
- package/build/esm/editor/Components/EditBlock/EditBlock.js +0 -30
- package/build/esm/editor/Containers/Editor.d.ts +0 -2
- package/build/esm/editor/Containers/Editor.js +0 -20
- package/build/esm/editor/data/index.d.ts +0 -13
- package/build/esm/editor/data/index.js +0 -24
- package/build/esm/editor/data/previews/default-preview.d.ts +0 -3
- package/build/esm/editor/data/previews/default-preview.js +0 -15
- package/build/esm/editor/data/previews/header-block.d.ts +0 -3
- package/build/esm/editor/data/previews/header-block.js +0 -16
- package/build/esm/editor/index.d.ts +0 -2
- package/build/esm/editor/index.js +0 -2
- package/build/esm/editor/store/index.d.ts +0 -15
- package/build/esm/editor/store/index.js +0 -28
- package/build/esm/editor/store/reducer.d.ts +0 -41
- package/build/esm/editor/store/reducer.js +0 -55
- package/build/esm/editor/store/utils.d.ts +0 -13
- package/build/esm/editor/store/utils.js +0 -26
- package/build/esm/editor/styles/mixins.css +0 -0
- package/build/esm/editor/styles/variables.css +0 -0
- package/build/esm/editor/types/index.d.ts +0 -17
- package/build/esm/editor/utils/index.d.ts +0 -11
- package/build/esm/editor/utils/index.js +0 -6
- package/build/esm/models/customization.d.ts +0 -9
- package/server/models/customization.d.ts +0 -9
- package/server/models/customization.js +0 -2
- /package/build/{esm/editor/types/index.js → cjs/components/Anchor/__tests__/Anchor.test.d.ts} +0 -0
- /package/build/{esm/models/customization.js → cjs/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts} +0 -0
- /package/build/cjs/components/FullscreenImage/{FullScreenImage.css → FullscreenImage.css} +0 -0
- /package/build/cjs/components/FullscreenMedia/{FullScreenMedia.css → FullscreenMedia.css} +0 -0
- /package/build/esm/components/FullscreenImage/{FullScreenImage.css → FullscreenImage.css} +0 -0
- /package/build/esm/components/FullscreenMedia/{FullScreenMedia.css → FullscreenMedia.css} +0 -0
|
@@ -8,6 +8,8 @@ export declare enum BlockType {
|
|
|
8
8
|
PromoFeaturesBlock = "promo-features-block",
|
|
9
9
|
ExtendedFeaturesBlock = "extended-features-block",
|
|
10
10
|
SliderBlock = "slider-block",
|
|
11
|
+
CalculatorBlock = "calculator-block",
|
|
12
|
+
ServiceDemoBlock = "service-demo-block",
|
|
11
13
|
QuestionsBlock = "questions-block",
|
|
12
14
|
BannerBlock = "banner-block",
|
|
13
15
|
CompaniesBlock = "companies-block",
|
|
@@ -50,6 +52,7 @@ export interface LoadableProps {
|
|
|
50
52
|
export interface LoadableChildren {
|
|
51
53
|
loadable?: LoadableProps;
|
|
52
54
|
}
|
|
55
|
+
export type ServiceDemoProps = Animatable;
|
|
53
56
|
export declare enum SliderBreakpointNames {
|
|
54
57
|
Sm = "sm",
|
|
55
58
|
Md = "md",
|
|
@@ -111,6 +114,7 @@ export interface HeaderBlockProps {
|
|
|
111
114
|
breadcrumbs?: HeaderBreadCrumbsProps;
|
|
112
115
|
status?: JSX.Element;
|
|
113
116
|
}
|
|
117
|
+
export type CalculatorProps = Animatable;
|
|
114
118
|
export interface SimpleBlockProps extends Animatable, Childable {
|
|
115
119
|
title: TitleBaseProps;
|
|
116
120
|
description: string;
|
|
@@ -313,9 +317,15 @@ export interface ShareBlockProps {
|
|
|
313
317
|
export type HeaderBlockModel = {
|
|
314
318
|
type: BlockType.HeaderBlock;
|
|
315
319
|
} & HeaderBlockProps;
|
|
320
|
+
export type CalculatorBlockModel = {
|
|
321
|
+
type: BlockType.CalculatorBlock;
|
|
322
|
+
} & CalculatorProps;
|
|
316
323
|
export type SliderBlockModel = {
|
|
317
324
|
type: BlockType.SliderBlock;
|
|
318
325
|
} & SliderProps;
|
|
326
|
+
export type ServiceDemoBlockModel = {
|
|
327
|
+
type: BlockType.ServiceDemoBlock;
|
|
328
|
+
} & ServiceDemoProps;
|
|
319
329
|
export type ExtendedFeaturesBlockModel = {
|
|
320
330
|
type: BlockType.ExtendedFeaturesBlock;
|
|
321
331
|
} & ExtendedFeaturesProps;
|
|
@@ -376,6 +386,6 @@ export type ContentLayoutBlockModel = {
|
|
|
376
386
|
export type ShareBLockModel = {
|
|
377
387
|
type: BlockType.ShareBlock;
|
|
378
388
|
} & ShareBlockProps;
|
|
379
|
-
type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | SecurityBlockModel | TableBlockModel | TabsBlockModel | SimpleBlockModel | LinkTableBlockModel | HeaderBlockModel | PreviewBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel;
|
|
389
|
+
type BlockModels = SliderBlockModel | ServiceDemoBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | CalculatorBlockModel | BannerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | SecurityBlockModel | TableBlockModel | TabsBlockModel | SimpleBlockModel | LinkTableBlockModel | HeaderBlockModel | PreviewBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel;
|
|
380
390
|
export type Block = BlockModels & BlockBaseProps;
|
|
381
391
|
export {};
|
|
@@ -6,6 +6,8 @@ var BlockType;
|
|
|
6
6
|
BlockType["PromoFeaturesBlock"] = "promo-features-block";
|
|
7
7
|
BlockType["ExtendedFeaturesBlock"] = "extended-features-block";
|
|
8
8
|
BlockType["SliderBlock"] = "slider-block";
|
|
9
|
+
BlockType["CalculatorBlock"] = "calculator-block";
|
|
10
|
+
BlockType["ServiceDemoBlock"] = "service-demo-block";
|
|
9
11
|
BlockType["QuestionsBlock"] = "questions-block";
|
|
10
12
|
BlockType["BannerBlock"] = "banner-block";
|
|
11
13
|
BlockType["CompaniesBlock"] = "companies-block";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ButtonSize, ButtonView } from '@gravity-ui/uikit';
|
|
3
3
|
import { ThemeSupporting } from '../../utils/theme';
|
|
4
4
|
import { AnalyticsEventsBase, ClassNameProps, PixelEventType } from '../common';
|
|
5
5
|
export declare enum AuthorType {
|
|
@@ -99,7 +99,6 @@ export interface BackgroundImageProps extends React.HTMLProps<HTMLDivElement>, P
|
|
|
99
99
|
style?: CSSProperties;
|
|
100
100
|
imageClassName?: string;
|
|
101
101
|
hide?: boolean;
|
|
102
|
-
qa?: string;
|
|
103
102
|
}
|
|
104
103
|
export interface MediaVideoProps extends AnalyticsEventsBase {
|
|
105
104
|
src: string[];
|
|
@@ -132,10 +131,11 @@ export interface FileLinkProps extends ClassNameProps {
|
|
|
132
131
|
onClick?: () => void;
|
|
133
132
|
}
|
|
134
133
|
export type ButtonTheme = ButtonView | 'github' | 'app-store' | 'google-play' | 'scale' | 'monochrome';
|
|
135
|
-
export interface ButtonProps extends AnalyticsEventsBase
|
|
134
|
+
export interface ButtonProps extends AnalyticsEventsBase {
|
|
136
135
|
text: string;
|
|
137
136
|
url: string;
|
|
138
137
|
primary?: boolean;
|
|
138
|
+
size?: ButtonSize;
|
|
139
139
|
theme?: ButtonTheme;
|
|
140
140
|
img?: ButtonImageProps | string;
|
|
141
141
|
metrikaGoals?: MetrikaGoal;
|
|
@@ -174,7 +174,11 @@ export interface MediaComponentVideoProps extends AnalyticsEventsBase {
|
|
|
174
174
|
export interface MediaComponentYoutubeProps {
|
|
175
175
|
youtube: string;
|
|
176
176
|
previewImg?: string;
|
|
177
|
+
/**
|
|
178
|
+
* @deprecated use fullscreen
|
|
179
|
+
*/
|
|
177
180
|
fullScreen?: boolean;
|
|
181
|
+
fullscreen?: boolean;
|
|
178
182
|
}
|
|
179
183
|
export interface MediaComponentImageProps {
|
|
180
184
|
image: ImageProps | ImageProps[] | ImageDeviceProps;
|
|
@@ -136,7 +136,11 @@ export interface LayoutItemProps extends ClassNameProps {
|
|
|
136
136
|
media: MediaProps;
|
|
137
137
|
metaInfo?: string[];
|
|
138
138
|
border?: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* @deprecated use fullscreen
|
|
141
|
+
*/
|
|
139
142
|
fullScreen?: boolean;
|
|
143
|
+
fullscreen?: boolean;
|
|
140
144
|
}
|
|
141
145
|
export type DividerModel = {
|
|
142
146
|
type: SubBlockType.Divider;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
|
-
import { Animatable, Block,
|
|
2
|
+
import { Animatable, Block, ConstructorItem, ThemedMediaProps, WithChildren } from './';
|
|
3
3
|
export interface PageData {
|
|
4
4
|
content: PageContent;
|
|
5
5
|
}
|
|
@@ -41,8 +41,5 @@ export interface CustomConfig {
|
|
|
41
41
|
subBlocks?: CustomItems;
|
|
42
42
|
headers?: CustomItems;
|
|
43
43
|
loadable?: LoadableConfig;
|
|
44
|
-
decorators?: {
|
|
45
|
-
block?: ((props: BlockDecoratorProps) => React.ReactElement)[];
|
|
46
|
-
};
|
|
47
44
|
}
|
|
48
45
|
export {};
|
package/server/models/index.d.ts
CHANGED
package/server/models/index.js
CHANGED
package/server/utils/blocks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CustomConfig, PCShareSocialNetwork, TextSize } from '../models';
|
|
2
2
|
import { ConstructorBlock } from '../models/constructor';
|
|
3
3
|
export declare function getHeaderTag(size: TextSize): "h1" | "h2" | "h4" | "h5";
|
|
4
4
|
export declare function getBlockKey(block: ConstructorBlock, index: number): string;
|
|
@@ -8,7 +8,4 @@ export declare const getCustomItems: ({ blocks, headers, subBlocks }?: CustomCon
|
|
|
8
8
|
};
|
|
9
9
|
export declare const getCustomSubBlockTypes: (customBlocks?: CustomConfig) => string[];
|
|
10
10
|
export declare const getCustomHeaderTypes: (customBlocks?: CustomConfig) => string[];
|
|
11
|
-
export declare const getOrderedBlocks: (blocks: Block[], headerBlockTypes?: string[]) => Block[];
|
|
12
|
-
export declare const getHeaderBlock: (blocks: Block[], headerBlockTypes?: string[]) => Block | undefined;
|
|
13
11
|
export declare const getShareLink: (url: string, type: PCShareSocialNetwork, title?: string, text?: string) => string | undefined;
|
|
14
|
-
export declare const getBlockIndexFromId: (blockId?: string) => number;
|
package/server/utils/blocks.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getShareLink = exports.getCustomHeaderTypes = exports.getCustomSubBlockTypes = exports.getCustomItems = exports.getCustomBlockTypes = exports.getBlockKey = exports.getHeaderTag = void 0;
|
|
4
4
|
const models_1 = require("../models");
|
|
5
5
|
function getHeaderTag(size) {
|
|
6
6
|
switch (size) {
|
|
@@ -46,14 +46,6 @@ const getShareUrlWithParams = (url, params = {}) => {
|
|
|
46
46
|
});
|
|
47
47
|
return result.toString();
|
|
48
48
|
};
|
|
49
|
-
const getOrderedBlocks = (blocks, headerBlockTypes = []) => {
|
|
50
|
-
return blocks.filter(({ type }) => !headerBlockTypes.includes(type));
|
|
51
|
-
};
|
|
52
|
-
exports.getOrderedBlocks = getOrderedBlocks;
|
|
53
|
-
const getHeaderBlock = (blocks, headerBlockTypes = []) => {
|
|
54
|
-
return blocks.find(({ type }) => headerBlockTypes.includes(type));
|
|
55
|
-
};
|
|
56
|
-
exports.getHeaderBlock = getHeaderBlock;
|
|
57
49
|
const getShareLink = (url, type, title, text) => {
|
|
58
50
|
// https://github.com/bradvin/social-share-urls
|
|
59
51
|
switch (type) {
|
|
@@ -83,5 +75,3 @@ const getShareLink = (url, type, title, text) => {
|
|
|
83
75
|
}
|
|
84
76
|
};
|
|
85
77
|
exports.getShareLink = getShareLink;
|
|
86
|
-
const getBlockIndexFromId = (blockId) => { var _a; return Number((_a = blockId === null || blockId === void 0 ? void 0 : blockId.split('-')) === null || _a === void 0 ? void 0 : _a.slice(-1).pop()); };
|
|
87
|
-
exports.getBlockIndexFromId = getBlockIndexFromId;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { MediaAllProps } from '../Media/Media';
|
|
3
|
-
export type ChildMediaRenderProps = Pick<MediaAllProps, 'fullScreen' | 'imageClassName' | 'videoClassName' | 'youtubeClassName' | 'className'>;
|
|
4
|
-
export interface FullScreenMediaProps {
|
|
5
|
-
showFullScreenIcon?: boolean;
|
|
6
|
-
children: (props?: ChildMediaRenderProps) => JSX.Element;
|
|
7
|
-
}
|
|
8
|
-
declare const FullScreenMedia: ({ children, showFullScreenIcon }: FullScreenMediaProps) => JSX.Element;
|
|
9
|
-
export default FullScreenMedia;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BlockDecoration = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
-
const blockIdContext_1 = require("../context/blockIdContext");
|
|
7
|
-
const innerContext_1 = require("../context/innerContext");
|
|
8
|
-
const utils_1 = require("../utils");
|
|
9
|
-
const BlockDecoration = (props) => {
|
|
10
|
-
var _a, _b;
|
|
11
|
-
const blockContenxtId = (0, utils_1.getBlockIndexFromId)((0, react_1.useContext)(blockIdContext_1.BlockIdContext));
|
|
12
|
-
const { headerBlockTypes } = (0, react_1.useContext)(innerContext_1.InnerContext);
|
|
13
|
-
const blockId = props.id || blockContenxtId;
|
|
14
|
-
const isHeader = Boolean(props.id && headerBlockTypes.includes(props.id));
|
|
15
|
-
const block = react_1.default.createElement(react_1.Fragment, null, props.children);
|
|
16
|
-
const blockDecorators = (_b = (_a = (0, react_1.useContext)(innerContext_1.InnerContext).customization) === null || _a === void 0 ? void 0 : _a.decorators) === null || _b === void 0 ? void 0 : _b.block;
|
|
17
|
-
if (!blockDecorators) {
|
|
18
|
-
return block;
|
|
19
|
-
}
|
|
20
|
-
return blockDecorators.reduce((children, decorator) => (react_1.default.createElement(react_1.Fragment, null, decorator({ children, id: blockId, isHeader }))), block);
|
|
21
|
-
};
|
|
22
|
-
exports.BlockDecoration = BlockDecoration;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/* use this for style redefinitions to awoid problems with
|
|
2
|
-
unpredictable css rules order in build */
|
|
3
|
-
.pc-add-block {
|
|
4
|
-
position: fixed;
|
|
5
|
-
bottom: 32px;
|
|
6
|
-
left: 50%;
|
|
7
|
-
transform: translateX(-50%);
|
|
8
|
-
z-index: 110;
|
|
9
|
-
}
|
|
10
|
-
.pc-add-block__button {
|
|
11
|
-
display: inline-block;
|
|
12
|
-
margin: 0;
|
|
13
|
-
padding: 0;
|
|
14
|
-
font: inherit;
|
|
15
|
-
border: none;
|
|
16
|
-
outline: none;
|
|
17
|
-
color: inherit;
|
|
18
|
-
background: none;
|
|
19
|
-
cursor: pointer;
|
|
20
|
-
display: flex;
|
|
21
|
-
justify-content: center;
|
|
22
|
-
align-items: center;
|
|
23
|
-
transition: transform 0.2s;
|
|
24
|
-
width: 76px;
|
|
25
|
-
height: 40px;
|
|
26
|
-
color: var(--yc-color-text-inverted-primary);
|
|
27
|
-
background-color: var(--yc-color-promo-base-neon);
|
|
28
|
-
border-radius: 8px;
|
|
29
|
-
}
|
|
30
|
-
.pc-add-block__button:hover {
|
|
31
|
-
transform: scale(1.05);
|
|
32
|
-
}
|
|
33
|
-
.pc-add-block__icon {
|
|
34
|
-
width: 16px;
|
|
35
|
-
height: 16px;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.pc-add-block__popup {
|
|
39
|
-
min-width: 420px;
|
|
40
|
-
border-radius: var(--pc-border-radius);
|
|
41
|
-
box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.06), 0px 4px 24px rgba(0, 0, 0, 0.06);
|
|
42
|
-
}
|
|
43
|
-
.pc-add-block__popup .pc-add-block__search {
|
|
44
|
-
padding: 20px 20px 0;
|
|
45
|
-
}
|
|
46
|
-
.pc-add-block__popup .pc-add-block__blocks {
|
|
47
|
-
display: flex;
|
|
48
|
-
flex-direction: column;
|
|
49
|
-
padding: 20px;
|
|
50
|
-
height: 296px;
|
|
51
|
-
max-height: 296px;
|
|
52
|
-
overflow-y: auto;
|
|
53
|
-
}
|
|
54
|
-
.pc-add-block__popup .pc-add-block__block {
|
|
55
|
-
display: flex;
|
|
56
|
-
justify-content: center;
|
|
57
|
-
align-items: center;
|
|
58
|
-
transition: transform 0.2s;
|
|
59
|
-
margin-top: 20px;
|
|
60
|
-
justify-content: flex-start;
|
|
61
|
-
cursor: pointer;
|
|
62
|
-
}
|
|
63
|
-
.pc-add-block__popup .pc-add-block__block:hover {
|
|
64
|
-
transform: scale(1.05);
|
|
65
|
-
}
|
|
66
|
-
.pc-add-block__popup .pc-add-block__block:first-child {
|
|
67
|
-
margin-top: 0;
|
|
68
|
-
}
|
|
69
|
-
.pc-add-block__popup .pc-add-block__preview {
|
|
70
|
-
width: 148px;
|
|
71
|
-
height: 74px;
|
|
72
|
-
border-radius: var(--pc-border-radius);
|
|
73
|
-
margin-right: 16px;
|
|
74
|
-
}
|
|
75
|
-
.pc-add-block__popup .pc-add-block__title {
|
|
76
|
-
font-size: var(--yc-text-body-2-font-size);
|
|
77
|
-
line-height: var(--yc-text-body-2-line-height);
|
|
78
|
-
}
|
|
79
|
-
.pc-add-block__popup .pc-add-block__title,
|
|
80
|
-
.pc-add-block__popup .pc-add-block__description {
|
|
81
|
-
margin: 0;
|
|
82
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { PropsWithChildren } from 'react';
|
|
2
|
-
import { Block } from '../../../models';
|
|
3
|
-
export interface AddBlockProps {
|
|
4
|
-
onAdd: (data: Block) => void;
|
|
5
|
-
}
|
|
6
|
-
declare const AddBlock: ({ onAdd }: PropsWithChildren<AddBlockProps>) => JSX.Element;
|
|
7
|
-
export default AddBlock;
|
|
@@ -1,43 +0,0 @@
|
|
|
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 uikit_1 = require("@gravity-ui/uikit");
|
|
7
|
-
const constructor_items_1 = require("../../../constructor-items");
|
|
8
|
-
const utils_1 = require("../../../utils");
|
|
9
|
-
const data_1 = tslib_1.__importDefault(require("../../data"));
|
|
10
|
-
const b = (0, utils_1.block)('add-block');
|
|
11
|
-
const sortedBlockNames = Object.keys(constructor_items_1.blockMap).sort();
|
|
12
|
-
const AddBlock = ({ onAdd }) => {
|
|
13
|
-
const [isOpened, setIsOpened] = (0, react_1.useState)(false);
|
|
14
|
-
const [search, setSearch] = (0, react_1.useState)('');
|
|
15
|
-
const ref = (0, react_1.useRef)(null);
|
|
16
|
-
const blocks = (0, react_1.useMemo)(() => sortedBlockNames.filter((blockName) => data_1.default[blockName].meta.title
|
|
17
|
-
.toLocaleLowerCase()
|
|
18
|
-
.startsWith(search.toLocaleLowerCase())), [search]);
|
|
19
|
-
return (react_1.default.createElement("div", { className: b(), ref: ref },
|
|
20
|
-
react_1.default.createElement("button", { className: b('button'), onClick: () => {
|
|
21
|
-
setIsOpened(!isOpened);
|
|
22
|
-
setSearch('');
|
|
23
|
-
} },
|
|
24
|
-
react_1.default.createElement(icons_1.Plus, { className: b('icon') })),
|
|
25
|
-
isOpened && (react_1.default.createElement(uikit_1.Popup, { anchorRef: ref, open: isOpened, className: b('popup'), placement: "top", offset: [0, 24], onOutsideClick: () => setIsOpened(false) },
|
|
26
|
-
react_1.default.createElement("div", { className: b('search') },
|
|
27
|
-
react_1.default.createElement(uikit_1.TextInput, { placeholder: "search", type: "text", value: search, size: "l", onUpdate: (value) => setSearch(value) })),
|
|
28
|
-
react_1.default.createElement("div", { className: b('blocks') }, blocks.map((blockName) => {
|
|
29
|
-
var _a;
|
|
30
|
-
const blockData = data_1.default[blockName];
|
|
31
|
-
const Preview = blockData === null || blockData === void 0 ? void 0 : blockData.preview;
|
|
32
|
-
return (react_1.default.createElement("div", { key: blockName, className: b('block'), onClick: () => {
|
|
33
|
-
onAdd(blockData === null || blockData === void 0 ? void 0 : blockData.template);
|
|
34
|
-
setIsOpened(false);
|
|
35
|
-
} },
|
|
36
|
-
react_1.default.createElement("div", { className: b('preview') },
|
|
37
|
-
react_1.default.createElement(Preview, null)),
|
|
38
|
-
react_1.default.createElement("div", { className: b('info') },
|
|
39
|
-
react_1.default.createElement("h4", { className: b('title') }, blockData.meta.title),
|
|
40
|
-
((_a = blockData === null || blockData === void 0 ? void 0 : blockData.meta) === null || _a === void 0 ? void 0 : _a.description) && (react_1.default.createElement("p", { className: b('description') }, blockData.meta.description)))));
|
|
41
|
-
}))))));
|
|
42
|
-
};
|
|
43
|
-
exports.default = AddBlock;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/* use this for style redefinitions to awoid problems with
|
|
2
|
-
unpredictable css rules order in build */
|
|
3
|
-
.pc-edit-block {
|
|
4
|
-
cursor: pointer;
|
|
5
|
-
position: relative;
|
|
6
|
-
}
|
|
7
|
-
.pc-edit-block__controls {
|
|
8
|
-
position: absolute;
|
|
9
|
-
width: calc(100% + 40px);
|
|
10
|
-
height: calc(100% + 40px);
|
|
11
|
-
top: -20px;
|
|
12
|
-
left: -20px;
|
|
13
|
-
border-radius: 8px;
|
|
14
|
-
z-index: 100;
|
|
15
|
-
}
|
|
16
|
-
.pc-edit-block__controls_isHeader {
|
|
17
|
-
width: 100%;
|
|
18
|
-
height: 100%;
|
|
19
|
-
top: 0;
|
|
20
|
-
left: 0;
|
|
21
|
-
}
|
|
22
|
-
.pc-edit-block__controls_active {
|
|
23
|
-
border: 4px solid var(--yc-color-promo-base-neon);
|
|
24
|
-
}
|
|
25
|
-
.pc-edit-block__controls-content {
|
|
26
|
-
display: flex;
|
|
27
|
-
position: absolute;
|
|
28
|
-
bottom: -44px;
|
|
29
|
-
left: 50%;
|
|
30
|
-
transform: translateX(-50%);
|
|
31
|
-
}
|
|
32
|
-
.pc-edit-block__control {
|
|
33
|
-
display: flex;
|
|
34
|
-
justify-content: center;
|
|
35
|
-
align-items: center;
|
|
36
|
-
transition: transform 0.2s;
|
|
37
|
-
width: 24px;
|
|
38
|
-
height: 24px;
|
|
39
|
-
border-radius: calc(8px / 2);
|
|
40
|
-
background-color: var(--yc-color-promo-highlight-neon);
|
|
41
|
-
}
|
|
42
|
-
.pc-edit-block__control:hover {
|
|
43
|
-
transform: scale(1.1);
|
|
44
|
-
}
|
|
45
|
-
.pc-edit-block__control:not(:first-child) {
|
|
46
|
-
margin-left: 12px;
|
|
47
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
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;
|
|
@@ -1,32 +0,0 @@
|
|
|
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);
|
|
@@ -1,24 +0,0 @@
|
|
|
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,13 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { Block, BlockType } from '../../models';
|
|
3
|
-
export type PreviewComponent = React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
|
|
4
|
-
export interface EdiorBlockData {
|
|
5
|
-
template: Block;
|
|
6
|
-
preview: PreviewComponent;
|
|
7
|
-
meta: {
|
|
8
|
-
title: string;
|
|
9
|
-
description?: string;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
declare const EditorBlocksData: Record<BlockType, EdiorBlockData>;
|
|
13
|
-
export default EditorBlocksData;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const models_1 = require("../../models");
|
|
5
|
-
const utils_1 = require("../utils");
|
|
6
|
-
const default_preview_1 = tslib_1.__importDefault(require("./previews/default-preview"));
|
|
7
|
-
const getBlockTemplate = (blockType) => require(`./templates/${blockType}.json`);
|
|
8
|
-
const getBlockPreview = (blockType) => {
|
|
9
|
-
try {
|
|
10
|
-
return require(`./previews/${blockType}.tsx`).default;
|
|
11
|
-
}
|
|
12
|
-
catch (err) {
|
|
13
|
-
/*eslint-disable no-console */
|
|
14
|
-
console.warn(`Preview image for ${blockType} not found`);
|
|
15
|
-
return default_preview_1.default;
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
const EditorBlocksData = Object.values(models_1.BlockType).reduce((previewData, blockType) => {
|
|
19
|
-
const template = getBlockTemplate(blockType);
|
|
20
|
-
const preview = getBlockPreview(blockType);
|
|
21
|
-
template.meta = template.meta || {};
|
|
22
|
-
template.meta.title = template.meta.title || (0, utils_1.formatBlockName)(blockType);
|
|
23
|
-
/* eslint-disable no-param-reassign */
|
|
24
|
-
previewData[blockType] = Object.assign(Object.assign({}, template), { preview });
|
|
25
|
-
return previewData;
|
|
26
|
-
}, {});
|
|
27
|
-
exports.default = EditorBlocksData;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
-
const svg_1 = require("../../../utils/svg");
|
|
6
|
-
const DefaultPreview = (props) => (react_1.default.createElement("svg", Object.assign({ width: "150", height: "76", viewBox: "0 0 150 76", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, svg_1.a11yHiddenSvgProps, props),
|
|
7
|
-
react_1.default.createElement("rect", { x: "1", y: "1", width: "148", height: "74", rx: "8", fill: "white" }),
|
|
8
|
-
react_1.default.createElement("rect", { x: "14.7674", y: "21.6512", width: "28.3953", height: "6.88372", rx: "0.860465", fill: "#E7E7E7" }),
|
|
9
|
-
react_1.default.createElement("rect", { x: "43.1628", y: "21.6512", width: "28.3953", height: "6.88372", rx: "0.860465", fill: "white" }),
|
|
10
|
-
react_1.default.createElement("rect", { x: "14.7674", y: "31.9767", width: "56.7907", height: "3.44186", rx: "0.860465", fill: "#E7E7E7" }),
|
|
11
|
-
react_1.default.createElement("rect", { x: "14.7675", y: "37.1395", width: "56.7907", height: "3.44186", rx: "0.860465", fill: "#E7E7E7" }),
|
|
12
|
-
react_1.default.createElement("rect", { x: "14.7675", y: "42.3023", width: "56.7907", height: "3.44186", rx: "0.860465", fill: "#E7E7E7" }),
|
|
13
|
-
react_1.default.createElement("rect", { x: "14.7674", y: "49.186", width: "18.9302", height: "5.16279", rx: "0.860465", fill: "#E7E7E7" }),
|
|
14
|
-
react_1.default.createElement("rect", { x: "33.6977", y: "49.186", width: "18.9302", height: "5.16279", rx: "0.860465", fill: "white" }),
|
|
15
|
-
react_1.default.createElement("rect", { x: "52.6279", y: "49.186", width: "18.9302", height: "5.16279", rx: "0.860465", fill: "white" }),
|
|
16
|
-
react_1.default.createElement("rect", { x: "78.4418", y: "9.60464", width: "56.7907", height: "56.7907", rx: "5.16279", fill: "#A967FF" }),
|
|
17
|
-
react_1.default.createElement("rect", { x: "0.5", y: "0.5", width: "149", height: "75", rx: "8.5", stroke: "black", strokeOpacity: "0.1" })));
|
|
18
|
-
exports.default = DefaultPreview;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
-
const svg_1 = require("../../../utils/svg");
|
|
6
|
-
const Header = (props) => (react_1.default.createElement("svg", Object.assign({ width: "150", height: "76", viewBox: "0 0 150 76", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, svg_1.a11yHiddenSvgProps, props),
|
|
7
|
-
react_1.default.createElement("rect", { x: "1", y: "1", width: "148", height: "74", rx: "8", fill: "white" }),
|
|
8
|
-
react_1.default.createElement("rect", { x: "4.44174", y: "9.60464", width: "141.116", height: "56.7907", rx: "5.16279", fill: "#A967FF" }),
|
|
9
|
-
react_1.default.createElement("rect", { x: "14.7674", y: "21.6512", width: "28.3953", height: "6.88372", rx: "0.860465", fill: "white" }),
|
|
10
|
-
react_1.default.createElement("rect", { x: "43.1628", y: "21.6512", width: "28.3953", height: "6.88372", rx: "0.860465", fill: "#A967FF" }),
|
|
11
|
-
react_1.default.createElement("rect", { x: "14.7674", y: "31.9767", width: "56.7907", height: "3.44186", rx: "0.860465", fill: "white" }),
|
|
12
|
-
react_1.default.createElement("rect", { x: "14.7674", y: "37.1395", width: "56.7907", height: "3.44186", rx: "0.860465", fill: "white" }),
|
|
13
|
-
react_1.default.createElement("rect", { x: "14.7674", y: "42.3023", width: "56.7907", height: "3.44186", rx: "0.860465", fill: "white" }),
|
|
14
|
-
react_1.default.createElement("rect", { x: "14.7674", y: "49.186", width: "18.9302", height: "5.16279", rx: "0.860465", fill: "white" }),
|
|
15
|
-
react_1.default.createElement("rect", { x: "33.6976", y: "49.186", width: "18.9302", height: "5.16279", rx: "0.860465", fill: "#A967FF" }),
|
|
16
|
-
react_1.default.createElement("rect", { x: "52.6279", y: "49.186", width: "18.9302", height: "5.16279", rx: "0.860465", fill: "#A967FF" }),
|
|
17
|
-
react_1.default.createElement("rect", { x: "78.4418", y: "9.60464", width: "56.7907", height: "56.7907", rx: "5.16279", fill: "#A967FF" }),
|
|
18
|
-
react_1.default.createElement("rect", { x: "0.5", y: "0.5", width: "149", height: "75", rx: "8.5", stroke: "black", strokeOpacity: "0.1" })));
|
|
19
|
-
exports.default = Header;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Editor = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
var Editor_1 = require("./Containers/Editor");
|
|
6
|
-
Object.defineProperty(exports, "Editor", { enumerable: true, get: function () { return Editor_1.Editor; } });
|
|
7
|
-
tslib_1.__exportStar(require("./types"), exports);
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Block } from '../../models';
|
|
2
|
-
import { EditorProps } from '../types';
|
|
3
|
-
export type EditorBlockId = number | string;
|
|
4
|
-
export declare function useEditorState({ content: intialContent, custom }: Omit<EditorProps, 'children'>): {
|
|
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
|
-
};
|
|
14
|
-
onAdd: (block: Block) => void;
|
|
15
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useEditorState = void 0;
|
|
4
|
-
const react_1 = require("react");
|
|
5
|
-
const models_1 = require("../../models");
|
|
6
|
-
const utils_1 = require("../../utils");
|
|
7
|
-
const reducer_1 = require("./reducer");
|
|
8
|
-
const utils_2 = require("./utils");
|
|
9
|
-
function useEditorState({ content: intialContent, custom }) {
|
|
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,
|
|
15
|
-
content: (0, utils_2.addEditorProps)(intialContent),
|
|
16
|
-
});
|
|
17
|
-
return (0, react_1.useMemo)(() => {
|
|
18
|
-
return {
|
|
19
|
-
content,
|
|
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 }),
|
|
29
|
-
};
|
|
30
|
-
}, [content, activeBlockId, orderedBlocksCount]);
|
|
31
|
-
}
|
|
32
|
-
exports.useEditorState = useEditorState;
|