@doyourjob/gravity-ui-page-constructor 5.31.198 → 5.31.200

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 (74) hide show
  1. package/build/cjs/blocks/OnetrustCookieList/OnetrustCookieList.d.ts +2 -1
  2. package/build/cjs/blocks/OnetrustCookieList/OnetrustCookieList.js +3 -3
  3. package/build/cjs/blocks/PartnersFeed/PartnersFeed.d.ts +3 -0
  4. package/build/cjs/blocks/PartnersFeed/PartnersFeed.js +12 -0
  5. package/build/cjs/blocks/PartnersFeed/PartnersFeedSection/PartnersFeedSection.d.ts +4 -0
  6. package/build/cjs/blocks/PartnersFeed/PartnersFeedSection/PartnersFeedSection.js +33 -0
  7. package/build/cjs/blocks/PartnersFeed/schema.d.ts +18 -0
  8. package/build/cjs/blocks/PartnersFeed/schema.js +15 -0
  9. package/build/cjs/blocks/index.d.ts +1 -0
  10. package/build/cjs/blocks/index.js +4 -2
  11. package/build/cjs/components/Tag/Tag.css +2 -0
  12. package/build/cjs/components/Title/TitleItem.d.ts +1 -1
  13. package/build/cjs/constructor-items.d.ts +2 -1
  14. package/build/cjs/constructor-items.js +1 -0
  15. package/build/cjs/context/partnersContext/PartnersContext.d.ts +15 -0
  16. package/build/cjs/context/partnersContext/PartnersContext.js +6 -0
  17. package/build/cjs/context/partnersContext/index.d.ts +1 -0
  18. package/build/cjs/context/partnersContext/index.js +4 -0
  19. package/build/cjs/index.d.ts +1 -0
  20. package/build/cjs/index.js +1 -0
  21. package/build/cjs/models/constructor-items/blocks.d.ts +8 -2
  22. package/build/cjs/models/constructor-items/blocks.js +1 -0
  23. package/build/cjs/models/constructor-items/common.d.ts +2 -2
  24. package/build/cjs/models/constructor-items/sub-blocks.d.ts +8 -0
  25. package/build/cjs/schema/constants.js +2 -1
  26. package/build/cjs/schema/validators/blocks.d.ts +1 -0
  27. package/build/cjs/schema/validators/blocks.js +1 -0
  28. package/build/cjs/sub-blocks/FeedPartner/FeedPartner.css +53 -0
  29. package/build/cjs/sub-blocks/FeedPartner/FeedPartner.d.ts +3 -0
  30. package/build/cjs/sub-blocks/FeedPartner/FeedPartner.js +18 -0
  31. package/build/cjs/sub-blocks/FeedPartner/schema.d.ts +31 -0
  32. package/build/cjs/sub-blocks/FeedPartner/schema.js +24 -0
  33. package/build/cjs/sub-blocks/index.d.ts +1 -0
  34. package/build/cjs/sub-blocks/index.js +3 -1
  35. package/build/esm/blocks/OnetrustCookieList/OnetrustCookieList.d.ts +2 -1
  36. package/build/esm/blocks/OnetrustCookieList/OnetrustCookieList.js +3 -2
  37. package/build/esm/blocks/PartnersFeed/PartnersFeed.d.ts +3 -0
  38. package/build/esm/blocks/PartnersFeed/PartnersFeed.js +7 -0
  39. package/build/esm/blocks/PartnersFeed/PartnersFeedSection/PartnersFeedSection.d.ts +4 -0
  40. package/build/esm/blocks/PartnersFeed/PartnersFeedSection/PartnersFeedSection.js +28 -0
  41. package/build/esm/blocks/PartnersFeed/schema.d.ts +18 -0
  42. package/build/esm/blocks/PartnersFeed/schema.js +12 -0
  43. package/build/esm/blocks/index.d.ts +1 -0
  44. package/build/esm/blocks/index.js +1 -0
  45. package/build/esm/components/Tag/Tag.css +2 -0
  46. package/build/esm/components/Title/TitleItem.d.ts +1 -1
  47. package/build/esm/constructor-items.d.ts +2 -1
  48. package/build/esm/constructor-items.js +2 -1
  49. package/build/esm/context/partnersContext/PartnersContext.d.ts +15 -0
  50. package/build/esm/context/partnersContext/PartnersContext.js +2 -0
  51. package/build/esm/context/partnersContext/index.d.ts +1 -0
  52. package/build/esm/context/partnersContext/index.js +1 -0
  53. package/build/esm/index.d.ts +1 -0
  54. package/build/esm/index.js +1 -0
  55. package/build/esm/models/constructor-items/blocks.d.ts +8 -2
  56. package/build/esm/models/constructor-items/blocks.js +1 -0
  57. package/build/esm/models/constructor-items/common.d.ts +2 -2
  58. package/build/esm/models/constructor-items/sub-blocks.d.ts +8 -0
  59. package/build/esm/schema/constants.js +3 -2
  60. package/build/esm/schema/validators/blocks.d.ts +1 -0
  61. package/build/esm/schema/validators/blocks.js +1 -0
  62. package/build/esm/sub-blocks/FeedPartner/FeedPartner.css +53 -0
  63. package/build/esm/sub-blocks/FeedPartner/FeedPartner.d.ts +4 -0
  64. package/build/esm/sub-blocks/FeedPartner/FeedPartner.js +16 -0
  65. package/build/esm/sub-blocks/FeedPartner/schema.d.ts +31 -0
  66. package/build/esm/sub-blocks/FeedPartner/schema.js +21 -0
  67. package/build/esm/sub-blocks/index.d.ts +1 -0
  68. package/build/esm/sub-blocks/index.js +1 -0
  69. package/package.json +1 -1
  70. package/schema/index.js +1 -1
  71. package/server/models/constructor-items/blocks.d.ts +8 -2
  72. package/server/models/constructor-items/blocks.js +1 -0
  73. package/server/models/constructor-items/common.d.ts +2 -2
  74. package/server/models/constructor-items/sub-blocks.d.ts +8 -0
