@times-components/article-skeleton 1.85.42 → 1.86.2
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/babel.config.js +13 -2
- package/dist/article-body/article-body-paragraph.js +101 -1
- package/dist/article-body/article-body.js +657 -1
- package/dist/article-body/article-link-tracking-events.js +28 -1
- package/dist/article-body/article-link.js +51 -1
- package/dist/article-body/drop-cap.js +70 -1
- package/dist/article-body/inline-paragraph.js +142 -1
- package/dist/article-body/inset-caption.js +44 -1
- package/dist/article-body/simple-paragraph.js +99 -1
- package/dist/article-skeleton-prop-types.js +38 -1
- package/dist/article-skeleton.js +265 -1
- package/dist/article-topics/index.js +43 -1
- package/dist/body-utils.js +81 -1
- package/dist/contentModifiers/dropcap-util-common.js +117 -1
- package/dist/contentModifiers/dropcap-util.js +28 -1
- package/dist/contentModifiers/inline-ad.js +46 -1
- package/dist/contentModifiers/inline-related-article.js +71 -1
- package/dist/contentModifiers/native-ad.js +56 -1
- package/dist/contentModifiers/newsletter-puff.js +143 -1
- package/dist/data-helper.js +106 -1
- package/dist/gutter.js +43 -1
- package/dist/head.js +472 -1
- package/dist/keylines.js +24 -1
- package/dist/paywall-portal.js +47 -1
- package/dist/sticky-save-and-share-bar.js +60 -1
- package/dist/styles/article-body/article-link.js +18 -1
- package/dist/styles/article-body/index.js +41 -1
- package/dist/styles/article-body/responsive.js +143 -1
- package/dist/styles/article-body/shared.js +124 -1
- package/dist/styles/article-topics/index.js +21 -1
- package/dist/styles/article-topics/responsive.js +21 -1
- package/dist/styles/article-topics/shared.js +24 -1
- package/dist/styles/responsive.js +45 -1
- package/dist/styles/shared.js +20 -1
- package/dist/tracking/article-tracking-context.js +71 -1
- package/dist/tracking/article-tracking-last-paragraph.js +33 -1
- package/package.json +36 -44
- package/rnw.js +1 -1
- package/tsconfig.jest.json +11 -0
package/dist/head.js
CHANGED
|
@@ -1 +1,472 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _react=_interopRequireDefault(require("react"));var _lodash=_interopRequireDefault(require("lodash.get"));var _reactHelmetAsync=require("react-helmet-async");var _propTypes=_interopRequireDefault(require("prop-types"));var _context=_interopRequireDefault(require("@times-components/context"));var _markupForest=require("@times-components/markup-forest");var _utils=require("@times-components/utils");var _jsxFileName="/home/circleci/project/packages/article-skeleton/src/head.js";function getSectionName(article){var tiles=article.tiles;if(!tiles){return null;}var slices=tiles.reduce(function(acc,tile){acc.push.apply(acc,(0,_toConsumableArray2.default)(tile.slices));return acc;},[]);var sections=slices.reduce(function(acc,slice){acc.push.apply(acc,(0,_toConsumableArray2.default)(slice.sections));return acc;},[]);var titles=sections.map(function(section){return section.title;});if(titles.length===0){return null;}var nonNews=titles.filter(function(title){return title!=="News";});return nonNews.length?nonNews[0]:"News";}function getIsLiveBlogExpiryTime(){var articleFlags=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var time="";if(articleFlags!==undefined){for(var i=0;i<articleFlags.length;i+=1){if(articleFlags[i].type==="LIVE"){time=articleFlags[i].expiryTime;}}}return time;}function getIsLiveBlog(){var articleFlags=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];if(articleFlags!==undefined){var articleLiveFlag=articleFlags.find(function(flag){return flag.type==="LIVE"&&(Date.now()<new Date(flag.expiryTime)||flag.expiryTime===null);});return articleLiveFlag!==undefined;}return false;}function getAuthorAsText(article){var bylines=article.bylines;if(!bylines){return null;}var children=bylines.reduce(function(acc,byline){if(Array.isArray(byline.byline)){acc.push.apply(acc,(0,_toConsumableArray2.default)(byline.byline));}else{acc.push(byline.byline);}return acc;},[]);return(0,_markupForest.renderTreeAsText)({children:children});}function getAuthors(_ref){var bylines=_ref.bylines;return bylines.map(function(byline){return byline.author;}).filter(function(author){return author;});}function getAuthorSchema(article){var bylines=article.bylines;return bylines?getAuthors(article).map(function(_ref2){var name=_ref2.name,jobTitle=_ref2.jobTitle,twitter=_ref2.twitter,slug=_ref2.slug;var url="https://thetimes.co.uk/profile/"+slug;return{"@type":"Person",name:name,jobTitle:jobTitle,sameAs:twitter?[url,"https://twitter.com/"+twitter]:url};}):[];}var PUBLICATION_NAMES={SUNDAYTIMES:"The Sunday Times",TIMES:"The Times"};var get169CropUrl=function get169CropUrl(asset){return(0,_lodash.default)(asset,"crop169.url",null);};var getVideoLeadAssetUrl=function getVideoLeadAssetUrl(article){return get169CropUrl((0,_lodash.default)(article,"leadAsset.posterImage",(0,_lodash.default)(article,"leadAsset",null)));};var getImageLeadAssetUrl=function getImageLeadAssetUrl(article){return get169CropUrl((0,_lodash.default)(article,"leadAsset",null));};var getArticleLeadAssetUrl=function getArticleLeadAssetUrl(article){return(article.hasVideo?getVideoLeadAssetUrl:getImageLeadAssetUrl)(article);};var getThumbnailUrlFromImage=function getThumbnailUrlFromImage(article){var tileUrl=article.tiles&&article.tiles.find(function(tile){return(0,_lodash.default)(tile.leadAsset,"crop169.url",null);});if(tileUrl){return tileUrl;}var listingAssetUrl=(0,_lodash.default)(article.listingAsset,"crop169.url",null);if(listingAssetUrl){return listingAssetUrl;}return(0,_lodash.default)(article.leadAsset,"crop169.url",null);};var getThumbnailUrl=function getThumbnailUrl(article){var hasVideo=article.hasVideo,leadAsset=article.leadAsset;var thumbnailUrl=hasVideo?getVideoLeadAssetUrl(article):getThumbnailUrlFromImage(article);if(thumbnailUrl)return thumbnailUrl;if(!leadAsset)return null;var _ref3=leadAsset&&leadAsset.posterImage?leadAsset.posterImage:leadAsset,crop32=_ref3.crop32,crop1251=_ref3.crop1251,crop11=_ref3.crop11,crop45=_ref3.crop45,crop23=_ref3.crop23,crop2251=_ref3.crop2251;var crop=crop32||crop1251||crop11||crop45||crop23||crop2251;return crop?crop.url:"";};var getLiveBlogUpdates=function getLiveBlogUpdates(article,publisher,author){var updates=[];if(article===null){return updates;}var content=article.content;var anchorString=function anchorString(){var updateTxt=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var headlineTxt=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";var onlyNumbersReg=/\D+/g;var onlyNumbers=updateTxt.replace(onlyNumbersReg,"");var acronymReg=/\b(\w)/g;var acronymMatch=headlineTxt.match(acronymReg);var acronym=acronymMatch===null?"":acronymMatch.join("");return"u_"+onlyNumbers+acronym;};if(content!==undefined){var update;var loopContent=function loopContent(contentObj){for(var i=0;i<contentObj.length;i+=1){if(contentObj[i].name==="interactive"){if(contentObj[i].attributes.element.value==="article-header"){if(update!==undefined){updates.push(update);}var attributes=contentObj[i].attributes.element.attributes;update={"@type":"BlogPosting",headline:attributes.headline,datePublished:attributes.updated,dateModified:attributes.updated,publisher:publisher,url:article.url+"#"+anchorString(attributes.updated,attributes.headline),author:author};}}else if(contentObj[i].name==="paragraph"){if(update!==undefined){var text=(0,_lodash.default)(contentObj[i],"children[0].attributes.value");var updateText=text?(0,_lodash.default)(text)+" ":"";if(update.articleBody){update.articleBody+=updateText;}else{update.articleBody=updateText;}}}else if(contentObj[i].name==="image"){if(update!==undefined){update.image={"@type":"ImageObject",url:contentObj[i].attributes.url,caption:contentObj[i].attributes.caption};}}else if(contentObj[i].name==="video"){if(update!==undefined){update.video={"@type":"VideoObject",thumbnail:contentObj[i].attributes.posterImageUrl};}}else if(contentObj[i].name==="paywall"){if(contentObj[i].children){if(contentObj[i].children.length>0){loopContent(contentObj[i].children);}}}}};loopContent(content);if(update!==undefined){updates.push(update);}}return updates;};function Head(_ref4){var article=_ref4.article,logoUrl=_ref4.logoUrl,paidContentClassName=_ref4.paidContentClassName,getFallbackThumbnailUrl169=_ref4.getFallbackThumbnailUrl169,swgProductId=_ref4.swgProductId;var descriptionMarkup=article.descriptionMarkup,headline=article.headline,leadAsset=article.leadAsset,publicationName=article.publicationName,shortHeadline=article.shortHeadline,publishedTime=article.publishedTime,updatedTime=article.updatedTime,hasVideo=article.hasVideo,seoDescription=article.seoDescription,keywords=article.keywords,url=article.url;var _ref5=leadAsset||{},brightcoveAccountId=_ref5.brightcoveAccountId,brightcoveVideoId=_ref5.brightcoveVideoId;var liveBlogArticleExpiry=getIsLiveBlogExpiryTime(article.expirableFlags);var isLiveBlogArticle=getIsLiveBlog(article.expirableFlags);var publication=PUBLICATION_NAMES[publicationName];var authorName=getAuthorAsText(article);var desc=seoDescription||(Array.isArray(descriptionMarkup)&&descriptionMarkup.length?(0,_markupForest.renderTreeAsText)({children:descriptionMarkup}):null);var sectionname=getSectionName(article);var thumbnailUrl=getThumbnailUrl(article)||(getFallbackThumbnailUrl169?getFallbackThumbnailUrl169():null);var leadassetUrl=(0,_utils.appendToImageURL)(getArticleLeadAssetUrl(article),"resize",1200)||thumbnailUrl;var authors=getAuthorSchema(article);var caption=(0,_lodash.default)(leadAsset,"caption",null);var title=headline||shortHeadline||"";var datePublished=publishedTime&&new Date(publishedTime).toISOString();var dateModified=updatedTime||datePublished;var defaultAuthorSchema={"@type":"Organization",name:"The Times"};var textByLineAuthorSchema=authorName?{"@type":"Person",name:authorName}:null;var authorSchema=(authors&&authors.length?authors:textByLineAuthorSchema)||defaultAuthorSchema;var publisherSchema={"@type":"Organization",name:publication,logo:{"@type":"ImageObject",url:logoUrl}};var liveBlogUpdateSchema=getLiveBlogUpdates(article,publisherSchema,authorSchema);var jsonLD={"@context":"https://schema.org","@type":"NewsArticle",headline:title,publisher:{"@type":"Organization",name:publication,logo:{"@type":"ImageObject",url:logoUrl}},mainEntityOfPage:{"@type":"WebPage"},dateCreated:publishedTime,datePublished:datePublished,isAccessibleForFree:false,hasPart:{"@type":"WebPageElement",isAccessibleForFree:false,cssSelector:"."+paidContentClassName},image:{"@type":"ImageObject",url:leadassetUrl,caption:caption},thumbnailUrl:thumbnailUrl,dateModified:dateModified,author:authorSchema,articleSection:sectionname};if(swgProductId){jsonLD.isPartOf={"@type":["CreativeWork","Product"],name:"The Times & The Sunday Times",productID:swgProductId};}var videoJsonLD=hasVideo?{"@context":"https://schema.org","@type":"VideoObject",name:leadAsset.title||title,uploadDate:dateModified,thumbnailUrl:thumbnailUrl,description:Array.isArray(descriptionMarkup)&&descriptionMarkup.length?(0,_markupForest.renderTreeAsText)({children:descriptionMarkup}):seoDescription||leadAsset.title||title,contentUrl:"https://players.brightcove.net/"+brightcoveAccountId+"/default_default/index.html?videoId="+brightcoveVideoId}:null;var liveBlogJsonLD={"@context":"https://schema.org","@type":"LiveBlogPosting",headline:headline,description:seoDescription,mainEntityOfPage:{"@type":"WebPage","@id":url},datePublished:publishedTime,dateModified:updatedTime,coverageStartTime:publishedTime,coverageEndTime:liveBlogArticleExpiry,url:url,keywords:keywords,image:{"@type":"ImageObject",url:leadassetUrl,caption:caption},publisher:publisherSchema,author:authorSchema,liveBlogUpdate:liveBlogUpdateSchema,articleSection:sectionname};return _react.default.createElement(_context.default.Consumer,{__source:{fileName:_jsxFileName,lineNumber:378,columnNumber:5}},function(_ref6){var makeArticleUrl=_ref6.makeArticleUrl;jsonLD.mainEntityOfPage["@id"]=makeArticleUrl(article);return _react.default.createElement(_reactHelmetAsync.Helmet,{encodeSpecialCharacters:false,__source:{fileName:_jsxFileName,lineNumber:382,columnNumber:11}},_react.default.createElement("title",{__source:{fileName:_jsxFileName,lineNumber:383,columnNumber:13}},title," | ",sectionname?sectionname+" | ":"",publication),_react.default.createElement("meta",{name:"robots",content:"max-image-preview:large",__source:{fileName:_jsxFileName,lineNumber:387,columnNumber:13}}),_react.default.createElement("meta",{content:title,name:"article:title",__source:{fileName:_jsxFileName,lineNumber:388,columnNumber:13}}),_react.default.createElement("meta",{content:publication,name:"article:publication",__source:{fileName:_jsxFileName,lineNumber:389,columnNumber:13}}),desc&&_react.default.createElement("meta",{content:desc,name:"description",__source:{fileName:_jsxFileName,lineNumber:390,columnNumber:22}}),authorName&&_react.default.createElement("meta",{content:authorName,name:"author",__source:{fileName:_jsxFileName,lineNumber:391,columnNumber:28}}),_react.default.createElement("meta",{content:title,property:"og:title",__source:{fileName:_jsxFileName,lineNumber:393,columnNumber:13}}),_react.default.createElement("meta",{content:"article",property:"og:type",__source:{fileName:_jsxFileName,lineNumber:394,columnNumber:13}}),_react.default.createElement("meta",{content:makeArticleUrl(article),property:"og:url",__source:{fileName:_jsxFileName,lineNumber:395,columnNumber:13}}),desc&&_react.default.createElement("meta",{content:desc,property:"og:description",__source:{fileName:_jsxFileName,lineNumber:396,columnNumber:22}}),leadassetUrl&&_react.default.createElement("meta",{content:leadassetUrl,property:"og:image",__source:{fileName:_jsxFileName,lineNumber:398,columnNumber:15}}),hasVideo&&_react.default.createElement("meta",{name:"robots",content:"max-video-preview:-1",__source:{fileName:_jsxFileName,lineNumber:400,columnNumber:26}}),_react.default.createElement("meta",{content:title,name:"twitter:title",__source:{fileName:_jsxFileName,lineNumber:402,columnNumber:13}}),_react.default.createElement("meta",{content:"summary_large_image",name:"twitter:card",__source:{fileName:_jsxFileName,lineNumber:403,columnNumber:13}}),_react.default.createElement("meta",{content:makeArticleUrl(article),name:"twitter:url",__source:{fileName:_jsxFileName,lineNumber:404,columnNumber:13}}),desc&&_react.default.createElement("meta",{content:desc,name:"twitter:description",__source:{fileName:_jsxFileName,lineNumber:405,columnNumber:22}}),leadassetUrl&&_react.default.createElement("meta",{content:leadassetUrl,name:"twitter:image",__source:{fileName:_jsxFileName,lineNumber:407,columnNumber:15}}),isLiveBlogArticle?_react.default.createElement("script",{type:"application/ld+json",__source:{fileName:_jsxFileName,lineNumber:411,columnNumber:15}},JSON.stringify(liveBlogJsonLD)):_react.default.createElement("script",{type:"application/ld+json",__source:{fileName:_jsxFileName,lineNumber:415,columnNumber:15}},JSON.stringify(jsonLD)),videoJsonLD&&_react.default.createElement("script",{type:"application/ld+json",__source:{fileName:_jsxFileName,lineNumber:421,columnNumber:15}},JSON.stringify(videoJsonLD)));});}Head.propTypes={article:_propTypes.default.shape({bylines:_propTypes.default.array,descriptionMarkup:_propTypes.default.array,headline:_propTypes.default.string,id:_propTypes.default.string.isRequired,leadAsset:_propTypes.default.object,publicationName:_propTypes.default.string.isRequired,shortHeadline:_propTypes.default.string,shortIdentifier:_propTypes.default.string.isRequired,tiles:_propTypes.default.array}).isRequired,logoUrl:_propTypes.default.string.isRequired,paidContentClassName:_propTypes.default.string.isRequired,getFallbackThumbnailUrl169:_propTypes.default.func.isRequired,swgProductId:_propTypes.default.string};Head.defaultProps={swgProductId:null};var _default=Head;exports.default=_default;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _lodash = _interopRequireDefault(require("lodash.get"));
|
|
11
|
+
|
|
12
|
+
var _reactHelmetAsync = require("react-helmet-async");
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _context = _interopRequireDefault(require("@times-components/context"));
|
|
17
|
+
|
|
18
|
+
var _markupForest = require("@times-components/markup-forest");
|
|
19
|
+
|
|
20
|
+
var _utils = require("@times-components/utils");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
// Get the section for an article, preferring it not to be News
|
|
25
|
+
function getSectionName(article) {
|
|
26
|
+
const tiles = article.tiles;
|
|
27
|
+
|
|
28
|
+
if (!tiles) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const slices = tiles.reduce((acc, tile) => {
|
|
33
|
+
acc.push(...tile.slices);
|
|
34
|
+
return acc;
|
|
35
|
+
}, []);
|
|
36
|
+
const sections = slices.reduce((acc, slice) => {
|
|
37
|
+
acc.push(...slice.sections);
|
|
38
|
+
return acc;
|
|
39
|
+
}, []);
|
|
40
|
+
const titles = sections.map(section => section.title);
|
|
41
|
+
|
|
42
|
+
if (titles.length === 0) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const nonNews = titles.filter(title => title !== "News");
|
|
47
|
+
return nonNews.length ? nonNews[0] : "News";
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function getIsLiveBlogExpiryTime() {
|
|
51
|
+
let articleFlags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
52
|
+
let time = "";
|
|
53
|
+
|
|
54
|
+
if (articleFlags !== undefined) {
|
|
55
|
+
for (let i = 0; i < articleFlags.length; i += 1) {
|
|
56
|
+
if (articleFlags[i].type === "LIVE") {
|
|
57
|
+
time = articleFlags[i].expiryTime;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return time;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function getIsLiveBlog() {
|
|
66
|
+
let articleFlags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
67
|
+
|
|
68
|
+
if (articleFlags !== undefined) {
|
|
69
|
+
const articleLiveFlag = articleFlags.find(flag => flag.type === "LIVE" && (Date.now() < new Date(flag.expiryTime) || flag.expiryTime === null));
|
|
70
|
+
return articleLiveFlag !== undefined;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function getAuthorAsText(article) {
|
|
77
|
+
const bylines = article.bylines;
|
|
78
|
+
|
|
79
|
+
if (!bylines) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const children = bylines.reduce((acc, byline) => {
|
|
84
|
+
if (Array.isArray(byline.byline)) {
|
|
85
|
+
acc.push(...byline.byline);
|
|
86
|
+
} else {
|
|
87
|
+
acc.push(byline.byline);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return acc;
|
|
91
|
+
}, []);
|
|
92
|
+
return (0, _markupForest.renderTreeAsText)({
|
|
93
|
+
children
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function getAuthors(_ref) {
|
|
98
|
+
let bylines = _ref.bylines;
|
|
99
|
+
return bylines.map(byline => byline.author).filter(author => author);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function getAuthorSchema(article) {
|
|
103
|
+
const bylines = article.bylines;
|
|
104
|
+
return bylines ? getAuthors(article).map(_ref2 => {
|
|
105
|
+
let name = _ref2.name,
|
|
106
|
+
jobTitle = _ref2.jobTitle,
|
|
107
|
+
twitter = _ref2.twitter,
|
|
108
|
+
slug = _ref2.slug;
|
|
109
|
+
const url = "https://thetimes.co.uk/profile/".concat(slug);
|
|
110
|
+
return {
|
|
111
|
+
"@type": "Person",
|
|
112
|
+
name,
|
|
113
|
+
jobTitle,
|
|
114
|
+
sameAs: twitter ? [url, "https://twitter.com/".concat(twitter)] : url
|
|
115
|
+
};
|
|
116
|
+
}) : [];
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const PUBLICATION_NAMES = {
|
|
120
|
+
SUNDAYTIMES: "The Sunday Times",
|
|
121
|
+
TIMES: "The Times"
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const get169CropUrl = asset => (0, _lodash.default)(asset, "crop169.url", null);
|
|
125
|
+
|
|
126
|
+
const getVideoLeadAssetUrl = article => get169CropUrl((0, _lodash.default)(article, "leadAsset.posterImage", (0, _lodash.default)(article, "leadAsset", null)));
|
|
127
|
+
|
|
128
|
+
const getImageLeadAssetUrl = article => get169CropUrl((0, _lodash.default)(article, "leadAsset", null));
|
|
129
|
+
|
|
130
|
+
const getArticleLeadAssetUrl = article => (article.hasVideo ? getVideoLeadAssetUrl : getImageLeadAssetUrl)(article);
|
|
131
|
+
|
|
132
|
+
const getThumbnailUrlFromImage = article => {
|
|
133
|
+
const tileUrl = article.tiles && article.tiles.find(tile => (0, _lodash.default)(tile.leadAsset, "crop169.url", null));
|
|
134
|
+
|
|
135
|
+
if (tileUrl) {
|
|
136
|
+
return tileUrl;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const listingAssetUrl = (0, _lodash.default)(article.listingAsset, "crop169.url", null);
|
|
140
|
+
|
|
141
|
+
if (listingAssetUrl) {
|
|
142
|
+
return listingAssetUrl;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return (0, _lodash.default)(article.leadAsset, "crop169.url", null);
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
const getThumbnailUrl = article => {
|
|
149
|
+
const hasVideo = article.hasVideo,
|
|
150
|
+
leadAsset = article.leadAsset;
|
|
151
|
+
const thumbnailUrl = hasVideo ? getVideoLeadAssetUrl(article) : getThumbnailUrlFromImage(article);
|
|
152
|
+
if (thumbnailUrl) return thumbnailUrl;
|
|
153
|
+
if (!leadAsset) return null;
|
|
154
|
+
|
|
155
|
+
const _ref3 = leadAsset && leadAsset.posterImage ? leadAsset.posterImage : leadAsset,
|
|
156
|
+
crop32 = _ref3.crop32,
|
|
157
|
+
crop1251 = _ref3.crop1251,
|
|
158
|
+
crop11 = _ref3.crop11,
|
|
159
|
+
crop45 = _ref3.crop45,
|
|
160
|
+
crop23 = _ref3.crop23,
|
|
161
|
+
crop2251 = _ref3.crop2251;
|
|
162
|
+
|
|
163
|
+
const crop = crop32 || crop1251 || crop11 || crop45 || crop23 || crop2251;
|
|
164
|
+
return crop ? crop.url : "";
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
const getLiveBlogUpdates = (article, publisher, author) => {
|
|
168
|
+
const updates = [];
|
|
169
|
+
|
|
170
|
+
if (article === null) {
|
|
171
|
+
return updates;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const content = article.content;
|
|
175
|
+
|
|
176
|
+
const anchorString = function anchorString() {
|
|
177
|
+
let updateTxt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
178
|
+
let headlineTxt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
179
|
+
const onlyNumbersReg = /\D+/g;
|
|
180
|
+
const onlyNumbers = updateTxt.replace(onlyNumbersReg, "");
|
|
181
|
+
const acronymReg = /\b(\w)/g;
|
|
182
|
+
const acronymMatch = headlineTxt.match(acronymReg);
|
|
183
|
+
const acronym = acronymMatch === null ? "" : acronymMatch.join("");
|
|
184
|
+
return "u_".concat(onlyNumbers).concat(acronym);
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
if (content !== undefined) {
|
|
188
|
+
let update;
|
|
189
|
+
|
|
190
|
+
const loopContent = contentObj => {
|
|
191
|
+
for (let i = 0; i < contentObj.length; i += 1) {
|
|
192
|
+
if (contentObj[i].name === "interactive") {
|
|
193
|
+
if (contentObj[i].attributes.element.value === "article-header") {
|
|
194
|
+
if (update !== undefined) {
|
|
195
|
+
updates.push(update);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
const attributes = contentObj[i].attributes.element.attributes;
|
|
199
|
+
update = {
|
|
200
|
+
"@type": "BlogPosting",
|
|
201
|
+
headline: attributes.headline,
|
|
202
|
+
datePublished: attributes.updated,
|
|
203
|
+
dateModified: attributes.updated,
|
|
204
|
+
publisher,
|
|
205
|
+
url: "".concat(article.url, "#").concat(anchorString(attributes.updated, attributes.headline)),
|
|
206
|
+
author
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
} else if (contentObj[i].name === "paragraph") {
|
|
210
|
+
if (update !== undefined) {
|
|
211
|
+
const text = (0, _lodash.default)(contentObj[i], "children[0].attributes.value");
|
|
212
|
+
const updateText = text ? "".concat((0, _lodash.default)(text), " ") : "";
|
|
213
|
+
|
|
214
|
+
if (update.articleBody) {
|
|
215
|
+
update.articleBody += updateText;
|
|
216
|
+
} else {
|
|
217
|
+
update.articleBody = updateText;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
} else if (contentObj[i].name === "image") {
|
|
221
|
+
if (update !== undefined) {
|
|
222
|
+
update.image = {
|
|
223
|
+
"@type": "ImageObject",
|
|
224
|
+
url: contentObj[i].attributes.url,
|
|
225
|
+
caption: contentObj[i].attributes.caption
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
} else if (contentObj[i].name === "video") {
|
|
229
|
+
if (update !== undefined) {
|
|
230
|
+
update.video = {
|
|
231
|
+
"@type": "VideoObject",
|
|
232
|
+
thumbnail: contentObj[i].attributes.posterImageUrl
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
} else if (contentObj[i].name === "paywall") {
|
|
236
|
+
if (contentObj[i].children) {
|
|
237
|
+
if (contentObj[i].children.length > 0) {
|
|
238
|
+
loopContent(contentObj[i].children);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
loopContent(content);
|
|
246
|
+
|
|
247
|
+
if (update !== undefined) {
|
|
248
|
+
updates.push(update);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
return updates;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
function Head(_ref4) {
|
|
256
|
+
let article = _ref4.article,
|
|
257
|
+
logoUrl = _ref4.logoUrl,
|
|
258
|
+
paidContentClassName = _ref4.paidContentClassName,
|
|
259
|
+
getFallbackThumbnailUrl169 = _ref4.getFallbackThumbnailUrl169,
|
|
260
|
+
swgProductId = _ref4.swgProductId;
|
|
261
|
+
const descriptionMarkup = article.descriptionMarkup,
|
|
262
|
+
headline = article.headline,
|
|
263
|
+
leadAsset = article.leadAsset,
|
|
264
|
+
publicationName = article.publicationName,
|
|
265
|
+
shortHeadline = article.shortHeadline,
|
|
266
|
+
publishedTime = article.publishedTime,
|
|
267
|
+
updatedTime = article.updatedTime,
|
|
268
|
+
hasVideo = article.hasVideo,
|
|
269
|
+
seoDescription = article.seoDescription,
|
|
270
|
+
keywords = article.keywords,
|
|
271
|
+
url = article.url;
|
|
272
|
+
|
|
273
|
+
const _ref5 = leadAsset || {},
|
|
274
|
+
brightcoveAccountId = _ref5.brightcoveAccountId,
|
|
275
|
+
brightcoveVideoId = _ref5.brightcoveVideoId;
|
|
276
|
+
|
|
277
|
+
const liveBlogArticleExpiry = getIsLiveBlogExpiryTime(article.expirableFlags);
|
|
278
|
+
const isLiveBlogArticle = getIsLiveBlog(article.expirableFlags);
|
|
279
|
+
const publication = PUBLICATION_NAMES[publicationName];
|
|
280
|
+
const authorName = getAuthorAsText(article);
|
|
281
|
+
const desc = seoDescription || (Array.isArray(descriptionMarkup) && descriptionMarkup.length ? (0, _markupForest.renderTreeAsText)({
|
|
282
|
+
children: descriptionMarkup
|
|
283
|
+
}) : null);
|
|
284
|
+
const sectionname = getSectionName(article);
|
|
285
|
+
const thumbnailUrl = getThumbnailUrl(article) || (getFallbackThumbnailUrl169 ? getFallbackThumbnailUrl169() : null);
|
|
286
|
+
const leadassetUrl = (0, _utils.appendToImageURL)(getArticleLeadAssetUrl(article), "resize", 1200) || thumbnailUrl;
|
|
287
|
+
const authors = getAuthorSchema(article);
|
|
288
|
+
const caption = (0, _lodash.default)(leadAsset, "caption", null);
|
|
289
|
+
const title = headline || shortHeadline || "";
|
|
290
|
+
const datePublished = publishedTime && new Date(publishedTime).toISOString();
|
|
291
|
+
const dateModified = updatedTime || datePublished;
|
|
292
|
+
const defaultAuthorSchema = {
|
|
293
|
+
"@type": "Organization",
|
|
294
|
+
name: "The Times"
|
|
295
|
+
};
|
|
296
|
+
const textByLineAuthorSchema = authorName ? {
|
|
297
|
+
"@type": "Person",
|
|
298
|
+
name: authorName
|
|
299
|
+
} : null;
|
|
300
|
+
const authorSchema = (authors && authors.length ? authors : textByLineAuthorSchema) || defaultAuthorSchema;
|
|
301
|
+
const publisherSchema = {
|
|
302
|
+
"@type": "Organization",
|
|
303
|
+
name: publication,
|
|
304
|
+
logo: {
|
|
305
|
+
"@type": "ImageObject",
|
|
306
|
+
url: logoUrl
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
const liveBlogUpdateSchema = getLiveBlogUpdates(article, publisherSchema, authorSchema);
|
|
310
|
+
const jsonLD = {
|
|
311
|
+
"@context": "https://schema.org",
|
|
312
|
+
"@type": "NewsArticle",
|
|
313
|
+
headline: title,
|
|
314
|
+
publisher: {
|
|
315
|
+
"@type": "Organization",
|
|
316
|
+
name: publication,
|
|
317
|
+
logo: {
|
|
318
|
+
"@type": "ImageObject",
|
|
319
|
+
url: logoUrl
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
mainEntityOfPage: {
|
|
323
|
+
"@type": "WebPage"
|
|
324
|
+
},
|
|
325
|
+
dateCreated: publishedTime,
|
|
326
|
+
datePublished,
|
|
327
|
+
isAccessibleForFree: false,
|
|
328
|
+
hasPart: {
|
|
329
|
+
"@type": "WebPageElement",
|
|
330
|
+
isAccessibleForFree: false,
|
|
331
|
+
cssSelector: ".".concat(paidContentClassName)
|
|
332
|
+
},
|
|
333
|
+
image: {
|
|
334
|
+
"@type": "ImageObject",
|
|
335
|
+
url: leadassetUrl,
|
|
336
|
+
caption
|
|
337
|
+
},
|
|
338
|
+
thumbnailUrl,
|
|
339
|
+
dateModified,
|
|
340
|
+
author: authorSchema,
|
|
341
|
+
articleSection: sectionname
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
if (swgProductId) {
|
|
345
|
+
jsonLD.isPartOf = {
|
|
346
|
+
"@type": ["CreativeWork", "Product"],
|
|
347
|
+
name: "The Times & The Sunday Times",
|
|
348
|
+
productID: swgProductId
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
const videoJsonLD = hasVideo ? {
|
|
353
|
+
"@context": "https://schema.org",
|
|
354
|
+
"@type": "VideoObject",
|
|
355
|
+
name: leadAsset.title || title,
|
|
356
|
+
uploadDate: dateModified,
|
|
357
|
+
thumbnailUrl,
|
|
358
|
+
description: Array.isArray(descriptionMarkup) && descriptionMarkup.length ? (0, _markupForest.renderTreeAsText)({
|
|
359
|
+
children: descriptionMarkup
|
|
360
|
+
}) : seoDescription || leadAsset.title || title,
|
|
361
|
+
contentUrl: "https://players.brightcove.net/".concat(brightcoveAccountId, "/default_default/index.html?videoId=").concat(brightcoveVideoId)
|
|
362
|
+
} : null;
|
|
363
|
+
const liveBlogJsonLD = {
|
|
364
|
+
"@context": "https://schema.org",
|
|
365
|
+
"@type": "LiveBlogPosting",
|
|
366
|
+
headline,
|
|
367
|
+
description: seoDescription,
|
|
368
|
+
mainEntityOfPage: {
|
|
369
|
+
"@type": "WebPage",
|
|
370
|
+
"@id": url
|
|
371
|
+
},
|
|
372
|
+
datePublished: publishedTime,
|
|
373
|
+
dateModified: updatedTime,
|
|
374
|
+
coverageStartTime: publishedTime,
|
|
375
|
+
coverageEndTime: liveBlogArticleExpiry,
|
|
376
|
+
url,
|
|
377
|
+
keywords,
|
|
378
|
+
image: {
|
|
379
|
+
"@type": "ImageObject",
|
|
380
|
+
url: leadassetUrl,
|
|
381
|
+
caption
|
|
382
|
+
},
|
|
383
|
+
publisher: publisherSchema,
|
|
384
|
+
author: authorSchema,
|
|
385
|
+
liveBlogUpdate: liveBlogUpdateSchema,
|
|
386
|
+
articleSection: sectionname
|
|
387
|
+
};
|
|
388
|
+
return /*#__PURE__*/_react.default.createElement(_context.default.Consumer, null, _ref6 => {
|
|
389
|
+
let makeArticleUrl = _ref6.makeArticleUrl;
|
|
390
|
+
jsonLD.mainEntityOfPage["@id"] = makeArticleUrl(article);
|
|
391
|
+
return /*#__PURE__*/_react.default.createElement(_reactHelmetAsync.Helmet, {
|
|
392
|
+
encodeSpecialCharacters: false
|
|
393
|
+
}, /*#__PURE__*/_react.default.createElement("title", null, title, " | ", sectionname ? "".concat(sectionname, " | ") : "", publication), /*#__PURE__*/_react.default.createElement("meta", {
|
|
394
|
+
name: "robots",
|
|
395
|
+
content: "max-image-preview:large"
|
|
396
|
+
}), /*#__PURE__*/_react.default.createElement("meta", {
|
|
397
|
+
content: title,
|
|
398
|
+
name: "article:title"
|
|
399
|
+
}), /*#__PURE__*/_react.default.createElement("meta", {
|
|
400
|
+
content: publication,
|
|
401
|
+
name: "article:publication"
|
|
402
|
+
}), desc && /*#__PURE__*/_react.default.createElement("meta", {
|
|
403
|
+
content: desc,
|
|
404
|
+
name: "description"
|
|
405
|
+
}), authorName && /*#__PURE__*/_react.default.createElement("meta", {
|
|
406
|
+
content: authorName,
|
|
407
|
+
name: "author"
|
|
408
|
+
}), /*#__PURE__*/_react.default.createElement("meta", {
|
|
409
|
+
content: title,
|
|
410
|
+
property: "og:title"
|
|
411
|
+
}), /*#__PURE__*/_react.default.createElement("meta", {
|
|
412
|
+
content: "article",
|
|
413
|
+
property: "og:type"
|
|
414
|
+
}), /*#__PURE__*/_react.default.createElement("meta", {
|
|
415
|
+
content: makeArticleUrl(article),
|
|
416
|
+
property: "og:url"
|
|
417
|
+
}), desc && /*#__PURE__*/_react.default.createElement("meta", {
|
|
418
|
+
content: desc,
|
|
419
|
+
property: "og:description"
|
|
420
|
+
}), leadassetUrl && /*#__PURE__*/_react.default.createElement("meta", {
|
|
421
|
+
content: leadassetUrl,
|
|
422
|
+
property: "og:image"
|
|
423
|
+
}), hasVideo && /*#__PURE__*/_react.default.createElement("meta", {
|
|
424
|
+
name: "robots",
|
|
425
|
+
content: "max-video-preview:-1"
|
|
426
|
+
}), /*#__PURE__*/_react.default.createElement("meta", {
|
|
427
|
+
content: title,
|
|
428
|
+
name: "twitter:title"
|
|
429
|
+
}), /*#__PURE__*/_react.default.createElement("meta", {
|
|
430
|
+
content: "summary_large_image",
|
|
431
|
+
name: "twitter:card"
|
|
432
|
+
}), /*#__PURE__*/_react.default.createElement("meta", {
|
|
433
|
+
content: makeArticleUrl(article),
|
|
434
|
+
name: "twitter:url"
|
|
435
|
+
}), desc && /*#__PURE__*/_react.default.createElement("meta", {
|
|
436
|
+
content: desc,
|
|
437
|
+
name: "twitter:description"
|
|
438
|
+
}), leadassetUrl && /*#__PURE__*/_react.default.createElement("meta", {
|
|
439
|
+
content: leadassetUrl,
|
|
440
|
+
name: "twitter:image"
|
|
441
|
+
}), isLiveBlogArticle ? /*#__PURE__*/_react.default.createElement("script", {
|
|
442
|
+
type: "application/ld+json"
|
|
443
|
+
}, JSON.stringify(liveBlogJsonLD)) : /*#__PURE__*/_react.default.createElement("script", {
|
|
444
|
+
type: "application/ld+json"
|
|
445
|
+
}, JSON.stringify(jsonLD)), videoJsonLD && /*#__PURE__*/_react.default.createElement("script", {
|
|
446
|
+
type: "application/ld+json"
|
|
447
|
+
}, JSON.stringify(videoJsonLD)));
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
Head.propTypes = {
|
|
452
|
+
article: _propTypes.default.shape({
|
|
453
|
+
bylines: _propTypes.default.array,
|
|
454
|
+
descriptionMarkup: _propTypes.default.array,
|
|
455
|
+
headline: _propTypes.default.string,
|
|
456
|
+
id: _propTypes.default.string.isRequired,
|
|
457
|
+
leadAsset: _propTypes.default.object,
|
|
458
|
+
publicationName: _propTypes.default.string.isRequired,
|
|
459
|
+
shortHeadline: _propTypes.default.string,
|
|
460
|
+
shortIdentifier: _propTypes.default.string.isRequired,
|
|
461
|
+
tiles: _propTypes.default.array
|
|
462
|
+
}).isRequired,
|
|
463
|
+
logoUrl: _propTypes.default.string.isRequired,
|
|
464
|
+
paidContentClassName: _propTypes.default.string.isRequired,
|
|
465
|
+
getFallbackThumbnailUrl169: _propTypes.default.func.isRequired,
|
|
466
|
+
swgProductId: _propTypes.default.string
|
|
467
|
+
};
|
|
468
|
+
Head.defaultProps = {
|
|
469
|
+
swgProductId: null
|
|
470
|
+
};
|
|
471
|
+
var _default = Head;
|
|
472
|
+
exports.default = _default;
|
package/dist/keylines.js
CHANGED
|
@@ -1 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ArticleKeylineItem = exports.KeylineItem = void 0;
|
|
7
|
+
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
|
|
10
|
+
var _tsStyleguide = require("@times-components/ts-styleguide");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
const KeylineItem = _styledComponents.default.div.withConfig({
|
|
15
|
+
displayName: "keylines__KeylineItem",
|
|
16
|
+
componentId: "sc-1s03wwf-0"
|
|
17
|
+
})(["border:solid ", ";border-width:1px 0;& + &{margin-top:-1px !important;}"], _tsStyleguide.colours.functional.keyline);
|
|
18
|
+
|
|
19
|
+
exports.KeylineItem = KeylineItem;
|
|
20
|
+
const ArticleKeylineItem = (0, _styledComponents.default)(KeylineItem).withConfig({
|
|
21
|
+
displayName: "keylines__ArticleKeylineItem",
|
|
22
|
+
componentId: "sc-1s03wwf-1"
|
|
23
|
+
})(["@media (min-width:", "px){margin:0 auto;}&:last-child{margin-bottom:", ";}@media (min-width:", "px){width:80.8%;}@media (min-width:", "px){width:56.2%;}margin-left:", ";margin-right:", ";"], _tsStyleguide.breakpoints.medium, (0, _tsStyleguide.spacing)(6), _tsStyleguide.breakpoints.medium, _tsStyleguide.breakpoints.wide, (0, _tsStyleguide.spacing)(2), (0, _tsStyleguide.spacing)(2));
|
|
24
|
+
exports.ArticleKeylineItem = ArticleKeylineItem;
|
package/dist/paywall-portal.js
CHANGED
|
@@ -1 +1,47 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _lodash = _interopRequireDefault(require("lodash.get"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
const PaywallPortal = _ref => {
|
|
17
|
+
let id = _ref.id,
|
|
18
|
+
componentName = _ref.componentName;
|
|
19
|
+
|
|
20
|
+
if (typeof window !== "undefined") {
|
|
21
|
+
const componentToRender = (0, _lodash.default)(window, "paywallComponent.".concat(componentName));
|
|
22
|
+
|
|
23
|
+
if (componentToRender) {
|
|
24
|
+
return (
|
|
25
|
+
/*#__PURE__*/
|
|
26
|
+
// eslint-disable-next-line
|
|
27
|
+
_react.default.createElement("div", {
|
|
28
|
+
id: id,
|
|
29
|
+
dangerouslySetInnerHTML: {
|
|
30
|
+
__html: componentToRender
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
38
|
+
id: id
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
PaywallPortal.propTypes = {
|
|
43
|
+
id: _propTypes.default.string.isRequired,
|
|
44
|
+
componentName: _propTypes.default.string.isRequired
|
|
45
|
+
};
|
|
46
|
+
var _default = PaywallPortal;
|
|
47
|
+
exports.default = _default;
|
|
@@ -1 +1,60 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
11
|
+
|
|
12
|
+
var _saveAndShareBar = _interopRequireDefault(require("@times-components/save-and-share-bar"));
|
|
13
|
+
|
|
14
|
+
var _sticky = _interopRequireWildcard(require("@times-components/sticky"));
|
|
15
|
+
|
|
16
|
+
var _tsStyleguide = require("@times-components/ts-styleguide");
|
|
17
|
+
|
|
18
|
+
var _utils = require("@times-components/utils");
|
|
19
|
+
|
|
20
|
+
var _keylines = require("./keylines");
|
|
21
|
+
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
|
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
+
|
|
28
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
29
|
+
|
|
30
|
+
const SaveShareContainer = _styledComponents.default.div.withConfig({
|
|
31
|
+
displayName: "sticky-save-and-share-bar__SaveShareContainer",
|
|
32
|
+
componentId: "hqppv0-0"
|
|
33
|
+
})(["background-color:", ";height:60px;", ";"], _tsStyleguide.colours.functional.white, props => props.isClient && [_sticky.selectors.sizer((0, _styledComponents.css)(["border-bottom:1px solid transparent;will-change:border-bottom-color;"])), _sticky.selectors.sticky((0, _styledComponents.css)(["will-change:height,box-shadow;"])), (0, _sticky.computeProgressStyles)(progress => (0, _styledComponents.css)(["height:", "px;box-shadow:0 2px 5px 0 ", ";", ";"], 60 - progress * 10, _tsStyleguide.colours.functional.greyStickyBarBoxShadow, _sticky.selectors.stickySizer((0, _styledComponents.css)(["border-bottom-color:", ";"], _tsStyleguide.colours.functional.greyStickyBarBorderBottom))))]); // This is to avoid transition styles being server side rendered which we
|
|
34
|
+
// do not need. They'll be quite large and are unnecessary on initial render
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
function SaveShareContainerWrapper(props) {
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_utils.ServerClientRender, {
|
|
39
|
+
client: () => /*#__PURE__*/_react.default.createElement(SaveShareContainer, _extends({
|
|
40
|
+
isClient: true
|
|
41
|
+
}, props)),
|
|
42
|
+
server: () => /*#__PURE__*/_react.default.createElement(SaveShareContainer, props)
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const StyledKeylineItem = (0, _styledComponents.default)(_keylines.ArticleKeylineItem).withConfig({
|
|
47
|
+
displayName: "sticky-save-and-share-bar__StyledKeylineItem",
|
|
48
|
+
componentId: "hqppv0-1"
|
|
49
|
+
})(["", ";"], _sticky.selectors.containsSticky((0, _styledComponents.css)(["border-bottom-color:transparent;"])));
|
|
50
|
+
const shouldBeSticky = (0, _sticky.mediaQuery)("(max-width: ".concat(_tsStyleguide.breakpoints.huge, "px)"));
|
|
51
|
+
|
|
52
|
+
function StickySaveAndShareBar(props) {
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement(StyledKeylineItem, null, /*#__PURE__*/_react.default.createElement(_sticky.default, {
|
|
54
|
+
Component: SaveShareContainerWrapper,
|
|
55
|
+
shouldBeSticky: shouldBeSticky
|
|
56
|
+
}, /*#__PURE__*/_react.default.createElement(_saveAndShareBar.default, props)));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
var _default = StickySaveAndShareBar;
|
|
60
|
+
exports.default = _default;
|
|
@@ -1 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.dropCapLinkStyles = exports.linkStyles = void 0;
|
|
7
|
+
|
|
8
|
+
var _tsStyleguide = require("@times-components/ts-styleguide");
|
|
9
|
+
|
|
10
|
+
const linkStyles = {
|
|
11
|
+
base: "\n color: ".concat(_tsStyleguide.colours.functional.action, ";\n font-family: \"").concat(_tsStyleguide.fonts.bodyRegular, "\";\n line-height: 26px;\n font-size: ").concat(_tsStyleguide.fontSizes.bodyMobile, "px;\n margin-bottom: ").concat((0, _tsStyleguide.spacing)(5), "px;\n margin-top: 0;\n "),
|
|
12
|
+
medium: "\n font-size: ".concat(_tsStyleguide.fontSizes.body, "px;\n line-height: 30px;\n ")
|
|
13
|
+
};
|
|
14
|
+
exports.linkStyles = linkStyles;
|
|
15
|
+
const dropCapLinkStyles = {
|
|
16
|
+
base: "\n font-size: inherit;\n text-decoration: none;\n color: ".concat(_tsStyleguide.colours.functional.action, ";\n ")
|
|
17
|
+
};
|
|
18
|
+
exports.dropCapLinkStyles = dropCapLinkStyles;
|