@gravity-ui/page-constructor 5.2.0 → 5.4.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/components/InnerForm/InnerForm.js +4 -2
- package/build/cjs/components/Media/DataLens/DataLens.js +4 -2
- package/build/cjs/containers/PageConstructor/Provider.d.ts +2 -0
- package/build/cjs/containers/PageConstructor/Provider.js +3 -1
- package/build/cjs/context/formsContext/FormsContext.d.ts +13 -0
- package/build/cjs/context/formsContext/FormsContext.js +7 -0
- package/build/cjs/context/formsContext/index.d.ts +1 -0
- package/build/cjs/context/formsContext/index.js +4 -0
- package/build/esm/components/InnerForm/InnerForm.js +5 -3
- package/build/esm/components/Media/DataLens/DataLens.js +4 -2
- package/build/esm/containers/PageConstructor/Provider.d.ts +2 -0
- package/build/esm/containers/PageConstructor/Provider.js +3 -1
- package/build/esm/context/formsContext/FormsContext.d.ts +13 -0
- package/build/esm/context/formsContext/FormsContext.js +3 -0
- package/build/esm/context/formsContext/index.d.ts +1 -0
- package/build/esm/context/formsContext/index.js +1 -0
- package/package.json +1 -1
- package/widget/index.js +1 -1
|
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
5
5
|
const __1 = require("..");
|
|
6
|
+
const FormsContext_1 = require("../../context/formsContext/FormsContext");
|
|
6
7
|
const models_1 = require("../../models");
|
|
7
8
|
const sub_blocks_1 = require("../../sub-blocks");
|
|
8
9
|
const InnerForm = (props) => {
|
|
9
10
|
const { formData, onContentLoad, className } = props;
|
|
11
|
+
const formsConfig = (0, react_1.useContext)(FormsContext_1.FormsContext);
|
|
10
12
|
(0, react_1.useEffect)(() => {
|
|
11
13
|
if ((0, models_1.isHubspotDataForm)(formData)) {
|
|
12
14
|
onContentLoad();
|
|
@@ -15,13 +17,13 @@ const InnerForm = (props) => {
|
|
|
15
17
|
if ((0, models_1.isYandexDataForm)(formData)) {
|
|
16
18
|
const _a = formData.yandex, { onLoad } = _a, rest = tslib_1.__rest(_a, ["onLoad"]);
|
|
17
19
|
return (react_1.default.createElement("div", { className: className },
|
|
18
|
-
react_1.default.createElement(__1.YandexForm, Object.assign({}, rest, { onLoad: () => {
|
|
20
|
+
react_1.default.createElement(__1.YandexForm, Object.assign({}, formsConfig.yandex, rest, { onLoad: () => {
|
|
19
21
|
onContentLoad();
|
|
20
22
|
onLoad === null || onLoad === void 0 ? void 0 : onLoad();
|
|
21
23
|
} }))));
|
|
22
24
|
}
|
|
23
25
|
if ((0, models_1.isHubspotDataForm)(formData)) {
|
|
24
|
-
return react_1.default.createElement(sub_blocks_1.HubspotForm, Object.assign({ createDOMElement: true }, formData.hubspot));
|
|
26
|
+
return (react_1.default.createElement(sub_blocks_1.HubspotForm, Object.assign({ createDOMElement: true }, formsConfig.hubspot, formData.hubspot)));
|
|
25
27
|
}
|
|
26
28
|
return null;
|
|
27
29
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
const react_1 = tslib_1.
|
|
4
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
5
|
+
const localeContext_1 = require("../../../context/localeContext");
|
|
5
6
|
const utils_1 = require("../../../utils");
|
|
6
7
|
const i18n_1 = require("./i18n");
|
|
7
8
|
const utils_2 = require("./utils");
|
|
@@ -9,7 +10,8 @@ const b = (0, utils_1.block)('media-component-data-lens');
|
|
|
9
10
|
const DataLens = (props) => {
|
|
10
11
|
const { dataLens } = props;
|
|
11
12
|
const dataLensData = (0, utils_2.unifyDataLensToObject)(dataLens);
|
|
13
|
+
const locale = (0, react_1.useContext)(localeContext_1.LocaleContext);
|
|
12
14
|
return dataLens ? (react_1.default.createElement("div", { className: b('wrap') },
|
|
13
|
-
react_1.default.createElement("iframe", { src: `https://datalens.yandex/${dataLensData.id}?_embedded=1&_theme=${dataLensData.theme}`, className: b('iframe'), loading: "lazy", title: (0, i18n_1.i18n)('iframe-title'), frameBorder: 0 }))) : null;
|
|
15
|
+
react_1.default.createElement("iframe", { src: `https://datalens.yandex/${dataLensData.id}?_embedded=1&_theme=${dataLensData.theme}&_lang=${locale.lang}`, className: b('iframe'), loading: "lazy", title: (0, i18n_1.i18n)('iframe-title'), frameBorder: 0 }))) : null;
|
|
14
16
|
};
|
|
15
17
|
exports.default = DataLens;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AnalyticsContextProps } from '../../context/analyticsContext';
|
|
2
|
+
import { FormsContextProps } from '../../context/formsContext/FormsContext';
|
|
2
3
|
import { ImageContextProps } from '../../context/imageContext';
|
|
3
4
|
import { LocaleContextProps } from '../../context/localeContext';
|
|
4
5
|
import { LocationContextProps } from '../../context/locationContext';
|
|
@@ -15,6 +16,7 @@ export interface PageConstructorProviderProps {
|
|
|
15
16
|
mapsContext?: MapsContextType;
|
|
16
17
|
projectSettings?: ProjectSettingsContextProps;
|
|
17
18
|
analytics?: AnalyticsContextProps;
|
|
19
|
+
forms?: FormsContextProps;
|
|
18
20
|
image?: ImageContextProps;
|
|
19
21
|
}
|
|
20
22
|
export declare const PageConstructorProvider: (props: WithChildren<PageConstructorProviderProps>) => JSX.Element;
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
6
|
const constants_1 = require("../../components/constants");
|
|
7
7
|
const analyticsContext_1 = require("../../context/analyticsContext");
|
|
8
|
+
const FormsContext_1 = require("../../context/formsContext/FormsContext");
|
|
8
9
|
const imageContext_1 = require("../../context/imageContext");
|
|
9
10
|
const localeContext_1 = require("../../context/localeContext");
|
|
10
11
|
const locationContext_1 = require("../../context/locationContext");
|
|
@@ -14,7 +15,7 @@ const projectSettingsContext_1 = require("../../context/projectSettingsContext")
|
|
|
14
15
|
const ssrContext_1 = require("../../context/ssrContext");
|
|
15
16
|
const theme_1 = require("../../context/theme");
|
|
16
17
|
const PageConstructorProvider = (props) => {
|
|
17
|
-
const { isMobile, mapsContext = mapsContext_1.initialMapValue, locale = {}, location = {}, analytics = {}, ssrConfig = {}, projectSettings = {}, theme = constants_1.DEFAULT_THEME, children, image = {}, } = props;
|
|
18
|
+
const { isMobile, mapsContext = mapsContext_1.initialMapValue, locale = {}, location = {}, analytics = {}, ssrConfig = {}, projectSettings = {}, theme = constants_1.DEFAULT_THEME, children, image = {}, forms = FormsContext_1.DEFAULT_FORMS_CONTEXT_VALUE, } = props;
|
|
18
19
|
/* eslint-disable react/jsx-key */
|
|
19
20
|
const context = [
|
|
20
21
|
react_1.default.createElement(theme_1.ThemeContext.Provider, { value: { theme } }),
|
|
@@ -25,6 +26,7 @@ const PageConstructorProvider = (props) => {
|
|
|
25
26
|
react_1.default.createElement(mobileContext_1.MobileContext.Provider, { value: Boolean(isMobile) }),
|
|
26
27
|
react_1.default.createElement(mapsContext_1.MapsContext.Provider, { value: mapsContext }),
|
|
27
28
|
react_1.default.createElement(analyticsContext_1.AnalyticsContext.Provider, { value: analytics }),
|
|
29
|
+
react_1.default.createElement(FormsContext_1.FormsContext.Provider, { value: forms }),
|
|
28
30
|
react_1.default.createElement(ssrContext_1.SSRContext.Provider, { value: { isServer: ssrConfig === null || ssrConfig === void 0 ? void 0 : ssrConfig.isServer } }),
|
|
29
31
|
].reduceRight((prev, provider) => react_1.default.cloneElement(provider, {}, prev), children);
|
|
30
32
|
/* eslint-enable react/jsx-key */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { YandexFormProps } from '../../models/constructor-items/common';
|
|
3
|
+
import { HubspotFormProps } from '../../models/constructor-items/sub-blocks';
|
|
4
|
+
export declare const DEFAULT_FORMS_CONTEXT_VALUE: FormsContextProps;
|
|
5
|
+
export interface FormsContextProps {
|
|
6
|
+
yandex?: YandexFormsContextProps;
|
|
7
|
+
hubspot?: HubspotFormsContextProps;
|
|
8
|
+
}
|
|
9
|
+
export interface YandexFormsContextProps extends Partial<Pick<YandexFormProps, 'customFormOrigin'>> {
|
|
10
|
+
}
|
|
11
|
+
export interface HubspotFormsContextProps extends Partial<Pick<HubspotFormProps, 'createDOMElement'>> {
|
|
12
|
+
}
|
|
13
|
+
export declare const FormsContext: React.Context<FormsContextProps>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormsContext = exports.DEFAULT_FORMS_CONTEXT_VALUE = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
exports.DEFAULT_FORMS_CONTEXT_VALUE = {};
|
|
7
|
+
exports.FormsContext = react_1.default.createContext(exports.DEFAULT_FORMS_CONTEXT_VALUE);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FormsContext';
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { __rest } from "tslib";
|
|
2
|
-
import React, { useEffect } from 'react';
|
|
2
|
+
import React, { useContext, useEffect } from 'react';
|
|
3
3
|
import { YandexForm } from '..';
|
|
4
|
+
import { FormsContext, } from '../../context/formsContext/FormsContext';
|
|
4
5
|
import { isHubspotDataForm, isYandexDataForm } from '../../models';
|
|
5
6
|
import { HubspotForm } from '../../sub-blocks';
|
|
6
7
|
const InnerForm = (props) => {
|
|
7
8
|
const { formData, onContentLoad, className } = props;
|
|
9
|
+
const formsConfig = useContext(FormsContext);
|
|
8
10
|
useEffect(() => {
|
|
9
11
|
if (isHubspotDataForm(formData)) {
|
|
10
12
|
onContentLoad();
|
|
@@ -13,13 +15,13 @@ const InnerForm = (props) => {
|
|
|
13
15
|
if (isYandexDataForm(formData)) {
|
|
14
16
|
const _a = formData.yandex, { onLoad } = _a, rest = __rest(_a, ["onLoad"]);
|
|
15
17
|
return (React.createElement("div", { className: className },
|
|
16
|
-
React.createElement(YandexForm, Object.assign({}, rest, { onLoad: () => {
|
|
18
|
+
React.createElement(YandexForm, Object.assign({}, formsConfig.yandex, rest, { onLoad: () => {
|
|
17
19
|
onContentLoad();
|
|
18
20
|
onLoad === null || onLoad === void 0 ? void 0 : onLoad();
|
|
19
21
|
} }))));
|
|
20
22
|
}
|
|
21
23
|
if (isHubspotDataForm(formData)) {
|
|
22
|
-
return React.createElement(HubspotForm, Object.assign({ createDOMElement: true }, formData.hubspot));
|
|
24
|
+
return (React.createElement(HubspotForm, Object.assign({ createDOMElement: true }, formsConfig.hubspot, formData.hubspot)));
|
|
23
25
|
}
|
|
24
26
|
return null;
|
|
25
27
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import { LocaleContext } from '../../../context/localeContext';
|
|
2
3
|
import { block } from '../../../utils';
|
|
3
4
|
import { i18n } from './i18n';
|
|
4
5
|
import { unifyDataLensToObject } from './utils';
|
|
@@ -7,7 +8,8 @@ const b = block('media-component-data-lens');
|
|
|
7
8
|
const DataLens = (props) => {
|
|
8
9
|
const { dataLens } = props;
|
|
9
10
|
const dataLensData = unifyDataLensToObject(dataLens);
|
|
11
|
+
const locale = useContext(LocaleContext);
|
|
10
12
|
return dataLens ? (React.createElement("div", { className: b('wrap') },
|
|
11
|
-
React.createElement("iframe", { src: `https://datalens.yandex/${dataLensData.id}?_embedded=1&_theme=${dataLensData.theme}`, className: b('iframe'), loading: "lazy", title: i18n('iframe-title'), frameBorder: 0 }))) : null;
|
|
13
|
+
React.createElement("iframe", { src: `https://datalens.yandex/${dataLensData.id}?_embedded=1&_theme=${dataLensData.theme}&_lang=${locale.lang}`, className: b('iframe'), loading: "lazy", title: i18n('iframe-title'), frameBorder: 0 }))) : null;
|
|
12
14
|
};
|
|
13
15
|
export default DataLens;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AnalyticsContextProps } from '../../context/analyticsContext';
|
|
2
|
+
import { FormsContextProps } from '../../context/formsContext/FormsContext';
|
|
2
3
|
import { ImageContextProps } from '../../context/imageContext';
|
|
3
4
|
import { LocaleContextProps } from '../../context/localeContext';
|
|
4
5
|
import { LocationContextProps } from '../../context/locationContext';
|
|
@@ -15,6 +16,7 @@ export interface PageConstructorProviderProps {
|
|
|
15
16
|
mapsContext?: MapsContextType;
|
|
16
17
|
projectSettings?: ProjectSettingsContextProps;
|
|
17
18
|
analytics?: AnalyticsContextProps;
|
|
19
|
+
forms?: FormsContextProps;
|
|
18
20
|
image?: ImageContextProps;
|
|
19
21
|
}
|
|
20
22
|
export declare const PageConstructorProvider: (props: WithChildren<PageConstructorProviderProps>) => JSX.Element;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { Fragment } from 'react';
|
|
2
2
|
import { DEFAULT_THEME } from '../../components/constants';
|
|
3
3
|
import { AnalyticsContext } from '../../context/analyticsContext';
|
|
4
|
+
import { DEFAULT_FORMS_CONTEXT_VALUE, FormsContext, } from '../../context/formsContext/FormsContext';
|
|
4
5
|
import { ImageContext } from '../../context/imageContext';
|
|
5
6
|
import { LocaleContext } from '../../context/localeContext';
|
|
6
7
|
import { LocationContext } from '../../context/locationContext';
|
|
@@ -10,7 +11,7 @@ import { ProjectSettingsContext, } from '../../context/projectSettingsContext';
|
|
|
10
11
|
import { SSRContext } from '../../context/ssrContext';
|
|
11
12
|
import { ThemeContext } from '../../context/theme';
|
|
12
13
|
export const PageConstructorProvider = (props) => {
|
|
13
|
-
const { isMobile, mapsContext = initialMapValue, locale = {}, location = {}, analytics = {}, ssrConfig = {}, projectSettings = {}, theme = DEFAULT_THEME, children, image = {}, } = props;
|
|
14
|
+
const { isMobile, mapsContext = initialMapValue, locale = {}, location = {}, analytics = {}, ssrConfig = {}, projectSettings = {}, theme = DEFAULT_THEME, children, image = {}, forms = DEFAULT_FORMS_CONTEXT_VALUE, } = props;
|
|
14
15
|
/* eslint-disable react/jsx-key */
|
|
15
16
|
const context = [
|
|
16
17
|
React.createElement(ThemeContext.Provider, { value: { theme } }),
|
|
@@ -21,6 +22,7 @@ export const PageConstructorProvider = (props) => {
|
|
|
21
22
|
React.createElement(MobileContext.Provider, { value: Boolean(isMobile) }),
|
|
22
23
|
React.createElement(MapsContext.Provider, { value: mapsContext }),
|
|
23
24
|
React.createElement(AnalyticsContext.Provider, { value: analytics }),
|
|
25
|
+
React.createElement(FormsContext.Provider, { value: forms }),
|
|
24
26
|
React.createElement(SSRContext.Provider, { value: { isServer: ssrConfig === null || ssrConfig === void 0 ? void 0 : ssrConfig.isServer } }),
|
|
25
27
|
].reduceRight((prev, provider) => React.cloneElement(provider, {}, prev), children);
|
|
26
28
|
/* eslint-enable react/jsx-key */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { YandexFormProps } from '../../models/constructor-items/common';
|
|
3
|
+
import { HubspotFormProps } from '../../models/constructor-items/sub-blocks';
|
|
4
|
+
export declare const DEFAULT_FORMS_CONTEXT_VALUE: FormsContextProps;
|
|
5
|
+
export interface FormsContextProps {
|
|
6
|
+
yandex?: YandexFormsContextProps;
|
|
7
|
+
hubspot?: HubspotFormsContextProps;
|
|
8
|
+
}
|
|
9
|
+
export interface YandexFormsContextProps extends Partial<Pick<YandexFormProps, 'customFormOrigin'>> {
|
|
10
|
+
}
|
|
11
|
+
export interface HubspotFormsContextProps extends Partial<Pick<HubspotFormProps, 'createDOMElement'>> {
|
|
12
|
+
}
|
|
13
|
+
export declare const FormsContext: React.Context<FormsContextProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FormsContext';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FormsContext';
|