@gravity-ui/page-constructor 1.14.0 → 1.15.0-alpha.1
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/Banner/schema.d.ts +216 -0
- package/build/cjs/blocks/Media/schema.d.ts +72 -0
- package/build/cjs/components/Button/Button.js +5 -2
- package/build/cjs/components/CardBase/CardBase.d.ts +2 -0
- package/build/cjs/components/CardBase/CardBase.js +4 -1
- package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +4 -1
- package/build/cjs/components/Link/Link.js +4 -1
- package/build/cjs/components/Media/Media.js +3 -2
- package/build/cjs/components/Media/Video/Video.js +4 -3
- package/build/cjs/components/ReactPlayer/ReactPlayer.js +27 -3
- package/build/cjs/components/YandexForm/YandexForm.d.ts +2 -0
- package/build/cjs/components/YandexForm/YandexForm.js +13 -2
- package/build/cjs/containers/PageConstructor/Provider.d.ts +2 -0
- package/build/cjs/containers/PageConstructor/Provider.js +3 -1
- package/build/cjs/context/analyticsContext/analyticsContext.d.ts +6 -0
- package/build/cjs/context/analyticsContext/analyticsContext.js +6 -0
- package/build/cjs/context/analyticsContext/index.d.ts +1 -0
- package/build/cjs/context/analyticsContext/index.js +4 -0
- package/build/cjs/context/metrikaContext/metrikaContext.d.ts +6 -0
- package/build/cjs/hooks/index.d.ts +1 -0
- package/build/cjs/hooks/index.js +1 -0
- package/build/cjs/hooks/useAnalytics.d.ts +2 -0
- package/build/cjs/hooks/useAnalytics.js +18 -0
- package/build/cjs/hooks/useMetrika.d.ts +6 -0
- package/build/cjs/hooks/useMetrika.js +8 -0
- package/build/cjs/models/common.d.ts +36 -0
- package/build/cjs/models/common.js +3 -0
- package/build/cjs/models/constructor-items/common.d.ts +6 -1
- package/build/cjs/models/constructor-items/sub-blocks.d.ts +2 -1
- package/build/cjs/schema/validators/common.d.ts +156 -0
- package/build/cjs/schema/validators/common.js +10 -0
- package/build/cjs/schema/validators/event.d.ts +88 -0
- package/build/cjs/schema/validators/event.js +89 -0
- package/build/cjs/sub-blocks/HubspotForm/index.js +13 -2
- package/build/esm/blocks/Banner/schema.d.ts +216 -0
- package/build/esm/blocks/Media/schema.d.ts +72 -0
- package/build/esm/components/Button/Button.js +5 -2
- package/build/esm/components/CardBase/CardBase.d.ts +2 -0
- package/build/esm/components/CardBase/CardBase.js +4 -1
- package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +4 -1
- package/build/esm/components/Link/Link.js +4 -1
- package/build/esm/components/Media/Media.js +3 -2
- package/build/esm/components/Media/Video/Video.js +4 -3
- package/build/esm/components/ReactPlayer/ReactPlayer.js +27 -3
- package/build/esm/components/YandexForm/YandexForm.d.ts +2 -0
- package/build/esm/components/YandexForm/YandexForm.js +13 -2
- package/build/esm/containers/PageConstructor/Provider.d.ts +2 -0
- package/build/esm/containers/PageConstructor/Provider.js +3 -1
- package/build/esm/context/analyticsContext/analyticsContext.d.ts +6 -0
- package/build/esm/context/analyticsContext/analyticsContext.js +2 -0
- package/build/esm/context/analyticsContext/index.d.ts +1 -0
- package/build/esm/context/analyticsContext/index.js +1 -0
- package/build/esm/context/metrikaContext/metrikaContext.d.ts +6 -0
- package/build/esm/hooks/index.d.ts +1 -0
- package/build/esm/hooks/index.js +1 -0
- package/build/esm/hooks/useAnalytics.d.ts +2 -0
- package/build/esm/hooks/useAnalytics.js +14 -0
- package/build/esm/hooks/useMetrika.d.ts +6 -0
- package/build/esm/hooks/useMetrika.js +8 -0
- package/build/esm/models/common.d.ts +36 -0
- package/build/esm/models/common.js +3 -0
- package/build/esm/models/constructor-items/common.d.ts +6 -1
- package/build/esm/models/constructor-items/sub-blocks.d.ts +2 -1
- package/build/esm/schema/validators/common.d.ts +156 -0
- package/build/esm/schema/validators/common.js +10 -0
- package/build/esm/schema/validators/event.d.ts +88 -0
- package/build/esm/schema/validators/event.js +86 -0
- package/build/esm/sub-blocks/HubspotForm/index.js +14 -3
- package/package.json +4 -1
- package/server/models/common.d.ts +36 -0
- package/server/models/common.js +3 -0
- package/server/models/constructor-items/common.d.ts +6 -1
- package/server/models/constructor-items/sub-blocks.d.ts +2 -1
|
@@ -3,15 +3,16 @@ import { block } from '../../utils';
|
|
|
3
3
|
import { ThemeValueContext } from '../../context/theme/ThemeValueContext';
|
|
4
4
|
import { MobileContext } from '../../context/mobileContext';
|
|
5
5
|
import { useMetrika } from '../../hooks/useMetrika';
|
|
6
|
-
import { useHandleHubspotEvents } from '../../hooks';
|
|
6
|
+
import { useHandleHubspotEvents, useAnalytics } from '../../hooks';
|
|
7
7
|
import HubspotFormContainer from './HubspotFormContainer';
|
|
8
8
|
import './HubspotForm.css';
|
|
9
9
|
const b = block('hubspot-form');
|
|
10
10
|
const HubspotForm = (props) => {
|
|
11
11
|
const { className, theme: themeProp, isMobile: isMobileProp, formId, formInstanceId, portalId, region, formClassName, pixelEvents,
|
|
12
12
|
// hubspotEvents, // TODO: decide how to handle them
|
|
13
|
-
onBeforeSubmit, onSubmit, onBeforeLoad, onLoad, } = props;
|
|
13
|
+
analyticsEvents, onBeforeSubmit, onSubmit, onBeforeLoad, onLoad, } = props;
|
|
14
14
|
const handleMetrika = useMetrika();
|
|
15
|
+
const handleAnalytics = useAnalytics();
|
|
15
16
|
const { themeValue } = useContext(ThemeValueContext);
|
|
16
17
|
const isMobileValue = useContext(MobileContext);
|
|
17
18
|
const theme = themeProp !== null && themeProp !== void 0 ? themeProp : themeValue;
|
|
@@ -22,9 +23,19 @@ const HubspotForm = (props) => {
|
|
|
22
23
|
onLoad,
|
|
23
24
|
onSubmit: (e) => {
|
|
24
25
|
handleMetrika === null || handleMetrika === void 0 ? void 0 : handleMetrika({ pixelEvents });
|
|
26
|
+
handleAnalytics === null || handleAnalytics === void 0 ? void 0 : handleAnalytics(analyticsEvents);
|
|
25
27
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(e);
|
|
26
28
|
},
|
|
27
|
-
}), [
|
|
29
|
+
}), [
|
|
30
|
+
onBeforeLoad,
|
|
31
|
+
onBeforeSubmit,
|
|
32
|
+
onLoad,
|
|
33
|
+
handleMetrika,
|
|
34
|
+
pixelEvents,
|
|
35
|
+
handleAnalytics,
|
|
36
|
+
analyticsEvents,
|
|
37
|
+
onSubmit,
|
|
38
|
+
]);
|
|
28
39
|
useHandleHubspotEvents(handlers, formId);
|
|
29
40
|
return (React.createElement(HubspotFormContainer, { key: [formClassName, formId, formInstanceId, portalId, region].join(), className: b({ theme, mobile }, className), formClassName: formClassName, formId: formId, portalId: portalId, formInstanceId: formInstanceId, region: region }));
|
|
30
41
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/page-constructor",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0-alpha.1",
|
|
4
4
|
"description": "Gravity UI Page Constructor",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -132,5 +132,8 @@
|
|
|
132
132
|
"*.{json,yaml,yml,md}": [
|
|
133
133
|
"prettier --write"
|
|
134
134
|
]
|
|
135
|
+
},
|
|
136
|
+
"publishConfig": {
|
|
137
|
+
"tag": "alpha"
|
|
135
138
|
}
|
|
136
139
|
}
|
|
@@ -7,12 +7,21 @@ export declare enum Theme {
|
|
|
7
7
|
Light = "light",
|
|
8
8
|
Dark = "dark"
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Pixel will be deleted
|
|
12
|
+
*/
|
|
10
13
|
type PixelCommand = 'track' | 'trackCustom';
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Pixel will be deleted
|
|
16
|
+
*/
|
|
11
17
|
export interface PixelEvent {
|
|
12
18
|
command: PixelCommand;
|
|
13
19
|
event: PixelEventType | string;
|
|
14
20
|
data?: Object;
|
|
15
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Pixel will be deleted from package
|
|
24
|
+
*/
|
|
16
25
|
export declare enum PixelEventType {
|
|
17
26
|
AddPaymentInfo = "AddPaymentInfo",
|
|
18
27
|
AddToCart = "AddToCart",
|
|
@@ -36,11 +45,17 @@ export declare enum PixelEventType {
|
|
|
36
45
|
export type Modifiers = {
|
|
37
46
|
[name: string]: string | boolean | undefined;
|
|
38
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Pixel will be deleted
|
|
50
|
+
*/
|
|
39
51
|
export interface Pixel<TEvent = string> {
|
|
40
52
|
trackStandard: (event: TEvent, data?: Object) => void;
|
|
41
53
|
trackCustom: (event: string, data?: Object) => void;
|
|
42
54
|
track: (trackEvents: string | string[] | PixelEvent[] | PixelEvent) => void;
|
|
43
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Metrika will be deleted
|
|
58
|
+
*/
|
|
44
59
|
export interface Metrika {
|
|
45
60
|
reachGoal: (counterName: string, ...args: any) => void;
|
|
46
61
|
reachGoals: (goals: MetrikaGoal, counterName?: string) => void;
|
|
@@ -49,4 +64,25 @@ export interface ClassNameProps {
|
|
|
49
64
|
className?: string;
|
|
50
65
|
}
|
|
51
66
|
export type Timeout = ReturnType<typeof setTimeout> | undefined;
|
|
67
|
+
export type AnalyticsParameter = {
|
|
68
|
+
key: string;
|
|
69
|
+
value: string | number | boolean;
|
|
70
|
+
};
|
|
71
|
+
export type AnalyticsCounters = {
|
|
72
|
+
include?: string[];
|
|
73
|
+
exclude?: string[];
|
|
74
|
+
};
|
|
75
|
+
export type AnalyticsEvent = {
|
|
76
|
+
name: string;
|
|
77
|
+
type?: string;
|
|
78
|
+
counters?: AnalyticsCounters;
|
|
79
|
+
category?: string;
|
|
80
|
+
label?: string;
|
|
81
|
+
params?: AnalyticsParameter[];
|
|
82
|
+
};
|
|
83
|
+
export type AnalyticsEventV2<T = {}> = T & {
|
|
84
|
+
name: string;
|
|
85
|
+
type?: string;
|
|
86
|
+
counters?: AnalyticsCounters;
|
|
87
|
+
};
|
|
52
88
|
export {};
|
package/server/models/common.js
CHANGED
|
@@ -6,6 +6,9 @@ var Theme;
|
|
|
6
6
|
Theme["Light"] = "light";
|
|
7
7
|
Theme["Dark"] = "dark";
|
|
8
8
|
})(Theme = exports.Theme || (exports.Theme = {}));
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Pixel will be deleted from package
|
|
11
|
+
*/
|
|
9
12
|
var PixelEventType;
|
|
10
13
|
(function (PixelEventType) {
|
|
11
14
|
PixelEventType["AddPaymentInfo"] = "AddPaymentInfo";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
2
|
import { ButtonSize, ButtonView } from '@gravity-ui/uikit';
|
|
3
3
|
import { ThemeSupporting } from '../../utils/theme';
|
|
4
|
-
import { ClassNameProps, PixelEventType } from '../common';
|
|
4
|
+
import { AnalyticsEventV2, ClassNameProps, PixelEventType } from '../common';
|
|
5
5
|
export declare enum AuthorType {
|
|
6
6
|
Column = "column",
|
|
7
7
|
Line = "line"
|
|
@@ -110,6 +110,7 @@ export interface MediaVideoProps {
|
|
|
110
110
|
playButton?: PlayButtonProps;
|
|
111
111
|
controls?: MediaVideoControlsType;
|
|
112
112
|
metrika?: MetrikaVideo;
|
|
113
|
+
analyticsEvents?: AnalyticsEventV2[];
|
|
113
114
|
}
|
|
114
115
|
export interface LinkProps extends Stylable {
|
|
115
116
|
url: string;
|
|
@@ -121,6 +122,7 @@ export interface LinkProps extends Stylable {
|
|
|
121
122
|
target?: string;
|
|
122
123
|
metrikaGoals?: MetrikaGoal;
|
|
123
124
|
pixelEvents?: ButtonPixel;
|
|
125
|
+
analyticsEvents?: AnalyticsEventV2 | AnalyticsEventV2[];
|
|
124
126
|
}
|
|
125
127
|
export interface FileLinkProps extends ClassNameProps {
|
|
126
128
|
href: string;
|
|
@@ -139,6 +141,7 @@ export interface ButtonProps {
|
|
|
139
141
|
img?: ButtonImageProps | string;
|
|
140
142
|
metrikaGoals?: MetrikaGoal;
|
|
141
143
|
pixelEvents?: ButtonPixel;
|
|
144
|
+
analyticsEvents?: AnalyticsEventV2[];
|
|
142
145
|
target?: string;
|
|
143
146
|
}
|
|
144
147
|
export interface ButtonImageProps {
|
|
@@ -167,6 +170,7 @@ export interface MediaComponentVideoProps {
|
|
|
167
170
|
video: MediaVideoProps;
|
|
168
171
|
height?: number;
|
|
169
172
|
metrika?: MetrikaVideo;
|
|
173
|
+
analyticsEvents?: AnalyticsEventV2[];
|
|
170
174
|
previewImg?: string;
|
|
171
175
|
}
|
|
172
176
|
export interface MediaComponentYoutubeProps {
|
|
@@ -222,6 +226,7 @@ export interface HeaderBreadCrumbsProps extends ClassNameProps {
|
|
|
222
226
|
theme?: TextTheme;
|
|
223
227
|
metrikaGoals?: MetrikaGoal;
|
|
224
228
|
pixelEvents?: ButtonPixel;
|
|
229
|
+
analyticsEvents?: AnalyticsEventV2 | AnalyticsEventV2[];
|
|
225
230
|
}
|
|
226
231
|
export interface PreviewContentItemProps {
|
|
227
232
|
title: string;
|
|
@@ -3,7 +3,7 @@ import { ThemeSupporting } from '../../utils';
|
|
|
3
3
|
import { HubspotEventData, HubspotEventHandlers } from '../../utils/hubspot';
|
|
4
4
|
import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, LinkProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
|
|
5
5
|
import { ContentBlockProps } from './blocks';
|
|
6
|
-
import { PixelEvent } from '../common';
|
|
6
|
+
import { AnalyticsEventV2, PixelEvent } from '../common';
|
|
7
7
|
export declare enum SubBlockType {
|
|
8
8
|
Divider = "divider",
|
|
9
9
|
Quote = "quote",
|
|
@@ -61,6 +61,7 @@ export interface HubspotFormProps extends HubspotEventHandlers {
|
|
|
61
61
|
onLoad?: (arg: HubspotEventData) => void;
|
|
62
62
|
pixelEvents?: string | string[] | PixelEvent | PixelEvent[] | ButtonPixel;
|
|
63
63
|
hubspotEvents?: string[];
|
|
64
|
+
analyticsEvents?: AnalyticsEventV2 | AnalyticsEventV2[];
|
|
64
65
|
}
|
|
65
66
|
export interface PartnerProps extends CardBaseProps {
|
|
66
67
|
text: string;
|