@times-components/ts-components 1.16.3 → 1.18.1

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 (52) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +7 -0
  3. package/dist/components/article-flag/ArticleFlag.d.ts +22 -0
  4. package/dist/components/article-flag/ArticleFlag.js +43 -0
  5. package/dist/components/article-flag/{LiveArticleFlag.stories.d.ts → ArticleFlag.stories.d.ts} +0 -0
  6. package/dist/components/article-flag/ArticleFlag.stories.js +29 -0
  7. package/dist/components/article-flag/LiveArticleFlag.d.ts +4 -0
  8. package/dist/components/article-flag/LiveArticleFlag.js +7 -5
  9. package/dist/components/article-flag/__tests__/ArticleFlag.test.d.ts +1 -0
  10. package/dist/components/article-flag/__tests__/ArticleFlag.test.js +75 -0
  11. package/dist/components/article-flag/__tests__/LiveArticleFlag.test.js +14 -4
  12. package/dist/components/article-flag/__tests__/getActiveFlags.test.d.ts +1 -0
  13. package/dist/components/article-flag/__tests__/getActiveFlags.test.js +36 -0
  14. package/dist/components/article-flag/getActiveFlags.d.ts +3 -0
  15. package/dist/components/article-flag/getActiveFlags.js +9 -0
  16. package/dist/components/article-flag/styles.d.ts +12 -3
  17. package/dist/components/article-flag/styles.js +38 -4
  18. package/dist/components/inline-dialog/InlineDialog.d.ts +7 -0
  19. package/dist/components/inline-dialog/InlineDialog.js +7 -0
  20. package/dist/components/inline-dialog/InlineDialog.stories.d.ts +1 -0
  21. package/dist/components/inline-dialog/InlineDialog.stories.js +8 -0
  22. package/dist/components/inline-dialog/__tests__/InlineDialog.test.d.ts +1 -0
  23. package/dist/components/inline-dialog/__tests__/InlineDialog.test.js +17 -0
  24. package/dist/components/inline-dialog/styles.d.ts +4 -0
  25. package/dist/components/inline-dialog/styles.js +50 -0
  26. package/dist/components/inline-message/styles.js +1 -1
  27. package/dist/index.d.ts +3 -1
  28. package/dist/index.js +4 -2
  29. package/jest.config.js +4 -4
  30. package/package.json +14 -14
  31. package/rnw.js +1 -1
  32. package/src/components/article-flag/ArticleFlag.stories.tsx +48 -0
  33. package/src/components/article-flag/ArticleFlag.tsx +118 -0
  34. package/src/components/article-flag/LiveArticleFlag.tsx +17 -5
  35. package/src/components/article-flag/__tests__/ArticleFlag.test.tsx +111 -0
  36. package/src/components/article-flag/__tests__/LiveArticleFlag.test.tsx +19 -3
  37. package/src/components/article-flag/__tests__/__snapshots__/ArticleFlag.test.tsx.snap +394 -0
  38. package/src/components/article-flag/__tests__/__snapshots__/LiveArticleFlag.test.tsx.snap +46 -4
  39. package/src/components/article-flag/__tests__/getActiveFlags.test.ts +38 -0
  40. package/src/components/article-flag/getActiveFlags.ts +14 -0
  41. package/src/components/article-flag/styles.ts +41 -3
  42. package/src/components/inline-dialog/InlineDialog.stories.tsx +17 -0
  43. package/src/components/inline-dialog/InlineDialog.tsx +17 -0
  44. package/src/components/inline-dialog/__tests__/InlineDialog.test.tsx +21 -0
  45. package/src/components/inline-dialog/__tests__/__snapshots__/InlineDialog.test.tsx.snap +26 -0
  46. package/src/components/inline-dialog/styles.ts +51 -0
  47. package/src/components/inline-message/__tests__/__snapshots__/InlineMessage.test.tsx.snap +1 -1
  48. package/src/components/inline-message/styles.ts +1 -1
  49. package/src/index.ts +15 -1
  50. package/src/types/externs.d.ts +1 -0
  51. package/dist/components/article-flag/LiveArticleFlag.stories.js +0 -7
  52. package/src/components/article-flag/LiveArticleFlag.stories.tsx +0 -7
