@gravity-ui/page-constructor 4.31.1-alpha.0 → 4.33.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 (116) hide show
  1. package/build/cjs/blocks/Header/Header.js +6 -2
  2. package/build/cjs/blocks/Tabs/Tabs.js +8 -1
  3. package/build/cjs/blocks/index.d.ts +0 -1
  4. package/build/cjs/blocks/index.js +1 -3
  5. package/build/cjs/components/BackLink/BackLink.d.ts +3 -2
  6. package/build/cjs/components/BackLink/BackLink.js +2 -2
  7. package/build/cjs/components/Button/Button.d.ts +0 -1
  8. package/build/cjs/components/DefaultVideo/DefaultVideo.css +5 -0
  9. package/build/cjs/components/DefaultVideo/DefaultVideo.d.ts +11 -0
  10. package/build/cjs/components/DefaultVideo/DefaultVideo.js +60 -0
  11. package/build/cjs/components/FileLink/FileLink.js +2 -2
  12. package/build/cjs/components/FullscreenImage/FullscreenImage.d.ts +2 -1
  13. package/build/cjs/components/FullscreenImage/FullscreenImage.js +2 -2
  14. package/build/cjs/components/Image/Image.js +2 -2
  15. package/build/cjs/components/Link/Link.js +4 -4
  16. package/build/cjs/components/Media/Video/Video.css +0 -5
  17. package/build/cjs/components/Media/Video/Video.js +3 -7
  18. package/build/cjs/components/Title/Title.d.ts +2 -1
  19. package/build/cjs/components/Title/Title.js +2 -2
  20. package/build/cjs/components/Title/TitleItem.css +3 -3
  21. package/build/cjs/components/YandexForm/YandexForm.d.ts +17 -2
  22. package/build/cjs/components/YandexForm/YandexForm.js +4 -6
  23. package/build/cjs/constructor-items.d.ts +0 -1
  24. package/build/cjs/constructor-items.js +0 -1
  25. package/build/cjs/models/constructor-items/blocks.d.ts +6 -31
  26. package/build/cjs/models/constructor-items/blocks.js +1 -13
  27. package/build/cjs/models/constructor-items/common.d.ts +6 -19
  28. package/build/cjs/models/guards.d.ts +1 -3
  29. package/build/cjs/models/guards.js +1 -9
  30. package/build/cjs/models/navigation.d.ts +1 -0
  31. package/build/cjs/navigation/components/Logo/Logo.css +1 -0
  32. package/build/cjs/navigation/components/Logo/Logo.js +10 -5
  33. package/build/cjs/schema/constants.js +1 -2
  34. package/build/cjs/schema/validators/blocks.d.ts +0 -1
  35. package/build/cjs/schema/validators/blocks.js +0 -1
  36. package/build/cjs/sub-blocks/BasicCard/BasicCard.js +5 -2
  37. package/build/cjs/sub-blocks/Content/Content.js +12 -5
  38. package/build/cjs/sub-blocks/HubspotForm/HubspotForm.css +10 -10
  39. package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +1 -0
  40. package/build/cjs/sub-blocks/Quote/Quote.css +0 -2
  41. package/build/esm/blocks/Header/Header.js +6 -2
  42. package/build/esm/blocks/Tabs/Tabs.js +8 -1
  43. package/build/esm/blocks/index.d.ts +0 -1
  44. package/build/esm/blocks/index.js +0 -1
  45. package/build/esm/components/BackLink/BackLink.d.ts +3 -2
  46. package/build/esm/components/BackLink/BackLink.js +2 -2
  47. package/build/esm/components/Button/Button.d.ts +0 -1
  48. package/build/esm/components/DefaultVideo/DefaultVideo.css +5 -0
  49. package/build/esm/components/DefaultVideo/DefaultVideo.d.ts +12 -0
  50. package/build/esm/components/DefaultVideo/DefaultVideo.js +57 -0
  51. package/build/esm/components/FileLink/FileLink.js +2 -2
  52. package/build/esm/components/FullscreenImage/FullscreenImage.d.ts +2 -1
  53. package/build/esm/components/FullscreenImage/FullscreenImage.js +2 -2
  54. package/build/esm/components/Image/Image.js +3 -2
  55. package/build/esm/components/Link/Link.js +4 -4
  56. package/build/esm/components/Media/Video/Video.css +0 -5
  57. package/build/esm/components/Media/Video/Video.js +3 -7
  58. package/build/esm/components/Title/Title.d.ts +2 -1
  59. package/build/esm/components/Title/Title.js +2 -2
  60. package/build/esm/components/Title/TitleItem.css +3 -3
  61. package/build/esm/components/YandexForm/YandexForm.d.ts +17 -2
  62. package/build/esm/components/YandexForm/YandexForm.js +3 -5
  63. package/build/esm/constructor-items.d.ts +0 -1
  64. package/build/esm/constructor-items.js +1 -2
  65. package/build/esm/models/constructor-items/blocks.d.ts +6 -31
  66. package/build/esm/models/constructor-items/blocks.js +0 -12
  67. package/build/esm/models/constructor-items/common.d.ts +6 -19
  68. package/build/esm/models/guards.d.ts +1 -3
  69. package/build/esm/models/guards.js +1 -7
  70. package/build/esm/models/navigation.d.ts +1 -0
  71. package/build/esm/navigation/components/Logo/Logo.css +1 -0
  72. package/build/esm/navigation/components/Logo/Logo.js +11 -6
  73. package/build/esm/schema/constants.js +2 -3
  74. package/build/esm/schema/validators/blocks.d.ts +0 -1
  75. package/build/esm/schema/validators/blocks.js +0 -1
  76. package/build/esm/sub-blocks/BasicCard/BasicCard.js +5 -2
  77. package/build/esm/sub-blocks/Content/Content.js +12 -5
  78. package/build/esm/sub-blocks/HubspotForm/HubspotForm.css +10 -10
  79. package/build/esm/sub-blocks/LayoutItem/utils.d.ts +1 -0
  80. package/build/esm/sub-blocks/Quote/Quote.css +0 -2
  81. package/package.json +1 -1
  82. package/server/models/constructor-items/blocks.d.ts +6 -31
  83. package/server/models/constructor-items/blocks.js +1 -13
  84. package/server/models/constructor-items/common.d.ts +6 -19
  85. package/server/models/guards.d.ts +1 -3
  86. package/server/models/guards.js +1 -9
  87. package/server/models/navigation.d.ts +1 -0
  88. package/widget/index.js +1 -1
  89. package/build/cjs/blocks/Form/Form.css +0 -136
  90. package/build/cjs/blocks/Form/Form.d.ts +0 -4
  91. package/build/cjs/blocks/Form/Form.js +0 -61
  92. package/build/cjs/blocks/Form/HubspotInlineForm.d.ts +0 -7
  93. package/build/cjs/blocks/Form/HubspotInlineForm.js +0 -14
  94. package/build/cjs/blocks/Form/InnerForm/InnerForm.d.ts +0 -9
  95. package/build/cjs/blocks/Form/InnerForm/InnerForm.js +0 -28
  96. package/build/cjs/blocks/Form/schema.d.ts +0 -202
  97. package/build/cjs/blocks/Form/schema.js +0 -44
  98. package/build/cjs/components/YandexForm/schema.d.ts +0 -16
  99. package/build/cjs/components/YandexForm/schema.js +0 -13
  100. package/build/cjs/editor/data/templates/form-block.json +0 -20
  101. package/build/cjs/sub-blocks/HubspotForm/schema.d.ts +0 -22
  102. package/build/cjs/sub-blocks/HubspotForm/schema.js +0 -17
  103. package/build/esm/blocks/Form/Form.css +0 -136
  104. package/build/esm/blocks/Form/Form.d.ts +0 -5
  105. package/build/esm/blocks/Form/Form.js +0 -59
  106. package/build/esm/blocks/Form/HubspotInlineForm.d.ts +0 -7
  107. package/build/esm/blocks/Form/HubspotInlineForm.js +0 -12
  108. package/build/esm/blocks/Form/InnerForm/InnerForm.d.ts +0 -9
  109. package/build/esm/blocks/Form/InnerForm/InnerForm.js +0 -26
  110. package/build/esm/blocks/Form/schema.d.ts +0 -202
  111. package/build/esm/blocks/Form/schema.js +0 -40
  112. package/build/esm/components/YandexForm/schema.d.ts +0 -16
  113. package/build/esm/components/YandexForm/schema.js +0 -10
  114. package/build/esm/editor/data/templates/form-block.json +0 -20
  115. package/build/esm/sub-blocks/HubspotForm/schema.d.ts +0 -22
  116. package/build/esm/sub-blocks/HubspotForm/schema.js +0 -14
