@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
|
@@ -1 +1,71 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _tsComponents = require("@times-components/ts-components");
|
|
9
|
+
|
|
10
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
+
|
|
12
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
+
|
|
14
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
|
|
16
|
+
const getInlineRelatedArticles = function getInlineRelatedArticles() {
|
|
17
|
+
let attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
18
|
+
return {
|
|
19
|
+
name: "autoInlineRelatedArticles",
|
|
20
|
+
attributes: {
|
|
21
|
+
element: {
|
|
22
|
+
value: "inline-related-articles",
|
|
23
|
+
attributes
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
children: []
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const insertInlineRelatedArticles = function insertInlineRelatedArticles(relatedArticleSlice) {
|
|
31
|
+
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
32
|
+
_ref$afterParagraph = _ref.afterParagraph,
|
|
33
|
+
afterParagraph = _ref$afterParagraph === void 0 ? 7 : _ref$afterParagraph,
|
|
34
|
+
_ref$paragraphPadding = _ref.paragraphPadding,
|
|
35
|
+
paragraphPadding = _ref$paragraphPadding === void 0 ? 2 : _ref$paragraphPadding;
|
|
36
|
+
|
|
37
|
+
return articleContent => {
|
|
38
|
+
if (!relatedArticleSlice || !relatedArticleSlice.items) return articleContent;
|
|
39
|
+
const paywall = articleContent.find(item => item.name === "paywall");
|
|
40
|
+
if (!paywall) return articleContent;
|
|
41
|
+
const allArticleContent = [...articleContent, ...paywall.children].filter(item => item.name !== "paywall");
|
|
42
|
+
const nthParagraph = allArticleContent.filter(item => item.name === "paragraph")[afterParagraph - 1];
|
|
43
|
+
const allArticleContentIndex = allArticleContent.indexOf(nthParagraph);
|
|
44
|
+
const enoughParagraphPadding = allArticleContent.slice(allArticleContentIndex - paragraphPadding + 1, allArticleContentIndex + paragraphPadding + 1).filter(item => item.name === "paragraph").length === 2 * paragraphPadding;
|
|
45
|
+
|
|
46
|
+
if (enoughParagraphPadding) {
|
|
47
|
+
if (articleContent.includes(nthParagraph)) {
|
|
48
|
+
const outsidePaywallIndex = articleContent.indexOf(nthParagraph);
|
|
49
|
+
return [...articleContent.slice(0, outsidePaywallIndex + 1), getInlineRelatedArticles({
|
|
50
|
+
relatedArticles: (0, _tsComponents.formatRelatedArticles)(relatedArticleSlice)
|
|
51
|
+
}), ...articleContent.slice(outsidePaywallIndex + 1)];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const insidePaywallIndex = paywall.children.indexOf(nthParagraph);
|
|
55
|
+
return articleContent.map(item => item !== paywall ? item : _objectSpread(_objectSpread({}, paywall), {}, {
|
|
56
|
+
children: [...paywall.children.slice(0, insidePaywallIndex + 1), getInlineRelatedArticles({
|
|
57
|
+
relatedArticles: (0, _tsComponents.formatRelatedArticles)(relatedArticleSlice)
|
|
58
|
+
}), ...paywall.children.slice(insidePaywallIndex + 1)]
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return articleContent.map(item => item !== paywall ? item : _objectSpread(_objectSpread({}, paywall), {}, {
|
|
63
|
+
children: [...paywall.children, getInlineRelatedArticles({
|
|
64
|
+
relatedArticles: (0, _tsComponents.formatRelatedArticles)(relatedArticleSlice)
|
|
65
|
+
})]
|
|
66
|
+
}));
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var _default = insertInlineRelatedArticles;
|
|
71
|
+
exports.default = _default;
|
|
@@ -1 +1,56 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
|
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
11
|
+
|
|
12
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
|
|
14
|
+
const insertNativeAd = children => {
|
|
15
|
+
const clonedChildren = [...children];
|
|
16
|
+
const child = clonedChildren.find(item => item.name === "paywall");
|
|
17
|
+
const paragraph = clonedChildren.filter(x => x.name === "paragraph");
|
|
18
|
+
|
|
19
|
+
if (!child) {
|
|
20
|
+
const nativeAdExists = clonedChildren.find(item => item.name === "nativeAd");
|
|
21
|
+
|
|
22
|
+
if (!nativeAdExists) {
|
|
23
|
+
clonedChildren.splice(2, 0, {
|
|
24
|
+
name: "nativeAd",
|
|
25
|
+
children: []
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return clonedChildren;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const paragraphCount = Number(9 - paragraph.length);
|
|
33
|
+
const paywallChildren = child.children;
|
|
34
|
+
const paragraphItems = paywallChildren.map((item, index) => _objectSpread(_objectSpread({}, item), {}, {
|
|
35
|
+
index
|
|
36
|
+
})).filter(item => item.name === "paragraph");
|
|
37
|
+
const indexToAdd = paragraphItems[paragraphCount] ? paragraphItems[paragraphCount].index : null; // checks if nativeAd only renders once
|
|
38
|
+
|
|
39
|
+
const nativeAd = paywallChildren.find(item => item.name === "nativeAd");
|
|
40
|
+
|
|
41
|
+
if (nativeAd) {
|
|
42
|
+
return clonedChildren;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (indexToAdd && indexToAdd !== null) {
|
|
46
|
+
paywallChildren.splice(indexToAdd, 0, {
|
|
47
|
+
name: "nativeAd",
|
|
48
|
+
children: []
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return clonedChildren;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
var _default = insertNativeAd;
|
|
56
|
+
exports.default = _default;
|
|
@@ -1 +1,143 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _dataHelper = require("../data-helper");
|
|
9
|
+
|
|
10
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
+
|
|
12
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
+
|
|
14
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
|
|
16
|
+
const setNewsletterPayload = attributes => ({
|
|
17
|
+
name: "autoNewsletterPuff",
|
|
18
|
+
attributes: {
|
|
19
|
+
element: {
|
|
20
|
+
value: "newsletter-puff",
|
|
21
|
+
attributes: _objectSpread({
|
|
22
|
+
label: "In your inbox"
|
|
23
|
+
}, attributes)
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
children: []
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const newslettersBySection = [{
|
|
30
|
+
section: "news",
|
|
31
|
+
payload: setNewsletterPayload({
|
|
32
|
+
code: "TNL-101",
|
|
33
|
+
headline: "Best of Times",
|
|
34
|
+
copy: "We’ll send you our top stories, across all sections, straight to your inbox. Simple as that.",
|
|
35
|
+
imageUri: "https://www.thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fprod%2Fweb%2Fbin%2F728c3e68-5311-4533-809a-b313a6503789.jpg?resize=800"
|
|
36
|
+
})
|
|
37
|
+
}, {
|
|
38
|
+
section: "business",
|
|
39
|
+
payload: setNewsletterPayload({
|
|
40
|
+
code: "TNL-103",
|
|
41
|
+
headline: "Business briefing",
|
|
42
|
+
copy: "In-depth analysis and comment on the latest financial and economic news from our award-winning Business teams.",
|
|
43
|
+
imageUri: "https://www.thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fprod%2Fweb%2Fbin%2F306637af-2b6f-48fc-b264-d661b2067818.jpg?resize=800"
|
|
44
|
+
})
|
|
45
|
+
}, {
|
|
46
|
+
section: "scotland",
|
|
47
|
+
payload: setNewsletterPayload({
|
|
48
|
+
code: "TNL-134",
|
|
49
|
+
headline: "Editor’s Choice – Scotland",
|
|
50
|
+
copy: "The biggest stories of the week from The Times and The Sunday Times Scotland, delivered directly to you every Saturday morning.",
|
|
51
|
+
imageUri: "https://www.thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fprod%2Fweb%2Fbin%2F5777acf9-363f-4aa3-8176-1ea09cdae7d6.jpg?resize=800"
|
|
52
|
+
})
|
|
53
|
+
}, {
|
|
54
|
+
section: "money",
|
|
55
|
+
payload: setNewsletterPayload({
|
|
56
|
+
code: "TNL-107",
|
|
57
|
+
headline: "Money newsletter",
|
|
58
|
+
copy: "We'll send you the latest personal finance and investment news to make your money go further.",
|
|
59
|
+
imageUri: "https://www.thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fprod%2Fweb%2Fbin%2Ffd44b15f-2fb8-4e5d-b409-315648b10646.jpg?resize=800"
|
|
60
|
+
})
|
|
61
|
+
}, {
|
|
62
|
+
section: "law",
|
|
63
|
+
payload: setNewsletterPayload({
|
|
64
|
+
code: "TNL-121",
|
|
65
|
+
headline: "The Brief",
|
|
66
|
+
copy: "A weekly overview of the significant issues in Law, drawing attention to expert analysis and exclusive commentary.",
|
|
67
|
+
imageUri: "https://www.thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fprod%2Fweb%2Fbin%2F27a231b4-5658-4852-a603-37c5210a946e.jpg?resize=800"
|
|
68
|
+
})
|
|
69
|
+
}, {
|
|
70
|
+
section: "home",
|
|
71
|
+
payload: setNewsletterPayload({
|
|
72
|
+
code: "TNL-113",
|
|
73
|
+
headline: "Property newsletter",
|
|
74
|
+
copy: "Get expert advice and find out what's really happening in the property market.",
|
|
75
|
+
imageUri: "https://www.thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fprod%2Fweb%2Fbin%2F42a688ec-f9ba-4684-90ce-17a9d1c19d8a.jpg?resize=800"
|
|
76
|
+
})
|
|
77
|
+
}, {
|
|
78
|
+
section: "bricks & mortar",
|
|
79
|
+
payload: setNewsletterPayload({
|
|
80
|
+
code: "TNL-113",
|
|
81
|
+
headline: "Property newsletter",
|
|
82
|
+
copy: "Get expert advice and find out what's really happening in the property market.",
|
|
83
|
+
imageUri: "https://www.thetimes.co.uk/imageserver/image/methode%2Ftimes%2Fprod%2Fweb%2Fbin%2F42a688ec-f9ba-4684-90ce-17a9d1c19d8a.jpg?resize=800"
|
|
84
|
+
})
|
|
85
|
+
}];
|
|
86
|
+
|
|
87
|
+
const getNewsletterPuff = section => {
|
|
88
|
+
const newsletter = newslettersBySection.find(item => item.section === section.toLowerCase());
|
|
89
|
+
return newsletter ? newsletter.payload : undefined;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const newsletterPuffExists = children => children.find(item => item.name === "interactive" && item.attributes.element.value === "newsletter-puff");
|
|
93
|
+
|
|
94
|
+
const insertPaywall = (paywall, insertBefore, newsletterPuff) => _objectSpread(_objectSpread({}, paywall), {}, {
|
|
95
|
+
children: paywall.children.reduce((acc, item, index) => index === insertBefore ? [...acc, newsletterPuff, item] : [...acc, item], [])
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const consecutiveParagraphs = children => {
|
|
99
|
+
const index = children.findIndex(item => item.name !== "paragraph");
|
|
100
|
+
return index === -1 ? children.length : index;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
const checkParagraphs = (children, paywall) => {
|
|
104
|
+
const paywallIndex = children.findIndex(item => item.name === "paywall");
|
|
105
|
+
const paragraphs = consecutiveParagraphs(children);
|
|
106
|
+
const paywallParagraphs = consecutiveParagraphs(paywall.children);
|
|
107
|
+
|
|
108
|
+
if (paragraphs >= 5) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (paywallIndex !== paragraphs) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return paragraphs + paywallParagraphs >= 5;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
const insertNewsletterPuff = (section, isPreview, flags) => children => {
|
|
120
|
+
if (isPreview || (0, _dataHelper.getIsLiveOrBreakingFlag)(flags)) return children;
|
|
121
|
+
const newsletterPuff = getNewsletterPuff(section);
|
|
122
|
+
if (!newsletterPuff) return children;
|
|
123
|
+
const paywall = children.find(item => item.name === "paywall");
|
|
124
|
+
if (!paywall) return children;
|
|
125
|
+
|
|
126
|
+
if (newsletterPuffExists(children) || newsletterPuffExists(paywall.children)) {
|
|
127
|
+
return children;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (!checkParagraphs(children, paywall)) {
|
|
131
|
+
return children;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const insertIndex = 3;
|
|
135
|
+
return children.reduce((acc, item, index) => {
|
|
136
|
+
if (index === insertIndex) return [...acc, newsletterPuff, item];
|
|
137
|
+
if (item.name === "paywall") return [...acc, insertPaywall(item, insertIndex - index, newsletterPuff)];
|
|
138
|
+
return [...acc, item];
|
|
139
|
+
}, []);
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
var _default = insertNewsletterPuff;
|
|
143
|
+
exports.default = _default;
|
package/dist/data-helper.js
CHANGED
|
@@ -1 +1,106 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.getActiveArticleFlags = exports.getIsLiveOrBreakingFlag = exports.getSharedStatus = exports.getRegistrationType = void 0;
|
|
7
|
+
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
|
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
11
|
+
|
|
12
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
|
|
14
|
+
const append = (_ref, list) => {
|
|
15
|
+
let data = _ref.data,
|
|
16
|
+
type = _ref.type;
|
|
17
|
+
|
|
18
|
+
if (!data) {
|
|
19
|
+
return list;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return [...list, {
|
|
23
|
+
data,
|
|
24
|
+
type
|
|
25
|
+
}];
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const prepareDataForListView = articleData => {
|
|
29
|
+
const relatedArticleSliceData = articleData.relatedArticleSlice ? {
|
|
30
|
+
relatedArticleSlice: articleData.relatedArticleSlice
|
|
31
|
+
} : null;
|
|
32
|
+
const commentsData = {
|
|
33
|
+
articleId: articleData.id,
|
|
34
|
+
commentsEnabled: articleData.commentsEnabled,
|
|
35
|
+
url: articleData.url
|
|
36
|
+
};
|
|
37
|
+
const data = articleData.content ? [...articleData.content.map((rowData, index) => {
|
|
38
|
+
const item = {
|
|
39
|
+
data: Object.assign({}, rowData),
|
|
40
|
+
index,
|
|
41
|
+
type: "articleBodyRow"
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
if (rowData.name === "ad") {
|
|
45
|
+
item.data.attributes = _objectSpread(_objectSpread({}, item.data.attributes), {
|
|
46
|
+
contextUrl: articleData.url,
|
|
47
|
+
section: articleData.section
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return item;
|
|
52
|
+
}), {
|
|
53
|
+
data: {
|
|
54
|
+
topics: articleData.topics
|
|
55
|
+
},
|
|
56
|
+
type: "topics"
|
|
57
|
+
}] : [];
|
|
58
|
+
return append({
|
|
59
|
+
data: {
|
|
60
|
+
articleId: articleData.id,
|
|
61
|
+
articleUrl: articleData.url
|
|
62
|
+
},
|
|
63
|
+
type: "articleExtrasRow"
|
|
64
|
+
}, append({
|
|
65
|
+
data: commentsData,
|
|
66
|
+
type: "comments"
|
|
67
|
+
}, append({
|
|
68
|
+
data: relatedArticleSliceData,
|
|
69
|
+
type: "relatedArticleSlice"
|
|
70
|
+
}, data)));
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const getRegistrationType = () => {
|
|
74
|
+
const user = global.nuk && global.nuk.user || {};
|
|
75
|
+
return user && user.registrationType ? user.registrationType : "";
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
exports.getRegistrationType = getRegistrationType;
|
|
79
|
+
|
|
80
|
+
const getSharedStatus = () => {
|
|
81
|
+
const user = global.nuk && global.nuk.user || {};
|
|
82
|
+
return user && user.isShared ? "yes" : "no";
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
exports.getSharedStatus = getSharedStatus;
|
|
86
|
+
|
|
87
|
+
const getIsLiveOrBreakingFlag = flags => {
|
|
88
|
+
const liveOrBreaking = ["LIVE", "BREAKING"];
|
|
89
|
+
const findFlag = flags && flags.find(flag => liveOrBreaking.includes(flag.type.toUpperCase()));
|
|
90
|
+
return findFlag && findFlag.type;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
exports.getIsLiveOrBreakingFlag = getIsLiveOrBreakingFlag;
|
|
94
|
+
|
|
95
|
+
const getActiveArticleFlags = flags => {
|
|
96
|
+
if (!flags) {
|
|
97
|
+
return [];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const findFlag = flags.find(flag => flag.expiryTime === null || new Date().getTime() < new Date(flag.expiryTime).getTime());
|
|
101
|
+
return findFlag && findFlag.type && findFlag.type.toLowerCase();
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
exports.getActiveArticleFlags = getActiveArticleFlags;
|
|
105
|
+
var _default = prepareDataForListView;
|
|
106
|
+
exports.default = _default;
|
package/dist/gutter.js
CHANGED
|
@@ -1 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.maxWidth = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _utils = require("@times-components/utils");
|
|
13
|
+
|
|
14
|
+
var _tsStyleguide = require("@times-components/ts-styleguide");
|
|
15
|
+
|
|
16
|
+
var _shared = _interopRequireDefault(require("./styles/shared"));
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
const maxWidth = _tsStyleguide.tabletWidthMax;
|
|
21
|
+
exports.maxWidth = maxWidth;
|
|
22
|
+
|
|
23
|
+
const Gutter = _ref => {
|
|
24
|
+
let children = _ref.children,
|
|
25
|
+
style = _ref.style;
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement(_utils.TcView, {
|
|
27
|
+
style: [style, _shared.default.gutter]
|
|
28
|
+
}, children);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
Gutter.propTypes = {
|
|
32
|
+
children: _propTypes.default.node.isRequired,
|
|
33
|
+
style: _propTypes.default.objectOf({
|
|
34
|
+
overflow: _propTypes.default.string
|
|
35
|
+
})
|
|
36
|
+
};
|
|
37
|
+
Gutter.defaultProps = {
|
|
38
|
+
style: {
|
|
39
|
+
overflow: "hidden"
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
var _default = Gutter;
|
|
43
|
+
exports.default = _default;
|