@doyourjob/gravity-ui-page-constructor 5.31.65 → 5.31.67

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 (77) hide show
  1. package/build/cjs/blocks/Header/Header.css +3 -0
  2. package/build/cjs/blocks/Header/Header.js +6 -3
  3. package/build/cjs/blocks/Header/SwitchingTitle/SwitchingTitle.css +5 -0
  4. package/build/cjs/blocks/Header/SwitchingTitle/SwitchingTtitle.d.ts +3 -0
  5. package/build/cjs/blocks/Header/SwitchingTitle/SwitchingTtitle.js +28 -0
  6. package/build/cjs/blocks/Header/schema.d.ts +18 -0
  7. package/build/cjs/blocks/Header/schema.js +15 -0
  8. package/build/cjs/blocks/Header/utils.d.ts +1 -0
  9. package/build/cjs/blocks/Header/utils.js +15 -1
  10. package/build/cjs/blocks/HeaderSlider/schema.d.ts +9 -0
  11. package/build/cjs/blocks/ReportsSections/Item/Item.css +21 -0
  12. package/build/cjs/blocks/ReportsSections/Item/Item.d.ts +3 -0
  13. package/build/cjs/blocks/ReportsSections/Item/Item.js +14 -0
  14. package/build/cjs/blocks/ReportsSections/ReportsSections.css +27 -0
  15. package/build/cjs/blocks/ReportsSections/ReportsSections.d.ts +3 -0
  16. package/build/cjs/blocks/ReportsSections/ReportsSections.js +35 -0
  17. package/build/cjs/blocks/ReportsSections/Section/Section.css +30 -0
  18. package/build/cjs/blocks/ReportsSections/Section/Section.d.ts +3 -0
  19. package/build/cjs/blocks/ReportsSections/Section/Section.js +14 -0
  20. package/build/cjs/blocks/ReportsSections/schema.d.ts +50 -0
  21. package/build/cjs/blocks/ReportsSections/schema.js +24 -0
  22. package/build/cjs/blocks/index.d.ts +1 -0
  23. package/build/cjs/blocks/index.js +3 -1
  24. package/build/cjs/constructor-items.d.ts +1 -0
  25. package/build/cjs/constructor-items.js +1 -0
  26. package/build/cjs/context/reportsSectionsContext/ReportsSectionsContext.d.ts +15 -0
  27. package/build/cjs/context/reportsSectionsContext/ReportsSectionsContext.js +6 -0
  28. package/build/cjs/context/reportsSectionsContext/index.d.ts +1 -0
  29. package/build/cjs/context/reportsSectionsContext/index.js +4 -0
  30. package/build/cjs/index.d.ts +1 -0
  31. package/build/cjs/index.js +1 -0
  32. package/build/cjs/models/constructor-items/blocks.d.ts +24 -1
  33. package/build/cjs/models/constructor-items/blocks.js +1 -0
  34. package/build/cjs/schema/constants.js +2 -1
  35. package/build/cjs/schema/validators/blocks.d.ts +1 -0
  36. package/build/cjs/schema/validators/blocks.js +1 -0
  37. package/build/esm/blocks/Header/Header.css +3 -0
  38. package/build/esm/blocks/Header/Header.js +6 -3
  39. package/build/esm/blocks/Header/SwitchingTitle/SwitchingTitle.css +5 -0
  40. package/build/esm/blocks/Header/SwitchingTitle/SwitchingTtitle.d.ts +4 -0
  41. package/build/esm/blocks/Header/SwitchingTitle/SwitchingTtitle.js +26 -0
  42. package/build/esm/blocks/Header/schema.d.ts +18 -0
  43. package/build/esm/blocks/Header/schema.js +15 -0
  44. package/build/esm/blocks/Header/utils.d.ts +1 -0
  45. package/build/esm/blocks/Header/utils.js +13 -0
  46. package/build/esm/blocks/HeaderSlider/schema.d.ts +9 -0
  47. package/build/esm/blocks/ReportsSections/Item/Item.css +21 -0
  48. package/build/esm/blocks/ReportsSections/Item/Item.d.ts +4 -0
  49. package/build/esm/blocks/ReportsSections/Item/Item.js +10 -0
  50. package/build/esm/blocks/ReportsSections/ReportsSections.css +27 -0
  51. package/build/esm/blocks/ReportsSections/ReportsSections.d.ts +4 -0
  52. package/build/esm/blocks/ReportsSections/ReportsSections.js +31 -0
  53. package/build/esm/blocks/ReportsSections/Section/Section.css +30 -0
  54. package/build/esm/blocks/ReportsSections/Section/Section.d.ts +4 -0
  55. package/build/esm/blocks/ReportsSections/Section/Section.js +10 -0
  56. package/build/esm/blocks/ReportsSections/schema.d.ts +50 -0
  57. package/build/esm/blocks/ReportsSections/schema.js +21 -0
  58. package/build/esm/blocks/index.d.ts +1 -0
  59. package/build/esm/blocks/index.js +1 -0
  60. package/build/esm/constructor-items.d.ts +1 -0
  61. package/build/esm/constructor-items.js +2 -1
  62. package/build/esm/context/reportsSectionsContext/ReportsSectionsContext.d.ts +15 -0
  63. package/build/esm/context/reportsSectionsContext/ReportsSectionsContext.js +2 -0
  64. package/build/esm/context/reportsSectionsContext/index.d.ts +1 -0
  65. package/build/esm/context/reportsSectionsContext/index.js +1 -0
  66. package/build/esm/index.d.ts +1 -0
  67. package/build/esm/index.js +1 -0
  68. package/build/esm/models/constructor-items/blocks.d.ts +24 -1
  69. package/build/esm/models/constructor-items/blocks.js +1 -0
  70. package/build/esm/schema/constants.js +3 -2
  71. package/build/esm/schema/validators/blocks.d.ts +1 -0
  72. package/build/esm/schema/validators/blocks.js +1 -0
  73. package/package.json +1 -1
  74. package/schema/index.js +1 -1
  75. package/server/models/constructor-items/blocks.d.ts +24 -1
  76. package/server/models/constructor-items/blocks.js +1 -0
  77. package/widget/index.js +1 -1