@@ -1,136 +0,0 @@
1
- /* use this for style redefinitions to awoid problems with
2
- unpredictable css rules order in build */
3
- .pc-form-block {
4
- border-radius: 32px;
5
- position: relative;
6
- }
7
- .pc-form-block__title {
8
- margin: 0 0 24px 10px;
9
- }
10
- .pc-form-block__title_mobile {
11
- margin-left: 4px;
12
- }
13
- .pc-form-block__full-form {
14
- background-color: var(--g-color-base-background);
15
- padding: 48px 64px 48px calc(64px - 10px);
16
- border-radius: var(--pc-border-radius);
17
- }
18
- .pc-form-block__media {
19
- position: absolute;
20
- top: 0;
21
- left: 0;
22
- bottom: 0;
23
- right: 0;
24
- border-radius: 32px;
25
- }
26
- .pc-form-block__image {
27
- height: 100%;
28
- width: 100%;
29
- object-fit: cover;
30
- }
31
- .pc-form-block__row_direction_form-content {
32
- flex-direction: row-reverse;
33
- }
34
- .pc-form-block__row_direction_center {
35
- padding-top: 64px;
36
- padding-bottom: 48px;
37
- flex-direction: column;
38
- }
39
- .pc-form-block__row_direction_center .pc-form-block__content-wrapper {
40
- margin-bottom: 32px;
41
- }
42
- .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__full-form {
43
- box-shadow: 0 4px 24px var(--pc-color-sfx-shadow), 0 2px 8px var(--pc-color-sfx-shadow);
44
- }
45
- .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row_direction_form-content .pc-form-block__content-wrapper {
46
- padding: 48px 0 64px 64px;
47
- }
48
- .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row_direction_content-form .pc-form-block__content-wrapper {
49
- padding: 48px 64px 64px 0;
50
- }
51
- .pc-form-block_with-background .pc-form-block__row_direction_form-content .pc-form-block__form-wrapper {
52
- padding: 16px 0 24px 16px;
53
- }
54
- .pc-form-block_with-background .pc-form-block__row_direction_content-form .pc-form-block__form-wrapper {
55
- padding: 16px 16px 24px 0;
56
- }
57
- .pc-form-block_with-background .pc-form-block__row_direction_form-content .pc-form-block__content-wrapper, .pc-form-block_with-background .pc-form-block__row_direction_content-form .pc-form-block__content-wrapper {
58
- padding: 64px;
59
- }
60
- @media (min-width: 1081px) {
61
- .pc-form-block_form-type_yandex .pc-form-block__row_direction_form-content .pc-form-block__content-col, .pc-form-block_form-type_yandex .pc-form-block__row_direction_content-form .pc-form-block__content-col {
62
- flex: 1 0 0;
63
- }
64
- .pc-form-block_form-type_yandex .pc-form-block__row_direction_form-content .pc-form-block__form, .pc-form-block_form-type_yandex .pc-form-block__row_direction_content-form .pc-form-block__form, .pc-form-block_form-type_yandex .pc-form-block__row_direction_center .pc-form-block__form {
65
- min-width: 475px;
66
- }
67
- .pc-form-block_form-type_yandex .pc-form-block__row_direction_form-content .pc-form-block__form-col, .pc-form-block_form-type_yandex .pc-form-block__row_direction_content-form .pc-form-block__form-col, .pc-form-block_form-type_yandex .pc-form-block__row_direction_center .pc-form-block__form-col {
68
- max-width: initial;
69
- width: fit-content;
70
- }
71
- }
72
- @media (max-width: 1081px) and (min-width: 769px) {
73
- .pc-form-block__row {
74
- flex-direction: column;
75
- }
76
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__form-wrapper,
77
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__content-wrapper, .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__form-wrapper,
78
- .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__content-wrapper {
79
- max-width: 609px;
80
- }
81
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__center,
82
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__form-wrapper,
83
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__content-wrapper, .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__center,
84
- .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__form-wrapper,
85
- .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__content-wrapper {
86
- margin: 0 auto;
87
- padding-right: 0;
88
- padding-left: 0;
89
- }
90
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__form-wrapper, .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__form-wrapper {
91
- padding-top: 0;
92
- }
93
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__content-wrapper, .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__content-wrapper {
94
- text-align: center;
95
- padding-bottom: 32px;
96
- }
97
- .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__content-wrapper {
98
- padding: 0 0 32px 0;
99
- }
100
- }
101
- @media (max-width: 769px) {
102
- .pc-form-block__full-form {
103
- padding: 32px;
104
- }
105
- .pc-form-block_with-background .pc-form-block__row, .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row {
106
- padding: 0;
107
- }
108
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__form-wrapper,
109
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__content-wrapper, .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__form-wrapper,
110
- .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__content-wrapper {
111
- padding: 0;
112
- }
113
- .pc-form-block_with-background .pc-form-block__row .pc-form-block__content-wrapper, .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__content-wrapper {
114
- padding-bottom: 32px;
115
- margin-bottom: 0;
116
- }
117
- .pc-form-block_with-background {
118
- padding: 0 8px;
119
- }
120
- .pc-form-block_with-background .pc-form-block__row {
121
- padding-top: 48px;
122
- }
123
- .pc-form-block_with-background .pc-form-block__row_padding-bottom_m {
124
- padding-bottom: 32px;
125
- }
126
- .pc-form-block_with-background .pc-form-block__row_padding-bottom_l {
127
- padding-bottom: 48px;
128
- }
129
- .pc-form-block_with-background .pc-form-block__row_direction_form-content .pc-form-block__content-wrapper, .pc-form-block_with-background .pc-form-block__row_direction_content-form .pc-form-block__content-wrapper, .pc-form-block_with-background .pc-form-block__row_direction_center .pc-form-block__content-wrapper {
130
- padding-right: 16px;
131
- padding-left: 16px;
132
- }
133
- .pc-form-block_with-background .pc-form-block__row_direction_form-content, .pc-form-block_with-background .pc-form-block__row_direction_content-form {
134
- padding-top: 32px;
135
- }
136
- }
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import type { FormBlockProps } from '../../models';
3
- import './Form.css';
4
- declare const FormBlock: React.FC<FormBlockProps>;
5
- export default FormBlock;
@@ -1,59 +0,0 @@
1
- import React, { useCallback, useContext, useMemo, useState } from 'react';
2
- import { BackgroundImage, Title } from '../../components';
3
- import { MobileContext } from '../../context/mobileContext';
4
- import { Col, Grid, GridAlignItems, GridColumnSize, Row } from '../../grid';
5
- import { FormBlockDataTypes, FormBlockDirection, isHubspotDataForm, isYandexDataForm, } from '../../models';
6
- import { Content } from '../../sub-blocks';
7
- import { block } from '../../utils';
8
- import InnerForm from './InnerForm/InnerForm';
9
- import './Form.css';
10
- const b = block('form-block');
11
- const colSizes = { [GridColumnSize.Lg]: 6, [GridColumnSize.All]: 12 };
12
- const FormBlock = (props) => {
13
- var _a;
14
- const { formData, title, textContent, direction = FormBlockDirection.Center, background } = props;
15
- const [contentLoaded, setContentLoaded] = useState(false);
16
- const isMobile = useContext(MobileContext);
17
- const hasImage = background && (background.src || background.desktop);
18
- const paddingBottom = background && ((_a = background.style) === null || _a === void 0 ? void 0 : _a.backgroundColor) && !hasImage ? 'l' : 'm'; // bigger padding for case with background color and no image
19
- const onContentLoad = useCallback(() => {
20
- setContentLoaded(true);
21
- }, []);
22
- const formType = useMemo(() => {
23
- if (isYandexDataForm(formData)) {
24
- return FormBlockDataTypes.YANDEX;
25
- }
26
- if (isHubspotDataForm(formData)) {
27
- return FormBlockDataTypes.HUBSPOT_INLINE;
28
- }
29
- return undefined;
30
- }, [formData]);
31
- if (!formData) {
32
- return null;
33
- }
34
- return (React.createElement("div", { className: b({
35
- 'with-background': Boolean(background),
36
- 'form-type': formType,
37
- }) },
38
- background && (React.createElement(BackgroundImage, Object.assign({}, background, { className: b('media'), imageClassName: b('image') }))),
39
- React.createElement(Grid, null,
40
- React.createElement(Row, { alignItems: direction === FormBlockDirection.Center
41
- ? GridAlignItems.Center
42
- : GridAlignItems.Start, className: b('row', {
43
- direction,
44
- 'padding-bottom': paddingBottom,
45
- }) },
46
- React.createElement(Col, { sizes: colSizes, className: b('content-col') }, textContent && (React.createElement("div", { className: b('content-wrapper') },
47
- React.createElement(Content, Object.assign({ theme: "default" }, textContent, { centered: direction === FormBlockDirection.Center, colSizes: { all: 12 }, className: b('content') }))))),
48
- React.createElement(Col, { sizes: colSizes, className: b('form-col') },
49
- React.createElement("div", { className: b('form-wrapper') },
50
- React.createElement("div", { className: b('full-form', {
51
- hidden: !contentLoaded,
52
- }) },
53
- title && (React.createElement(Title, { title: {
54
- text: title,
55
- textSize: 's',
56
- }, className: b('title', { mobile: isMobile }), colSizes: { all: 12 } })),
57
- React.createElement(InnerForm, { className: b('form'), formData: formData, onContentLoad: onContentLoad }))))))));
58
- };
59
- export default FormBlock;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import type { HubspotFormProps } from '../../models';
3
- type Props = HubspotFormProps & {
4
- onReady?: () => void;
5
- };
6
- declare const HubspotInlineForm: React.FC<Props>;
7
- export default HubspotInlineForm;
@@ -1,12 +0,0 @@
1
- import { __rest } from "tslib";
2
- import React from 'react';
3
- import useMount from '../../hooks/useMount';
4
- import { HubspotForm } from '../../sub-blocks';
5
- const HubspotInlineForm = (props) => {
6
- const { onReady } = props, rest = __rest(props, ["onReady"]);
7
- useMount(() => {
8
- onReady === null || onReady === void 0 ? void 0 : onReady();
9
- });
10
- return React.createElement(HubspotForm, Object.assign({}, rest, { createDOMElement: true }));
11
- };
12
- export default HubspotInlineForm;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { FormBlockData } from '../../../models';
3
- interface InnerFormProps {
4
- formData: FormBlockData;
5
- onContentLoad: () => void;
6
- className?: string;
7
- }
8
- declare const InnerForm: React.FC<InnerFormProps>;
9
- export default InnerForm;
@@ -1,26 +0,0 @@
1
- import { __rest } from "tslib";
2
- import React, { useEffect } from 'react';
3
- import { YandexForm } from '../../../components';
4
- import { isHubspotDataForm, isYandexDataForm } from '../../../models';
5
- import { HubspotForm } from '../../../sub-blocks';
6
- const InnerForm = (props) => {
7
- const { formData, onContentLoad, className } = props;
8
- useEffect(() => {
9
- if (isHubspotDataForm(formData)) {
10
- onContentLoad();
11
- }
12
- }, [onContentLoad, formData]);
13
- if (isYandexDataForm(formData)) {
14
- const _a = formData.yandex, { onLoad } = _a, rest = __rest(_a, ["onLoad"]);
15
- return (React.createElement("div", { className: className },
16
- React.createElement(YandexForm, Object.assign({}, rest, { onLoad: () => {
17
- onContentLoad();
18
- onLoad === null || onLoad === void 0 ? void 0 : onLoad();
19
- } }))));
20
- }
21
- if (isHubspotDataForm(formData)) {
22
- return React.createElement(HubspotForm, Object.assign({}, formData.hubspot));
23
- }
24
- return null;
25
- };
26
- export default InnerForm;
@@ -1,202 +0,0 @@
1
- export declare const FormBlock: {
2
- 'form-block': {
3
- additionalProperties: boolean;
4
- required: string[];
5
- properties: {
6
- title: {
7
- type: string;
8
- };
9
- formData: {
10
- oneOf: ({
11
- type: string;
12
- optionName: string;
13
- properties: {
14
- yandex: {
15
- type: string;
16
- required: string[];
17
- properties: {
18
- id: {
19
- type: string;
20
- };
21
- containerId: {
22
- type: string;
23
- };
24
- type: {};
25
- when: {
26
- type: string;
27
- };
28
- };
29
- };
30
- hubspot?: undefined;
31
- };
32
- } | {
33
- type: string;
34
- optionName: string;
35
- properties: {
36
- hubspot: {
37
- type: string;
38
- required: string[];
39
- properties: {
40
- region: {
41
- type: string;
42
- };
43
- portalId: {
44
- type: string;
45
- };
46
- formId: {
47
- type: string;
48
- };
49
- formInstanceId: {
50
- type: string;
51
- };
52
- type: {};
53
- when: {
54
- type: string;
55
- };
56
- };
57
- };
58
- yandex?: undefined;
59
- };
60
- })[];
61
- };
62
- textContent: {
63
- additionalProperties: boolean;
64
- properties: Partial<{
65
- title: {
66
- oneOf: ({
67
- type: string;
68
- contentType: string;
69
- optionName: string;
70
- } | {
71
- optionName: string;
72
- type: string;
73
- additionalProperties: boolean;
74
- required: string[];
75
- properties: {
76
- text: {
77
- type: string;
78
- contentType: string;
79
- };
80
- textSize: {
81
- type: string;
82
- enum: string[];
83
- };
84
- url: {
85
- type: string;
86
- };
87
- urlTitle: {
88
- type: string;
89
- };
90
- resetMargin: {
91
- type: string;
92
- };
93
- };
94
- contentType?: undefined;
95
- })[];
96
- };
97
- text: {
98
- type: string;
99
- contentType: string;
100
- inputType: string;
101
- };
102
- additionalInfo: {
103
- type: string;
104
- contentType: string;
105
- };
106
- size: {
107
- type: string;
108
- enum: string[];
109
- };
110
- links: {
111
- type: string;
112
- items: {
113
- type: string;
114
- properties: {
115
- when: {
116
- type: string;
117
- };
118
- };
119
- };
120
- };
121
- buttons: {
122
- type: string;
123
- items: {
124
- type: string;
125
- properties: {
126
- when: {
127
- type: string;
128
- };
129
- };
130
- };
131
- };
132
- theme: {
133
- type: string;
134
- enum: string[];
135
- };
136
- list: {
137
- type: string;
138
- items: {
139
- type: string;
140
- properties: {
141
- when: {
142
- type: string;
143
- };
144
- };
145
- };
146
- };
147
- }>;
148
- };
149
- direction: {
150
- enum: string[];
151
- };
152
- image: {
153
- oneOf: ({
154
- type: string;
155
- properties: {
156
- when: {
157
- type: string;
158
- };
159
- };
160
- } | {
161
- type: string;
162
- pattern: string;
163
- optionName: string;
164
- })[];
165
- };
166
- backgroundColor: {
167
- type: string;
168
- };
169
- anchor: {
170
- type: string;
171
- additionalProperties: boolean;
172
- required: string[];
173
- properties: {
174
- text: {
175
- type: string;
176
- contentType: string;
177
- };
178
- url: {
179
- type: string;
180
- };
181
- urlTitle: {
182
- type: string;
183
- };
184
- };
185
- };
186
- visible: {
187
- type: string;
188
- enum: string[];
189
- };
190
- resetPaddings: {
191
- type: string;
192
- };
193
- context: {
194
- type: string;
195
- };
196
- type: {};
197
- when: {
198
- type: string;
199
- };
200
- };
201
- };
202
- };
@@ -1,40 +0,0 @@
1
- import omit from 'lodash/omit';
2
- import { ImageProps } from '../../components/Image/schema';
3
- import { YandexFormProps } from '../../components/YandexForm/schema';
4
- import { BlockBaseProps } from '../../schema/validators/common';
5
- import { ContentBase } from '../../sub-blocks/Content/schema';
6
- import { HubspotFormProps } from '../../sub-blocks/HubspotForm/schema';
7
- const FormBlockContentProps = omit(ContentBase, ['size', 'centered', 'colSizes']);
8
- export const FormBlock = {
9
- 'form-block': {
10
- additionalProperties: false,
11
- required: ['formData'],
12
- properties: Object.assign(Object.assign({}, BlockBaseProps), { title: {
13
- type: 'string',
14
- }, formData: {
15
- oneOf: [
16
- {
17
- type: 'object',
18
- optionName: 'yandex',
19
- properties: {
20
- yandex: YandexFormProps,
21
- },
22
- },
23
- {
24
- type: 'object',
25
- optionName: 'hubspot-inline',
26
- properties: {
27
- hubspot: HubspotFormProps,
28
- },
29
- },
30
- ],
31
- }, textContent: {
32
- additionalProperties: false,
33
- properties: FormBlockContentProps,
34
- }, direction: {
35
- enum: ['content-form', 'form-content', 'center'],
36
- }, image: ImageProps, backgroundColor: {
37
- type: 'string',
38
- } }),
39
- },
40
- };
@@ -1,16 +0,0 @@
1
- export declare const YandexFormProps: {
2
- type: string;
3
- required: string[];
4
- properties: {
5
- id: {
6
- type: string;
7
- };
8
- containerId: {
9
- type: string;
10
- };
11
- type: {};
12
- when: {
13
- type: string;
14
- };
15
- };
16
- };
@@ -1,10 +0,0 @@
1
- import { BaseProps } from '../../schema/validators/common';
2
- export const YandexFormProps = {
3
- type: 'object',
4
- required: ['id'],
5
- properties: Object.assign(Object.assign({}, BaseProps), { id: {
6
- type: 'string',
7
- }, containerId: {
8
- type: 'string',
9
- } }),
10
- };
@@ -1,20 +0,0 @@
1
- {
2
- "template": {
3
- "type": "form-block",
4
- "formData": {
5
- "yandex": {
6
- "hash": "hashString",
7
- "title": ""
8
- }
9
- },
10
- "direction": "center",
11
- "textContent": {
12
- "title": "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
13
- "text": "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
14
- },
15
- "image": {
16
- "src": "https://storage.yandexcloud.net/cloud-www-assets/constructor/storybook/images/img-mini_4-12_light.png"
17
- },
18
- "backgroundColor": "#262626"
19
- }
20
- }
@@ -1,22 +0,0 @@
1
- export declare const HubspotFormProps: {
2
- type: string;
3
- required: string[];
4
- properties: {
5
- region: {
6
- type: string;
7
- };
8
- portalId: {
9
- type: string;
10
- };
11
- formId: {
12
- type: string;
13
- };
14
- formInstanceId: {
15
- type: string;
16
- };
17
- type: {};
18
- when: {
19
- type: string;
20
- };
21
- };
22
- };
@@ -1,14 +0,0 @@
1
- import { BaseProps } from '../../schema/validators/common';
2
- export const HubspotFormProps = {
3
- type: 'object',
4
- required: ['portalId', 'formId'],
5
- properties: Object.assign(Object.assign({}, BaseProps), { region: {
6
- type: 'string',
7
- }, portalId: {
8
- type: 'string',
9
- }, formId: {
10
- type: 'string',
11
- }, formInstanceId: {
12
- type: 'string',
13
- } }),
14
- };