@@ -1,2 +1,3 @@
1
- export declare const OnetrustCookieList: () => JSX.Element;
1
+ import React from 'react';
2
+ export declare const OnetrustCookieList: React.MemoExoticComponent<() => JSX.Element>;
2
3
  export default OnetrustCookieList;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OnetrustCookieList = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const OnetrustCookieList = () => {
6
+ exports.OnetrustCookieList = react_1.default.memo(() => {
7
7
  return react_1.default.createElement("div", { id: "ot-sdk-cookie-policy" });
8
- };
9
- exports.OnetrustCookieList = OnetrustCookieList;
8
+ }, () => true);
9
+ exports.OnetrustCookieList.displayName = 'OnetrustCookieList';
10
10
  exports.default = exports.OnetrustCookieList;
@@ -0,0 +1,3 @@
1
+ import { EventsFeedBlockProps } from '../../models';
2
+ export declare const PartnersFeedBlock: ({ image, title }: EventsFeedBlockProps) => JSX.Element;
3
+ export default PartnersFeedBlock;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PartnersFeedBlock = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const FeedHeader_1 = tslib_1.__importDefault(require("../../components/FeedHeader/FeedHeader"));
7
+ const PartnersFeedSection_1 = tslib_1.__importDefault(require("./PartnersFeedSection/PartnersFeedSection"));
8
+ const PartnersFeedBlock = ({ image, title }) => (react_1.default.createElement(react_1.default.Fragment, null,
9
+ react_1.default.createElement(FeedHeader_1.default, { image: image, title: title }),
10
+ react_1.default.createElement(PartnersFeedSection_1.default, null)));
11
+ exports.PartnersFeedBlock = PartnersFeedBlock;
12
+ exports.default = exports.PartnersFeedBlock;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare const PartnersFeedSection: () => JSX.Element | null;
3
+ declare const _default: React.MemoExoticComponent<() => JSX.Element | null>;
4
+ export default _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PartnersFeedSection = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const __1 = require("../..");
7
+ const components_1 = require("../../../components");
8
+ const partnersContext_1 = require("../../../context/partnersContext");
9
+ const sub_blocks_1 = require("../../../sub-blocks");
10
+ const colSizes = {
11
+ lg: 4,
12
+ md: 6,
13
+ all: 12,
14
+ };
15
+ const PartnersFeedSection = () => {
16
+ const data = (0, react_1.useContext)(partnersContext_1.PartnersContext);
17
+ const { items = [], page, pageSize, onLoadMore } = data || {};
18
+ const hasInfiniteScroll = page !== undefined && pageSize !== undefined;
19
+ const itemsToShow = (0, react_1.useMemo)(() => {
20
+ if (!hasInfiniteScroll) {
21
+ return items;
22
+ }
23
+ return items.slice(0, page * pageSize);
24
+ }, [items, page, pageSize, hasInfiniteScroll]);
25
+ if (!items || items.length === 0) {
26
+ return null;
27
+ }
28
+ return (react_1.default.createElement("div", null,
29
+ react_1.default.createElement(__1.CardLayoutBlock, { colSizes: colSizes }, itemsToShow.map((item) => (react_1.default.createElement(sub_blocks_1.FeedPartner, Object.assign({ key: item.url }, item, { jumpOnHover: true }))))),
30
+ hasInfiniteScroll && (react_1.default.createElement(components_1.InfiniteScroll, { hasMore: page < Math.ceil(items.length / pageSize), onNext: onLoadMore }))));
31
+ };
32
+ exports.PartnersFeedSection = PartnersFeedSection;
33
+ exports.default = react_1.default.memo(exports.PartnersFeedSection);
@@ -0,0 +1,18 @@
1
+ export declare const PartnersFeedBlock: {
2
+ 'partners-feed-block': {
3
+ additionalProperties: boolean;
4
+ required: never[];
5
+ properties: {
6
+ title: {
7
+ type: string;
8
+ };
9
+ image: {
10
+ type: string;
11
+ };
12
+ type: {};
13
+ when: {
14
+ type: string;
15
+ };
16
+ };
17
+ };
18
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PartnersFeedBlock = void 0;
4
+ const common_1 = require("./../../schema/validators/common");
5
+ exports.PartnersFeedBlock = {
6
+ 'partners-feed-block': {
7
+ additionalProperties: false,
8
+ required: [],
9
+ properties: Object.assign(Object.assign({}, common_1.BaseProps), { title: {
10
+ type: 'string',
11
+ }, image: {
12
+ type: 'string',
13
+ } }),
14
+ },
15
+ };
@@ -39,6 +39,7 @@ export { default as ReportsSectionsBlock } from './ReportsSections/ReportsSectio
39
39
  export { default as FormWallBlock } from './FormWallBlock/FormWallBlock';
40
40
  export { default as LinkTableBlock } from './LinkTable/LinkTable';
41
41
  export { default as EventsFeedBlock } from './EventsFeed/EventsFeed';
42
+ export { default as PartnersFeedBlock } from './PartnersFeed/PartnersFeed';
42
43
  export { default as ResourceHubPostsBlock } from './ResourceHubPosts/ResourceHubPosts';
43
44
  export { default as EventsSectionBlock } from './EventsSection/EventsSection';
44
45
  export { default as BlogFeedBlock } from './BlogFeed/BlogFeed';
@@ -3,8 +3,8 @@ 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.RelevantReportsBlock = exports.RelevantReportsCardsBlock = exports.RelevantPostsBlock = exports.ScienceFeedBlock = exports.BlogFeedBlock = exports.EventsSectionBlock = exports.ResourceHubPostsBlock = exports.EventsFeedBlock = exports.LinkTableBlock = exports.FormWallBlock = exports.ReportsSectionsBlock = exports.ReportsCardsBlock = exports.AboutHeaderBlock = exports.ScienceHeaderBlock = exports.ReportsBlock = exports.QuotesBlock = exports.ServicesBlock = exports.SolutionsBlock = exports.MarqueeLinksBlock = exports.FormBlock = exports.FilterCardLayoutBlock = exports.FilterBlock = exports.ShareBlock = exports.BannerMinifyBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderMinifyBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.ScrollerBlock = exports.BenefitsBlock = exports.AdvantagesBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderNewBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.LogoRotatorBlock = exports.BannerBlock = void 0;
7
- exports.ScienceSuggestBlock = exports.OnetrustCookieListBlock = exports.AudioBlock = exports.CatBlock = exports.SidebarWidgetBlock = exports.BenchmarkBlock = exports.MiniCaseBlock = void 0;
6
+ exports.PressReleasesBlock = exports.RelevantReportsBlock = exports.RelevantReportsCardsBlock = exports.RelevantPostsBlock = exports.ScienceFeedBlock = exports.BlogFeedBlock = exports.EventsSectionBlock = exports.ResourceHubPostsBlock = exports.PartnersFeedBlock = exports.EventsFeedBlock = exports.LinkTableBlock = exports.FormWallBlock = exports.ReportsSectionsBlock = exports.ReportsCardsBlock = exports.AboutHeaderBlock = exports.ScienceHeaderBlock = exports.ReportsBlock = exports.QuotesBlock = exports.ServicesBlock = exports.SolutionsBlock = exports.MarqueeLinksBlock = exports.FormBlock = exports.FilterCardLayoutBlock = exports.FilterBlock = exports.ShareBlock = exports.BannerMinifyBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderMinifyBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.ScrollerBlock = exports.BenefitsBlock = exports.AdvantagesBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderNewBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.LogoRotatorBlock = exports.BannerBlock = void 0;
7
+ exports.ScienceSuggestBlock = exports.OnetrustCookieListBlock = exports.AudioBlock = exports.CatBlock = exports.SidebarWidgetBlock = exports.BenchmarkBlock = exports.MiniCaseBlock = exports.HighlightTableBlock = void 0;
8
8
  var Banner_1 = require("./Banner/Banner");
9
9
  Object.defineProperty(exports, "BannerBlock", { enumerable: true, get: function () { return __importDefault(Banner_1).default; } });
10
10
  var LogoRotator_1 = require("./LogoRotator/LogoRotator");
@@ -87,6 +87,8 @@ var LinkTable_1 = require("./LinkTable/LinkTable");
87
87
  Object.defineProperty(exports, "LinkTableBlock", { enumerable: true, get: function () { return __importDefault(LinkTable_1).default; } });
88
88
  var EventsFeed_1 = require("./EventsFeed/EventsFeed");
89
89
  Object.defineProperty(exports, "EventsFeedBlock", { enumerable: true, get: function () { return __importDefault(EventsFeed_1).default; } });
90
+ var PartnersFeed_1 = require("./PartnersFeed/PartnersFeed");
91
+ Object.defineProperty(exports, "PartnersFeedBlock", { enumerable: true, get: function () { return __importDefault(PartnersFeed_1).default; } });
90
92
  var ResourceHubPosts_1 = require("./ResourceHubPosts/ResourceHubPosts");
91
93
  Object.defineProperty(exports, "ResourceHubPostsBlock", { enumerable: true, get: function () { return __importDefault(ResourceHubPosts_1).default; } });
92
94
  var EventsSection_1 = require("./EventsSection/EventsSection");
@@ -8,4 +8,6 @@ unpredictable css rules order in build */
8
8
  border-radius: 20px;
9
9
  padding: 2px 12px;
10
10
  align-self: flex-start;
11
+ background-color: var(--pc-tag-background-color);
12
+ color: var(--pc-tag-text-color);
11
13
  }
