@times-components/ts-components 1.36.1 → 1.37.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/CHANGELOG.md +33 -0
- package/dist/components/article-header/ArticleHeader.js +15 -14
- package/dist/components/article-header/__tests__/ArticleHeader.test.js +24 -170
- package/dist/components/recommended-articles/RecommendedArticles.d.ts +4 -5
- package/dist/components/recommended-articles/RecommendedArticles.js +15 -26
- package/dist/components/recommended-articles/RecommendedArticles.stories.d.ts +5 -1
- package/dist/components/recommended-articles/RecommendedArticles.stories.js +26 -52
- package/dist/components/recommended-articles/RecommendedFetch.d.ts +6 -0
- package/dist/components/recommended-articles/RecommendedFetch.js +12 -0
- package/dist/components/recommended-articles/__tests__/RecommendedArticles.test.js +26 -60
- package/dist/components/recommended-articles/__tests__/RecommendedFetch.test.d.ts +1 -0
- package/dist/components/recommended-articles/__tests__/RecommendedFetch.test.js +14 -0
- package/dist/components/recommended-articles/formatters.d.ts +41 -0
- package/dist/components/recommended-articles/formatters.js +57 -0
- package/dist/fixtures/preview-data/recommended-articles.d.ts +84 -0
- package/dist/fixtures/preview-data/recommended-articles.js +351 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/package.json +6 -6
- package/rnw.js +1 -1
- package/src/components/article-header/ArticleHeader.tsx +16 -16
- package/src/components/article-header/__tests__/ArticleHeader.test.tsx +23 -170
- package/src/components/recommended-articles/RecommendedArticles.stories.tsx +41 -58
- package/src/components/recommended-articles/RecommendedArticles.tsx +26 -55
- package/src/components/recommended-articles/RecommendedFetch.tsx +25 -0
- package/src/components/recommended-articles/__tests__/RecommendedArticles.test.tsx +45 -75
- package/src/components/recommended-articles/__tests__/RecommendedFetch.test.tsx +23 -0
- package/src/components/recommended-articles/__tests__/__snapshots__/RecommendedArticles.test.tsx.snap +10 -55
- package/src/components/recommended-articles/__tests__/__snapshots__/RecommendedFetch.test.tsx.snap +9 -0
- package/src/components/recommended-articles/formatters.ts +100 -0
- package/src/fixtures/preview-data/recommended-articles.ts +385 -0
- package/src/index.ts +2 -2
- package/src/types/externs.d.ts +0 -7
- package/src/components/article-header/__tests__/__snapshots__/ArticleHeader.test.tsx.snap +0 -68
|
@@ -1,67 +1,33 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { render
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import { useFetch } from '../../../helpers/fetch/FetchProvider';
|
|
4
|
+
import previewData from '../../../fixtures/preview-data/recommended-articles';
|
|
3
5
|
import { RecommendedArticles } from '../RecommendedArticles';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
result: {
|
|
20
|
-
data: {
|
|
21
|
-
recommendations: {
|
|
22
|
-
__typename: 'Recommendations',
|
|
23
|
-
leadAsset: 'null',
|
|
24
|
-
articles: [
|
|
25
|
-
{
|
|
26
|
-
__typename: 'UniversalArticle',
|
|
27
|
-
headline: 'Whole world is against us, says top Russian strategist',
|
|
28
|
-
id: 'a9ffb7cc-d5d1-11ec-bb99-1bcd45646516',
|
|
29
|
-
media: {
|
|
30
|
-
__typename: 'Image'
|
|
31
|
-
},
|
|
32
|
-
slug: 'were-no-match-for-ukrainian-grit-and-firepower-says-retired-russian-colonel',
|
|
33
|
-
url: 'https://www.staging-thetimes.co.uk/article/were-no-match-for-ukrainian-grit-and-firepower-says-retired-russian-colonel-lhnvsfj33'
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
__typename: 'UniversalArticle',
|
|
37
|
-
headline: 'Vardys leave court with swipe at Wayne Rooney',
|
|
38
|
-
id: 'f3d730a0-d5c2-11ec-8585-951ab3afb4d2',
|
|
39
|
-
media: {
|
|
40
|
-
__typename: 'Image'
|
|
41
|
-
},
|
|
42
|
-
slug: 'wayne-rooney-to-give-evidence-in-wagatha-christie-trial-as-jamie-vardy-attends-court-for-first-time',
|
|
43
|
-
url: 'https://www.staging-thetimes.co.uk/article/wayne-rooney-to-give-evidence-in-wagatha-christie-trial-as-jamie-vardy-attends-court-for-first-time-wlzvxklc6'
|
|
44
|
-
}
|
|
45
|
-
]
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
];
|
|
51
|
-
describe('Recommended Articles', () => {
|
|
52
|
-
afterEach(() => {
|
|
53
|
-
jest.clearAllMocks();
|
|
54
|
-
cleanup();
|
|
55
|
-
});
|
|
56
|
-
it('it renders', () => {
|
|
57
|
-
const { asFragment } = render(React.createElement(MockedProvider, { mocks: mocks },
|
|
58
|
-
React.createElement(RecommendedArticles, { articleId: "94a01926-719a-11ec-aacf-0736e08b15cd", section: "News", analyticsStream: jest.fn() })));
|
|
6
|
+
jest.mock('@times-components/image', () => ({
|
|
7
|
+
Placeholder: () => React.createElement("div", null, "Placeholder")
|
|
8
|
+
}));
|
|
9
|
+
jest.mock('@times-components/related-articles', () => 'RelatedArticles');
|
|
10
|
+
jest.mock('../../../helpers/fetch/FetchProvider', () => ({
|
|
11
|
+
useFetch: jest.fn()
|
|
12
|
+
}));
|
|
13
|
+
describe('<RecommendedArticles>', () => {
|
|
14
|
+
it('should render the initial loading state correctly', () => {
|
|
15
|
+
useFetch.mockReturnValue({ loading: true });
|
|
16
|
+
const { asFragment, getByText } = render(React.createElement(RecommendedArticles, { section: "News", isVisible: true, analyticsStream: () => ({}) }));
|
|
17
|
+
expect(getByText('Placeholder'));
|
|
59
18
|
expect(asFragment()).toMatchSnapshot();
|
|
60
19
|
});
|
|
61
|
-
it('
|
|
62
|
-
|
|
63
|
-
|
|
20
|
+
it('should render the error state correctly', () => {
|
|
21
|
+
useFetch.mockReturnValue({ error: 'Some error occurred' });
|
|
22
|
+
const { asFragment } = render(React.createElement(RecommendedArticles, { section: "News", analyticsStream: () => ({}) }));
|
|
23
|
+
expect(asFragment().firstChild).toBeNull();
|
|
24
|
+
});
|
|
25
|
+
it('should render RelatedArticles correctly', () => {
|
|
26
|
+
useFetch.mockReturnValue({ data: previewData });
|
|
27
|
+
const { container, asFragment } = render(React.createElement(RecommendedArticles, { section: "News", isVisible: true, analyticsStream: () => ({}) }));
|
|
28
|
+
const related = container.querySelector('relatedarticles');
|
|
29
|
+
expect(related.getAttribute('heading')).toEqual("Today's News");
|
|
64
30
|
expect(asFragment()).toMatchSnapshot();
|
|
65
31
|
});
|
|
66
32
|
});
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvX190ZXN0c19fL1JlY29tbWVuZGVkQXJ0aWNsZXMudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxXQUFXLE1BQU0scURBQXFELENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQywrQ0FBc0I7Q0FDMUMsQ0FBQyxDQUFDLENBQUM7QUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFekUsSUFBSSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBRUosUUFBUSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtJQUNyQyxFQUFFLENBQUMsbURBQW1ELEVBQUUsR0FBRyxFQUFFO1FBQzFELFFBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0QsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQ3RDLG9CQUFDLG1CQUFtQixJQUNsQixPQUFPLEVBQUMsTUFBTSxFQUNkLFNBQVMsUUFDVCxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FDM0IsQ0FDSCxDQUFDO1FBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxRQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFFMUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FDM0Isb0JBQUMsbUJBQW1CLElBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBSSxDQUNwRSxDQUFDO1FBRUYsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxRQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUN0QyxvQkFBQyxtQkFBbUIsSUFDbEIsT0FBTyxFQUFDLE1BQU0sRUFDZCxTQUFTLFFBQ1QsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQzNCLENBQ0gsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQWdCLENBQUM7UUFDMUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFaEUsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import { RecommendedFetch } from '../RecommendedFetch';
|
|
4
|
+
jest.mock('../../../helpers/fetch/FetchProvider', () => ({
|
|
5
|
+
FetchProvider: () => React.createElement("div", null, "FetchProvider")
|
|
6
|
+
}));
|
|
7
|
+
describe('<RecommendedFetch>', () => {
|
|
8
|
+
it('should render correctly', () => {
|
|
9
|
+
const { asFragment, getByText } = render(React.createElement(RecommendedFetch, { articleId: "1234", section: "News", analyticsStream: () => ({}) }));
|
|
10
|
+
expect(getByText('FetchProvider'));
|
|
11
|
+
expect(asFragment()).toMatchSnapshot();
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRGZXRjaC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvX190ZXN0c19fL1JlY29tbWVuZGVkRmV0Y2gudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxJQUFJLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdkQsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLGlEQUF3QjtDQUM5QyxDQUFDLENBQUMsQ0FBQztBQUVKLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7SUFDbEMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtRQUNqQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDdEMsb0JBQUMsZ0JBQWdCLElBQ2YsU0FBUyxFQUFDLE1BQU0sRUFDaEIsT0FBTyxFQUFDLE1BQU0sRUFDZCxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FDM0IsQ0FDSCxDQUFDO1FBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { RelatedArticleSliceType } from '../../types/related-article-slice';
|
|
2
|
+
export declare type Byline = {
|
|
3
|
+
__typename: string;
|
|
4
|
+
type: 'author';
|
|
5
|
+
name: string;
|
|
6
|
+
} | {
|
|
7
|
+
__typename: string;
|
|
8
|
+
type: 'inline';
|
|
9
|
+
value: string;
|
|
10
|
+
};
|
|
11
|
+
declare type MediaCrop = {
|
|
12
|
+
__typename: string;
|
|
13
|
+
url: string;
|
|
14
|
+
alt?: string;
|
|
15
|
+
aspectRatio: string;
|
|
16
|
+
};
|
|
17
|
+
declare type Media = {
|
|
18
|
+
__typename: string;
|
|
19
|
+
crops: MediaCrop[];
|
|
20
|
+
};
|
|
21
|
+
export declare type SummaryText = {
|
|
22
|
+
__typename: string;
|
|
23
|
+
text: string;
|
|
24
|
+
};
|
|
25
|
+
declare type Summary = {
|
|
26
|
+
__typename: string;
|
|
27
|
+
children: SummaryText[];
|
|
28
|
+
};
|
|
29
|
+
export declare type Article = {
|
|
30
|
+
__typename: string;
|
|
31
|
+
url: string;
|
|
32
|
+
slug: string;
|
|
33
|
+
label: string;
|
|
34
|
+
headline: string;
|
|
35
|
+
publishedDateTime: string;
|
|
36
|
+
bylines?: Byline[];
|
|
37
|
+
summary?: Summary;
|
|
38
|
+
media?: Media;
|
|
39
|
+
};
|
|
40
|
+
export declare const getRelatedArticlesSlice: (recommendations: any) => RelatedArticleSliceType;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// HELPERS
|
|
2
|
+
const getBylineAttr = (byline) => ({
|
|
3
|
+
value: byline.type === 'author' ? byline.name : byline.value
|
|
4
|
+
});
|
|
5
|
+
const getByline = (byline) => ({
|
|
6
|
+
name: byline.type,
|
|
7
|
+
children: [{ name: 'text', attributes: getBylineAttr(byline), children: [] }]
|
|
8
|
+
});
|
|
9
|
+
const getBylines = (bylines) => {
|
|
10
|
+
if (bylines) {
|
|
11
|
+
return bylines.map((byline) => ({ byline: [getByline(byline)] }));
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
};
|
|
15
|
+
const getSummaryText = (summary) => {
|
|
16
|
+
const text = summary.children
|
|
17
|
+
.map((child) => child.text)
|
|
18
|
+
.join('');
|
|
19
|
+
return { value: text.slice(0, text.slice(0, 125).lastIndexOf(' ')) };
|
|
20
|
+
};
|
|
21
|
+
const getSummaryParagraph = (summary) => [
|
|
22
|
+
{ name: 'text', attributes: getSummaryText(summary), children: [] }
|
|
23
|
+
];
|
|
24
|
+
const getSummary = (summary) => {
|
|
25
|
+
if (summary && summary.children) {
|
|
26
|
+
return [{ name: 'paragraph', children: getSummaryParagraph(summary) }];
|
|
27
|
+
}
|
|
28
|
+
return [];
|
|
29
|
+
};
|
|
30
|
+
const getImage = (media) => {
|
|
31
|
+
if (media && media.crops) {
|
|
32
|
+
const image = media.crops.find((crop) => crop.aspectRatio === '16:9');
|
|
33
|
+
return image ? { crop169: { url: image.url }, title: image.alt } : null;
|
|
34
|
+
}
|
|
35
|
+
return {};
|
|
36
|
+
};
|
|
37
|
+
// MAIN
|
|
38
|
+
export const getRelatedArticlesSlice = (recommendations) => ({
|
|
39
|
+
sliceName: 'StandardSlice',
|
|
40
|
+
items: recommendations
|
|
41
|
+
? recommendations.articles
|
|
42
|
+
.map((article) => ({
|
|
43
|
+
article: {
|
|
44
|
+
slug: article.slug,
|
|
45
|
+
shortIdentifier: article.url.slice(-9),
|
|
46
|
+
label: article.label,
|
|
47
|
+
headline: article.headline,
|
|
48
|
+
publishedTime: article.publishedDateTime,
|
|
49
|
+
bylines: getBylines(article.bylines),
|
|
50
|
+
summary125: getSummary(article.summary),
|
|
51
|
+
leadAsset: getImage(article.media)
|
|
52
|
+
}
|
|
53
|
+
}))
|
|
54
|
+
.slice(0, 3)
|
|
55
|
+
: []
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL2Zvcm1hdHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0JBLFVBQVU7QUFFVixNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6QyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO0NBQzdELENBQUMsQ0FBQztBQUVILE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtJQUNqQixRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUM7Q0FDOUUsQ0FBQyxDQUFDO0FBRUgsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFrQixFQUFFLEVBQUU7SUFDeEMsSUFBSSxPQUFPLEVBQUU7UUFDWCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUMzRTtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO0lBQzFDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRO1NBQzFCLEdBQUcsQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FD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
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
recommendations: {
|
|
3
|
+
articles: ({
|
|
4
|
+
url: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
label: null;
|
|
7
|
+
headline: string;
|
|
8
|
+
publishedDateTime: string;
|
|
9
|
+
bylines: ({
|
|
10
|
+
type: string;
|
|
11
|
+
value: string;
|
|
12
|
+
name?: undefined;
|
|
13
|
+
} | {
|
|
14
|
+
type: string;
|
|
15
|
+
name: string;
|
|
16
|
+
value?: undefined;
|
|
17
|
+
})[];
|
|
18
|
+
summary: {
|
|
19
|
+
children: {
|
|
20
|
+
text: string;
|
|
21
|
+
}[];
|
|
22
|
+
};
|
|
23
|
+
media: {
|
|
24
|
+
crops: {
|
|
25
|
+
url: string;
|
|
26
|
+
alt: null;
|
|
27
|
+
aspectRatio: string;
|
|
28
|
+
}[];
|
|
29
|
+
};
|
|
30
|
+
} | {
|
|
31
|
+
url: string;
|
|
32
|
+
slug: string;
|
|
33
|
+
label: string;
|
|
34
|
+
headline: string;
|
|
35
|
+
publishedDateTime: string;
|
|
36
|
+
bylines: {
|
|
37
|
+
type: string;
|
|
38
|
+
name: string;
|
|
39
|
+
}[];
|
|
40
|
+
summary: {
|
|
41
|
+
children: ({
|
|
42
|
+
text: string;
|
|
43
|
+
} | {
|
|
44
|
+
text: null;
|
|
45
|
+
})[];
|
|
46
|
+
};
|
|
47
|
+
media: {
|
|
48
|
+
crops: {
|
|
49
|
+
url: string;
|
|
50
|
+
alt: null;
|
|
51
|
+
aspectRatio: string;
|
|
52
|
+
}[];
|
|
53
|
+
};
|
|
54
|
+
} | {
|
|
55
|
+
url: string;
|
|
56
|
+
slug: string;
|
|
57
|
+
label: string;
|
|
58
|
+
headline: string;
|
|
59
|
+
publishedDateTime: string;
|
|
60
|
+
bylines: ({
|
|
61
|
+
type: string;
|
|
62
|
+
value: string;
|
|
63
|
+
name?: undefined;
|
|
64
|
+
} | {
|
|
65
|
+
type: string;
|
|
66
|
+
name: string;
|
|
67
|
+
value?: undefined;
|
|
68
|
+
})[];
|
|
69
|
+
summary: {
|
|
70
|
+
children: {
|
|
71
|
+
text: string;
|
|
72
|
+
}[];
|
|
73
|
+
};
|
|
74
|
+
media: {
|
|
75
|
+
crops: {
|
|
76
|
+
url: string;
|
|
77
|
+
alt: null;
|
|
78
|
+
aspectRatio: string;
|
|
79
|
+
}[];
|
|
80
|
+
};
|
|
81
|
+
})[];
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
export default _default;
|