@times-components/ts-components 1.84.3 → 1.84.4-alpha.9
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 +27 -0
- package/dist/components/article-sidebar/ArticleSidebar.d.ts +8 -0
- package/dist/components/article-sidebar/ArticleSidebar.js +18 -0
- package/dist/components/article-sidebar/ArticleSidebar.stories.d.ts +1 -0
- package/dist/components/article-sidebar/ArticleSidebar.stories.js +31 -0
- package/dist/components/article-sidebar/__tests__/index.test.d.ts +1 -0
- package/dist/components/article-sidebar/__tests__/index.test.js +28 -0
- package/dist/components/article-sidebar/assets/ChevronIcon.d.ts +2 -0
- package/dist/components/article-sidebar/assets/ChevronIcon.js +6 -0
- package/dist/components/article-sidebar/styles.d.ts +11 -0
- package/dist/components/article-sidebar/styles.js +98 -0
- package/dist/components/article-sidebar/types.d.ts +5 -0
- package/dist/components/article-sidebar/types.js +2 -0
- package/dist/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.d.ts +7 -0
- package/dist/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.js +43 -0
- package/dist/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.stories.d.ts +1 -0
- package/dist/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.stories.js +25 -0
- package/dist/components/opta/football/fixtures-ticker/__tests__/OptaFootballFixturesTicker.test.d.ts +2 -0
- package/dist/components/opta/football/fixtures-ticker/__tests__/OptaFootballFixturesTicker.test.js +41 -0
- package/dist/components/opta/football/fixtures-ticker/styles.d.ts +2 -0
- package/dist/components/opta/football/fixtures-ticker/styles.js +326 -0
- package/dist/components/opta/football/shared-styles.d.ts +3 -1
- package/dist/components/opta/football/shared-styles.js +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/package.json +16 -16
- package/rnw.js +1 -1
- package/src/components/article-sidebar/ArticleSidebar.stories.tsx +43 -0
- package/src/components/article-sidebar/ArticleSidebar.tsx +53 -0
- package/src/components/article-sidebar/__tests__/__snapshots__/index.test.tsx.snap +88 -0
- package/src/components/article-sidebar/__tests__/index.test.tsx +33 -0
- package/src/components/article-sidebar/assets/ChevronIcon.tsx +19 -0
- package/src/components/article-sidebar/styles.ts +108 -0
- package/src/components/article-sidebar/types.ts +5 -0
- package/src/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.stories.tsx +33 -0
- package/src/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.tsx +70 -0
- package/src/components/opta/football/fixtures-ticker/__tests__/OptaFootballFixturesTicker.test.tsx +53 -0
- package/src/components/opta/football/fixtures-ticker/__tests__/__snapshots__/OptaFootballFixturesTicker.test.tsx.snap +27 -0
- package/src/components/opta/football/fixtures-ticker/styles.ts +328 -0
- package/src/components/opta/football/shared-styles.ts +2 -2
- package/src/index.ts +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.85.2](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.85.1...@times-components/ts-components@1.85.2) (2024-05-20)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @times-components/ts-components
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [1.85.1](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.85.0...@times-components/ts-components@1.85.1) (2024-05-17)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @times-components/ts-components
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [1.85.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.84.3...@times-components/ts-components@1.85.0) (2024-05-16)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* **TMRS-170:** add opta football fixtures ticker component ([#3849](https://github.com/newsuk/times-components/issues/3849)) ([e8524a9](https://github.com/newsuk/times-components/commit/e8524a97bd58a8ab134f61f1394d061da5fe55d5))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
## [1.84.3](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.84.2...@times-components/ts-components@1.84.3) (2024-05-08)
|
|
7
34
|
|
|
8
35
|
**Note:** Version bump only for package @times-components/ts-components
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ChevronButton, ChevronRightIcon, Container, Description, Divider, ItemTitle, Link, PuzzleContainer, PuzzleImage, Title, TitleIconContainer } from './styles';
|
|
3
|
+
export const ArticleSidebar = ({ sectionTitle, data, pageLink }) => {
|
|
4
|
+
return (React.createElement(Container, null,
|
|
5
|
+
React.createElement(Link, { href: pageLink },
|
|
6
|
+
React.createElement(TitleIconContainer, null,
|
|
7
|
+
React.createElement(Title, null, sectionTitle),
|
|
8
|
+
React.createElement(ChevronButton, null,
|
|
9
|
+
React.createElement(ChevronRightIcon, null)))),
|
|
10
|
+
React.createElement(Description, null, "Challenge yourself with today\u2019s puzzles."),
|
|
11
|
+
React.createElement(Divider, null),
|
|
12
|
+
data.map(({ title, url, imgUrl }) => (React.createElement(React.Fragment, { key: title },
|
|
13
|
+
React.createElement(PuzzleContainer, { href: url },
|
|
14
|
+
React.createElement(PuzzleImage, { src: imgUrl, alt: "Puzzle thumbnail" }),
|
|
15
|
+
React.createElement(ItemTitle, null, title)),
|
|
16
|
+
React.createElement(Divider, null))))));
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZVNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLXNpZGViYXIvQXJ0aWNsZVNpZGViYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBYSxNQUFNLE9BQU8sQ0FBQztBQUVsQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLGVBQWUsRUFDZixXQUFXLEVBQ1gsS0FBSyxFQUNMLGtCQUFrQixFQUNuQixNQUFNLFVBQVUsQ0FBQztBQVFsQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQTRCLENBQUMsRUFDdEQsWUFBWSxFQUNaLElBQUksRUFDSixRQUFRLEVBQ1QsRUFBRSxFQUFFO0lBQ0gsT0FBTyxDQUNMLG9CQUFDLFNBQVM7UUFDUixvQkFBQyxJQUFJLElBQUMsSUFBSSxFQUFFLFFBQVE7WUFDbEIsb0JBQUMsa0JBQWtCO2dCQUNqQixvQkFBQyxLQUFLLFFBQUUsWUFBWSxDQUFTO2dCQUM3QixvQkFBQyxhQUFhO29CQUNaLG9CQUFDLGdCQUFnQixPQUFHLENBQ04sQ0FDRyxDQUNoQjtRQUVQLG9CQUFDLFdBQVcsd0RBQXVEO1FBQ25FLG9CQUFDLE9BQU8sT0FBRztRQUVWLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQ3BDLG9CQUFDLEtBQUssQ0FBQyxRQUFRLElBQUMsR0FBRyxFQUFFLEtBQUs7WUFDeEIsb0JBQUMsZUFBZSxJQUFDLElBQUksRUFBRSxHQUFHO2dCQUN4QixvQkFBQyxXQUFXLElBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsa0JBQWtCLEdBQUc7Z0JBQ25ELG9CQUFDLFNBQVMsUUFBRSxLQUFLLENBQWEsQ0FDZDtZQUNsQixvQkFBQyxPQUFPLE9BQUcsQ0FDSSxDQUNsQixDQUFDLENBQ1EsQ0FDYixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { storiesOf } from '@storybook/react';
|
|
3
|
+
import { ArticleSidebar } from './ArticleSidebar';
|
|
4
|
+
const getAttributes = () => {
|
|
5
|
+
const sectionTitle = 'Puzzles';
|
|
6
|
+
const data = [
|
|
7
|
+
{
|
|
8
|
+
title: 'Crossword',
|
|
9
|
+
url: 'https://www.thetimes.co.uk/puzzles/crossword',
|
|
10
|
+
imgUrl: 'https://www.thetimes.co.uk/d/img/puzzles/new-illustrations/crossword-c7ae8934ef.png'
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
title: 'Polygon',
|
|
14
|
+
url: 'https://www.thetimes.co.uk/puzzles/word-puzzles',
|
|
15
|
+
imgUrl: 'https://www.thetimes.co.uk/d/img/puzzles/new-illustrations/polygon-875ea55487.png'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: 'Sudoku',
|
|
19
|
+
url: 'https://www.thetimes.co.uk/puzzles/sudoku',
|
|
20
|
+
imgUrl: 'https://www.thetimes.co.uk/d/img/puzzles/new-illustrations/sudoku-ee2aea0209.png'
|
|
21
|
+
}
|
|
22
|
+
];
|
|
23
|
+
const pageLink = 'https://www.thetimes.co.uk/puzzles';
|
|
24
|
+
return { sectionTitle, data, pageLink };
|
|
25
|
+
};
|
|
26
|
+
storiesOf('Typescript Component/Article Sidebar', module).add('Article Sidebar', () => {
|
|
27
|
+
const props = getAttributes();
|
|
28
|
+
return (React.createElement("div", { style: { maxWidth: '204px' } },
|
|
29
|
+
React.createElement(ArticleSidebar, Object.assign({}, props))));
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZVNpZGViYXIuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtc2lkZWJhci9BcnRpY2xlU2lkZWJhci5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7SUFDekIsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQy9CLE1BQU0sSUFBSSxHQUFHO1FBQ1g7WUFDRSxLQUFLLEVBQUUsV0FBVztZQUNsQixHQUFHLEVBQUUsOENBQThDO1lBQ25ELE1BQU0sRUFDSixxRkFBcUY7U0FDeEY7UUFDRDtZQUNFLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEdBQUcsRUFBRSxpREFBaUQ7WUFDdEQsTUFBTSxFQUNKLG1GQUFtRjtTQUN0RjtRQUNEO1lBQ0UsS0FBSyxFQUFFLFFBQVE7WUFDZixHQUFHLEVBQUUsMkNBQTJDO1lBQ2hELE1BQU0sRUFDSixrRkFBa0Y7U0FDckY7S0FDRixDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsb0NBQW9DLENBQUM7SUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDMUMsQ0FBQyxDQUFDO0FBRUYsU0FBUyxDQUFDLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FDM0QsaUJBQWlCLEVBQ2pCLEdBQUcsRUFBRTtJQUNILE1BQU0sS0FBSyxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBRTlCLE9BQU8sQ0FDTCw2QkFBSyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO1FBQy9CLG9CQUFDLGNBQWMsb0JBQUssS0FBSyxFQUFJLENBQ3pCLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArticleSidebar } from '../ArticleSidebar';
|
|
3
|
+
import { render } from '@testing-library/react';
|
|
4
|
+
import '@testing-library/jest-dom';
|
|
5
|
+
const defaultProps = {
|
|
6
|
+
sectionTitle: 'Puzzles for you',
|
|
7
|
+
data: [
|
|
8
|
+
{
|
|
9
|
+
title: 'Crossword',
|
|
10
|
+
url: 'https://www.thetimes.co.uk/puzzles/crossword',
|
|
11
|
+
imgUrl: 'https://www.thetimes.co.uk/imageserver/image/%2Fpuzzles%2Ficons%2F33b27655-dcc9-421f-906f-b2b10dd26865.png?crop=1250%2C833%2C0%2C0&resize=500'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: 'Polygon',
|
|
15
|
+
url: 'https://www.thetimes.co.uk/puzzles/sudoku',
|
|
16
|
+
imgUrl: 'https://www.thetimes.co.uk/imageserver/image/%2Fpuzzles%2Ficons%2F33b27655-dcc9-421f-906f-b2b10dd26865.png?crop=1250%2C833%2C0%2C0&resize=500'
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
pageLink: 'https://www.thetimes.co.uk/puzzles'
|
|
20
|
+
};
|
|
21
|
+
const renderComponent = (props) => render(React.createElement(ArticleSidebar, Object.assign({}, props)));
|
|
22
|
+
describe('ArticleSidebar', () => {
|
|
23
|
+
it('should render ArticleSidebar component', () => {
|
|
24
|
+
const { asFragment } = renderComponent(defaultProps);
|
|
25
|
+
expect(asFragment()).toMatchSnapshot();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtc2lkZWJhci9fX3Rlc3RzX18vaW5kZXgudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQXVCLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sMkJBQTJCLENBQUM7QUFFbkMsTUFBTSxZQUFZLEdBQXdCO0lBQ3hDLFlBQVksRUFBRSxpQkFBaUI7SUFDL0IsSUFBSSxFQUFFO1FBQ0o7WUFDRSxLQUFLLEVBQUUsV0FBVztZQUNsQixHQUFHLEVBQUUsOENBQThDO1lBQ25ELE1BQU0sRUFDSiwrSUFBK0k7U0FDbEo7UUFDRDtZQUNFLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEdBQUcsRUFBRSwyQ0FBMkM7WUFDaEQsTUFBTSxFQUNKLCtJQUErSTtTQUNsSjtLQUNGO0lBQ0QsUUFBUSxFQUFFLG9DQUFvQztDQUMvQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUUsQ0FDckQsTUFBTSxDQUFDLG9CQUFDLGNBQWMsb0JBQUssS0FBSyxFQUFJLENBQUMsQ0FBQztBQUV4QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
const ChevronIcon = (props) => (React.createElement("svg", Object.assign({ viewBox: "0 0 24 24", "aria-hidden": "true", fill: "currentcolor", xmlns: "http://www.w3.org/2000/svg" }, props),
|
|
3
|
+
React.createElement("path", { fill: "none", d: "M0 0h24v24H0z" }),
|
|
4
|
+
React.createElement("path", { fill: "currentcolor", d: "m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z" })));
|
|
5
|
+
export default ChevronIcon;
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hldnJvbkljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLXNpZGViYXIvYXNzZXRzL0NoZXZyb25JY29uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FDbEMsMkNBQ0UsT0FBTyxFQUFDLFdBQVcsaUJBQ1AsTUFBTSxFQUNsQixJQUFJLEVBQUMsY0FBYyxFQUNuQixLQUFLLEVBQUMsNEJBQTRCLElBQzlCLEtBQUs7SUFFVCw4QkFBTSxJQUFJLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEdBQUc7SUFDdEMsOEJBQ0UsSUFBSSxFQUFDLGNBQWMsRUFDbkIsQ0FBQyxFQUFDLCtDQUErQyxHQUNqRCxDQUNFLENBQ1AsQ0FBQztBQUVGLGVBQWUsV0FBVyxDQUFDIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const ChevronRightIcon: import("styled-components").StyledComponent<(props: any) => JSX.Element, any, {}, never>;
|
|
2
|
+
export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const Description: import("styled-components").StyledComponent<"p", any, {}, never>;
|
|
4
|
+
export declare const Divider: import("styled-components").StyledComponent<"hr", any, {}, never>;
|
|
5
|
+
export declare const Link: import("styled-components").StyledComponent<"a", any, {}, never>;
|
|
6
|
+
export declare const TitleIconContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
7
|
+
export declare const Title: import("styled-components").StyledComponent<"h3", any, {}, never>;
|
|
8
|
+
export declare const ChevronButton: import("styled-components").StyledComponent<"button", any, {}, never>;
|
|
9
|
+
export declare const ItemTitle: import("styled-components").StyledComponent<"p", any, {}, never>;
|
|
10
|
+
export declare const PuzzleContainer: import("styled-components").StyledComponent<"a", any, {}, never>;
|
|
11
|
+
export declare const PuzzleImage: import("styled-components").StyledComponent<"img", any, {}, never>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import ChevronIcon from './assets/ChevronIcon';
|
|
3
|
+
export const ChevronRightIcon = styled(ChevronIcon) `
|
|
4
|
+
transform: rotate(90deg);
|
|
5
|
+
width: 16px;
|
|
6
|
+
height: 16px;
|
|
7
|
+
`;
|
|
8
|
+
export const Container = styled.div `
|
|
9
|
+
padding-top: 12px;
|
|
10
|
+
border-style: solid none none none;
|
|
11
|
+
border-width: 3px;
|
|
12
|
+
border-color: #df7334;
|
|
13
|
+
`;
|
|
14
|
+
export const Description = styled.p `
|
|
15
|
+
display: block;
|
|
16
|
+
font-family: 'Roboto';
|
|
17
|
+
font-weight: 400;
|
|
18
|
+
line-height: 1.5;
|
|
19
|
+
font-size: 1.4rem;
|
|
20
|
+
letter-spacing: 0em;
|
|
21
|
+
margin: 7px 0 4px;
|
|
22
|
+
`;
|
|
23
|
+
export const Divider = styled.hr `
|
|
24
|
+
margin: 16px 0;
|
|
25
|
+
border-style: dashed none none none;
|
|
26
|
+
border-width: 1px;
|
|
27
|
+
border-color: #01000d;
|
|
28
|
+
&:first-of-type {
|
|
29
|
+
margin-top: 11px;
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
export const Link = styled.a `
|
|
33
|
+
display: block;
|
|
34
|
+
text-decoration: none;
|
|
35
|
+
|
|
36
|
+
&:hover {
|
|
37
|
+
button {
|
|
38
|
+
background-color: #e4e4e4;
|
|
39
|
+
}
|
|
40
|
+
h3 {
|
|
41
|
+
color: #00527a;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
h3 {
|
|
45
|
+
color: #df7334;
|
|
46
|
+
}
|
|
47
|
+
`;
|
|
48
|
+
export const TitleIconContainer = styled.div `
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: row;
|
|
51
|
+
justify-content: space-between;
|
|
52
|
+
`;
|
|
53
|
+
export const Title = styled.h3 `
|
|
54
|
+
font-family: 'Times Modern';
|
|
55
|
+
font-weight: 800;
|
|
56
|
+
line-height: 1.125;
|
|
57
|
+
font-size: 1.8rem;
|
|
58
|
+
letter-spacing: 0em;
|
|
59
|
+
margin: 2px 0 0;
|
|
60
|
+
`;
|
|
61
|
+
export const ChevronButton = styled.button `
|
|
62
|
+
background-color: #eeeeee;
|
|
63
|
+
color: #df7334;
|
|
64
|
+
border-radius: 50%;
|
|
65
|
+
border: none;
|
|
66
|
+
cursor: pointer;
|
|
67
|
+
width: 24px;
|
|
68
|
+
height: 24px;
|
|
69
|
+
padding: 0;
|
|
70
|
+
display: flex;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
align-items: center;
|
|
73
|
+
`;
|
|
74
|
+
export const ItemTitle = styled.p `
|
|
75
|
+
font-family: 'Times Modern';
|
|
76
|
+
font-weight: 400;
|
|
77
|
+
line-height: 1;
|
|
78
|
+
font-size: 1.6rem;
|
|
79
|
+
letter-spacing: 0em;
|
|
80
|
+
margin: 12px 0;
|
|
81
|
+
`;
|
|
82
|
+
export const PuzzleContainer = styled.a `
|
|
83
|
+
display: flex;
|
|
84
|
+
align-items: center;
|
|
85
|
+
margin-top: 16px;
|
|
86
|
+
text-decoration: none;
|
|
87
|
+
color: #01000d;
|
|
88
|
+
|
|
89
|
+
:hover {
|
|
90
|
+
color: #00527a;
|
|
91
|
+
}
|
|
92
|
+
`;
|
|
93
|
+
export const PuzzleImage = styled.img `
|
|
94
|
+
height: 40px;
|
|
95
|
+
width: 40px;
|
|
96
|
+
margin: 0 16px 0 0;
|
|
97
|
+
`;
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1zaWRlYmFyL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7Ozs7Q0FJbEQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7OztDQUtsQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7Ozs7Ozs7O0NBUWxDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQTs7Ozs7Ozs7Q0FRL0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlM0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7Q0FJM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFBOzs7Ozs7O0NBTzdCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQTs7Ozs7Ozs7Ozs7O0NBWXpDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQTs7Ozs7OztDQU9oQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7Ozs7Ozs7Ozs7Q0FVdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7O0NBSXBDLENBQUMifQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import { Placeholder } from '@times-components/image';
|
|
3
|
+
import { initSettings, initStyleSheet, initScript, initElement, initComponent } from '../../utils/config';
|
|
4
|
+
import { PlaceholderContainer } from '../shared-styles';
|
|
5
|
+
import { WidgetContainer } from './styles';
|
|
6
|
+
export const OptaFootballFixturesTicker = React.memo(({ season, competition, date_from, date_to }) => {
|
|
7
|
+
const ref = React.createRef();
|
|
8
|
+
const [isReady, setIsReady] = useState(false);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const sport = 'football';
|
|
11
|
+
initSettings();
|
|
12
|
+
initStyleSheet(sport);
|
|
13
|
+
initScript().then(() => {
|
|
14
|
+
if (ref.current) {
|
|
15
|
+
ref.current.innerHTML = initElement('opta-widget', {
|
|
16
|
+
sport,
|
|
17
|
+
widget: 'fixtures',
|
|
18
|
+
season,
|
|
19
|
+
competition,
|
|
20
|
+
date_from,
|
|
21
|
+
date_to,
|
|
22
|
+
live: true,
|
|
23
|
+
start_on_current: true,
|
|
24
|
+
template: 'strip',
|
|
25
|
+
team_naming: 'brief',
|
|
26
|
+
match_status: 'all',
|
|
27
|
+
order_by: 'date_ascending',
|
|
28
|
+
show_grouping: true,
|
|
29
|
+
show_crests: true,
|
|
30
|
+
show_date: true,
|
|
31
|
+
date_format: 'ddd Do MMM'
|
|
32
|
+
}).outerHTML;
|
|
33
|
+
initComponent();
|
|
34
|
+
setIsReady(true);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}, []);
|
|
38
|
+
return (React.createElement(React.Fragment, null,
|
|
39
|
+
React.createElement(WidgetContainer, { ref: ref }),
|
|
40
|
+
!isReady && (React.createElement(PlaceholderContainer, { height: 100 },
|
|
41
|
+
React.createElement(Placeholder, null)))));
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0YUZvb3RiYWxsRml4dHVyZXNUaWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcHRhL2Zvb3RiYWxsL2ZpeHR1cmVzLXRpY2tlci9PcHRhRm9vdGJhbGxGaXh0dXJlc1RpY2tlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRW5ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsV0FBVyxFQUNYLGFBQWEsRUFDZCxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBS2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7SUFDOUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBa0IsQ0FBQztJQUU5QyxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUV2RCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBRXpCLFlBQVksRUFBRSxDQUFDO1FBQ2YsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRCLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDckIsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNmLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUU7b0JBQ2pELEtBQUs7b0JBQ0wsTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLE1BQU07b0JBQ04sV0FBVztvQkFDWCxTQUFTO29CQUNULE9BQU87b0JBQ1AsSUFBSSxFQUFFLElBQUk7b0JBQ1YsZ0JBQWdCLEVBQUUsSUFBSTtvQkFDdEIsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLFdBQVcsRUFBRSxPQUFPO29CQUNwQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsYUFBYSxFQUFFLElBQUk7b0JBQ25CLFdBQVcsRUFBRSxJQUFJO29CQUNqQixTQUFTLEVBQUUsSUFBSTtvQkFDZixXQUFXLEVBQUUsWUFBWTtpQkFDMUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFFYixhQUFhLEVBQUUsQ0FBQztnQkFDaEIsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLENBQ0w7UUFDRSxvQkFBQyxlQUFlLElBQUMsR0FBRyxFQUFFLEdBQUcsR0FBSTtRQUU1QixDQUFDLE9BQU8sSUFBSSxDQUNYLG9CQUFDLG9CQUFvQixJQUFDLE1BQU0sRUFBRSxHQUFHO1lBQy9CLG9CQUFDLFdBQVcsT0FBRyxDQUNNLENBQ3hCLENBQ0EsQ0FDSixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { storiesOf } from '@storybook/react';
|
|
3
|
+
import { select, text, withKnobs } from '@storybook/addon-knobs';
|
|
4
|
+
import { OptaFootballFixturesTicker } from './OptaFootballFixturesTicker';
|
|
5
|
+
const competitons = [
|
|
6
|
+
'1',
|
|
7
|
+
'2',
|
|
8
|
+
'5',
|
|
9
|
+
'6',
|
|
10
|
+
'8',
|
|
11
|
+
'10',
|
|
12
|
+
'14',
|
|
13
|
+
'38',
|
|
14
|
+
'80',
|
|
15
|
+
'235',
|
|
16
|
+
'941',
|
|
17
|
+
'1125'
|
|
18
|
+
];
|
|
19
|
+
storiesOf('Typescript Component/In Article/Football/Fixtures', module)
|
|
20
|
+
.addDecorator(withKnobs)
|
|
21
|
+
.add('Fixtures Ticker', () => {
|
|
22
|
+
const selComp = select('Competition', competitons, '8');
|
|
23
|
+
return (React.createElement(OptaFootballFixturesTicker, { season: text('season', '2023'), competition: selComp, date_from: "", date_to: "" }));
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0YUZvb3RiYWxsRml4dHVyZXNUaWNrZXIuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29wdGEvZm9vdGJhbGwvZml4dHVyZXMtdGlja2VyL09wdGFGb290YmFsbEZpeHR1cmVzVGlja2VyLnN0b3JpZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsTUFBTSxXQUFXLEdBQUc7SUFDbEIsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osS0FBSztJQUNMLEtBQUs7SUFDTCxNQUFNO0NBQ1AsQ0FBQztBQUVGLFNBQVMsQ0FBQyxtREFBbUQsRUFBRSxNQUFNLENBQUM7S0FDbkUsWUFBWSxDQUFDLFNBQVMsQ0FBQztLQUN2QixHQUFHLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sQ0FDTCxvQkFBQywwQkFBMEIsSUFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQzlCLFdBQVcsRUFBRSxPQUFPLEVBQ3BCLFNBQVMsRUFBQyxFQUFFLEVBQ1osT0FBTyxFQUFDLEVBQUUsR0FDVixDQUNILENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyJ9
|
package/dist/components/opta/football/fixtures-ticker/__tests__/OptaFootballFixturesTicker.test.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, waitForElementToBeRemoved } from '@testing-library/react';
|
|
3
|
+
import 'regenerator-runtime';
|
|
4
|
+
import '@testing-library/jest-dom';
|
|
5
|
+
jest.mock('@times-components/image', () => ({
|
|
6
|
+
Placeholder: () => React.createElement(React.Fragment, null, "Placeholder")
|
|
7
|
+
}));
|
|
8
|
+
const mockInitSettings = jest.fn();
|
|
9
|
+
const mockInitStyleSheet = jest.fn();
|
|
10
|
+
const mockInitComponent = jest.fn();
|
|
11
|
+
const mockInitElement = () => {
|
|
12
|
+
const element = document.createElement('div');
|
|
13
|
+
element.appendChild(document.createTextNode('Widget'));
|
|
14
|
+
return element;
|
|
15
|
+
};
|
|
16
|
+
jest.mock('../../../utils/config', () => ({
|
|
17
|
+
initSettings: mockInitSettings,
|
|
18
|
+
initStyleSheet: mockInitStyleSheet,
|
|
19
|
+
initScript: () => new Promise(resolve => resolve({})),
|
|
20
|
+
initElement: mockInitElement,
|
|
21
|
+
initComponent: mockInitComponent
|
|
22
|
+
}));
|
|
23
|
+
import { OptaFootballFixturesTicker } from '../OptaFootballFixturesTicker';
|
|
24
|
+
const requiredProps = {
|
|
25
|
+
season: '2020',
|
|
26
|
+
competition: '3',
|
|
27
|
+
date_from: '2021-06-20',
|
|
28
|
+
date_to: '2021-07-11'
|
|
29
|
+
};
|
|
30
|
+
describe('OptaFootballFixturesTicker', () => {
|
|
31
|
+
it('should render correctly', async () => {
|
|
32
|
+
const { asFragment, getByText } = render(React.createElement(OptaFootballFixturesTicker, Object.assign({}, requiredProps)));
|
|
33
|
+
expect(asFragment()).toMatchSnapshot();
|
|
34
|
+
await waitForElementToBeRemoved(getByText('Placeholder'));
|
|
35
|
+
expect(mockInitSettings).toHaveBeenCalledTimes(1);
|
|
36
|
+
expect(mockInitStyleSheet).toHaveBeenCalledTimes(1);
|
|
37
|
+
expect(mockInitComponent).toHaveBeenCalledTimes(1);
|
|
38
|
+
expect(asFragment()).toMatchSnapshot();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0YUZvb3RiYWxsRml4dHVyZXNUaWNrZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29wdGEvZm9vdGJhbGwvZml4dHVyZXMtdGlja2VyL19fdGVzdHNfXy9PcHRhRm9vdGJhbGxGaXh0dXJlc1RpY2tlci50ZXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNFLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTywyQkFBMkIsQ0FBQztBQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLHdEQUFnQjtDQUNwQyxDQUFDLENBQUMsQ0FBQztBQUVKLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ3JDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBRXBDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUMzQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN4QyxZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELFdBQVcsRUFBRSxlQUFlO0lBQzVCLGFBQWEsRUFBRSxpQkFBaUI7Q0FDakMsQ0FBQyxDQUFDLENBQUM7QUFFSixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRSxNQUFNLGFBQWEsR0FBRztJQUNwQixNQUFNLEVBQUUsTUFBTTtJQUNkLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLE9BQU8sRUFBRSxZQUFZO0NBQ3RCLENBQUM7QUFFRixRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO0lBQzFDLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2QyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDdEMsb0JBQUMsMEJBQTBCLG9CQUFLLGFBQWEsRUFBSSxDQUNsRCxDQUFDO1FBQ0YsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkMsTUFBTSx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUUxRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuRCxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|