package/CHANGELOG.md CHANGED
@@ -3,6 +3,44 @@
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.18.1](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.18.0...@times-components/ts-components@1.18.1) (2022-01-24)
7
+
8
+ **Note:** Version bump only for package @times-components/ts-components
9
+
10
+
11
+
12
+
13
+
14
+ # [1.18.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.17.1...@times-components/ts-components@1.18.0) (2022-01-21)
15
+
16
+
17
+ ### Features
18
+
19
+ * **TDP-479:** Add article breaking flag ([#2831](https://github.com/newsuk/times-components/issues/2831)) ([f1f990a](https://github.com/newsuk/times-components/commit/f1f990ae8012fcb8d33fabc40494b1a7115cbab0))
20
+
21
+
22
+
23
+
24
+
25
+ ## [1.17.1](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.17.0...@times-components/ts-components@1.17.1) (2022-01-12)
26
+
27
+ **Note:** Version bump only for package @times-components/ts-components
28
+
29
+
30
+
31
+
32
+
33
+ # [1.17.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.16.3...@times-components/ts-components@1.17.0) (2022-01-10)
34
+
35
+
36
+ ### Features
37
+
38
+ * **TDP-805:** No commenting for RA users ([#2833](https://github.com/newsuk/times-components/issues/2833)) ([a08c74f](https://github.com/newsuk/times-components/commit/a08c74f35b3f6d84fb484ca4e6727c1896ea0c96))
39
+
40
+
41
+
42
+
43
+
6
44
  ## [1.16.3](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.16.2...@times-components/ts-components@1.16.3) (2022-01-10)
7
45
 
8
46
  **Note:** Version bump only for package @times-components/ts-components
package/README.md CHANGED
@@ -2,7 +2,14 @@
2
2
 
3
3
  This package contains components written in a *Typescript*. This will allow for
4
4
  easy migration when we need to move these to a more modern repository.
5
+ # Article Flag
6
+ Article flags are attached to an article like a label to indicate the article's
7
+ status. Common statuses are exported as components from this package, although both the original and "live news" flags have a `title` prop to enable a bespoke status.
5
8
 
9
+ The original article flags are styled with a circular bullet in front of the title, coloured text and no background colour. They include the "new", "updated", "exclusive", "sponsored" and "long read" flags. The "live news" flags, which include "live" and "breaking", are styled to have a diamond icon in front of the title and white text on a coloured background.
10
+
11
+ The flags are currently added to an article by an editor using the CMS. These
12
+ flags "expire" server side.
6
13
  ## Build
7
14
 
8
15
  All the build steps have been updated to handle all the build steps:
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import getActiveFlags from './getActiveFlags';
3
+ declare const ArticleFlag: React.FC<{
4
+ color: string;
5
+ title: string;
6
+ }>;
7
+ declare const NewArticleFlag: React.FC;
8
+ declare const UpdatedArticleFlag: React.FC;
9
+ declare const ExclusiveArticleFlag: React.FC;
10
+ declare const SponsoredArticleFlag: React.FC;
11
+ declare const LongReadArticleFlag: React.FC;
12
+ export declare type FlagType = Array<{
13
+ expiryTime: string | null;
14
+ type: string;
15
+ }>;
16
+ declare const ArticleFlags: React.FC<{
17
+ flags: FlagType;
18
+ longRead: boolean;
19
+ withContainer: boolean;
20
+ }>;
21
+ export default ArticleFlag;
22
+ export { getActiveFlags, ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag };
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { colours } from '@times-components/styleguide';
3
+ import { LiveArticleFlag, BreakingArticleFlag } from './LiveArticleFlag';
4
+ import { ArticleFlagContainer, ArticleFlagBullet, ArticleFlagTextContainer, FlagPadding, Flags, FlagsContainer } from './styles';
5
+ import getActiveFlags from './getActiveFlags';
6
+ const ArticleFlag = ({ color = colours.functional.primary, title }) => (React.createElement(ArticleFlagContainer, null,
7
+ React.createElement(ArticleFlagBullet, { color: color }),
8
+ React.createElement(ArticleFlagTextContainer, { "aria-label": `${title} Flag`, color: color, "data-testid": `flag-${title}` }, title.toLowerCase())));
9
+ const NewArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.articleFlagNew, title: "new" }));
10
+ const UpdatedArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.articleFlagUpdated, title: "updated" }));
11
+ const ExclusiveArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.articleFlagExclusive, title: "exclusive" }));
12
+ const SponsoredArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.tertiary, title: "sponsored" }));
13
+ const LongReadArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.secondary, title: "long read" }));
14
+ const flagsMapping = () => new Map([
15
+ ['NEW', React.createElement(NewArticleFlag, null)],
16
+ ['LIVE', React.createElement(LiveArticleFlag, null)],
17
+ ['BREAKING', React.createElement(BreakingArticleFlag, null)],
18
+ ['UPDATED', React.createElement(UpdatedArticleFlag, null)],
19
+ ['EXCLUSIVE', React.createElement(ExclusiveArticleFlag, null)],
20
+ ['SPONSORED', React.createElement(SponsoredArticleFlag, null)],
21
+ ['LONGREAD', React.createElement(LongReadArticleFlag, null)]
22
+ ]);
23
+ const FlagsView = ({ allFlags }) => {
24
+ return (React.createElement(Flags, null, allFlags.map(flag => (React.createElement(FlagPadding, { key: flag.type, allFlags: allFlags }, flagsMapping().get(flag.type))))));
25
+ };
26
+ const ArticleFlags = ({ flags = [], longRead = false, withContainer = false }) => {
27
+ const activeFlags = getActiveFlags(flags);
28
+ const allFlags = [
29
+ ...activeFlags,
30
+ ...(longRead ? [{ expiryTime: null, type: 'LONGREAD' }] : [])
31
+ ];
32
+ if (!allFlags.length) {
33
+ return null;
34
+ }
35
+ if (!withContainer) {
36
+ return React.createElement(FlagsView, { allFlags: allFlags });
37
+ }
38
+ return (React.createElement(FlagsContainer, null,
39
+ React.createElement(FlagsView, { allFlags: allFlags })));
40
+ };
41
+ export default ArticleFlag;
42
+ export { getActiveFlags, ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUZsYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLWZsYWcvQXJ0aWNsZUZsYWcudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixXQUFXLEVBQ1gsS0FBSyxFQUNMLGNBQWMsRUFDZixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxNQUFNLFdBQVcsR0FBK0MsQ0FBQyxFQUMvRCxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQ2xDLEtBQUssRUFDTixFQUFFLEVBQUUsQ0FBQyxDQUNKLG9CQUFDLG9CQUFvQjtJQUNuQixvQkFBQyxpQkFBaUIsSUFBQyxLQUFLLEVBQUUsS0FBSyxHQUFJO0lBQ25DLG9CQUFDLHdCQUF3QixrQkFDWCxHQUFHLEtBQUssT0FBTyxFQUMzQixLQUFLLEVBQUUsS0FBSyxpQkFDQyxRQUFRLEtBQUssRUFBRSxJQUUzQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQ0ssQ0FDTixDQUN4QixDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQWEsR0FBRyxFQUFFLENBQUMsQ0FDckMsb0JBQUMsV0FBVyxJQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUMsS0FBSyxHQUFHLENBQ3RFLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFhLEdBQUcsRUFBRSxDQUFDLENBQ3pDLG9CQUFDLFdBQVcsSUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFD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
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag, ArticleFlags } from './ArticleFlag';
4
+ import { LiveArticleFlag, BreakingArticleFlag } from './LiveArticleFlag';
5
+ storiesOf('Typescript Component/Article Flag', module)
6
+ .add('Article Flag (New)', () => React.createElement(NewArticleFlag, null))
7
+ .add('Article Flag (Live)', () => React.createElement(LiveArticleFlag, null))
8
+ .add('Article Flag (Breaking)', () => React.createElement(BreakingArticleFlag, null))
9
+ .add('Article Flag (Updated)', () => React.createElement(UpdatedArticleFlag, null))
10
+ .add('Article Flag (Exclusive)', () => React.createElement(ExclusiveArticleFlag, null))
11
+ .add('Article Flag (Sponsored)', () => React.createElement(SponsoredArticleFlag, null))
12
+ .add('Article Flag (Long Read)', () => React.createElement(LongReadArticleFlag, null))
13
+ .add('Article Flags', () => (React.createElement(ArticleFlags, { flags: [
14
+ { expiryTime: '2030-03-13T12:00:00.000Z', type: 'LIVE' },
15
+ { expiryTime: '2030-03-13T12:00:00.000Z', type: 'BREAKING' },
16
+ { expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
17
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
18
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
19
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
20
+ ], longRead: true, withContainer: false })))
21
+ .add('Article Flags with Container', () => (React.createElement(ArticleFlags, { flags: [
22
+ { expiryTime: '2030-03-13T12:00:00.000Z', type: 'LIVE' },
23
+ { expiryTime: '2030-03-13T12:00:00.000Z', type: 'BREAKING' },
24
+ { expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
25
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
26
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
27
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
28
+ ], longRead: true, withContainer: true })));
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUZsYWcuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtZmxhZy9BcnRpY2xlRmxhZy5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFekUsU0FBUyxDQUFDLG1DQUFtQyxFQUFFLE1BQU0sQ0FBQztLQUNuRCxHQUFHLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQUMsY0FBYyxPQUFHLENBQUM7S0FDbkQsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFDLGVBQWUsT0FBRyxDQUFDO0tBQ3JELEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxtQkFBbUIsT0FBRyxDQUFDO0tBQzdELEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxrQkFBa0IsT0FBRyxDQUFDO0tBQzNELEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxvQkFBb0IsT0FBRyxDQUFDO0tBQy9ELEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxvQkFBb0IsT0FBRyxDQUFDO0tBQy9ELEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxtQkFBbUIsT0FBRyxDQUFDO0tBQzlELEdBQUcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDMUIsb0JBQUMsWUFBWSxJQUNYLEtBQUssRUFBRTtRQUNMLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7UUFDeEQsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtRQUM1RCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1FBQzNELEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7UUFDN0QsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUN2RCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO0tBQzlELEVBQ0QsUUFBUSxRQUNSLGFBQWEsRUFBRSxLQUFLLEdBQ3BCLENBQ0gsQ0FBQztLQUNELEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUN6QyxvQkFBQyxZQUFZLElBQ1gsS0FBSyxFQUFFO1FBQ0wsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUN4RCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1FBQzVELEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7UUFDM0QsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtRQUM3RCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO1FBQ3ZELEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7S0FDOUQsRUFDRCxRQUFRLFFBQ1IsYUFBYSxTQUNiLENBQ0gsQ0FBQyxDQUFDIn0=
@@ -1,2 +1,6 @@
1
1
  import React from 'react';
2
+ export declare const BaseLiveArticleFlag: React.FC<{
3
+ title: string;
4
+ }>;
2
5
  export declare const LiveArticleFlag: React.FC;
6
+ export declare const BreakingArticleFlag: React.FC;
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
- import { Container, BulletContainer, Title } from './styles';
3
- export const LiveArticleFlag = () => (React.createElement(Container, null,
4
- React.createElement(BulletContainer, null, '\u25c6'),
5
- React.createElement(Title, null, "LIVE")));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUFydGljbGVGbGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1mbGFnL0xpdmVBcnRpY2xlRmxhZy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWEsR0FBRyxFQUFFLENBQUMsQ0FDN0Msb0JBQUMsU0FBUztJQUNSLG9CQUFDLGVBQWUsUUFBRSxRQUFRLENBQW1CO0lBQzdDLG9CQUFDLEtBQUssZUFBYSxDQUNULENBQ2IsQ0FBQyJ9
2
+ import { LiveArticleFlagContainer, LiveDiamondContainer, LiveArticleFlagTextContainer } from './styles';
3
+ export const BaseLiveArticleFlag = ({ title }) => (React.createElement(LiveArticleFlagContainer, null,
4
+ React.createElement(LiveDiamondContainer, null, '\u25c6'),
5
+ React.createElement(LiveArticleFlagTextContainer, null, title)));
6
+ export const LiveArticleFlag = () => (React.createElement(BaseLiveArticleFlag, { title: "LIVE" }));
7
+ export const BreakingArticleFlag = () => (React.createElement(BaseLiveArticleFlag, { title: "BREAKING" }));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUFydGljbGVGbGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1mbGFnL0xpdmVBcnRpY2xlRmxhZy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLDRCQUE0QixFQUM3QixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBZ0MsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUM3RSxvQkFBQyx3QkFBd0I7SUFDdkIsb0JBQUMsb0JBQW9CLFFBQUUsUUFBUSxDQUF3QjtJQUN2RCxvQkFBQyw0QkFBNEIsUUFBRSxLQUFLLENBQWdDLENBQzNDLENBQzVCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWEsR0FBRyxFQUFFLENBQUMsQ0FDN0Msb0JBQUMsbUJBQW1CLElBQUMsS0FBSyxFQUFDLE1BQU0sR0FBRyxDQUNyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWEsR0FBRyxFQUFFLENBQUMsQ0FDakQsb0JBQUMsbUJBQW1CLElBQUMsS0FBSyxFQUFDLFVBQVUsR0FBRyxDQUN6QyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,75 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import '@testing-library/jest-dom';
4
+ import { ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag } from '../ArticleFlag';
5
+ import mockDate from 'mockdate';
6
+ jest.mock('@times-components/ts-components', () => ({
7
+ __esModule: true,
8
+ ...jest.requireActual('@times-components/ts-components'),
9
+ LiveArticleFlag: 'LiveArticleFlag'
10
+ }));
11
+ describe('ArticleFlag', () => {
12
+ // GMT: Thursday, 14 March 2019 16:22:54
13
+ beforeEach(() => {
14
+ mockDate.set(1552580574000);
15
+ });
16
+ afterEach(() => {
17
+ mockDate.reset();
18
+ });
19
+ it('renders an article flag', () => {
20
+ const { baseElement } = render(React.createElement(ArticleFlag, { title: "No Colour", color: '' }));
21
+ expect(baseElement).toMatchSnapshot();
22
+ });
23
+ it('renders a red article flag', () => {
24
+ const { baseElement } = render(React.createElement(ArticleFlag, { color: "red", title: "Coloured Red" }));
25
+ expect(baseElement).toMatchSnapshot();
26
+ });
27
+ it('renders the new article flag', () => {
28
+ const { baseElement, getByText } = render(React.createElement(NewArticleFlag, null));
29
+ expect(getByText('new')).toBeTruthy();
30
+ expect(baseElement).toMatchSnapshot();
31
+ });
32
+ it('renders the updated article flag', () => {
33
+ const { baseElement, getByText } = render(React.createElement(UpdatedArticleFlag, null));
34
+ expect(getByText('updated')).toBeTruthy();
35
+ expect(baseElement).toMatchSnapshot();
36
+ });
37
+ it('renders the exclusive article flag', () => {
38
+ const { baseElement, getByText } = render(React.createElement(ExclusiveArticleFlag, null));
39
+ expect(getByText('exclusive')).toBeTruthy();
40
+ expect(baseElement).toMatchSnapshot();
41
+ });
42
+ it('renders the sponsored article flag', () => {
43
+ const { baseElement, getByText } = render(React.createElement(SponsoredArticleFlag, null));
44
+ expect(getByText('sponsored')).toBeTruthy();
45
+ expect(baseElement).toMatchSnapshot();
46
+ });
47
+ it('renders the long read article flag', () => {
48
+ const { baseElement, getByText } = render(React.createElement(LongReadArticleFlag, null));
49
+ expect(getByText('long read')).toBeTruthy();
50
+ expect(baseElement).toMatchSnapshot();
51
+ });
52
+ it('renders multiple article flags', () => {
53
+ const { baseElement } = render(React.createElement(ArticleFlags, { flags: [
54
+ { expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
55
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
56
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
57
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
58
+ ], longRead: true, withContainer: false }));
59
+ expect(baseElement).toMatchSnapshot();
60
+ });
61
+ it('renders multiple article flags in a container', () => {
62
+ const { baseElement } = render(React.createElement(ArticleFlags, { flags: [
63
+ { expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
64
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
65
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
66
+ { expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
67
+ ], longRead: true, withContainer: true }));
68
+ expect(baseElement).toMatchSnapshot();
69
+ });
70
+ it('does not render article flags if there are none', () => {
71
+ const { baseElement } = render(React.createElement(ArticleFlags, { flags: [], longRead: false, withContainer: false }));
72
+ expect(baseElement).toMatchSnapshot();
73
+ });
74
+ });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUZsYWcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtZmxhZy9fX3Rlc3RzX18vQXJ0aWNsZUZsYWcudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQ0FBaUMsQ0FBQztJQUN4RCxlQUFlLEVBQUUsaUJBQWlCO0NBQ25DLENBQUMsQ0FBQyxDQUFDO0FBRUosUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IseUNBQXlDO0lBQ3pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FDNUIsb0JBQUMsV0FBVyxJQUFDLEtBQUssRUFBQyxXQUFXLEVBQUMs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
@@ -1,12 +1,22 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
3
  import '@testing-library/jest-dom';
4
- import { LiveArticleFlag } from '../LiveArticleFlag';
5
- describe('<LiveArticleFlag>', () => {
6
- it('should render the component', () => {
4
+ import { BaseLiveArticleFlag, BreakingArticleFlag, LiveArticleFlag } from '../LiveArticleFlag';
5
+ describe('LiveArticleFlag', () => {
6
+ it('should render the base live article flag', () => {
7
+ const { baseElement, getByText } = render(React.createElement(BaseLiveArticleFlag, { title: "BASE" }));
8
+ expect(getByText('BASE')).toBeTruthy();
9
+ expect(baseElement).toMatchSnapshot();
10
+ });
11
+ it('should render the breaking article flag', () => {
12
+ const { baseElement, getByText } = render(React.createElement(BreakingArticleFlag, null));
13
+ expect(getByText('BREAKING')).toBeTruthy();
14
+ expect(baseElement).toMatchSnapshot();
15
+ });
16
+ it('should render the live article flag', () => {
7
17
  const { baseElement, getByText } = render(React.createElement(LiveArticleFlag, null));
8
18
  expect(getByText('LIVE')).toBeTruthy();
9
19
  expect(baseElement).toMatchSnapshot();
10
20
  });
11
21
  });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUFydGljbGVGbGFnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLWZsYWcvX190ZXN0c19fL0xpdmVBcnRpY2xlRmxhZy50ZXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsRUFBRSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtRQUNyQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxlQUFlLE9BQUcsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUFydGljbGVGbGFnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLWZsYWcvX190ZXN0c19fL0xpdmVBcnRpY2xlRmxhZy50ZXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDdkMsb0JBQUMsbUJBQW1CLElBQUMsS0FBSyxFQUFDLE1BQU0sR0FBRyxDQUNyQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsb0JBQUMsbUJBQW1CLE9BQUcsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO1FBQzdDLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFDLGVBQWUsT0FBRyxDQUFDLENBQUM7UUFDL0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,36 @@
1
+ import mockDate from 'mockdate';
2
+ import getActiveFlags from '../getActiveFlags';
3
+ describe('get active flags function', () => {
4
+ // GMT: Thursday, 14 March 2019 16:22:54
5
+ beforeEach(() => {
6
+ mockDate.set(1552580574000);
7
+ });
8
+ afterEach(() => {
9
+ mockDate.reset();
10
+ });
11
+ it('returns only active flags', () => {
12
+ const flags = [
13
+ { expiryTime: '2020-03-13T12:00:00.000Z', type: 'UPDATED' },
14
+ { expiryTime: '2019-03-14T12:00:00.000Z', type: 'EXCLUSIVE' }
15
+ ];
16
+ expect(getActiveFlags(flags)).toEqual([flags[0]]);
17
+ });
18
+ it('returns no flags when all have expired', () => {
19
+ const flags = [
20
+ { expiryTime: '2019-03-14T16:22:54.000Z', type: 'UPDATED' },
21
+ { expiryTime: '2019-03-14T12:00:00.000Z', type: 'EXCLUSIVE' }
22
+ ];
23
+ expect(getActiveFlags(flags)).toEqual([]);
24
+ });
25
+ it('returns flags when expiry time is null', () => {
26
+ const flags = [
27
+ { expiryTime: null, type: 'UPDATED' },
28
+ { expiryTime: null, type: 'EXCLUSIVE' }
29
+ ];
30
+ expect(getActiveFlags(flags)).toEqual(flags);
31
+ });
32
+ it('returns no flags when no flags are provided', () => {
33
+ expect(getActiveFlags([])).toEqual([]);
34
+ });
35
+ });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWN0aXZlRmxhZ3MudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtZmxhZy9fX3Rlc3RzX18vZ2V0QWN0aXZlRmxhZ3MudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxjQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFFL0MsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtJQUN6Qyx5Q0FBeUM7SUFDekMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxNQUFNLEtBQUssR0FBRztZQUNaLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDM0QsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUM5RCxDQUFDO1FBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sS0FBSyxHQUFHO1lBQ1osRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMzRCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1NBQzlELENBQUM7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxNQUFNLEtBQUssR0FBRztZQUNaLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3JDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1NBQ3hDLENBQUM7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ import { FlagType } from './ArticleFlag';
2
+ declare const getActiveArticleFlags: (flags: FlagType) => FlagType;
3
+ export default getActiveArticleFlags;
@@ -0,0 +1,9 @@
1
+ const getActiveArticleFlags = flags => {
2
+ if (!flags) {
3
+ return [];
4
+ }
5
+ return flags.filter(flag => flag.expiryTime === null ||
6
+ new Date().getTime() < new Date(flag.expiryTime).getTime());
7
+ };
8
+ export default getActiveArticleFlags;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWN0aXZlRmxhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLWZsYWcvZ2V0QWN0aXZlRmxhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxxQkFBcUIsR0FBa0MsS0FBSyxDQUFDLEVBQUU7SUFDbkUsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQ2pCLElBQUksQ0FBQyxFQUFFLENBQ0wsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJO1FBQ3hCLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUM3RCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsZUFBZSxxQkFBcUIsQ0FBQyJ9
@@ -1,3 +1,12 @@
1
- export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
- export declare const BulletContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
3
- export declare const Title: import("styled-components").StyledComponent<"div", any, {}, never>;
1
+ import { FlagType } from './ArticleFlag';
2
+ export declare const ArticleFlagContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const LiveArticleFlagContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const ArticleFlagBullet: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const LiveDiamondContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const ArticleFlagTextContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
7
+ export declare const LiveArticleFlagTextContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ export declare const FlagPadding: import("styled-components").StyledComponent<"div", any, {
9
+ allFlags: FlagType;
10
+ }, never>;
11
+ export declare const Flags: import("styled-components").StyledComponent<"div", any, {}, never>;
12
+ export declare const FlagsContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1,17 +1,38 @@
1
1
  import styled from 'styled-components';
2
2
  import { fonts } from '@times-components/styleguide';
3
- export const Container = styled.div `
3
+ import { gqlRgbaToStyle } from '@times-components/utils';
4
+ export const ArticleFlagContainer = styled.div `
5
+ display: flex;
6
+ align-items: center;
7
+ flex-direction: row;
8
+ `;
9
+ export const LiveArticleFlagContainer = styled.div `
4
10
  display: flex;
5
11
  padding: 2px 6px;
6
12
  background-color: #9f0000;
7
13
  align-items: baseline;
8
14
  `;
9
- export const BulletContainer = styled.div `
15
+ export const ArticleFlagBullet = styled.div `
16
+ border-radius: 2.5px;
17
+ height: 5px;
18
+ width: 5px;
19
+ background-color: ${({ color }) => gqlRgbaToStyle(color) || color};
20
+ `;
21
+ export const LiveDiamondContainer = styled.div `
10
22
  margin-right: 4px;
11
23
  color: #ffffff;
12
24
  line-height: 16px;
13
25
  `;
14
- export const Title = styled.div `
26
+ export const ArticleFlagTextContainer = styled.div `
27
+ font-family: TimesDigitalW04-RegularSC;
28
+ font-size: 12px;
29
+ font-weight: 400;
30
+ letter-spacing: 0.6px;
31
+ line-height: 12px;
32
+ margin-left: 5px;
33
+ color: ${({ color }) => gqlRgbaToStyle(color) || color};
34
+ `;
35
+ export const LiveArticleFlagTextContainer = styled.div `
15
36
  font-family: ${fonts.supporting};
16
37
  color: #ffffff;
17
38
  font-weight: 500;
@@ -19,4 +40,17 @@ export const Title = styled.div `
19
40
  letter-spacing: 0.1em;
20
41
  line-height: 16px;
21
42
  `;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1mbGFnL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7O0NBS2xDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTs7OztDQUl4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7aUJBQ2QsS0FBSyxDQUFDLFVBQVU7Ozs7OztDQU1oQyxDQUFDIn0=
43
+ export const FlagPadding = styled.div `
44
+ margin-right: ${({ allFlags }) => (allFlags.length > 1 ? '15px' : 0)};
45
+ `;
46
+ export const Flags = styled.div `
47
+ display: flex;
48
+ flex-direction: row;
49
+ flex-wrap: wrap;
50
+ margin-bottom: 10px;
51
+ `;
52
+ export const FlagsContainer = styled.div `
53
+ margin-bottom: 15px;
54
+ margin-top: 5px;
55
+ `;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1mbGFnL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7Q0FJN0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7O0NBS2pELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7O3NCQUlyQixDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLO0NBQ2xFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7O0NBSTdDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7Ozs7O1dBT3ZDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUs7Q0FDdkQsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7aUJBQ3JDLEtBQUssQ0FBQyxVQUFVOzs7Ozs7Q0FNaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUF3QjtrQkFDM0MsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNyRSxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7O0NBSzlCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTs7O0NBR3ZDLENBQUMifQ==
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ export declare const InlineDialog: FC<{
3
+ title: string;
4
+ buttonText: string;
5
+ href?: string;
6
+ onClick: () => void;
7
+ }>;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { Container, Title, Description, Button } from './styles';
3
+ export const InlineDialog = ({ title, href = '#', onClick, buttonText, children }) => (React.createElement(Container, null,
4
+ React.createElement(Title, null, title),
5
+ React.createElement(Description, null, children),
6
+ React.createElement(Button, { href: href, onClick: onClick }, buttonText)));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lRGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5saW5lLWRpYWxvZy9JbmxpbmVEaWFsb2cudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBYSxNQUFNLE9BQU8sQ0FBQztBQUNsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FLcEIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQzdELG9CQUFDLFNBQVM7SUFDUixvQkFBQyxLQUFLLFFBQUUsS0FBSyxDQUFTO0lBQ3RCLG9CQUFDLFdBQVcsUUFBRSxRQUFRLENBQWU7SUFDckMsb0JBQUMsTUFBTSxJQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFDakMsVUFBVSxDQUNKLENBQ0MsQ0FDYixDQUFDIn0=
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { InlineDialog } from './InlineDialog';
4
+ import { action } from '@storybook/addon-actions';
5
+ storiesOf('Typescript Component/InlineDialog', module).add('default', () => {
6
+ return (React.createElement(InlineDialog, { title: "Join the conversation", buttonText: "Subscribe Now", onClick: () => action('InlineDialog')('click') }, "Commenting is only for subscribers. If you would like to comment, please sign up."));
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lRGlhbG9nLnN0b3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9pbmxpbmUtZGlhbG9nL0lubGluZURpYWxvZy5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsU0FBUyxDQUFDLG1DQUFtQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQ3pFLE9BQU8sQ0FDTCxvQkFBQyxZQUFZLElBQ1gsS0FBSyxFQUFDLHVCQUF1QixFQUM3QixVQUFVLEVBQUMsZUFBZSxFQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx3RkFJakMsQ0FDaEIsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { render, fireEvent } from '@testing-library/react';
3
+ import '@testing-library/jest-dom';
4
+ import { InlineDialog } from '../InlineDialog';
5
+ describe('<InlineDialog>', () => {
6
+ it('should render the component', () => {
7
+ const onClick = jest.fn();
8
+ const { baseElement, getByText } = render(React.createElement(InlineDialog, { title: "Title", buttonText: "Button", onClick: onClick }));
9
+ expect(getByText('Title')).toBeTruthy();
10
+ const button = getByText('Button');
11
+ fireEvent.click(button);
12
+ expect(onClick).toHaveBeenCalled();
13
+ expect(button).toBeTruthy();
14
+ expect(baseElement).toMatchSnapshot();
15
+ });
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lRGlhbG9nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9pbmxpbmUtZGlhbG9nL19fdGVzdHNfXy9JbmxpbmVEaWFsb2cudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTywyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixFQUFFLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxQixNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDdkMsb0JBQUMsWUFBWSxJQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUUsT0FBTyxHQUFJLENBQ3JFLENBQUM7UUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTVCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,4 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const Title: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const Description: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const Button: import("styled-components").StyledComponent<"a", any, {}, never>;
@@ -0,0 +1,50 @@
1
+ import styled from 'styled-components';
2
+ import { breakpoints, fonts } from '@times-components/styleguide';
3
+ export const Container = styled.div `
4
+ display: flex;
5
+ flex-direction: column;
6
+ align-items: center;
7
+ padding: 60px;
8
+
9
+ @media (min-width: ${breakpoints.medium}px) {
10
+ padding: 88px;
11
+ }
12
+ `;
13
+ export const Title = styled.div `
14
+ font-family: ${fonts.headline};
15
+ font-size: 32px;
16
+ line-height: 32px;
17
+ letter-spacing: 0;
18
+ text-align: center;
19
+ padding: 24px;
20
+ `;
21
+ export const Description = styled.div `
22
+ font-family: ${fonts.body};
23
+ font-weight: 400;
24
+ font-size: 18px;
25
+ line-height: 28px;
26
+ letter-spacing: 0;
27
+ text-align: center;
28
+ max-width: 660px;
29
+ `;
30
+ export const Button = styled.a `
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ text-decoration: none;
35
+
36
+ background-color: #008387;
37
+ color: white;
38
+ font-family: ${fonts.supporting};
39
+ width: 127px;
40
+ height: 48px;
41
+
42
+ font-size: 16px;
43
+ font-style: normal;
44
+ font-weight: 500;
45
+ line-height: 20px;
46
+ letter-spacing: 0;
47
+
48
+ margin: 24px;
49
+ `;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5saW5lLWRpYWxvZy9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTs7Ozs7O3VCQU1aLFdBQVcsQ0FBQyxNQUFNOzs7Q0FHeEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBO2lCQUNkLEtBQUssQ0FBQyxRQUFROzs7Ozs7Q0FNOUIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBO2lCQUNwQixLQUFLLENBQUMsSUFBSTs7Ozs7OztDQU8xQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7Ozs7Ozs7O2lCQVFiLEtBQUssQ0FBQyxVQUFVOzs7Ozs7Ozs7OztDQVdoQyxDQUFDIn0=
@@ -7,7 +7,7 @@ const MessageConfig = {
7
7
  };
8
8
  export const Container = styled.div `
9
9
  display: flex;
10
-
10
+ margin-top: 50px;
11
11
  &.info {
12
12
  background-color: ${MessageConfig.info.background};
13
13
  border-left: 4px solid ${MessageConfig.info.foreground};
package/dist/index.d.ts CHANGED
@@ -3,7 +3,8 @@ export { InfoCard } from './components/in-article-info-card/InfoCard';
3
3
  export { GalleryCarousel } from './components/carousel/GalleryCarousel';
4
4
  export { InfoCardBulletPoints } from './components/in-article-info-card-bulletpoints/InfoCardBulletPoints';
5
5
  export { BigNumbers } from './components/in-article-big-numbers/BigNumbers';
6
- export { LiveArticleFlag } from './components/article-flag/LiveArticleFlag';
6
+ export { BreakingArticleFlag, LiveArticleFlag } from './components/article-flag/LiveArticleFlag';
7
+ export { ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag } from './components/article-flag/ArticleFlag';
7
8
  export { AutoNewsletterPuff } from './components/newsletter-puff/AutoNewsletterPuff';
8
9
  export { InlineNewsletterPuff } from './components/newsletter-puff/InlineNewsletterPuff';
9
10
  export { PreviewNewsletterPuff } from './components/newsletter-puff/PreviewNewsletterPuff';
@@ -23,3 +24,4 @@ export { TrackingContextProvider } from './helpers/tracking/TrackingContextProvi
23
24
  export { AlgoliaSearchProvider, useAlgoliaSearch } from './helpers/algolia/AlgoliaSearchProvider';
24
25
  export { HiddenDiv } from './components/common-styles';
25
26
  export { InlineMessage } from './components/inline-message/InlineMessage';
27
+ export { InlineDialog } from './components/inline-dialog/InlineDialog';