@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.
Files changed (41) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/components/article-sidebar/ArticleSidebar.d.ts +8 -0
  3. package/dist/components/article-sidebar/ArticleSidebar.js +18 -0
  4. package/dist/components/article-sidebar/ArticleSidebar.stories.d.ts +1 -0
  5. package/dist/components/article-sidebar/ArticleSidebar.stories.js +31 -0
  6. package/dist/components/article-sidebar/__tests__/index.test.d.ts +1 -0
  7. package/dist/components/article-sidebar/__tests__/index.test.js +28 -0
  8. package/dist/components/article-sidebar/assets/ChevronIcon.d.ts +2 -0
  9. package/dist/components/article-sidebar/assets/ChevronIcon.js +6 -0
  10. package/dist/components/article-sidebar/styles.d.ts +11 -0
  11. package/dist/components/article-sidebar/styles.js +98 -0
  12. package/dist/components/article-sidebar/types.d.ts +5 -0
  13. package/dist/components/article-sidebar/types.js +2 -0
  14. package/dist/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.d.ts +7 -0
  15. package/dist/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.js +43 -0
  16. package/dist/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.stories.d.ts +1 -0
  17. package/dist/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.stories.js +25 -0
  18. package/dist/components/opta/football/fixtures-ticker/__tests__/OptaFootballFixturesTicker.test.d.ts +2 -0
  19. package/dist/components/opta/football/fixtures-ticker/__tests__/OptaFootballFixturesTicker.test.js +41 -0
  20. package/dist/components/opta/football/fixtures-ticker/styles.d.ts +2 -0
  21. package/dist/components/opta/football/fixtures-ticker/styles.js +326 -0
  22. package/dist/components/opta/football/shared-styles.d.ts +3 -1
  23. package/dist/components/opta/football/shared-styles.js +2 -2
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.js +3 -1
  26. package/package.json +16 -16
  27. package/rnw.js +1 -1
  28. package/src/components/article-sidebar/ArticleSidebar.stories.tsx +43 -0
  29. package/src/components/article-sidebar/ArticleSidebar.tsx +53 -0
  30. package/src/components/article-sidebar/__tests__/__snapshots__/index.test.tsx.snap +88 -0
  31. package/src/components/article-sidebar/__tests__/index.test.tsx +33 -0
  32. package/src/components/article-sidebar/assets/ChevronIcon.tsx +19 -0
  33. package/src/components/article-sidebar/styles.ts +108 -0
  34. package/src/components/article-sidebar/types.ts +5 -0
  35. package/src/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.stories.tsx +33 -0
  36. package/src/components/opta/football/fixtures-ticker/OptaFootballFixturesTicker.tsx +70 -0
  37. package/src/components/opta/football/fixtures-ticker/__tests__/OptaFootballFixturesTicker.test.tsx +53 -0
  38. package/src/components/opta/football/fixtures-ticker/__tests__/__snapshots__/OptaFootballFixturesTicker.test.tsx.snap +27 -0
  39. package/src/components/opta/football/fixtures-ticker/styles.ts +328 -0
  40. package/src/components/opta/football/shared-styles.ts +2 -2
  41. 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,8 @@
1
+ import { FC } from 'react';
2
+ import { Puzzle } from './types';
3
+ export interface ArticleSideBarProps {
4
+ sectionTitle: string;
5
+ data: Puzzle[];
6
+ pageLink: string;
7
+ }
8
+ export declare const ArticleSidebar: FC<ArticleSideBarProps>;
@@ -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,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,2 @@
1
+ declare const ChevronIcon: (props: any) => JSX.Element;
2
+ export default ChevronIcon;
@@ -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,5 @@
1
+ export declare type Puzzle = {
2
+ title: string;
3
+ url: string;
4
+ imgUrl: string;
5
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLXNpZGViYXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export declare const OptaFootballFixturesTicker: React.FC<{
3
+ season: string;
4
+ competition: string;
5
+ date_from?: string;
6
+ date_to?: string;
7
+ }>;
@@ -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,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
@@ -0,0 +1,2 @@
1
+ import 'regenerator-runtime';
2
+ import '@testing-library/jest-dom';
@@ -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=
@@ -0,0 +1,2 @@
1
+ export declare const WidgetContainerOverride: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const WidgetContainer: import("styled-components").StyledComponent<"div", any, {}, never>;