@@ -1,5 +1,5 @@
1
1
  import { QAProps, TitleItemProps, TitleTextSize } from '../../models';
2
- export declare function getArrowSize(size: TitleTextSize, isMobile: boolean): 16 | 13 | 22 | 24 | 26 | 38 | 20;
2
+ export declare function getArrowSize(size: TitleTextSize, isMobile: boolean): 16 | 20 | 24 | 13 | 22 | 26 | 38;
3
3
  export interface TitleItemFullProps extends TitleItemProps, QAProps {
4
4
  className?: string;
5
5
  onClick?: () => void;
@@ -30,6 +30,7 @@ export declare const blockMap: {
30
30
  "marquee-links-block": ({ animated, title, description, textAlign, speed, items, }: import("./models").MarqueeLinksBlockProps) => JSX.Element | null;
31
31
  "solutions-block": ({ animated }: import("./models").SolutionsBlockProps) => JSX.Element;
32
32
  "events-feed-block": ({ image, title }: import("./models").EventsFeedBlockProps) => JSX.Element;
33
+ "partners-feed-block": ({ image, title }: import("./models").EventsFeedBlockProps) => JSX.Element;
33
34
  "resource-hub-posts-block": ({ image, title }: import("./models").ResourceHubPostsBlockProps) => JSX.Element;
34
35
  "benchmark-block": import("react").FC<import("./models").BenchmarkBlockProps>;
35
36
  "events-section-block": ({ typeKey, title, label, empty }: import("./models").EventsSectionBlockProps) => JSX.Element;
@@ -55,7 +56,7 @@ export declare const blockMap: {
55
56
  "slider-new-block": (props: import("react").PropsWithChildren<import("./blocks/SliderNew/SliderClient").SliderNewProps>) => JSX.Element;
56
57
  "cat-block": ({ title, children }: import("react").PropsWithChildren<import("./models").CatBlockProps>) => JSX.Element;
57
58
  "audio-block": ({ url }: import("react").PropsWithChildren<import("./models").AudioBlockProps>) => JSX.Element;
58
- "onetrust-cookie-list": () => JSX.Element;
59
+ "onetrust-cookie-list": import("react").MemoExoticComponent<() => JSX.Element>;
59
60
  };
60
61
  export declare const subBlockMap: {
61
62
  divider: ({ size, border }: import("./models").DividerProps) => JSX.Element;
@@ -39,6 +39,7 @@ exports.blockMap = {
39
39
  [models_1.BlockType.MarqueeLinksBlock]: blocks_1.MarqueeLinksBlock,
40
40
  [models_1.BlockType.SolutionsBlock]: blocks_1.SolutionsBlock,
41
41
  [models_1.BlockType.EventsFeedBlock]: blocks_1.EventsFeedBlock,
42
+ [models_1.BlockType.PartnersFeedBlock]: blocks_1.PartnersFeedBlock,
42
43
  [models_1.BlockType.ResourceHubPostsBlock]: blocks_1.ResourceHubPostsBlock,
43
44
  [models_1.BlockType.BenchmarkBlock]: blocks_1.BenchmarkBlock,
44
45
  [models_1.BlockType.EventsSectionBlock]: blocks_1.EventsSectionBlock,
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export type PartnerData = {
3
+ url: string;
4
+ title?: string;
5
+ subtitle?: string;
6
+ tags?: string[];
7
+ image?: string;
8
+ };
9
+ export type PartnersContextProps = {
10
+ items?: PartnerData[];
11
+ page?: number;
12
+ pageSize?: number;
13
+ onLoadMore?: () => void;
14
+ };
15
+ export declare const PartnersContext: React.Context<PartnersContextProps>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PartnersContext = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ exports.PartnersContext = react_1.default.createContext({});
@@ -0,0 +1 @@
1
+ export * from './PartnersContext';
@@ -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("./PartnersContext"), exports);
@@ -6,6 +6,7 @@ export * from './context/formListContext';
6
6
  export * from './context/routerContext';
7
7
  export * from './context/feedHeaderContext';
8
8
  export * from './context/eventsContext';
9
+ export * from './context/partnersContext';
9
10
  export * from './context/blogPostsContext';
10
11
  export * from './context/sciencePostsContext';
11
12
  export * from './context/pressReleasesContext';
@@ -11,6 +11,7 @@ tslib_1.__exportStar(require("./context/formListContext"), exports);
11
11
  tslib_1.__exportStar(require("./context/routerContext"), exports);
12
12
  tslib_1.__exportStar(require("./context/feedHeaderContext"), exports);
13
13
  tslib_1.__exportStar(require("./context/eventsContext"), exports);
14
+ tslib_1.__exportStar(require("./context/partnersContext"), exports);
14
15
  tslib_1.__exportStar(require("./context/blogPostsContext"), exports);
15
16
  tslib_1.__exportStar(require("./context/sciencePostsContext"), exports);
16
17
  tslib_1.__exportStar(require("./context/pressReleasesContext"), exports);
@@ -63,7 +63,8 @@ export declare enum BlockType {
63
63
  CatBlock = "cat-block",
64
64
  AudioBlock = "audio-block",
65
65
  OnetrustCookieListBlock = "onetrust-cookie-list",
66
- ScienceSuggestBlock = "science-suggest-block"
66
+ ScienceSuggestBlock = "science-suggest-block",
67
+ PartnersFeedBlock = "partners-feed-block"
67
68
  }
68
69
  export declare const BlockTypes: BlockType[];
69
70
  export declare const HeaderBlockTypes: BlockType[];
@@ -495,6 +496,8 @@ export interface BaseFeedProps {
495
496
  }
496
497
  export interface EventsFeedBlockProps extends BaseFeedProps {
497
498
  }
499
+ export interface PartnersFeedBlockProps extends BaseFeedProps {
500
+ }
498
501
  export interface ResourceHubPostsBlockProps extends BaseFeedProps {
499
502
  }
500
503
  export interface EventsSectionBlockProps {
@@ -921,6 +924,9 @@ export type ServicesBlockModel = {
921
924
  export type EventsFeedBlockModel = {
922
925
  type: BlockType.EventsFeedBlock;
923
926
  } & EventsFeedBlockProps;
927
+ export type PartnersFeedBlockModel = {
928
+ type: BlockType.PartnersFeedBlock;
929
+ } & PartnersFeedBlockProps;
924
930
  export type ResourceHubPostsBlockModel = {
925
931
  type: BlockType.ResourceHubPostsBlock;
926
932
  } & ResourceHubPostsBlockProps;
@@ -957,6 +963,6 @@ export type SliderNewBlockModel = {
957
963
  export type SidebarWidgetBlockModel = {
958
964
  type: BlockType.SidebarWidgetBlock;
959
965
  } & SidebarWidgetBlockProps;
960
- type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | LogoRotatorBlockModel | AdvantagesBlockModel | BenefitsBlockModel | ScrollerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | HighlightTableBlockModel | MiniCaseBlockModel | TabsBlockModel | TabsHighlightTableBlockModel | TabLinksBlockModel | HeaderBlockModel | HeaderMinifyBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | BannerMinifyBlockModel | ShareBLockModel | FilterBlockModel | FilterCardLayoutBlockModel | FormBlockModel | MarqueeLinksBlockModel | SolutionsBlockModel | ServicesBlockModel | QuotesBlockModel | ReportsBlockModel | ScienceHeaderBlockModel | AboutHeaderBlockModel | ReportsCardsBlockModel | ReportsSectionsBlockModel | LinkTableBlockModel | EventsFeedBlockModel | ResourceHubPostsBlockModel | BenchmarkBlockModel | EventsSectionBlockModel | BlogFeedBlockModel | ScienceFeedBlockModel | RelevantPostsBlockModel | RelevantReportsCardsBlockModel | RelevantReportsBlockModel | PressReleasesBlockModel | FormWallBlockModel | SliderNewBlockModel | SidebarWidgetBlockModel | CatBlockModel | AudioBlockModel | OnetrustCookieListModel | ScienceSuggestBlockModel;
966
+ type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | LogoRotatorBlockModel | AdvantagesBlockModel | BenefitsBlockModel | ScrollerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | HighlightTableBlockModel | MiniCaseBlockModel | TabsBlockModel | TabsHighlightTableBlockModel | TabLinksBlockModel | HeaderBlockModel | HeaderMinifyBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | BannerMinifyBlockModel | ShareBLockModel | FilterBlockModel | FilterCardLayoutBlockModel | FormBlockModel | MarqueeLinksBlockModel | SolutionsBlockModel | ServicesBlockModel | QuotesBlockModel | ReportsBlockModel | ScienceHeaderBlockModel | AboutHeaderBlockModel | ReportsCardsBlockModel | ReportsSectionsBlockModel | LinkTableBlockModel | EventsFeedBlockModel | PartnersFeedBlockModel | ResourceHubPostsBlockModel | BenchmarkBlockModel | EventsSectionBlockModel | BlogFeedBlockModel | ScienceFeedBlockModel | RelevantPostsBlockModel | RelevantReportsCardsBlockModel | RelevantReportsBlockModel | PressReleasesBlockModel | FormWallBlockModel | SliderNewBlockModel | SidebarWidgetBlockModel | CatBlockModel | AudioBlockModel | OnetrustCookieListModel | ScienceSuggestBlockModel;
961
967
  export type Block = BlockModels & BlockBaseProps;
962
968
  export {};
@@ -60,6 +60,7 @@ var BlockType;
60
60
  BlockType["AudioBlock"] = "audio-block";
61
61
  BlockType["OnetrustCookieListBlock"] = "onetrust-cookie-list";
62
62
  BlockType["ScienceSuggestBlock"] = "science-suggest-block";
63
+ BlockType["PartnersFeedBlock"] = "partners-feed-block";
63
64
  })(BlockType = exports.BlockType || (exports.BlockType = {}));
64
65
  exports.BlockTypes = Object.values(BlockType);
65
66
  exports.HeaderBlockTypes = [
@@ -385,8 +385,8 @@ export interface ServiceLabelProps {
385
385
  }
386
386
  export interface TagProps {
387
387
  text: string;
388
- backgroundColor: string;
389
- textColor: string;
388
+ backgroundColor?: string;
389
+ textColor?: string;
390
390
  }
391
391
  export interface ReportFileType {
392
392
  name: string;
@@ -184,6 +184,14 @@ export interface LayoutItemProps extends ClassNameProps, CardLayoutProps, Analyt
184
184
  background?: ThemeSupporting<ImageObjectProps>;
185
185
  paddingBottom?: 's' | 'm' | 'l' | 'xl';
186
186
  }
187
+ export interface FeedPartnerProps extends ClassNameProps {
188
+ url: string;
189
+ image?: string;
190
+ title?: string;
191
+ subtitle?: string;
192
+ tags?: string[];
193
+ jumpOnHover?: boolean;
194
+ }
187
195
  export interface ImageCardProps extends CardBaseProps, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'controlPosition'> {
188
196
  image: ThemeSupporting<ImageProps>;
189
197
  hoverImage: ThemeSupporting<ImageProps>;
@@ -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(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.AdvantagesBlock), blocks_1.BenefitsBlock), blocks_1.ScrollerBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), blocks_1.HeaderMinifyBlock), blocks_1.BannerBlock), blocks_1.LogoRotatorBlock), blocks_1.CompaniesBlock), blocks_1.MediaBlock), blocks_1.MapBlock), blocks_1.InfoBlock), blocks_1.TableBlock), blocks_1.HighlightTableBlock), blocks_1.MiniCaseBlock), blocks_1.TabsBlock), blocks_1.TabsHighlightTableBlock), blocks_1.TabLinksBlock), blocks_1.HeaderSliderBlock), blocks_1.IconsBlock), blocks_1.CardLayoutBlock), blocks_1.ContentLayoutBlock), blocks_1.BannerMinifyBlock), blocks_1.ShareBlock), blocks_1.FilterBlock), blocks_1.FilterCardLayoutBlock), blocks_1.FormBlock), blocks_1.SliderNewBlock), blocks_1.MarqueeLinksBlock), blocks_1.SolutionsBlock), blocks_1.ServicesBlock), blocks_1.QuotesBlock), blocks_1.ReportsBlock), blocks_1.ScienceHeaderBlock), blocks_1.AboutHeaderBlock), blocks_1.SidebarWidgetBlock), blocks_1.ReportsCardsBlock), blocks_1.ReportsSectionsBlock), blocks_1.LinkTableBlock), blocks_1.EventsFeedBlock), blocks_1.ResourceHubPostsBlock), blocks_1.BenchmarkBlock), blocks_1.EventsSectionBlock), blocks_1.BlogFeedBlock), blocks_1.ScienceFeedBlock), blocks_1.RelevantPostsBlock), blocks_1.RelevantReportsCardsBlock), blocks_1.RelevantReportsBlock), blocks_1.PressReleasesBlock), blocks_1.FormWallBlock), blocks_1.CatBlock), blocks_1.AudioBlock), blocks_1.OnetrustCookieListBlock), blocks_1.ScienceSuggestBlock);
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(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.AdvantagesBlock), blocks_1.BenefitsBlock), blocks_1.ScrollerBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), blocks_1.HeaderMinifyBlock), blocks_1.BannerBlock), blocks_1.LogoRotatorBlock), blocks_1.CompaniesBlock), blocks_1.MediaBlock), blocks_1.MapBlock), blocks_1.InfoBlock), blocks_1.TableBlock), blocks_1.HighlightTableBlock), blocks_1.MiniCaseBlock), blocks_1.TabsBlock), blocks_1.TabsHighlightTableBlock), blocks_1.TabLinksBlock), blocks_1.HeaderSliderBlock), blocks_1.IconsBlock), blocks_1.CardLayoutBlock), blocks_1.ContentLayoutBlock), blocks_1.BannerMinifyBlock), blocks_1.ShareBlock), blocks_1.FilterBlock), blocks_1.FilterCardLayoutBlock), blocks_1.FormBlock), blocks_1.SliderNewBlock), blocks_1.MarqueeLinksBlock), blocks_1.SolutionsBlock), blocks_1.ServicesBlock), blocks_1.QuotesBlock), blocks_1.ReportsBlock), blocks_1.ScienceHeaderBlock), blocks_1.AboutHeaderBlock), blocks_1.SidebarWidgetBlock), blocks_1.ReportsCardsBlock), blocks_1.ReportsSectionsBlock), blocks_1.LinkTableBlock), blocks_1.EventsFeedBlock), blocks_1.PartnersFeedBlock), blocks_1.ResourceHubPostsBlock), blocks_1.BenchmarkBlock), blocks_1.EventsSectionBlock), blocks_1.BlogFeedBlock), blocks_1.ScienceFeedBlock), blocks_1.RelevantPostsBlock), blocks_1.RelevantReportsCardsBlock), blocks_1.RelevantReportsBlock), blocks_1.PressReleasesBlock), blocks_1.FormWallBlock), blocks_1.CatBlock), blocks_1.AudioBlock), blocks_1.OnetrustCookieListBlock), blocks_1.ScienceSuggestBlock);
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(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.NewPostCard), sub_blocks_1.FeedCard), sub_blocks_1.EventPersonCard), sub_blocks_1.AttachmentCard), sub_blocks_1.CaseStudyCard), sub_blocks_1.StoryCard);
8
8
  exports.constructorBlockSchemaNames = [
9
9
  'divider',
@@ -68,6 +68,7 @@ exports.constructorBlockSchemaNames = [
68
68
  'audio-block',
69
69
  'science-suggest-block',
70
70
  'onetrust-cookie-list',
71
+ 'partners-feed-block',
71
72
  ];
72
73
  exports.constructorCardSchemaNames = [
73
74
  'media-card',
@@ -34,6 +34,7 @@ export * from '../../blocks/ReportsCards/schema';
34
34
  export * from '../../blocks/ReportsSections/schema';
35
35
  export * from '../../blocks/LinkTable/schema';
36
36
  export * from '../../blocks/EventsFeed/schema';
37
+ export * from '../../blocks/PartnersFeed/schema';
37
38
  export * from '../../blocks/ResourceHubPosts/schema';
38
39
  export * from '../../blocks/EventsSection/schema';
39
40
  export * from '../../blocks/BlogFeed/schema';
@@ -37,6 +37,7 @@ tslib_1.__exportStar(require("../../blocks/ReportsCards/schema"), exports);
37
37
  tslib_1.__exportStar(require("../../blocks/ReportsSections/schema"), exports);
38
38
  tslib_1.__exportStar(require("../../blocks/LinkTable/schema"), exports);
39
39
  tslib_1.__exportStar(require("../../blocks/EventsFeed/schema"), exports);
40
+ tslib_1.__exportStar(require("../../blocks/PartnersFeed/schema"), exports);
40
41
  tslib_1.__exportStar(require("../../blocks/ResourceHubPosts/schema"), exports);
41
42
  tslib_1.__exportStar(require("../../blocks/EventsSection/schema"), exports);
42
43
  tslib_1.__exportStar(require("../../blocks/BlogFeed/schema"), exports);
@@ -0,0 +1,53 @@
1
+ .pc-feed-partner_border_shadow {
2
+ box-shadow: 0px 4px 24px var(--pc-color-sfx-shadow), 0px 2px 8px var(--pc-color-sfx-shadow);
3
+ }
4
+
5
+ /* use this for style redefinitions to awoid problems with
6
+ unpredictable css rules order in build */
7
+ .pc-feed-partner {
8
+ border-radius: var(--pc-border-radius);
9
+ background-color: var(--g-color-base-float);
10
+ padding: 16px;
11
+ gap: 16px;
12
+ transition: box-shadow 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
13
+ display: flex;
14
+ flex-direction: column;
15
+ height: 100%;
16
+ width: 100%;
17
+ --pc-tag-background-color: var(--g-color-base-brand);
18
+ --pc-tag-text-color: var(--g-color-base-background);
19
+ }
20
+ .pc-feed-partner_border_line {
21
+ border: 1px solid var(--g-color-line-generic);
22
+ }
23
+ .pc-feed-partner__image {
24
+ width: 64px;
25
+ height: 64px;
26
+ }
27
+ .pc-feed-partner__wrap {
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: 8px;
31
+ }
32
+ .pc-feed-partner__tags {
33
+ display: flex;
34
+ flex-wrap: wrap;
35
+ gap: 4px;
36
+ }
37
+ .pc-feed-partner_jumpOnHover {
38
+ transition: transform 0.3s ease-out;
39
+ }
40
+ .pc-feed-partner_jumpOnHover:hover {
41
+ transform: translateY(-8px);
42
+ }
43
+ .pc-feed-partner__title {
44
+ font-size: var(--g-text-header-2-font-size, var(--pc-text-header-2-font-size));
45
+ line-height: var(--g-text-header-2-line-height, var(--pc-text-header-2-line-height));
46
+ color: var(--g-color-text-primary);
47
+ font-weight: bold;
48
+ }
49
+ .pc-feed-partner__subtitle {
50
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
51
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
52
+ color: var(--g-color-text-secondary);
53
+ }
@@ -0,0 +1,3 @@
1
+ import { FeedPartnerProps } from '../../models';
2
+ declare const FeedPartner: ({ url, image, title, subtitle, className, tags, jumpOnHover, }: FeedPartnerProps) => JSX.Element;
3
+ export default FeedPartner;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const uikit_1 = require("@gravity-ui/uikit");
6
+ const components_1 = require("../../components");
7
+ const utils_1 = require("../../utils");
8
+ const b = (0, utils_1.block)('feed-partner');
9
+ const FeedPartner = ({ url, image, title, subtitle, className, tags, jumpOnHover, }) => {
10
+ return (react_1.default.createElement(components_1.RouterLink, { href: url },
11
+ react_1.default.createElement(uikit_1.Link, { href: url, className: b({ jumpOnHover, border: 'line' }, className) },
12
+ image && react_1.default.createElement(components_1.Image, { className: b('image'), src: image, alt: "logo" }),
13
+ react_1.default.createElement("div", { className: b('wrap') },
14
+ title && react_1.default.createElement("div", { className: b('title') }, title),
15
+ subtitle && react_1.default.createElement("div", { className: b('subtitle') }, subtitle)),
16
+ tags && (react_1.default.createElement("div", { className: b('tags') }, tags.map((item, index) => (react_1.default.createElement(components_1.Tag, { key: index, text: item }))))))));
17
+ };
18
+ exports.default = FeedPartner;
@@ -0,0 +1,31 @@
1
+ export declare const FeedPartner: {
2
+ type: string;
3
+ additionalProperties: boolean;
4
+ properties: {
5
+ url: {
6
+ type: string;
7
+ };
8
+ image: {
9
+ type: string;
10
+ };
11
+ title: {
12
+ type: string;
13
+ };
14
+ subtitle: {
15
+ type: string;
16
+ };
17
+ tags: {
18
+ type: string;
19
+ items: {
20
+ type: string;
21
+ };
22
+ };
23
+ jumpOnHover: {
24
+ type: string;
25
+ };
26
+ type: {};
27
+ when: {
28
+ type: string;
29
+ };
30
+ };
31
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FeedPartner = void 0;
4
+ const common_1 = require("../../schema/validators/common");
5
+ exports.FeedPartner = {
6
+ type: 'object',
7
+ additionalProperties: false,
8
+ properties: Object.assign(Object.assign({}, common_1.BaseProps), { url: {
9
+ type: 'string',
10
+ }, image: {
11
+ type: 'string',
12
+ }, title: {
13
+ type: 'string',
14
+ }, subtitle: {
15
+ type: 'string',
16
+ }, tags: {
17
+ type: 'array',
18
+ items: {
19
+ type: 'string',
20
+ },
21
+ }, jumpOnHover: {
22
+ type: 'boolean',
23
+ } }),
24
+ };
@@ -19,3 +19,4 @@ export { default as EventPersonCard } from './EventPersonCard/EventPersonCard';
19
19
  export { default as AttachmentCard } from './AttachmentCard/AttachmentCard';
20
20
  export { default as CaseStudyCard } from './CaseStudyCard/CaseStudyCard';
21
21
  export { default as StoryCard } from './StoryCard/StoryCard';
22
+ export { default as FeedPartner } from './FeedPartner/FeedPartner';
@@ -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.StoryCard = exports.CaseStudyCard = exports.AttachmentCard = exports.EventPersonCard = exports.FeedCard = exports.NewPostCard = exports.PostCard = exports.Card = exports.ContentLayoutCard = exports.ImageCard = exports.PriceCard = exports.HubspotForm = exports.Content = exports.BasicCard = exports.BackgroundCard = exports.LayoutItem = exports.BannerCard = exports.MediaCard = exports.PriceDetailed = exports.Quote = exports.Divider = void 0;
6
+ exports.FeedPartner = exports.StoryCard = exports.CaseStudyCard = exports.AttachmentCard = exports.EventPersonCard = exports.FeedCard = exports.NewPostCard = exports.PostCard = exports.Card = exports.ContentLayoutCard = exports.ImageCard = exports.PriceCard = exports.HubspotForm = exports.Content = exports.BasicCard = exports.BackgroundCard = exports.LayoutItem = exports.BannerCard = exports.MediaCard = exports.PriceDetailed = exports.Quote = exports.Divider = void 0;
7
7
  var Divider_1 = require("./Divider/Divider");
8
8
  Object.defineProperty(exports, "Divider", { enumerable: true, get: function () { return __importDefault(Divider_1).default; } });
9
9
  var Quote_1 = require("./Quote/Quote");
@@ -46,3 +46,5 @@ var CaseStudyCard_1 = require("./CaseStudyCard/CaseStudyCard");
46
46
  Object.defineProperty(exports, "CaseStudyCard", { enumerable: true, get: function () { return __importDefault(CaseStudyCard_1).default; } });
47
47
  var StoryCard_1 = require("./StoryCard/StoryCard");
48
48
  Object.defineProperty(exports, "StoryCard", { enumerable: true, get: function () { return __importDefault(StoryCard_1).default; } });
49
+ var FeedPartner_1 = require("./FeedPartner/FeedPartner");
50
+ Object.defineProperty(exports, "FeedPartner", { enumerable: true, get: function () { return __importDefault(FeedPartner_1).default; } });
@@ -1,2 +1,3 @@
1
- export declare const OnetrustCookieList: () => JSX.Element;
1
+ import React from 'react';
2
+ export declare const OnetrustCookieList: React.MemoExoticComponent<() => JSX.Element>;
2
3
  export default OnetrustCookieList;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- export const OnetrustCookieList = () => {
2
+ export const OnetrustCookieList = React.memo(() => {
3
3
  return React.createElement("div", { id: "ot-sdk-cookie-policy" });
4
- };
4
+ }, () => true);
5
+ OnetrustCookieList.displayName = 'OnetrustCookieList';
5
6
  export default OnetrustCookieList;
@@ -0,0 +1,3 @@
1
+ import { EventsFeedBlockProps } from '../../models';
2
+ export declare const PartnersFeedBlock: ({ image, title }: EventsFeedBlockProps) => JSX.Element;
3
+ export default PartnersFeedBlock;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import FeedHeader from '../../components/FeedHeader/FeedHeader';
3
+ import PartnersFeedSection from './PartnersFeedSection/PartnersFeedSection';
4
+ export const PartnersFeedBlock = ({ image, title }) => (React.createElement(React.Fragment, null,
5
+ React.createElement(FeedHeader, { image: image, title: title }),
6
+ React.createElement(PartnersFeedSection, null)));
7
+ export default PartnersFeedBlock;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare const PartnersFeedSection: () => JSX.Element | null;
3
+ declare const _default: React.MemoExoticComponent<() => JSX.Element | null>;
4
+ export default _default;
@@ -0,0 +1,28 @@
1
+ import React, { useContext, useMemo } from 'react';
2
+ import { CardLayoutBlock } from '../..';
3
+ import { InfiniteScroll } from '../../../components';
4
+ import { PartnersContext } from '../../../context/partnersContext';
5
+ import { FeedPartner } from '../../../sub-blocks';
6
+ const colSizes = {
7
+ lg: 4,
8
+ md: 6,
9
+ all: 12,
10
+ };
11
+ export const PartnersFeedSection = () => {
12
+ const data = useContext(PartnersContext);
13
+ const { items = [], page, pageSize, onLoadMore } = data || {};
14
+ const hasInfiniteScroll = page !== undefined && pageSize !== undefined;
15
+ const itemsToShow = useMemo(() => {
16
+ if (!hasInfiniteScroll) {
17
+ return items;
18
+ }
19
+ return items.slice(0, page * pageSize);
20
+ }, [items, page, pageSize, hasInfiniteScroll]);
21
+ if (!items || items.length === 0) {
22
+ return null;
23
+ }
24
+ return (React.createElement("div", null,
25
+ React.createElement(CardLayoutBlock, { colSizes: colSizes }, itemsToShow.map((item) => (React.createElement(FeedPartner, Object.assign({ key: item.url }, item, { jumpOnHover: true }))))),
26
+ hasInfiniteScroll && (React.createElement(InfiniteScroll, { hasMore: page < Math.ceil(items.length / pageSize), onNext: onLoadMore }))));
27
+ };
28
+ export default React.memo(PartnersFeedSection);
@@ -0,0 +1,18 @@
1
+ export declare const PartnersFeedBlock: {
2
+ 'partners-feed-block': {
3
+ additionalProperties: boolean;
4
+ required: never[];
5
+ properties: {
6
+ title: {
7
+ type: string;
8
+ };
9
+ image: {
10
+ type: string;
11
+ };
12
+ type: {};
13
+ when: {
14
+ type: string;
15
+ };
16
+ };
17
+ };
18
+ };