@@ -93,6 +93,9 @@ unpredictable css rules order in build */
93
93
  --pc-text-header-color: var(--g-color-text-link-hover);
94
94
  color: var(--g-color-text-link-hover);
95
95
  }
96
+ .pc-header-block__title_pre-wrap {
97
+ white-space: pre-wrap;
98
+ }
96
99
  .pc-header-block__description {
97
100
  margin-top: 16px;
98
101
  }
@@ -17,6 +17,7 @@ const Breadcrumbs_1 = tslib_1.__importDefault(require("./Breadcrumbs/Breadcrumbs
17
17
  const HeaderStock_1 = tslib_1.__importDefault(require("./HeaderStock/HeaderStock"));
18
18
  const HeaderTag_1 = tslib_1.__importDefault(require("./HeaderTag/HeaderTag"));
19
19
  const HeaderTags_1 = tslib_1.__importDefault(require("./HeaderTags/HeaderTags"));
20
+ const SwitchingTtitle_1 = tslib_1.__importDefault(require("./SwitchingTitle/SwitchingTtitle"));
20
21
  const utils_3 = require("./utils");
21
22
  const b = (0, utils_2.block)('header-block');
22
23
  const Background = ({ background, isMobile }) => {
@@ -28,7 +29,7 @@ const Background = ({ background, isMobile }) => {
28
29
  const FullWidthBackground = ({ background }) => (react_1.default.createElement("div", { className: b('background', { ['full-width']: true }), style: { backgroundColor: background === null || background === void 0 ? void 0 : background.color } }));
29
30
  // eslint-disable-next-line complexity
30
31
  const HeaderBlock = (props) => {
31
- const { title, topTags, bottomTags, overtitle, description, buttons, stock, stockPrice, stockShares, image, video, width = 's', imageSize, offset = 'default', background, theme: textTheme = 'light', verticalOffset = 'm', className, breadcrumbs, status, renderTitle, children, mediaView = 'full', } = props;
32
+ const { title, switchingTitle, topTags, bottomTags, overtitle, description, buttons, stock, stockPrice, stockShares, image, video, width = 's', imageSize, offset = 'default', background, theme: textTheme = 'light', verticalOffset = 'm', className, breadcrumbs, status, renderTitle, children, mediaView = 'full', } = props;
32
33
  const isMobile = (0, react_1.useContext)(mobileContext_1.MobileContext);
33
34
  const { backButton, blockTag } = (0, react_1.useContext)(headerContext_1.HeaderContext);
34
35
  const theme = (0, theme_1.useTheme)();
@@ -68,10 +69,12 @@ const HeaderBlock = (props) => {
68
69
  react_1.default.createElement("div", null,
69
70
  overtitle && (react_1.default.createElement("div", { className: b('overtitle') },
70
71
  react_1.default.createElement(components_1.HTML, null, overtitle))),
71
- react_1.default.createElement("h1", { className: b('title'), id: titleId },
72
+ react_1.default.createElement("h1", { className: b('title', {
73
+ 'pre-wrap': Boolean(switchingTitle),
74
+ }), id: titleId },
72
75
  react_1.default.createElement(HeaderTag_1.default, { tag: blockTag }),
73
76
  status,
74
- renderTitle ? (renderTitle(title)) : (react_1.default.createElement(components_1.HTML, null, title))),
77
+ switchingTitle ? (react_1.default.createElement(SwitchingTtitle_1.default, Object.assign({}, switchingTitle))) : (react_1.default.createElement(react_1.default.Fragment, null, renderTitle ? (renderTitle(title)) : (react_1.default.createElement(components_1.HTML, null, title))))),
75
78
  description && (react_1.default.createElement("div", { className: b('description', { theme: textTheme }) },
76
79
  react_1.default.createElement(YFMWrapper_1.default, { content: description, modifiers: {
77
80
  constructor: true,
@@ -0,0 +1,5 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-switching-title__title-part {
4
+ transition: opacity ease-in-out 0.2s;
5
+ }
@@ -0,0 +1,3 @@
1
+ import { SwitchingTitleProps } from '../../../models';
2
+ declare const SwitchingTitle: (props: SwitchingTitleProps) => JSX.Element;
3
+ export default SwitchingTitle;
@@ -0,0 +1,28 @@
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 utils_1 = require("../../../utils");
6
+ const utils_2 = require("../utils");
7
+ const b = (0, utils_1.block)('switching-title');
8
+ const SwitchingTitle = (props) => {
9
+ const { text, switchingTime } = props;
10
+ const [currentIndex, setCurrentIndex] = (0, react_1.useState)(0);
11
+ const [opacity, setOpacity] = (0, react_1.useState)(1);
12
+ const texts = (0, react_1.useMemo)(() => (0, utils_2.partitionSwitchingTitleInput)(text), [text]);
13
+ const textSizesCommonMultiple = (0, react_1.useMemo)(() => texts.reduce((acc, curr) => acc * curr.length, 1), [texts]);
14
+ (0, react_1.useEffect)(() => {
15
+ const intervalHandle = setInterval(() => {
16
+ setOpacity(0);
17
+ setTimeout(() => {
18
+ setCurrentIndex((c) => (c + 1) % textSizesCommonMultiple);
19
+ setOpacity(1);
20
+ }, 200);
21
+ }, switchingTime);
22
+ return () => clearInterval(intervalHandle);
23
+ }, [texts, switchingTime, textSizesCommonMultiple]);
24
+ return (react_1.default.createElement("span", null, texts.map((lines, index) => (react_1.default.createElement("span", { className: b('title-part'), style: {
25
+ opacity: lines.length > 1 ? opacity : 1,
26
+ }, key: index }, lines[currentIndex % lines.length])))));
27
+ };
28
+ exports.default = SwitchingTitle;
@@ -320,6 +320,15 @@ export declare const HeaderProperties: {
320
320
  type: string;
321
321
  contentType: string;
322
322
  };
323
+ switchingTitle: {
324
+ type: string;
325
+ additionalProperties: string;
326
+ required: string[];
327
+ properties: {
328
+ name: string;
329
+ type: string;
330
+ }[];
331
+ };
323
332
  overtitle: {
324
333
  type: string;
325
334
  contentType: string;
@@ -980,6 +989,15 @@ export declare const HeaderBlock: {
980
989
  type: string;
981
990
  contentType: string;
982
991
  };
992
+ switchingTitle: {
993
+ type: string;
994
+ additionalProperties: string;
995
+ required: string[];
996
+ properties: {
997
+ name: string;
998
+ type: string;
999
+ }[];
1000
+ };
983
1001
  overtitle: {
984
1002
  type: string;
985
1003
  contentType: string;
@@ -16,6 +16,21 @@ exports.HeaderProperties = {
16
16
  type: 'string',
17
17
  contentType: 'text',
18
18
  },
19
+ switchingTitle: {
20
+ type: 'object',
21
+ additionalProperties: 'false',
22
+ required: ['text'],
23
+ properties: [
24
+ {
25
+ name: 'text',
26
+ type: 'string',
27
+ },
28
+ {
29
+ name: 'switchingTime',
30
+ type: 'number',
31
+ },
32
+ ],
33
+ },
19
34
  overtitle: {
20
35
  type: 'string',
21
36
  contentType: 'text',
@@ -18,3 +18,4 @@ export declare function getTitleSizes(width: HeaderWidth): {
18
18
  md?: undefined;
19
19
  };
20
20
  export declare function getImageSize(width: HeaderWidth): "s" | "m";
21
+ export declare const partitionSwitchingTitleInput: (str: string) => string[][];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getImageSize = exports.getTitleSizes = exports.titleWithImageSizes = void 0;
3
+ exports.partitionSwitchingTitleInput = exports.getImageSize = exports.getTitleSizes = exports.titleWithImageSizes = void 0;
4
4
  function titleWithImageSizes(imageSize) {
5
5
  switch (imageSize) {
6
6
  case 's':
@@ -49,3 +49,17 @@ function getImageSize(width) {
49
49
  }
50
50
  }
51
51
  exports.getImageSize = getImageSize;
52
+ const partitionSwitchingTitleInput = (str) => {
53
+ if (str.length === 0)
54
+ return [['']];
55
+ const fixedRegExp = new RegExp('\\[.*', 's');
56
+ const fixedPart = str.replace(fixedRegExp, '');
57
+ if (fixedPart === str)
58
+ return [[fixedPart]];
59
+ const switchingPartRegExp = new RegExp('\\][^/].*', 's');
60
+ const switchingPart = str.slice(fixedPart.length + 1).replace(switchingPartRegExp, '');
61
+ const switchingPartArr = switchingPart.replace(/[[\]]/g, '').split('/');
62
+ const rest = str.slice(fixedPart.length + switchingPart.length + 2);
63
+ return [[fixedPart], switchingPartArr, ...(0, exports.partitionSwitchingTitleInput)(rest)].filter((arr) => arr.length !== 0 && (arr.length !== 1 || arr[0] !== ''));
64
+ };
65
+ exports.partitionSwitchingTitleInput = partitionSwitchingTitleInput;
@@ -14,6 +14,15 @@ export declare const HeaderSliderBlock: {
14
14
  type: string;
15
15
  contentType: string;
16
16
  };
17
+ switchingTitle: {
18
+ type: string;
19
+ additionalProperties: string;
20
+ required: string[];
21
+ properties: {
22
+ name: string;
23
+ type: string;
24
+ }[];
25
+ };
17
26
  overtitle: {
18
27
  type: string;
19
28
  contentType: string;
@@ -0,0 +1,21 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-reports-sections-item {
4
+ padding: 24px 0;
5
+ display: flex;
6
+ align-items: center;
7
+ border-bottom: 1px solid var(--g-color-private-black-100-solid);
8
+ gap: 32px;
9
+ }
10
+ .pc-reports-sections-item__wrap {
11
+ flex: 1;
12
+ }
13
+ .pc-reports-sections-item__title {
14
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
15
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
16
+ }
17
+ .pc-reports-sections-item__files {
18
+ display: flex;
19
+ gap: 8px;
20
+ flex-wrap: wrap;
21
+ }
@@ -0,0 +1,3 @@
1
+ import { ReportsSectionsItem } from '../../../models';
2
+ export declare const Item: ({ title, files }: ReportsSectionsItem) => JSX.Element;
3
+ export default Item;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Item = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const components_1 = require("../../../components");
7
+ const utils_1 = require("../../../utils");
8
+ const b = (0, utils_1.block)('reports-sections-item');
9
+ const Item = ({ title, files }) => (react_1.default.createElement("div", { className: b() },
10
+ react_1.default.createElement("div", { className: b('wrap') },
11
+ react_1.default.createElement("div", { className: b('title') }, title)),
12
+ (files === null || files === void 0 ? void 0 : files.length) && (react_1.default.createElement("div", { className: b('files') }, files.map((file) => (react_1.default.createElement(components_1.ReportFile, Object.assign({ key: file.link }, file, { outline: true }))))))));
13
+ exports.Item = Item;
14
+ exports.default = exports.Item;
@@ -0,0 +1,27 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-reports-sections-block__title {
4
+ margin-bottom: 24px;
5
+ }
6
+ .pc-reports-sections-block__select {
7
+ margin-bottom: 32px;
8
+ gap: 16px;
9
+ display: flex;
10
+ flex-wrap: wrap;
11
+ }
12
+ .pc-reports-sections-block__sections {
13
+ display: flex;
14
+ flex-direction: column;
15
+ gap: 56px;
16
+ }
17
+ .pc-reports-sections-block__empty {
18
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
19
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
20
+ height: 128px;
21
+ width: 100%;
22
+ background-color: var(--g-color-private-blue-50);
23
+ border-radius: 24px;
24
+ justify-content: center;
25
+ align-items: center;
26
+ display: flex;
27
+ }
@@ -0,0 +1,3 @@
1
+ import { ReportsSectionsBlockProps } from '../../models';
2
+ export declare const ReportsSectionsBlock: ({ title, typeKey, empty }: ReportsSectionsBlockProps) => JSX.Element;
3
+ export default ReportsSectionsBlock;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReportsSectionsBlock = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const components_1 = require("../../components");
7
+ const reportsSectionsContext_1 = require("../../context/reportsSectionsContext");
8
+ const utils_1 = require("../../utils");
9
+ const Section_1 = tslib_1.__importDefault(require("./Section/Section"));
10
+ const b = (0, utils_1.block)('reports-sections-block');
11
+ const titleColSizes = {
12
+ all: 12,
13
+ };
14
+ const ReportsSectionsBlock = ({ title, typeKey, empty }) => {
15
+ const data = (0, react_1.useContext)(reportsSectionsContext_1.ReportsSectionsContext);
16
+ const { selects, sections } = (0, react_1.useMemo)(() => data[typeKey], [data, typeKey]);
17
+ const initFilters = (0, react_1.useMemo)(() => (selects === null || selects === void 0 ? void 0 : selects.reduce((acc, select) => (Object.assign(Object.assign({}, acc), { [select.name]: select.init })), {})) || {}, [selects]);
18
+ const [localFilters, setLocalFilters] = (0, react_1.useState)(initFilters);
19
+ const handleChange = (0, react_1.useCallback)((name, value) => setLocalFilters((prev) => (Object.assign(Object.assign({}, prev), { [name]: value }))), []);
20
+ const filteredItems = (0, react_1.useMemo)(() => {
21
+ const f = Object.entries(localFilters).filter(([_, value]) => value !== 'all');
22
+ return f.length
23
+ ? sections.filter((section) => f.every(([key, value]) => { var _a, _b; return (_b = (_a = section.filters) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.includes(value); }))
24
+ : sections;
25
+ }, [sections, localFilters]);
26
+ const titleProps = !title || typeof title === 'string'
27
+ ? { text: title, textSize: 'm' }
28
+ : title;
29
+ return (react_1.default.createElement("div", { className: b() },
30
+ title && react_1.default.createElement(components_1.Title, { className: b('title'), title: titleProps, colSizes: titleColSizes }),
31
+ (selects === null || selects === void 0 ? void 0 : selects.length) && (react_1.default.createElement("div", { className: b('select') }, selects.map(({ name, options }) => (react_1.default.createElement(components_1.Select, { key: name, name: name, options: options, onChange: handleChange }))))),
32
+ filteredItems.length ? (react_1.default.createElement("div", { className: b('sections') }, filteredItems.map((item, index) => (react_1.default.createElement(Section_1.default, Object.assign({ key: index }, item)))))) : (react_1.default.createElement("div", { className: b('empty') }, empty))));
33
+ };
34
+ exports.ReportsSectionsBlock = ReportsSectionsBlock;
35
+ exports.default = exports.ReportsSectionsBlock;
@@ -0,0 +1,30 @@
1
+ .pc-reports-sections-section__title {
2
+ margin: 0;
3
+ }
4
+
5
+ /* use this for style redefinitions to awoid problems with
6
+ unpredictable css rules order in build */
7
+ .pc-reports-sections-section {
8
+ padding: 32px;
9
+ border-radius: 24px;
10
+ background-color: #fff;
11
+ box-shadow: 0 4px 24px var(--pc-color-sfx-shadow), 0 2px 8px var(--pc-color-sfx-shadow);
12
+ }
13
+ .pc-reports-sections-section__date {
14
+ font-size: var(--g-text-body-3-font-size, var(--pc-text-body-3-font-size));
15
+ line-height: var(--g-text-body-3-line-height, var(--pc-text-body-3-line-height));
16
+ margin-bottom: 16px;
17
+ }
18
+ .pc-reports-sections-section__title {
19
+ font-size: var(--g-text-display-2-font-size, var(--pc-text-display-2-font-size));
20
+ line-height: var(--g-text-display-2-line-height, var(--pc-text-display-2-line-height));
21
+ color: var(--pc-text-header-color);
22
+ font-weight: var(--g-text-accent-font-weight);
23
+ margin: 0;
24
+ }
25
+ @media (max-width: 576px) {
26
+ .pc-reports-sections-section__title {
27
+ font-size: var(--g-text-display-1-font-size, var(--pc-text-display-1-font-size));
28
+ line-height: var(--g-text-display-1-line-height, var(--pc-text-display-1-line-height));
29
+ }
30
+ }
@@ -0,0 +1,3 @@
1
+ import { ReportsSectionsSection } from '../../../models';
2
+ export declare const Section: ({ title, date, items }: ReportsSectionsSection) => JSX.Element;
3
+ export default Section;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Section = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const utils_1 = require("../../../utils");
7
+ const Item_1 = tslib_1.__importDefault(require("../Item/Item"));
8
+ const b = (0, utils_1.block)('reports-sections-section');
9
+ const Section = ({ title, date, items }) => (react_1.default.createElement("div", { className: b() },
10
+ date && react_1.default.createElement("div", { className: b('date') }, date),
11
+ title && react_1.default.createElement("h2", { className: b('title') }, title),
12
+ (items === null || items === void 0 ? void 0 : items.length) && (react_1.default.createElement("div", { className: b('files') }, items.map((item, index) => (react_1.default.createElement(Item_1.default, Object.assign({ key: index }, item))))))));
13
+ exports.Section = Section;
14
+ exports.default = exports.Section;
@@ -0,0 +1,50 @@
1
+ export declare const ReportsSectionsBlock: {
2
+ 'reports-sections-block': {
3
+ additionalProperties: boolean;
4
+ required: string[];
5
+ properties: {
6
+ title: {
7
+ oneOf: ({
8
+ type: string;
9
+ contentType: string;
10
+ optionName: string;
11
+ } | {
12
+ optionName: string;
13
+ type: string;
14
+ additionalProperties: boolean;
15
+ required: string[];
16
+ properties: {
17
+ text: {
18
+ type: string;
19
+ contentType: string;
20
+ };
21
+ textSize: {
22
+ type: string;
23
+ enum: string[];
24
+ };
25
+ url: {
26
+ type: string;
27
+ };
28
+ urlTitle: {
29
+ type: string;
30
+ };
31
+ resetMargin: {
32
+ type: string;
33
+ };
34
+ };
35
+ contentType?: undefined;
36
+ })[];
37
+ };
38
+ typeKey: {
39
+ type: string;
40
+ };
41
+ empty: {
42
+ type: string;
43
+ };
44
+ type: {};
45
+ when: {
46
+ type: string;
47
+ };
48
+ };
49
+ };
50
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReportsSectionsBlock = void 0;
4
+ const common_1 = require("./../../schema/validators/common");
5
+ exports.ReportsSectionsBlock = {
6
+ 'reports-sections-block': {
7
+ additionalProperties: false,
8
+ required: ['typeKey'],
9
+ properties: Object.assign(Object.assign({}, common_1.BaseProps), { title: {
10
+ oneOf: [
11
+ {
12
+ type: 'string',
13
+ contentType: 'text',
14
+ optionName: 'text',
15
+ },
16
+ Object.assign(Object.assign({}, common_1.TitleProps), { optionName: 'options' }),
17
+ ],
18
+ }, typeKey: {
19
+ type: 'string',
20
+ }, empty: {
21
+ type: 'string',
22
+ } }),
23
+ },
24
+ };
@@ -22,6 +22,7 @@ export { default as SolutionsBlock } from './Solutions/Solutions';
22
22
  export { default as ServicesBlock } from './Services/Services';
23
23
  export { default as QuotesBlock } from './Quotes/Quotes';
24
24
  export { default as ReportsBlock } from './Reports/Reports';
25
+ export { default as ReportsSectionsBlock } from './ReportsSections/ReportsSections';
25
26
  export { default as FormWallBlock } from './FormWallBlock/FormWallBlock';
26
27
  export { default as LinkTableBlock } from './LinkTable/LinkTable';
27
28
  export { default as EventsFeedBlock } from './EventsFeed/EventsFeed';
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.HighlightTableBlock = exports.PressReleasesBlock = exports.RelevantPostsBlock = exports.BlogFeedBlock = exports.EventsFeedBlock = exports.LinkTableBlock = exports.FormWallBlock = exports.ReportsBlock = exports.QuotesBlock = exports.ServicesBlock = exports.SolutionsBlock = exports.MarqueeLinksBlock = exports.FormBlock = exports.FilterBlock = exports.ShareBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.BannerBlock = void 0;
6
+ exports.HighlightTableBlock = exports.PressReleasesBlock = exports.RelevantPostsBlock = exports.BlogFeedBlock = exports.EventsFeedBlock = exports.LinkTableBlock = exports.FormWallBlock = exports.ReportsSectionsBlock = exports.ReportsBlock = exports.QuotesBlock = exports.ServicesBlock = exports.SolutionsBlock = exports.MarqueeLinksBlock = exports.FormBlock = exports.FilterBlock = exports.ShareBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.BannerBlock = void 0;
7
7
  var Banner_1 = require("./Banner/Banner");
8
8
  Object.defineProperty(exports, "BannerBlock", { enumerable: true, get: function () { return __importDefault(Banner_1).default; } });
9
9
  var Companies_1 = require("./Companies/Companies");
@@ -52,6 +52,8 @@ var Quotes_1 = require("./Quotes/Quotes");
52
52
  Object.defineProperty(exports, "QuotesBlock", { enumerable: true, get: function () { return __importDefault(Quotes_1).default; } });
53
53
  var Reports_1 = require("./Reports/Reports");
54
54
  Object.defineProperty(exports, "ReportsBlock", { enumerable: true, get: function () { return __importDefault(Reports_1).default; } });
55
+ var ReportsSections_1 = require("./ReportsSections/ReportsSections");
56
+ Object.defineProperty(exports, "ReportsSectionsBlock", { enumerable: true, get: function () { return __importDefault(ReportsSections_1).default; } });
55
57
  var FormWallBlock_1 = require("./FormWallBlock/FormWallBlock");
56
58
  Object.defineProperty(exports, "FormWallBlock", { enumerable: true, get: function () { return __importDefault(FormWallBlock_1).default; } });
57
59
  var LinkTable_1 = require("./LinkTable/LinkTable");
@@ -29,6 +29,7 @@ export declare const blockMap: {
29
29
  "services-block": ({ title, serviceLinkType }: import("./models").ServicesBlockProps) => JSX.Element;
30
30
  "quotes-block": ({ theme: localTheme, items, background, backgroundColor, }: import("./models").QuotesBlockProps) => JSX.Element;
31
31
  "reports-block": ({ title, typeKey, empty }: import("./models").ReportsBlockProps) => JSX.Element;
32
+ "reports-sections-block": ({ title, typeKey, empty }: import("./models").ReportsSectionsBlockProps) => JSX.Element;
32
33
  "form-wall-block": (props: import("./models").FormWallBlockProps) => JSX.Element;
33
34
  "slider-new-block": ({ animated, title, description, type, anchorId, arrows, adaptive, autoplay: autoplayMs, dots, className, dotsClassName, disclaimer, children, blockClassName, arrowSize, slidesToShow, onSlideChange, onSlideChangeTransitionStart, onSlideChangeTransitionEnd, onActiveIndexChange, onBreakpoint, }: import("react").PropsWithChildren<import("./blocks/SliderNew/Slider").SliderNewProps>) => JSX.Element;
34
35
  };
@@ -39,6 +39,7 @@ exports.blockMap = {
39
39
  [models_1.BlockType.ServicesBlock]: blocks_1.ServicesBlock,
40
40
  [models_1.BlockType.QuotesBlock]: blocks_1.QuotesBlock,
41
41
  [models_1.BlockType.ReportsBlock]: blocks_1.ReportsBlock,
42
+ [models_1.BlockType.ReportsSectionsBlock]: blocks_1.ReportsSectionsBlock,
42
43
  [models_1.BlockType.FormWallBlock]: blocks_1.FormWallBlock,
43
44
  // unstable
44
45
  [models_1.BlockType.SliderNewBlock]: unstable_1.SliderNewBlock,
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { ReportsSectionsSection, SelectProps } from '../../models';
3
+ interface Section extends ReportsSectionsSection {
4
+ filters?: Record<string, string[]>;
5
+ }
6
+ interface Select extends SelectProps {
7
+ init: string;
8
+ }
9
+ type ReportsSectionsData = {
10
+ selects?: Select[];
11
+ sections: Section[];
12
+ };
13
+ export type ReportsSectionsContextProps = Record<string, ReportsSectionsData>;
14
+ export declare const ReportsSectionsContext: React.Context<ReportsSectionsContextProps>;
15
+ export {};
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReportsSectionsContext = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ exports.ReportsSectionsContext = react_1.default.createContext({});
@@ -0,0 +1 @@
1
+ export * from './ReportsSectionsContext';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./ReportsSectionsContext"), exports);
@@ -12,6 +12,7 @@ export * from './context/headerContext';
12
12
  export * from './context/relevantPostsContext';
13
13
  export * from './context/headerStockContext';
14
14
  export * from './context/reportsContext';
15
+ export * from './context/reportsSectionsContext';
15
16
  export * from './containers/PageConstructor';
16
17
  export * from './grid';
17
18
  export * from './blocks';
@@ -17,6 +17,7 @@ tslib_1.__exportStar(require("./context/headerContext"), exports);
17
17
  tslib_1.__exportStar(require("./context/relevantPostsContext"), exports);
18
18
  tslib_1.__exportStar(require("./context/headerStockContext"), exports);
19
19
  tslib_1.__exportStar(require("./context/reportsContext"), exports);
20
+ tslib_1.__exportStar(require("./context/reportsSectionsContext"), exports);
20
21
  tslib_1.__exportStar(require("./containers/PageConstructor"), exports);
21
22
  tslib_1.__exportStar(require("./grid"), exports);
22
23
  tslib_1.__exportStar(require("./blocks"), exports);
@@ -30,6 +30,7 @@ export declare enum BlockType {
30
30
  ServicesBlock = "services-block",
31
31
  QuotesBlock = "quotes-block",
32
32
  ReportsBlock = "reports-block",
33
+ ReportsSectionsBlock = "reports-sections-block",
33
34
  FormWallBlock = "form-wall-block",
34
35
  LinkTableBlock = "link-table-block",
35
36
  EventsFeedBlock = "events-feed-block",
@@ -158,8 +159,13 @@ export interface HeaderStockSharesProps {
158
159
  }[];
159
160
  description?: string;
160
161
  }
162
+ export interface SwitchingTitleProps {
163
+ text: string;
164
+ switchingTime?: number;
165
+ }
161
166
  export interface HeaderBlockProps {
162
167
  title: string;
168
+ switchingTitle?: SwitchingTitleProps;
163
169
  topTags?: HeaderTag[];
164
170
  bottomTags?: HeaderTag[];
165
171
  overtitle?: string;
@@ -393,6 +399,20 @@ export interface ReportsBlockProps {
393
399
  typeKey: string;
394
400
  empty?: string;
395
401
  }
402
+ export interface ReportsSectionsItem {
403
+ title?: string;
404
+ files?: ReportFileType[];
405
+ }
406
+ export interface ReportsSectionsSection {
407
+ title?: string;
408
+ date?: string;
409
+ items?: ReportsSectionsItem[];
410
+ }
411
+ export interface ReportsSectionsBlockProps {
412
+ title?: TitleItemBaseProps | string;
413
+ typeKey: string;
414
+ empty?: string;
415
+ }
396
416
  export interface CardLayoutBlockProps extends Childable, Animatable, LoadableChildren {
397
417
  title?: TitleItemProps | string;
398
418
  titleClassName?: string;
@@ -587,6 +607,9 @@ export type QuotesBlockModel = {
587
607
  export type ReportsBlockModel = {
588
608
  type: BlockType.ReportsBlock;
589
609
  } & ReportsBlockProps;
610
+ export type ReportsSectionsBlockModel = {
611
+ type: BlockType.ReportsSectionsBlock;
612
+ } & ReportsSectionsBlockProps;
590
613
  export type LinkTableBlockModel = {
591
614
  type: BlockType.LinkTableBlock;
592
615
  } & LinkTableBlockProps;
@@ -611,7 +634,7 @@ export type FormWallBlockModel = {
611
634
  export type SliderNewBlockModel = {
612
635
  type: BlockType.SliderNewBlock;
613
636
  } & SliderNewProps;
614
- type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | HighlightTableBlockModel | TabsBlockModel | HeaderBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel | FormBlockModel | MarqueeLinksBlockModel | SolutionsBlockModel | ServicesBlockModel | QuotesBlockModel | ReportsBlockModel | LinkTableBlockModel | EventsFeedBlockModel | BlogFeedBlockModel | RelevantPostsBlockModel | PressReleasesBlockModel | FormWallBlockModel;
637
+ type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | HighlightTableBlockModel | TabsBlockModel | HeaderBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel | FormBlockModel | MarqueeLinksBlockModel | SolutionsBlockModel | ServicesBlockModel | QuotesBlockModel | ReportsBlockModel | ReportsSectionsBlockModel | LinkTableBlockModel | EventsFeedBlockModel | BlogFeedBlockModel | RelevantPostsBlockModel | PressReleasesBlockModel | FormWallBlockModel;
615
638
  type UnstableBlockModels = SliderNewBlockModel;
616
639
  export type Block = (BlockModels | UnstableBlockModels) & BlockBaseProps;
617
640
  export {};
@@ -27,6 +27,7 @@ var BlockType;
27
27
  BlockType["ServicesBlock"] = "services-block";
28
28
  BlockType["QuotesBlock"] = "quotes-block";
29
29
  BlockType["ReportsBlock"] = "reports-block";
30
+ BlockType["ReportsSectionsBlock"] = "reports-sections-block";
30
31
  BlockType["FormWallBlock"] = "form-wall-block";
31
32
  BlockType["LinkTableBlock"] = "link-table-block";
32
33
  BlockType["EventsFeedBlock"] = "events-feed-block";
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.constructorCardSchemaNames = exports.constructorBlockSchemaNames = exports.cardSchemas = exports.blockSchemas = void 0;
4
4
  const blocks_1 = require("./validators/blocks");
5
5
  const sub_blocks_1 = require("./validators/sub-blocks");
6
- exports.blockSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sub_blocks_1.Divider), blocks_1.ExtendedFeaturesBlock), blocks_1.PromoFeaturesBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), blocks_1.BannerBlock), blocks_1.CompaniesBlock), blocks_1.MediaBlock), blocks_1.MapBlock), blocks_1.InfoBlock), blocks_1.TableBlock), blocks_1.HighlightTableBlock), blocks_1.TabsBlock), blocks_1.HeaderSliderBlock), blocks_1.IconsBlock), blocks_1.CardLayoutBlock), blocks_1.ContentLayoutBlock), blocks_1.ShareBlock), blocks_1.FilterBlock), blocks_1.FormBlock), blocks_1.SliderNewBlock), blocks_1.MarqueeLinksBlock), blocks_1.SolutionsBlock), blocks_1.ServicesBlock), blocks_1.QuotesBlock), blocks_1.ReportsBlock), blocks_1.LinkTableBlock), blocks_1.EventsFeedBlock), blocks_1.BlogFeedBlock), blocks_1.RelevantPostsBlock), blocks_1.PressReleasesBlock), blocks_1.FormWallBlock);
6
+ exports.blockSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sub_blocks_1.Divider), blocks_1.ExtendedFeaturesBlock), blocks_1.PromoFeaturesBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), blocks_1.BannerBlock), blocks_1.CompaniesBlock), blocks_1.MediaBlock), blocks_1.MapBlock), blocks_1.InfoBlock), blocks_1.TableBlock), blocks_1.HighlightTableBlock), blocks_1.TabsBlock), blocks_1.HeaderSliderBlock), blocks_1.IconsBlock), blocks_1.CardLayoutBlock), blocks_1.ContentLayoutBlock), blocks_1.ShareBlock), blocks_1.FilterBlock), blocks_1.FormBlock), blocks_1.SliderNewBlock), blocks_1.MarqueeLinksBlock), blocks_1.SolutionsBlock), blocks_1.ServicesBlock), blocks_1.QuotesBlock), blocks_1.ReportsBlock), blocks_1.ReportsSectionsBlock), blocks_1.LinkTableBlock), blocks_1.EventsFeedBlock), blocks_1.BlogFeedBlock), blocks_1.RelevantPostsBlock), blocks_1.PressReleasesBlock), blocks_1.FormWallBlock);
7
7
  exports.cardSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sub_blocks_1.MediaCardBlock), blocks_1.BannerCard), sub_blocks_1.PriceDetailedBlock), sub_blocks_1.BackgroundCard), sub_blocks_1.Quote), sub_blocks_1.BasicCard), sub_blocks_1.PriceCardBlock), sub_blocks_1.ImageCard), sub_blocks_1.ContentLayoutCard), sub_blocks_1.Card), sub_blocks_1.PostCard), sub_blocks_1.FeedCard), sub_blocks_1.EventPersonCard), sub_blocks_1.AttachmentCard), sub_blocks_1.CaseStudyCard);
8
8
  exports.constructorBlockSchemaNames = [
9
9
  'divider',
@@ -38,6 +38,7 @@ exports.constructorBlockSchemaNames = [
38
38
  'services-block',
39
39
  'quotes-block',
40
40
  'reports-block',
41
+ 'reports-sections-block',
41
42
  'link-table-block',
42
43
  'events-feed-block',
43
44
  'blog-feed-block',