@quintype/arrow 3.15.1-perf.4 → 3.15.1-perf.5

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 (166) hide show
  1. package/cjs/index.js +14589 -0
  2. package/package.json +1 -1
  3. package/atoms/Author/index.js +0 -170
  4. package/atoms/Author/styles.arrow.css +0 -1
  5. package/atoms/AuthorWithTime/index.js +0 -514
  6. package/atoms/AuthorWithTime/styles.arrow.css +0 -1
  7. package/atoms/CollectionName/index.js +0 -255
  8. package/atoms/CollectionName/styles.arrow.css +0 -1
  9. package/atoms/ExtendedLoadMore/index-0f809dd9.js +0 -254
  10. package/atoms/ExtendedLoadMore/index-142f015c.js +0 -476
  11. package/atoms/ExtendedLoadMore/index-37a9ccff.js +0 -182
  12. package/atoms/ExtendedLoadMore/index-446679c8.js +0 -191
  13. package/atoms/ExtendedLoadMore/index-44f97338.js +0 -300
  14. package/atoms/ExtendedLoadMore/index-57dd4870.js +0 -239
  15. package/atoms/ExtendedLoadMore/index-66dd4dbd.js +0 -215
  16. package/atoms/ExtendedLoadMore/index-8462c597.js +0 -363
  17. package/atoms/ExtendedLoadMore/index-93cb06d1.js +0 -1016
  18. package/atoms/ExtendedLoadMore/index-afd44863.js +0 -95
  19. package/atoms/ExtendedLoadMore/index-b5754c5d.js +0 -195
  20. package/atoms/ExtendedLoadMore/index-bbaf526e.js +0 -256
  21. package/atoms/ExtendedLoadMore/index-cfb262ef.js +0 -192
  22. package/atoms/ExtendedLoadMore/index.js +0 -20
  23. package/atoms/ExtendedLoadMore/styles.arrow.css +0 -1
  24. package/atoms/Headline/index.js +0 -379
  25. package/atoms/Headline/styles.arrow.css +0 -1
  26. package/atoms/HeroImage/index.js +0 -336
  27. package/atoms/HeroImage/styles.arrow.css +0 -1
  28. package/atoms/LoadmoreButton/index.js +0 -175
  29. package/atoms/LoadmoreButton/styles.arrow.css +0 -1
  30. package/atoms/ScrollSnap/index.js +0 -379
  31. package/atoms/ScrollSnap/styles.arrow.css +0 -1
  32. package/atoms/SectionTag/index.js +0 -140
  33. package/atoms/SectionTag/styles.arrow.css +0 -1
  34. package/atoms/Subheadline/index.js +0 -120
  35. package/atoms/Subheadline/styles.arrow.css +0 -1
  36. package/atoms/TimeStamp/index.js +0 -221
  37. package/atoms/TimeStamp/styles.arrow.css +0 -1
  38. package/molecules/KeyEvents/index.js +0 -457
  39. package/molecules/KeyEvents/styles.arrow.css +0 -1
  40. package/molecules/PageIntroductionCard/index.js +0 -248
  41. package/molecules/PageIntroductionCard/styles.arrow.css +0 -1
  42. package/molecules/SocialShareTemplate/index.js +0 -506
  43. package/molecules/SocialShareTemplate/styles.arrow.css +0 -1
  44. package/molecules/StoryCard/index.js +0 -1430
  45. package/molecules/StoryCard/styles.arrow.css +0 -1
  46. package/molecules/StoryElementCard/index.js +0 -3091
  47. package/molecules/StoryElementCard/styles.arrow.css +0 -1
  48. package/molecules/StorycardContent/index.js +0 -976
  49. package/molecules/StorycardContent/styles.arrow.css +0 -1
  50. package/rows/AlternateCollectionFilter/index.js +0 -2189
  51. package/rows/AlternateCollectionFilter/styles.arrow.css +0 -1
  52. package/rows/AsideCollection/index.js +0 -2135
  53. package/rows/AsideCollection/styles.arrow.css +0 -1
  54. package/rows/AstrologyCollection/index.js +0 -2106
  55. package/rows/AstrologyCollection/styles.arrow.css +0 -1
  56. package/rows/AuthorIntroductionCard/index.js +0 -813
  57. package/rows/AuthorIntroductionCard/styles.arrow.css +0 -1
  58. package/rows/AuthorsList/index.js +0 -996
  59. package/rows/AuthorsList/styles.arrow.css +0 -1
  60. package/rows/CollectionFilter/index.js +0 -2279
  61. package/rows/CollectionFilter/styles.arrow.css +0 -1
  62. package/rows/ElevenStories/index.js +0 -2118
  63. package/rows/ElevenStories/styles.arrow.css +0 -1
  64. package/rows/FourColFiveStories/index.js +0 -1861
  65. package/rows/FourColFiveStories/styles.arrow.css +0 -1
  66. package/rows/FourColGrid/index.js +0 -2083
  67. package/rows/FourColGrid/styles.arrow.css +0 -1
  68. package/rows/FourColPortraitStories/index.js +0 -2116
  69. package/rows/FourColPortraitStories/styles.arrow.css +0 -1
  70. package/rows/FourColSixteenStories/index.js +0 -1849
  71. package/rows/FourColSixteenStories/styles.arrow.css +0 -1
  72. package/rows/FourColTwelveStories/index.js +0 -1822
  73. package/rows/FourColTwelveStories/styles.arrow.css +0 -1
  74. package/rows/FourStorySlider/index.js +0 -2223
  75. package/rows/FourStorySlider/styles.arrow.css +0 -1
  76. package/rows/FourStorySliderPortrait/index.js +0 -2226
  77. package/rows/FourStorySliderPortrait/styles.arrow.css +0 -1
  78. package/rows/FourTabbedBigStorySlider/index.js +0 -1985
  79. package/rows/FourTabbedBigStorySlider/styles.arrow.css +0 -1
  80. package/rows/FullScreenSlider/index.js +0 -2141
  81. package/rows/FullScreenSlider/styles.arrow.css +0 -1
  82. package/rows/HalfScreenSlider/index.js +0 -1994
  83. package/rows/HalfScreenSlider/styles.arrow.css +0 -1
  84. package/rows/ListComponent/index.js +0 -1942
  85. package/rows/ListComponent/styles.arrow.css +0 -1
  86. package/rows/Listicles/index.js +0 -945
  87. package/rows/Listicles/styles.arrow.css +0 -1
  88. package/rows/MagazineEditions/index.js +0 -690
  89. package/rows/MagazineEditions/styles.arrow.css +0 -1
  90. package/rows/MagazineHeaderCard/index.js +0 -684
  91. package/rows/MagazineHeaderCard/styles.arrow.css +0 -1
  92. package/rows/MagazineWidget/index.js +0 -1994
  93. package/rows/MagazineWidget/styles.arrow.css +0 -1
  94. package/rows/OneColStoryList/index.js +0 -2169
  95. package/rows/OneColStoryList/styles.arrow.css +0 -1
  96. package/rows/OpinionCollection/index.js +0 -1545
  97. package/rows/OpinionCollection/styles.arrow.css +0 -1
  98. package/rows/SixColSixStories/index.js +0 -2014
  99. package/rows/SixColSixStories/styles.arrow.css +0 -1
  100. package/rows/StoryCollection/index.js +0 -2135
  101. package/rows/StoryCollection/styles.arrow.css +0 -1
  102. package/rows/TagIntroductionCard/index.js +0 -103
  103. package/rows/TagIntroductionCard/styles.arrow.css +0 -1
  104. package/rows/ThreeColFlexStories/index.js +0 -2074
  105. package/rows/ThreeColFlexStories/styles.arrow.css +0 -1
  106. package/rows/ThreeColFourteenStories/index.js +0 -1770
  107. package/rows/ThreeColFourteenStories/styles.arrow.css +0 -1
  108. package/rows/ThreeColGrid/index.js +0 -2104
  109. package/rows/ThreeColGrid/styles.arrow.css +0 -1
  110. package/rows/ThreeColSevenStory/index.js +0 -1982
  111. package/rows/ThreeColSevenStory/styles.arrow.css +0 -1
  112. package/rows/ThreeColSixStories/index.js +0 -1965
  113. package/rows/ThreeColSixStories/styles.arrow.css +0 -1
  114. package/rows/ThreeColTwelveStories/index.js +0 -1854
  115. package/rows/ThreeColTwelveStories/styles.arrow.css +0 -1
  116. package/rows/TwoColFourStories/index.js +0 -1943
  117. package/rows/TwoColFourStories/styles.arrow.css +0 -1
  118. package/rows/TwoColFourStoryHighlight/index.js +0 -1930
  119. package/rows/TwoColFourStoryHighlight/styles.arrow.css +0 -1
  120. package/rows/TwoColSevenStories/index.js +0 -1970
  121. package/rows/TwoColSevenStories/styles.arrow.css +0 -1
  122. package/rows/TwoColSixStories/index.js +0 -1963
  123. package/rows/TwoColSixStories/styles.arrow.css +0 -1
  124. package/rows/TwoColTenStoriesSidebar/index.js +0 -2029
  125. package/rows/TwoColTenStoriesSidebar/styles.arrow.css +0 -1
  126. package/rows/TwoColThreeStories/index.js +0 -1916
  127. package/rows/TwoColThreeStories/styles.arrow.css +0 -1
  128. package/story-elements/AlsoRead/index.js +0 -320
  129. package/story-elements/AlsoRead/styles.arrow.css +0 -1
  130. package/story-elements/Attachment/index.js +0 -167
  131. package/story-elements/Attachment/styles.arrow.css +0 -1
  132. package/story-elements/BigFact/index.js +0 -137
  133. package/story-elements/BigFact/styles.arrow.css +0 -1
  134. package/story-elements/BlockQuote/index.js +0 -304
  135. package/story-elements/BlockQuote/styles.arrow.css +0 -1
  136. package/story-elements/Blurb/index.js +0 -189
  137. package/story-elements/Blurb/styles.arrow.css +0 -1
  138. package/story-elements/Image/index.js +0 -529
  139. package/story-elements/Image/styles.arrow.css +0 -1
  140. package/story-elements/ImageGallery/index.js +0 -462
  141. package/story-elements/ImageGallery/styles.arrow.css +0 -1
  142. package/story-elements/ImageSlideshow/index.js +0 -773
  143. package/story-elements/ImageSlideshow/styles.arrow.css +0 -1
  144. package/story-elements/QuestionAnswer/index.js +0 -267
  145. package/story-elements/QuestionAnswer/styles.arrow.css +0 -1
  146. package/story-elements/Quote/index.js +0 -166
  147. package/story-elements/Quote/styles.arrow.css +0 -1
  148. package/story-elements/Reference/index.js +0 -160
  149. package/story-elements/Reference/styles.arrow.css +0 -1
  150. package/story-elements/StoryElement/index.js +0 -75
  151. package/story-elements/Summary/index.js +0 -190
  152. package/story-elements/Summary/styles.arrow.css +0 -1
  153. package/story-elements/Text/index.js +0 -165
  154. package/story-elements/Text/styles.arrow.css +0 -1
  155. package/story-elements/Video/index.js +0 -81
  156. package/story-elements/Video/styles.arrow.css +0 -1
  157. package/story-templates/ListicleStoryTemplate/index.js +0 -5586
  158. package/story-templates/ListicleStoryTemplate/styles.arrow.css +0 -1
  159. package/story-templates/LiveBlogStoryTemplate/index.js +0 -5762
  160. package/story-templates/LiveBlogStoryTemplate/styles.arrow.css +0 -1
  161. package/story-templates/PhotoStoryTemplate/index.js +0 -5564
  162. package/story-templates/PhotoStoryTemplate/styles.arrow.css +0 -1
  163. package/story-templates/TextStoryTemplate/index.js +0 -5637
  164. package/story-templates/TextStoryTemplate/styles.arrow.css +0 -1
  165. package/story-templates/VideoStoryTemplate/index.js +0 -5496
  166. package/story-templates/VideoStoryTemplate/styles.arrow.css +0 -1
@@ -1,2279 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
6
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
8
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
- var _getClassName = require('babel-plugin-react-css-modules/dist/browser/getClassName');
10
- var React = require('react');
11
- var axios = require('axios');
12
- var PropTypes = require('prop-types');
13
- var lodash = require('lodash');
14
- var reactRedux = require('react-redux');
15
- var components = require('@quintype/components');
16
- var _typeof = require('@babel/runtime/helpers/typeof');
17
- var Timeago = require('react-timeago');
18
- var dateFnsTz = require('date-fns-tz');
19
-
20
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
-
22
- var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
23
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
24
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
25
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
26
- var _getClassName__default = /*#__PURE__*/_interopDefaultLegacy(_getClassName);
27
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
28
- var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
29
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
30
- var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
31
- var Timeago__default = /*#__PURE__*/_interopDefaultLegacy(Timeago);
32
-
33
- var StateContext = /*#__PURE__*/React.createContext(); // eslint-disable-next-line react/display-name
34
-
35
- var StateProvider = function StateProvider(RowComponent) {
36
- return function (props) {
37
- return (
38
- /*#__PURE__*/
39
- // eslint-disable-next-line react/prop-types
40
- React__default["default"].createElement(StateContext.Provider, {
41
- value: props.config
42
- }, /*#__PURE__*/React__default["default"].createElement(RowComponent, props))
43
- );
44
- };
45
- };
46
- var useStateValue = function useStateValue() {
47
- return React.useContext(StateContext);
48
- };
49
-
50
- function truncate() {
51
- var string = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
52
- var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 60;
53
- var ellipsis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
54
- var putEllipsis = ellipsis ? " ..." : "";
55
- return typeof string === "string" && string.length > limit ? string.substring(0, limit) + putEllipsis : string;
56
- }
57
- var timestampToFormat = function timestampToFormat(value, unit, suffix, timestamp) {
58
- var config = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
59
- var _config$showTime = config.showTime,
60
- showTime = _config$showTime === void 0 ? false : _config$showTime,
61
- _config$isTimeFirst = config.isTimeFirst,
62
- isTimeFirst = _config$isTimeFirst === void 0 ? false : _config$isTimeFirst,
63
- _config$isUpperCase = config.isUpperCase,
64
- isUpperCase = _config$isUpperCase === void 0 ? false : _config$isUpperCase,
65
- _config$disableMeridi = config.disableMeridiem,
66
- disableMeridiem = _config$disableMeridi === void 0 ? false : _config$disableMeridi,
67
- _config$timeFormat = config.timeFormat,
68
- timeFormat = _config$timeFormat === void 0 ? "12hours" : _config$timeFormat;
69
- var monthList = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
70
- var dateTime = new Date(timestamp);
71
- var date = dateTime.getDate().toString().padStart(2, 0);
72
- var month = monthList[dateTime.getMonth()];
73
- var localizedMonth = month;
74
-
75
- if (isUpperCase) {
76
- localizedMonth = lodash.upperCase(month);
77
- }
78
-
79
- var year = dateTime.getFullYear();
80
- var localizedMeridiem = config.localizedMeridiem,
81
- localizedMonths = config.localizedMonths,
82
- _config$direction = config.direction,
83
- direction = _config$direction === void 0 ? "ltr" : _config$direction;
84
- var time = formatAMPM(timestamp, timeFormat);
85
- var timeWithLocalizedMeridiem = time;
86
- var timetoShow;
87
-
88
- if (localizedMonths) {
89
- localizedMonth = lodash.get(localizedMonths, [lodash.lowerCase(month)]) || month;
90
- }
91
-
92
- if (localizedMeridiem) {
93
- var isAm = time.includes("am");
94
- var _localizedMeridiem$am = localizedMeridiem.am,
95
- am = _localizedMeridiem$am === void 0 ? "am" : _localizedMeridiem$am,
96
- _localizedMeridiem$pm = localizedMeridiem.pm,
97
- pm = _localizedMeridiem$pm === void 0 ? "pm" : _localizedMeridiem$pm;
98
- timeWithLocalizedMeridiem = (isAm ? time.replace("am", am) : time.replace("pm", pm)) || time;
99
- }
100
-
101
- if (direction === "rtl") {
102
- timetoShow = showTime ? "".concat(timeWithLocalizedMeridiem) : "";
103
- return "".concat(date, " ").concat(localizedMonth, ", ").concat(year, " ").concat(timetoShow, " ");
104
- } else {
105
- if (disableMeridiem) {
106
- return "".concat(localizedMonth, " ").concat(date, ", ").concat(year);
107
- } else if (isTimeFirst) {
108
- return "".concat(timeWithLocalizedMeridiem, ", ").concat(date, " ").concat(localizedMonth, " ").concat(year);
109
- } else {
110
- timetoShow = showTime ? ", ".concat(timeWithLocalizedMeridiem) : "";
111
- return "".concat(date, " ").concat(localizedMonth, ", ").concat(year).concat(timetoShow);
112
- }
113
- }
114
- };
115
- function formatter(value, unit, suffix, date, config) {
116
- var showDateForUnits = ["day", "week", "month", "year"]; // suffix here refers to ago
117
- // unit here refers to seconds, minute, minutes,...
118
-
119
- var localizedSuffix = lodash.get(config, ["localizedPublishTime", suffix]) || suffix;
120
- var localizedUnitOfTime;
121
-
122
- if (unit === "hour" && value > 23 || showDateForUnits.indexOf(unit) !== -1) {
123
- return timestampToFormat(value, unit, suffix, date, config);
124
- } else if (value > 1) {
125
- localizedUnitOfTime = lodash.get(config, ["localizedPublishTime", "".concat(unit, "s")]) || "".concat(unit, "s");
126
- return "".concat(value, " ").concat(localizedUnitOfTime, " ").concat(localizedSuffix);
127
- }
128
-
129
- localizedUnitOfTime = lodash.get(config, ["localizedPublishTime", unit]) || unit;
130
- return "".concat(value, " ").concat(localizedUnitOfTime, " ").concat(localizedSuffix, " ");
131
- }
132
-
133
- function formatAMPM(timestamp) {
134
- var timeFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "12hours";
135
- var dateTime = new Date(timestamp);
136
- var hours = dateTime.getHours();
137
- var minutes = dateTime.getMinutes();
138
- var ampm = hours >= 12 ? "pm" : "am";
139
- hours = hours % 12;
140
- hours = hours || 12;
141
- minutes = minutes < 10 ? "0" + minutes : minutes;
142
- var strTime = hours + ":" + minutes + " " + ampm;
143
-
144
- if (timeFormat === "24hours") {
145
- return dateTime.toLocaleTimeString([], {
146
- hour: "2-digit",
147
- minute: "2-digit"
148
- });
149
- }
150
-
151
- return strTime;
152
- }
153
-
154
- var hexToRGB = function hexToRGB(hex) {
155
- var r = parseInt(hex.slice(1, 3), 16);
156
- var g = parseInt(hex.slice(3, 5), 16);
157
- var b = parseInt(hex.slice(5, 7), 16);
158
- return {
159
- r: r,
160
- g: g,
161
- b: b
162
- };
163
- };
164
- var getLuminanceOfColor = function getLuminanceOfColor(hex) {
165
- var _hexToRGB = hexToRGB(hex),
166
- r = _hexToRGB.r,
167
- g = _hexToRGB.g,
168
- b = _hexToRGB.b;
169
-
170
- return r * 0.299 + g * 0.587 + b * 0.114;
171
- };
172
- var rgbToHex = function rgbToHex() {
173
- var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "rgba(255, 255, 255, 0)";
174
- var rgba = color.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
175
- return rgba && rgba.length === 4 ? "#" + ("0" + parseInt(rgba[1], 10).toString(16)).slice(-2) + ("0" + parseInt(rgba[2], 10).toString(16)).slice(-2) + ("0" + parseInt(rgba[3], 10).toString(16)).slice(-2) : color;
176
- };
177
- var clientWidths = {
178
- mobile: 767,
179
- tablet: 1024
180
- };
181
- var clientWidth = function clientWidth(device) {
182
- var foundDeviceWidth = lodash.get(clientWidths, device);
183
-
184
- if (foundDeviceWidth) {
185
- return lodash.get(global, "document.documentElement.clientWidth") <= foundDeviceWidth;
186
- }
187
-
188
- return false;
189
- };
190
- var getTextColor = function getTextColor() {
191
- var theme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "rgb(255,255,255)";
192
- var isRegexCheck = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(theme);
193
- var getHexValue = !isRegexCheck ? rgbToHex(theme) : theme;
194
- var textColor = getLuminanceOfColor(getHexValue) < 155 ? "light" : "dark";
195
- return textColor;
196
- };
197
- var getSlot = function getSlot(type, component, storyCallback, collectionCallback) {
198
- switch (type) {
199
- case "story":
200
- return storyCallback();
201
-
202
- case "collection":
203
- return collectionCallback();
204
-
205
- default:
206
- return component ? component() : null;
207
- }
208
- };
209
- var getSlug = function getSlug(collection) {
210
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
211
- var _config$magazineSlug = config.magazineSlug,
212
- magazineSlug = _config$magazineSlug === void 0 ? "" : _config$magazineSlug,
213
- _config$isArchivePage = config.isArchivePage,
214
- isArchivePage = _config$isArchivePage === void 0 ? false : _config$isArchivePage;
215
-
216
- if (isArchivePage) {
217
- return "/magazine/archive/".concat(magazineSlug);
218
- }
219
-
220
- if (magazineSlug) {
221
- return "/magazine/".concat(magazineSlug, "/").concat(collection.slug);
222
- }
223
-
224
- var isSection = collection.template === "section";
225
-
226
- if (isSection) {
227
- var sectionId = lodash.get(collection, ["metadata", "section", "0", "id"], "");
228
- var sections = config.sections;
229
- var section = sections && sections.find(function (section) {
230
- return section.id === sectionId;
231
- });
232
- return section ? section["section-url"] : "/";
233
- }
234
-
235
- return "/collection/".concat(collection.slug);
236
- };
237
- function isExternalStory() {
238
- var story = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
239
- var _story$storyTemplate = story["story-template"],
240
- storyTemplate = _story$storyTemplate === void 0 ? "" : _story$storyTemplate,
241
- _story$metadata = story.metadata,
242
- metadata = _story$metadata === void 0 ? {} : _story$metadata;
243
- return storyTemplate === "news-elsewhere" ? lodash.get(metadata, ["reference-url"], "") : "";
244
- } // Adds target='_blank' attribute to anchor tags if not present
245
- var isEmpty = function isEmpty(value) {
246
- return value == null || // From standard.js: Always use === - but value == null is allowed to check null || undefined
247
- _typeof__default["default"](value) === "object" && Object.entries(value).length === 0 && value.constructor === Object || typeof value === "string" && value.trim().length === 0;
248
- };
249
- PropTypes__default["default"].shape({
250
- "sketches-host": PropTypes__default["default"].string,
251
- "cdn-name": PropTypes__default["default"].string,
252
- "cdn-image": PropTypes__default["default"].string
253
- });
254
- PropTypes__default["default"].shape({
255
- headline: PropTypes__default["default"].string,
256
- "last-published-at": PropTypes__default["default"].number,
257
- subheadline: PropTypes__default["default"].string
258
- });
259
- var getStoryUrl = function getStoryUrl(story) {
260
- var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
261
- return lodash.get(story, ["story-template"]) === "news-elsewhere" ? lodash.get(story, ["metadata", "reference-url"], "") : story.url || defaultValue;
262
- };
263
- var navigateTo = function navigateTo(dispatch) {
264
- var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
265
- global.app.navigateToPage(dispatch, url);
266
- };
267
- var generateNavigateSlug = function generateNavigateSlug() {
268
- var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
269
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
270
- var customUrlPath = arguments.length > 2 ? arguments[2] : undefined;
271
-
272
- if (customUrlPath) {
273
- return customUrlPath;
274
- }
275
-
276
- var _config$magazineSlug2 = config.magazineSlug,
277
- magazineSlug = _config$magazineSlug2 === void 0 ? "" : _config$magazineSlug2,
278
- _config$isArchivePage2 = config.isArchivePage,
279
- isArchivePage = _config$isArchivePage2 === void 0 ? false : _config$isArchivePage2;
280
-
281
- if (isArchivePage) {
282
- return "/magazine/archive/".concat(magazineSlug);
283
- }
284
-
285
- if (magazineSlug) {
286
- return "/magazine/".concat(magazineSlug, "/").concat(collection.slug);
287
- }
288
-
289
- if (collection) {
290
- return getSlug(collection, config);
291
- }
292
-
293
- return "/";
294
- };
295
- var getTimeStamp = function getTimeStamp(date, _formatter) {
296
- var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
297
- var template = arguments.length > 3 ? arguments[3] : undefined;
298
- var timezone = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
299
-
300
- if (timezone && template === "story") {
301
- var zonedTime = timezone && dateFnsTz.utcToZonedTime(date, timezone);
302
- var formatZonedTime = zonedTime && dateFnsTz.format(zonedTime, "yyyy-MM-dd'T'HH:mm:ssXXX", {
303
- timeZone: timezone
304
- });
305
- var timeStamp = timestampToFormat("", "", "", date, config);
306
- return /*#__PURE__*/React__default["default"].createElement("time", {
307
- dateTime: formatZonedTime
308
- }, timeStamp);
309
- }
310
-
311
- return /*#__PURE__*/React__default["default"].createElement(Timeago__default["default"], {
312
- date: date,
313
- formatter: function formatter(value, unit, suffix, date) {
314
- return _formatter(value, unit, suffix, date, config);
315
- }
316
- });
317
- };
318
-
319
- var _styleModuleImportMap$e = {
320
- "./collection-name.m.css": {
321
- "collection": "collection-name-m_collection__JD6sx",
322
- "collection-borderLeft": "collection-name-m_collection-borderLeft__3Dznk",
323
- "border-left": "collection-name-m_border-left__3_pYw",
324
- "collection-borderBottomFull": "collection-name-m_collection-borderBottomFull__Dkq3K",
325
- "collection-borderBottom": "collection-name-m_collection-borderBottom__2rdQM",
326
- "collection-crossLine": "collection-name-m_collection-crossLine__1sIpN",
327
- "border-bottom": "collection-name-m_border-bottom__1MnlV",
328
- "dark": "collection-name-m_dark__nMe5H",
329
- "light": "collection-name-m_light__1vFDN"
330
- }
331
- };
332
- var CollectionNameBase = function CollectionNameBase(_ref) {
333
- var _ref$collectionNameBo = _ref.collectionNameBorderColor,
334
- collectionNameBorderColor = _ref$collectionNameBo === void 0 ? "" : _ref$collectionNameBo,
335
- collection = _ref.collection,
336
- config = _ref.config,
337
- collectionNameTemplate = _ref.collectionNameTemplate,
338
- headerLevel = _ref.headerLevel,
339
- _ref$customCollection = _ref.customCollectionName,
340
- customCollectionName = _ref$customCollection === void 0 ? "" : _ref$customCollection,
341
- _ref$navigate = _ref.navigate,
342
- navigate = _ref$navigate === void 0 ? true : _ref$navigate;
343
- var collectionTitle = useStateValue() || {};
344
- var showRowTitle = lodash.get(collectionTitle, ["showRowTitle"], true);
345
- var supportedTemplates = ["borderLeft", "borderBottom", "crossLine", "borderBottomFull"];
346
- var templateStyle = supportedTemplates.includes(collectionNameTemplate) ? " collection-".concat(collectionNameTemplate) : "";
347
- var slug = navigate && collection && getSlug(collection, config) || "";
348
- var collectionName = customCollectionName || collection.name || "";
349
- var textColor = getTextColor(collectionTitle.theme);
350
- var HeaderTag = "h" + headerLevel;
351
- var CollectionNameBorderColor = rgbToHex(collectionNameBorderColor);
352
- var borderBottomFullStyle = templateStyle.includes("collection-borderBottomFull") ? "4px solid ".concat(CollectionNameBorderColor) : "";
353
-
354
- var borderBottomStyle = function borderBottomStyle() {
355
- return templateStyle.includes("collection-borderBottom") && !templateStyle.includes("collection-borderBottomFull") ? /*#__PURE__*/React__default["default"].createElement("div", {
356
- className: "collection-name-m_border-bottom__1MnlV",
357
- style: {
358
- borderBottom: "4px solid ".concat(CollectionNameBorderColor)
359
- }
360
- }) : "";
361
- };
362
-
363
- var isMobile = clientWidth("mobile");
364
-
365
- var getBorderHeight = function getBorderHeight() {
366
- if (isMobile) {
367
- switch (headerLevel) {
368
- case "1":
369
- return "32px";
370
-
371
- case "2":
372
- return "24px";
373
-
374
- case "3":
375
- return "20px";
376
-
377
- case "4":
378
- return "18px";
379
-
380
- case "5":
381
- return "16px";
382
-
383
- case "6":
384
- return "16px";
385
-
386
- default:
387
- return "20px";
388
- }
389
- }
390
-
391
- switch (headerLevel) {
392
- case "1":
393
- return "40px";
394
-
395
- case "2":
396
- return "32px";
397
-
398
- case "3":
399
- return "24px";
400
-
401
- case "4":
402
- return "20px";
403
-
404
- case "5":
405
- return "18px";
406
-
407
- case "6":
408
- return "16px";
409
-
410
- default:
411
- return "24px";
412
- }
413
- };
414
-
415
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, showRowTitle && collectionName && /*#__PURE__*/React__default["default"].createElement("div", {
416
- style: {
417
- borderBottom: borderBottomFullStyle
418
- },
419
- "data-test-id": "collection-name",
420
- className: ("arr--collection-name arrow-component ".concat(templateStyle) ? "arr--collection-name arrow-component ".concat(templateStyle) + " " : "") + _getClassName__default["default"]("collection ".concat(textColor, " ").concat(templateStyle), _styleModuleImportMap$e)
421
- }, templateStyle.includes("collection-borderLeft") && /*#__PURE__*/React__default["default"].createElement("span", {
422
- className: "arr-collection-name-border-left collection-name-m_border-left__3_pYw",
423
- style: {
424
- color: CollectionNameBorderColor,
425
- fontSize: getBorderHeight()
426
- }
427
- }), slug && !slug.includes(undefined) ? /*#__PURE__*/React__default["default"].createElement(components.Link, {
428
- href: slug,
429
- "aria-label": "collection-name"
430
- }, /*#__PURE__*/React__default["default"].createElement(HeaderTag, null, collectionName)) : /*#__PURE__*/React__default["default"].createElement(HeaderTag, null, collectionName), borderBottomStyle()));
431
- };
432
- CollectionNameBase.propTypes = {
433
- /** Collection name border color */
434
- collectionNameBorderColor: PropTypes.PropTypes.string,
435
-
436
- /** The Collection Object from the API response */
437
- collection: PropTypes.PropTypes.object,
438
-
439
- /** The publisher config from the API response */
440
- config: PropTypes.PropTypes.object,
441
-
442
- /** The style template for the component */
443
- collectionNameTemplate: PropTypes.PropTypes.oneOf(["", "borderLeft", "borderBottom", "crossLine", "borderBottomFull"]),
444
-
445
- /** Header tags ranging h1-h6, where h[headerLevel] */
446
- headerLevel: PropTypes.PropTypes.string,
447
- customCollectionName: PropTypes.PropTypes.string,
448
- navigate: PropTypes.PropTypes.bool
449
- };
450
- CollectionNameBase.defaultProps = {
451
- collectionNameTemplate: "",
452
- headerLevel: "3"
453
- };
454
-
455
- function mapStateToProps$1(state) {
456
- return {
457
- config: lodash.get(state, ["qt", "config"], {})
458
- };
459
- }
460
-
461
- var CollectionName = reactRedux.connect(mapStateToProps$1)(CollectionNameBase);
462
-
463
- var _styleModuleImportMap$d = {
464
- "./load-more.m.css": {
465
- "button": "load-more-m_button__1mmf1",
466
- "default": "load-more-m_default__2_k4V",
467
- "dark": "load-more-m_dark__3dfzb",
468
- "light": "load-more-m_light__ePZQI"
469
- }
470
- };
471
-
472
- function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
473
-
474
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
475
- var LoadmoreButton = function LoadmoreButton(_ref) {
476
- var _ref$config = _ref.config,
477
- config = _ref$config === void 0 ? {} : _ref$config,
478
- collection = _ref.collection,
479
- _ref$template = _ref.template,
480
- template = _ref$template === void 0 ? "SubsequentLoadCount" : _ref$template,
481
- onClick = _ref.onClick,
482
- navigate = _ref.navigate,
483
- qtConfig = _ref.qtConfig;
484
- var _config$showButton = config.showButton,
485
- showButton = _config$showButton === void 0 ? true : _config$showButton,
486
- _config$buttonText = config.buttonText,
487
- buttonText = _config$buttonText === void 0 ? "Read More" : _config$buttonText,
488
- _config$theme = config.theme,
489
- theme = _config$theme === void 0 ? "" : _config$theme,
490
- _config$customUrlPath = config.customUrlPath,
491
- customUrlPath = _config$customUrlPath === void 0 ? "" : _config$customUrlPath;
492
- if (!showButton) return null;
493
- var textColor = getTextColor(theme);
494
- var slug = customUrlPath ? "/".concat(customUrlPath) : generateNavigateSlug(collection, _objectSpread$1(_objectSpread$1({}, qtConfig), config));
495
- return template === "SubsequentLoadCount" ? /*#__PURE__*/React__default["default"].createElement("div", {
496
- onClick: onClick,
497
- "data-test-id": "load-more",
498
- className: "arr--button " + _getClassName__default["default"]("button ".concat(textColor, " default"), _styleModuleImportMap$d)
499
- }, buttonText) : /*#__PURE__*/React__default["default"].createElement(components.LinkBase, {
500
- href: slug,
501
- navigateTo: navigate,
502
- "data-test-id": "load-more",
503
- "aria-label": "load-more"
504
- }, /*#__PURE__*/React__default["default"].createElement("div", {
505
- className: "arr--button " + _getClassName__default["default"]("button ".concat(textColor, " default"), _styleModuleImportMap$d)
506
- }, buttonText));
507
- };
508
- LoadmoreButton.propTypes = {
509
- collection: PropTypes__default["default"].object,
510
- template: PropTypes__default["default"].string,
511
- config: PropTypes__default["default"].object,
512
- onClick: PropTypes__default["default"].func,
513
- navigate: PropTypes__default["default"].func,
514
- qtConfig: PropTypes__default["default"].object
515
- };
516
-
517
- var CrownIcon = function CrownIcon(_ref) {
518
- var height = _ref.height,
519
- width = _ref.width,
520
- _ref$color = _ref.color,
521
- color = _ref$color === void 0 ? "#D8D8D8" : _ref$color,
522
- positionTop = _ref.positionTop;
523
- return /*#__PURE__*/React__default["default"].createElement("svg", {
524
- xmlns: "http://www.w3.org/2000/svg",
525
- width: width,
526
- height: height,
527
- viewBox: "0 0 40 40",
528
- style: {
529
- position: "relative",
530
- top: positionTop
531
- }
532
- }, /*#__PURE__*/React__default["default"].createElement("g", {
533
- fill: "none",
534
- fillRule: "evenodd",
535
- stroke: "none",
536
- strokeWidth: "1"
537
- }, /*#__PURE__*/React__default["default"].createElement("g", null, /*#__PURE__*/React__default["default"].createElement("g", {
538
- transform: "translate(8 8)"
539
- }, /*#__PURE__*/React__default["default"].createElement("path", {
540
- d: "M0 0H24V24H0z"
541
- }), /*#__PURE__*/React__default["default"].createElement("g", {
542
- fill: color,
543
- fillRule: "nonzero",
544
- transform: "translate(0 2)"
545
- }, /*#__PURE__*/React__default["default"].createElement("path", {
546
- d: "M21.043 19.553c0-.743-.601-1.344-1.344-1.344h-15.4a1.343 1.343 0 100 2.688h15.4c.743 0 1.344-.603 1.344-1.344zM1.598 8.673c.022 0 .042 0 .064-.003l2.131 7.713h16.411l2.132-7.713c.022 0 .041.003.063.003a1.599 1.599 0 10-1.52-1.108L17.025 9.82 12.882 2.95a1.599 1.599 0 10-1.765 0L6.976 9.82 3.121 7.565a1.599 1.599 0 10-1.523 1.107z"
547
- }))))));
548
- };
549
- CrownIcon.propTypes = {
550
- height: PropTypes__default["default"].string,
551
- width: PropTypes__default["default"].string,
552
- color: PropTypes__default["default"].string,
553
- positionTop: PropTypes__default["default"].string
554
- };
555
-
556
- var KeyIcon = function KeyIcon(_ref) {
557
- var height = _ref.height,
558
- width = _ref.width,
559
- _ref$color = _ref.color,
560
- color = _ref$color === void 0 ? "#D5D5D5" : _ref$color,
561
- positionTop = _ref.positionTop;
562
- return /*#__PURE__*/React__default["default"].createElement("svg", {
563
- xmlns: "http://www.w3.org/2000/svg",
564
- width: width,
565
- height: height,
566
- viewBox: "0 0 40 40",
567
- style: {
568
- position: "relative",
569
- top: positionTop
570
- }
571
- }, /*#__PURE__*/React__default["default"].createElement("g", {
572
- fill: "none",
573
- fillRule: "evenodd",
574
- stroke: "none",
575
- strokeWidth: "1"
576
- }, /*#__PURE__*/React__default["default"].createElement("g", null, /*#__PURE__*/React__default["default"].createElement("g", {
577
- transform: "translate(8 8)"
578
- }, /*#__PURE__*/React__default["default"].createElement("path", {
579
- d: "M0 0H24V24H0z"
580
- }), /*#__PURE__*/React__default["default"].createElement("path", {
581
- fill: color,
582
- fillRule: "nonzero",
583
- d: "M12.71 4.364A6.54 6.54 0 000 6.545a6.54 6.54 0 0012.71 2.182h4.745v4.364h4.363V8.727H24V4.364H12.71zM6.544 8.727a2.181 2.181 0 110-4.362 2.181 2.181 0 010 4.362z",
584
- transform: "translate(0 5)"
585
- })))));
586
- };
587
- KeyIcon.propTypes = {
588
- height: PropTypes__default["default"].string,
589
- width: PropTypes__default["default"].string,
590
- color: PropTypes__default["default"].string,
591
- positionTop: PropTypes__default["default"].string
592
- };
593
-
594
- var LockIcon = function LockIcon(_ref) {
595
- var height = _ref.height,
596
- width = _ref.width,
597
- _ref$color = _ref.color,
598
- color = _ref$color === void 0 ? "#D5D5D5" : _ref$color,
599
- positionTop = _ref.positionTop;
600
- return /*#__PURE__*/React__default["default"].createElement("svg", {
601
- xmlns: "http://www.w3.org/2000/svg",
602
- width: width,
603
- height: height,
604
- viewBox: "0 0 40 40",
605
- style: {
606
- position: "relative",
607
- top: positionTop
608
- }
609
- }, /*#__PURE__*/React__default["default"].createElement("g", {
610
- fill: "none",
611
- fillRule: "evenodd",
612
- stroke: "none",
613
- strokeWidth: "1"
614
- }, /*#__PURE__*/React__default["default"].createElement("g", null, /*#__PURE__*/React__default["default"].createElement("g", {
615
- transform: "translate(8 8)"
616
- }, /*#__PURE__*/React__default["default"].createElement("path", {
617
- d: "M0 0H24V24H0z"
618
- }), /*#__PURE__*/React__default["default"].createElement("g", {
619
- fill: color,
620
- fillRule: "nonzero",
621
- transform: "translate(3)"
622
- }, /*#__PURE__*/React__default["default"].createElement("path", {
623
- d: "M15.692 9h-.747V6c0-3.31-2.681-6-5.978-6C5.67 0 2.989 2.69 2.989 6v3h-.747A2.249 2.249 0 000 11.25v10.5A2.249 2.249 0 002.242 24h13.45a2.249 2.249 0 002.242-2.25v-10.5A2.249 2.249 0 0015.692 9zM4.982 6c0-2.206 1.787-4 3.985-4s3.985 1.794 3.985 4v3h-7.97V6z"
624
- }))))));
625
- };
626
- LockIcon.propTypes = {
627
- height: PropTypes__default["default"].string,
628
- width: PropTypes__default["default"].string,
629
- color: PropTypes__default["default"].string,
630
- positionTop: PropTypes__default["default"].string
631
- };
632
-
633
- var StarIcon = function StarIcon(_ref) {
634
- var width = _ref.width,
635
- height = _ref.height,
636
- _ref$color = _ref.color,
637
- color = _ref$color === void 0 ? "#D5D5D5" : _ref$color,
638
- _ref$positionTop = _ref.positionTop,
639
- positionTop = _ref$positionTop === void 0 ? "" : _ref$positionTop;
640
- return /*#__PURE__*/React__default["default"].createElement("svg", {
641
- xmlns: "http://www.w3.org/2000/svg",
642
- width: width,
643
- height: height,
644
- viewBox: "0 0 40 40",
645
- style: {
646
- position: "relative",
647
- top: positionTop
648
- }
649
- }, /*#__PURE__*/React__default["default"].createElement("g", {
650
- fill: "none",
651
- fillRule: "evenodd",
652
- stroke: "none",
653
- strokeWidth: "1"
654
- }, /*#__PURE__*/React__default["default"].createElement("g", null, /*#__PURE__*/React__default["default"].createElement("path", {
655
- fill: color,
656
- d: "M20 26L12.946577 29.7082039 14.2936609 21.854102 8.5873218 16.2917961 16.4732885 15.145898 20 8 23.5267115 15.145898 31.4126782 16.2917961 25.7063391 21.854102 27.053423 29.7082039z"
657
- }))));
658
- };
659
- StarIcon.propTypes = {
660
- height: PropTypes__default["default"].string,
661
- width: PropTypes__default["default"].string,
662
- color: PropTypes__default["default"].string,
663
- positionTop: PropTypes__default["default"].string
664
- };
665
-
666
- var PremiumStoryIcon = function PremiumStoryIcon(_ref) {
667
- var width = _ref.width,
668
- height = _ref.height,
669
- color = _ref.color,
670
- iconType = _ref.iconType,
671
- positionTop = _ref.positionTop;
672
-
673
- switch (iconType) {
674
- case "crown":
675
- return /*#__PURE__*/React__default["default"].createElement(CrownIcon, {
676
- width: width,
677
- height: height,
678
- color: color,
679
- positionTop: positionTop
680
- });
681
-
682
- case "lock":
683
- return /*#__PURE__*/React__default["default"].createElement(LockIcon, {
684
- width: width,
685
- height: height,
686
- color: color,
687
- positionTop: positionTop
688
- });
689
-
690
- case "key":
691
- return /*#__PURE__*/React__default["default"].createElement(KeyIcon, {
692
- width: width,
693
- height: height,
694
- color: color,
695
- positionTop: positionTop
696
- });
697
-
698
- default:
699
- return /*#__PURE__*/React__default["default"].createElement(StarIcon, {
700
- width: width,
701
- height: height,
702
- color: color,
703
- positionTop: positionTop
704
- });
705
- }
706
- };
707
- PremiumStoryIcon.propTypes = {
708
- width: PropTypes__default["default"].string,
709
- height: PropTypes__default["default"].string,
710
- color: PropTypes__default["default"].string,
711
- iconType: PropTypes__default["default"].string,
712
- positionTop: PropTypes__default["default"].string
713
- };
714
-
715
- function LiveIcon() {
716
- return /*#__PURE__*/React__default["default"].createElement("svg", {
717
- className: "live-icon",
718
- xmlns: "http://www.w3.org/2000/svg",
719
- width: "25",
720
- height: "24",
721
- viewBox: "0 0 25 24"
722
- }, /*#__PURE__*/React__default["default"].createElement("path", {
723
- fill: "#ff5858",
724
- d: "M12 18a6 6 0 110-12 6 6 0 010 12zm0 2.5a8.5 8.5 0 110-17 8.5 8.5 0 010 17zm0-1a7.5 7.5 0 100-15 7.5 7.5 0 000 15z"
725
- }));
726
- }
727
-
728
- var _styleModuleImportMap$c = {
729
- "./headline.m.css": {
730
- "wrapper": "headline-m_wrapper__3nUmh",
731
- "headline": "headline-m_headline__3_NhV",
732
- "dark": "headline-m_dark__en3hW",
733
- "light": "headline-m_light__3lKJB"
734
- }
735
- };
736
- var Headline = function Headline(_ref) {
737
- var story = _ref.story,
738
- headerLevel = _ref.headerLevel,
739
- _ref$premiumStoryIcon = _ref.premiumStoryIconConfig,
740
- premiumStoryIconConfig = _ref$premiumStoryIcon === void 0 ? {} : _ref$premiumStoryIcon,
741
- isLink = _ref.isLink;
742
- var configData = useStateValue() || {};
743
- var _premiumStoryIconConf = premiumStoryIconConfig.iconColor,
744
- iconColor = _premiumStoryIconConf === void 0 ? "#F7B500" : _premiumStoryIconConf,
745
- _premiumStoryIconConf2 = premiumStoryIconConfig.iconStyle,
746
- iconStyle = _premiumStoryIconConf2 === void 0 ? "star" : _premiumStoryIconConf2,
747
- _premiumStoryIconConf3 = premiumStoryIconConfig.enablePremiumStoryIcon,
748
- enablePremiumStoryIcon = _premiumStoryIconConf3 === void 0 ? false : _premiumStoryIconConf3,
749
- _premiumStoryIconConf4 = premiumStoryIconConfig.showLiveIcon,
750
- showLiveIcon = _premiumStoryIconConf4 === void 0 ? false : _premiumStoryIconConf4;
751
- var alternateHeadline = lodash.get(story, ["alternative", "home", "default", "headline"]);
752
- var premiumStory = enablePremiumStoryIcon && lodash.get(story, ["access"]) === "subscription";
753
- var headline = alternateHeadline || story.headline;
754
- var HeaderTag = "h" + headerLevel;
755
-
756
- var positionHeadline = function positionHeadline() {
757
- switch (parseInt(headerLevel)) {
758
- case 1:
759
- return "-2px";
760
-
761
- case 2:
762
- return "2px";
763
-
764
- case 3:
765
- return "4px";
766
-
767
- case 4:
768
- return "5px";
769
-
770
- default:
771
- return "6px";
772
- }
773
- };
774
-
775
- var textColor = getTextColor(configData.theme);
776
- var wrapperClass = premiumStory ? "wrapper" : "";
777
- var iconSize = "24px";
778
- var enableLiveIcon = showLiveIcon && story["story-template"] === "live-blog" && !lodash.get(story, ["metadata", "is-closed"], false);
779
- return /*#__PURE__*/React__default["default"].createElement("div", {
780
- "data-test-id": "headline",
781
- className: "arrow-component arr--headline " + _getClassName__default["default"](wrapperClass, _styleModuleImportMap$c)
782
- }, premiumStory && /*#__PURE__*/React__default["default"].createElement(PremiumStoryIcon, {
783
- width: iconSize,
784
- height: iconSize,
785
- color: iconColor,
786
- iconType: iconStyle,
787
- positionTop: positionHeadline()
788
- }), isLink ? /*#__PURE__*/React__default["default"].createElement(components.Link, {
789
- href: getStoryUrl(story, "/".concat(story.slug)),
790
- externalLink: isExternalStory(story),
791
- "aria-label": "headline"
792
- }, /*#__PURE__*/React__default["default"].createElement(HeaderTag, {
793
- className: _getClassName__default["default"]("headline ".concat(textColor), _styleModuleImportMap$c)
794
- }, enableLiveIcon && /*#__PURE__*/React__default["default"].createElement(LiveIcon, null), headline)) : /*#__PURE__*/React__default["default"].createElement(HeaderTag, {
795
- className: _getClassName__default["default"]("headline ".concat(textColor), _styleModuleImportMap$c)
796
- }, enableLiveIcon && /*#__PURE__*/React__default["default"].createElement(LiveIcon, null), headline));
797
- };
798
- Headline.propTypes = {
799
- /** The Story Object from the API response */
800
- story: PropTypes__default["default"].object.isRequired,
801
-
802
- /** Header tags ranging h1-h6, where h[headerLevel] */
803
- headerLevel: PropTypes__default["default"].string,
804
- premiumStoryIconConfig: PropTypes__default["default"].shape({
805
- iconColor: PropTypes__default["default"].string,
806
- iconType: PropTypes__default["default"].string,
807
- enablePremiumStoryIcon: PropTypes__default["default"].bool
808
- }),
809
- isLink: PropTypes__default["default"].bool
810
- };
811
- Headline.defaultProps = {
812
- headerLevel: "6",
813
- isLink: true
814
- };
815
-
816
- var _styleModuleImportMap$b = {
817
- "./subheadline.m.css": {
818
- "subheadline": "subheadline-m_subheadline__3fd7z",
819
- "dark": "subheadline-m_dark__28u00",
820
- "light": "subheadline-m_light__2YUOe"
821
- }
822
- };
823
- var Subheadline = function Subheadline(_ref) {
824
- var story = _ref.story,
825
- _ref$truncateChars = _ref.truncateChars,
826
- truncateChars = _ref$truncateChars === void 0 ? 200 : _ref$truncateChars,
827
- lineClamp = _ref.lineClamp,
828
- _ref$clazzName = _ref.clazzName,
829
- clazzName = _ref$clazzName === void 0 ? "" : _ref$clazzName,
830
- forceShowAtom = _ref.forceShowAtom,
831
- showFullContent = _ref.showFullContent;
832
- var config = useStateValue() || {};
833
- var subheadline = forceShowAtom || lodash.get(config, ["showSubheadline"], true);
834
- if (!subheadline) return null;
835
- var textColor = getTextColor(config.theme);
836
- return /*#__PURE__*/React__default["default"].createElement("div", {
837
- style: {
838
- WebkitLineClamp: lineClamp
839
- },
840
- "data-test-id": "subheadline",
841
- className: ("p-alt arr--sub-headline arrow-component ".concat(clazzName) ? "p-alt arr--sub-headline arrow-component ".concat(clazzName) + " " : "") + _getClassName__default["default"]("subheadline ".concat(textColor), _styleModuleImportMap$b)
842
- }, showFullContent || typeof lineClamp === "number" ? story.subheadline : truncate(story.subheadline, truncateChars, true));
843
- };
844
- Subheadline.propTypes = {
845
- /** The Story Object from the API response */
846
- story: PropTypes__default["default"].object.isRequired,
847
- // Restricts the number of lines for subheadline.
848
- lineClamp: PropTypes__default["default"].number,
849
-
850
- /** Number of characters to truncate the subheadline */
851
- truncateChars: PropTypes__default["default"].number,
852
- clazzName: PropTypes__default["default"].string,
853
- forceShowAtom: PropTypes__default["default"].bool,
854
- showFullContent: PropTypes__default["default"].bool
855
- };
856
- Subheadline.defaultProps = {
857
- forceShowAtom: false,
858
- showFullContent: false
859
- };
860
-
861
- var _styleModuleImportMap$a = {
862
- "./timestamp.m.css": {
863
- "time": "timestamp-m_time__2v46i",
864
- "time-wrapper": "timestamp-m_time-wrapper__3O2lM",
865
- "bottom-fix": "timestamp-m_bottom-fix__1Zh8r",
866
- "dark": "timestamp-m_dark__2lk9E",
867
- "light": "timestamp-m_light__2QlrI"
868
- }
869
- };
870
- var TimeStamp = function TimeStamp(_ref) {
871
- var story = _ref.story,
872
- isBottom = _ref.isBottom,
873
- _ref$config = _ref.config,
874
- config = _ref$config === void 0 ? {} : _ref$config;
875
- var configState = useStateValue() || {};
876
- var isTime = lodash.get(config, ["showTime"], lodash.get(configState, ["showTime"], true));
877
- var time = story["last-published-at"] || story["first-published-at"];
878
- var isBottomClasses = isBottom ? "bottom-fix" : "";
879
- var textColor = getTextColor(configState.theme);
880
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isTime && /*#__PURE__*/React__default["default"].createElement("div", {
881
- "data-test-id": "publish-time",
882
- className: "time arr--publish-time " + _getClassName__default["default"]("time ".concat(textColor, " ").concat(isBottomClasses), _styleModuleImportMap$a)
883
- }, /*#__PURE__*/React__default["default"].createElement("div", {
884
- className: "timestamp-m_time-wrapper__3O2lM"
885
- }, getTimeStamp(time, formatter, config))));
886
- };
887
- TimeStamp.propTypes = {
888
- /** The Story Object from the API response */
889
- story: PropTypes__default["default"].object,
890
- isBottom: PropTypes__default["default"].bool,
891
- config: PropTypes__default["default"].object
892
- };
893
-
894
- var _styleModuleImportMap$9 = {
895
- "./author.m.css": {
896
- "author": "author-m_author__WRuLm",
897
- "author-image": "author-m_author-image__3q2oc",
898
- "author-name": "author-m_author-name__3WP-O",
899
- "bottom-fix": "author-m_bottom-fix__223TT",
900
- "prefix": "author-m_prefix__YSInK",
901
- "rtl-image": "author-m_rtl-image__2nglD",
902
- "ltr-image": "author-m_ltr-image__3bc0L",
903
- "dark": "author-m_dark__2TTlp",
904
- "light": "author-m_light__3y8_x"
905
- }
906
- };
907
-
908
- var AuthorBase = function AuthorBase(_ref) {
909
- var story = _ref.story,
910
- hideAuthorImage = _ref.hideAuthorImage,
911
- isBottom = _ref.isBottom,
912
- _ref$prefix = _ref.prefix,
913
- prefix = _ref$prefix === void 0 ? "" : _ref$prefix,
914
- _ref$config = _ref.config,
915
- config = _ref$config === void 0 ? {} : _ref$config;
916
- var configData = useStateValue() || {};
917
- var isAuthor = lodash.get(configData, ["showAuthor"], true);
918
-
919
- var _get = lodash.get(story, ["authors", "0"], ""),
920
- avatarUrl = _get["avatar-url"],
921
- avatarS3Key = _get["avatar-s3-key"],
922
- authorName = _get.name,
923
- slug = _get.slug;
924
-
925
- var isBottomClasses = isBottom ? "bottom-fix" : "";
926
- var textColor = getTextColor(configData.theme);
927
- var mountAt = lodash.get(config, ["mountAt"], "");
928
-
929
- var authorImage = function authorImage(dir) {
930
- if (!avatarUrl && !avatarS3Key) {
931
- return null;
932
- }
933
-
934
- return /*#__PURE__*/React__default["default"].createElement("div", {
935
- "data-test-id": "author-image",
936
- className: _getClassName__default["default"]("author-image ".concat(dir, "-image"), _styleModuleImportMap$9)
937
- }, /*#__PURE__*/React__default["default"].createElement("figure", null, avatarS3Key ? /*#__PURE__*/React__default["default"].createElement(components.ResponsiveImage, {
938
- slug: avatarS3Key,
939
- "aspect-ratio": [1, 1],
940
- defaultWidth: 400,
941
- imgParams: {
942
- auto: ["format", "compress"]
943
- },
944
- alt: authorName
945
- }) : /*#__PURE__*/React__default["default"].createElement("img", {
946
- src: avatarUrl
947
- })));
948
- };
949
-
950
- var isPrefix = function isPrefix(dir) {
951
- if (prefix) {
952
- return /*#__PURE__*/React__default["default"].createElement("div", {
953
- className: "arr-author-prefix " + _getClassName__default["default"]("prefix ".concat(textColor), _styleModuleImportMap$9)
954
- }, prefix);
955
- }
956
-
957
- return !hideAuthorImage && authorImage(dir);
958
- };
959
-
960
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isAuthor && /*#__PURE__*/React__default["default"].createElement(components.Link, {
961
- href: "".concat(mountAt, "/author/") + slug,
962
- "aria-label": "author-name",
963
- className: "author-name arr-author-name arrow-component " + _getClassName__default["default"]("author ".concat(isBottomClasses), _styleModuleImportMap$9)
964
- }, isPrefix("ltr"), /*#__PURE__*/React__default["default"].createElement("div", {
965
- "data-test-id": "author-name",
966
- className: "author-name " + _getClassName__default["default"]("author-name ".concat(textColor), _styleModuleImportMap$9)
967
- }, authorName || story["author-name"]), !prefix && isPrefix("rtl")));
968
- };
969
-
970
- function mapStateToProps(state) {
971
- return {
972
- config: lodash.get(state, ["qt", "config"], {})
973
- };
974
- }
975
-
976
- var Author = reactRedux.connect(mapStateToProps)(AuthorBase);
977
- AuthorBase.propTypes = {
978
- /** The Story Object from the API response */
979
- story: PropTypes__default["default"].object.isRequired,
980
-
981
- /** Hide Author Avatar Image */
982
- hideAuthorImage: PropTypes__default["default"].bool,
983
- // fix Author bottom of the storyCard
984
- isBottom: PropTypes__default["default"].bool,
985
- // fix prefix before the author name
986
- prefix: PropTypes__default["default"].string,
987
- config: PropTypes__default["default"].object
988
- };
989
- AuthorBase.defaultProps = {
990
- hideAuthorImage: false,
991
- isBottom: false,
992
- prefix: ""
993
- };
994
-
995
- var _styleModuleImportMap$8 = {
996
- "./dot.m.css": {
997
- "dark": "dot-m_dark__1Njxl",
998
- "light": "dot-m_light__27IA3"
999
- }
1000
- };
1001
- var Dot = function Dot(_ref) {
1002
- var _ref$width = _ref.width,
1003
- width = _ref$width === void 0 ? "3px" : _ref$width,
1004
- _ref$height = _ref.height,
1005
- height = _ref$height === void 0 ? "3px" : _ref$height,
1006
- _ref$color = _ref.color,
1007
- color = _ref$color === void 0 ? "light" : _ref$color;
1008
- return /*#__PURE__*/React__default["default"].createElement("div", {
1009
- className: _getClassName__default["default"](color, _styleModuleImportMap$8)
1010
- }, /*#__PURE__*/React__default["default"].createElement("svg", {
1011
- xmlns: "http://www.w3.org/2000/svg",
1012
- width: width,
1013
- height: height,
1014
- viewBox: "0 0 3 3"
1015
- }, /*#__PURE__*/React__default["default"].createElement("circle", {
1016
- cx: "87",
1017
- cy: "9",
1018
- r: "1",
1019
- fill: "inherit",
1020
- fillRule: "nonzero",
1021
- transform: "translate(-86 -8)"
1022
- })));
1023
- };
1024
- Dot.propTypes = {
1025
- /** height , width and color of the dot icon */
1026
- color: PropTypes__default["default"].string,
1027
- width: PropTypes__default["default"].string,
1028
- height: PropTypes__default["default"].string
1029
- };
1030
-
1031
- var _styleModuleImportMap$7 = {
1032
- "./divider.m.css": {
1033
- "dark": "divider-m_dark__26FRi",
1034
- "light": "divider-m_light__w-7sy"
1035
- }
1036
- };
1037
- var Divider = function Divider(_ref) {
1038
- var _ref$width = _ref.width,
1039
- width = _ref$width === void 0 ? "1" : _ref$width,
1040
- _ref$height = _ref.height,
1041
- height = _ref$height === void 0 ? "10" : _ref$height,
1042
- _ref$color = _ref.color,
1043
- color = _ref$color === void 0 ? "light" : _ref$color;
1044
- return /*#__PURE__*/React__default["default"].createElement("div", {
1045
- className: _getClassName__default["default"](color, _styleModuleImportMap$7)
1046
- }, /*#__PURE__*/React__default["default"].createElement("svg", {
1047
- xmlns: "http://www.w3.org/2000/svg",
1048
- width: width,
1049
- height: height
1050
- }, /*#__PURE__*/React__default["default"].createElement("path", {
1051
- fill: "inherit",
1052
- d: "M0 0h1v10H0z"
1053
- })));
1054
- };
1055
- Divider.propTypes = {
1056
- /** height , width and color of the dot icon */
1057
- color: PropTypes__default["default"].string,
1058
- width: PropTypes__default["default"].string,
1059
- height: PropTypes__default["default"].string
1060
- };
1061
-
1062
- var _styleModuleImportMap$6 = {
1063
- "./read-time.m.css": {
1064
- "read-time-wrapper": "read-time-m_read-time-wrapper__3GyC_",
1065
- "dot-indicator": "read-time-m_dot-indicator__3Sqh2",
1066
- "dark": "read-time-m_dark__3yRaK",
1067
- "light": "read-time-m_light__1GAZu"
1068
- }
1069
- };
1070
- var ReadTime = function ReadTime(_ref) {
1071
- var story = _ref.story,
1072
- _ref$opts = _ref.opts,
1073
- opts = _ref$opts === void 0 ? {} : _ref$opts,
1074
- _ref$isLightTheme = _ref.isLightTheme,
1075
- isLightTheme = _ref$isLightTheme === void 0 ? false : _ref$isLightTheme;
1076
- var config = useStateValue() || {};
1077
- var showReadTime = lodash.get(config, ["showReadTime"]) || lodash.get(opts, ["showReadTime"], true);
1078
- var readTime = lodash.get(story, ["read-time"], 0);
1079
- var textColor = isLightTheme ? "light" : getTextColor(config.theme);
1080
- if (!showReadTime || !readTime) return null;
1081
- var timeToRead = lodash.get(opts, ["localizedTimeToRead"]) || "min read";
1082
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
1083
- "data-test-id": "read-time",
1084
- className: "arrow-component arr--read-time " + _getClassName__default["default"]("read-time-wrapper ".concat(textColor), _styleModuleImportMap$6)
1085
- }, /*#__PURE__*/React__default["default"].createElement("span", {
1086
- className: "read-time-indicator read-time-m_dot-indicator__3Sqh2"
1087
- }, /*#__PURE__*/React__default["default"].createElement(Dot, {
1088
- color: textColor
1089
- })), /*#__PURE__*/React__default["default"].createElement("span", null, readTime, " ", timeToRead)));
1090
- };
1091
- ReadTime.propTypes = {
1092
- story: PropTypes__default["default"].shape({
1093
- "read-time": PropTypes__default["default"].number
1094
- }),
1095
- opts: PropTypes__default["default"].shape({
1096
- showReadTime: PropTypes__default["default"].bool
1097
- }),
1098
- isLightTheme: PropTypes__default["default"].bool
1099
- };
1100
-
1101
- var _styleModuleImportMap$5 = {
1102
- "./author-with-timestamp.m.css": {
1103
- "author-time-wrapper": "author-with-timestamp-m_author-time-wrapper__G7_eI",
1104
- "author-image": "author-with-timestamp-m_author-image__24xrD",
1105
- "dot": "author-with-timestamp-m_dot__1LHXD",
1106
- "bottom-fix": "author-with-timestamp-m_bottom-fix__1rWGv",
1107
- "dash": "author-with-timestamp-m_dash__2L5XC"
1108
- }
1109
- };
1110
- var AuthorWithTime = function AuthorWithTime(_ref) {
1111
- var story = _ref.story,
1112
- separator = _ref.separator,
1113
- isBottom = _ref.isBottom,
1114
- hideAuthorImage = _ref.hideAuthorImage,
1115
- prefix = _ref.prefix,
1116
- _ref$config = _ref.config,
1117
- config = _ref$config === void 0 ? {} : _ref$config,
1118
- isLightTheme = _ref.isLightTheme;
1119
- var configState = useStateValue() || {};
1120
- var isAuthor = lodash.get(config, ["showAuthor"], lodash.get(configState, ["showAuthor"], true));
1121
- var isTime = lodash.get(config, ["showTime"], lodash.get(configState, ["showTime"], true));
1122
- var isReadTime = lodash.get(configState, ["showReadTime"], true);
1123
- var isBottomClasses = isBottom ? "bottom-fix" : "";
1124
- var seperatorStyle = separator === "dot" ? "dot" : "dash";
1125
- var textColor = isLightTheme ? "light" : getTextColor(configState.theme);
1126
-
1127
- var getSeparator = function getSeparator() {
1128
- if (separator === "divider") {
1129
- return /*#__PURE__*/React__default["default"].createElement(Divider, {
1130
- color: textColor
1131
- });
1132
- }
1133
-
1134
- return /*#__PURE__*/React__default["default"].createElement(Dot, {
1135
- color: textColor
1136
- });
1137
- };
1138
-
1139
- var getTimeStamp = function getTimeStamp() {
1140
- if (!isTime) return null;
1141
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isAuthor && /*#__PURE__*/React__default["default"].createElement("span", {
1142
- className: "arr-separator " + _getClassName__default["default"]("".concat(seperatorStyle), _styleModuleImportMap$5)
1143
- }, getSeparator()), /*#__PURE__*/React__default["default"].createElement(TimeStamp, {
1144
- story: story,
1145
- config: config
1146
- }), isReadTime && /*#__PURE__*/React__default["default"].createElement(ReadTime, {
1147
- story: story,
1148
- opts: config,
1149
- isLightTheme: isLightTheme
1150
- }));
1151
- };
1152
-
1153
- return /*#__PURE__*/React__default["default"].createElement("div", {
1154
- className: "arr--author-time " + _getClassName__default["default"]("author-time-wrapper ".concat(isBottomClasses), _styleModuleImportMap$5)
1155
- }, isAuthor ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Author, {
1156
- story: story,
1157
- isBottom: true,
1158
- hideAuthorImage: hideAuthorImage,
1159
- prefix: prefix
1160
- }), getTimeStamp()) : getTimeStamp());
1161
- };
1162
- AuthorWithTime.propTypes = {
1163
- story: PropTypes__default["default"].object,
1164
-
1165
- /** Style of separator between the Author & Timestamp */
1166
- separator: PropTypes__default["default"].oneOf(["dot", "divider"]),
1167
-
1168
- /** hide the author image */
1169
- hideAuthorImage: PropTypes__default["default"].bool,
1170
- // fix author and time at the end
1171
- isBottom: PropTypes__default["default"].bool,
1172
- // fix prefix before the author name
1173
- prefix: PropTypes__default["default"].string,
1174
- config: PropTypes__default["default"].object,
1175
- isLightTheme: PropTypes__default["default"].bool
1176
- };
1177
- AuthorWithTime.defaultProps = {
1178
- separator: "dot",
1179
- isBottom: false,
1180
- hideAuthorImage: true,
1181
- prefix: "",
1182
- isLightTheme: false
1183
- };
1184
-
1185
- var ImageFallbackIcon = function ImageFallbackIcon(_ref) {
1186
- var _ref$width = _ref.width,
1187
- width = _ref$width === void 0 ? 40 : _ref$width,
1188
- _ref$height = _ref.height,
1189
- height = _ref$height === void 0 ? 30 : _ref$height,
1190
- _ref$iconColor = _ref.iconColor,
1191
- iconColor = _ref$iconColor === void 0 ? "#99B0CB" : _ref$iconColor;
1192
- return /*#__PURE__*/React__default["default"].createElement("svg", {
1193
- width: width,
1194
- height: height,
1195
- viewBox: "0 0 102 76",
1196
- version: "1.1"
1197
- }, /*#__PURE__*/React__default["default"].createElement("g", {
1198
- id: "demo-home-copy",
1199
- stroke: "none",
1200
- strokeWidth: "1",
1201
- fill: "none",
1202
- fillRule: "evenodd",
1203
- transform: "translate(-377.000000, -314.000000)"
1204
- }, /*#__PURE__*/React__default["default"].createElement("g", {
1205
- id: "Group-13",
1206
- transform: "translate(377.000000, 314.000000)"
1207
- }, /*#__PURE__*/React__default["default"].createElement("path", {
1208
- d: "M43.2,49.7 L62.2,19.2 L87.2,59.4 L17,59.4 L32.8,39.4 L43.2,49.7 Z M29.9,28.6 C25.8683213,28.6 22.6,25.3316787 22.6,21.3 C22.6,17.2683213 25.8683213,14 29.9,14 C33.9316787,14 37.2,17.2683213 37.2,21.3 C37.2,25.3316787 33.9316787,28.6 29.9,28.6 Z",
1209
- id: "Combined-Shape",
1210
- fill: iconColor,
1211
- fillRule: "nonzero"
1212
- }), /*#__PURE__*/React__default["default"].createElement("rect", {
1213
- id: "Rectangle-19",
1214
- stroke: iconColor,
1215
- strokeWidth: "3",
1216
- x: "1.5",
1217
- y: "1.5",
1218
- width: "99",
1219
- height: "73",
1220
- rx: "3"
1221
- }))));
1222
- };
1223
- ImageFallbackIcon.propTypes = {
1224
- width: PropTypes__default["default"].object,
1225
- height: PropTypes__default["default"].object,
1226
- iconColor: PropTypes__default["default"].object
1227
- };
1228
-
1229
- var imageFallback = function imageFallback() {
1230
- return /*#__PURE__*/React__default["default"].createElement("div", {
1231
- className: "arr--fallback-image fallback-m_image__1GYCJ fallback-m_image-position__3KddP"
1232
- }, /*#__PURE__*/React__default["default"].createElement("figure", {
1233
- className: "arr--fallback-svg fallback-m_fallback-svg__tK9fL"
1234
- }, /*#__PURE__*/React__default["default"].createElement(ImageFallbackIcon, null)));
1235
- };
1236
-
1237
- var FallbackImage = function FallbackImage(_ref) {
1238
- var slug = _ref.slug;
1239
-
1240
- if (slug) {
1241
- return /*#__PURE__*/React__default["default"].createElement(components.Link, {
1242
- href: slug,
1243
- "aria-label": "image-fallback"
1244
- }, imageFallback());
1245
- } else {
1246
- return imageFallback();
1247
- }
1248
- };
1249
- FallbackImage.propTypes = {
1250
- slug: PropTypes__default["default"].string
1251
- };
1252
-
1253
- var HyperLinkIcon = function HyperLinkIcon() {
1254
- return /*#__PURE__*/React__default["default"].createElement("svg", {
1255
- xmlns: "http://www.w3.org/2000/svg",
1256
- width: "36",
1257
- height: "28"
1258
- }, /*#__PURE__*/React__default["default"].createElement("g", {
1259
- fill: "none",
1260
- fillRule: "evenodd"
1261
- }, /*#__PURE__*/React__default["default"].createElement("rect", {
1262
- width: "36",
1263
- height: "28",
1264
- fill: "#3D6FCF",
1265
- rx: "4"
1266
- }), /*#__PURE__*/React__default["default"].createElement("path", {
1267
- stroke: "#FFF",
1268
- strokeLinecap: "round",
1269
- strokeLinejoin: "round",
1270
- strokeWidth: "2",
1271
- d: "M22 14.667v4c0 .736-.597 1.333-1.333 1.333h-7.334A1.333 1.333 0 0112 18.667v-7.334c0-.736.597-1.333 1.333-1.333h4M20 8h4v4m-7.333 3.333L24 8"
1272
- })));
1273
- };
1274
-
1275
- var HyperLink = function HyperLink(_ref) {
1276
- var _ref$hyperLink = _ref.hyperLink,
1277
- hyperLink = _ref$hyperLink === void 0 ? "" : _ref$hyperLink;
1278
- if (!hyperLink) return null;
1279
- return /*#__PURE__*/React__default["default"].createElement(components.Link, {
1280
- href: hyperLink,
1281
- "aria-label": "hyperlink-button",
1282
- className: "arr--hyperlink-button hyperlink-m_hyperlink-button__1CqWx",
1283
- target: "_blank",
1284
- rel: "noopener noreferrer"
1285
- }, /*#__PURE__*/React__default["default"].createElement(HyperLinkIcon, null));
1286
- };
1287
- HyperLink.propTypes = {
1288
- hyperLink: PropTypes__default["default"].string
1289
- };
1290
-
1291
- var _styleModuleImportMap$4 = {
1292
- "./hero-image.m.css": {
1293
- "hero-image": "hero-image-m_hero-image__3lraV",
1294
- "right-padding": "hero-image-m_right-padding__1LkCe",
1295
- "left-padding": "hero-image-m_left-padding__pYRAj",
1296
- "right-padding-mob": "hero-image-m_right-padding-mob__3-uOU",
1297
- "placeholder": "hero-image-m_placeholder__1omCm",
1298
- "hero-image-mob": "hero-image-m_hero-image-mob__13JJp",
1299
- "with-padding": "hero-image-m_with-padding__324G_",
1300
- "image": "hero-image-m_image__1mz0U"
1301
- }
1302
- };
1303
- var HeroImage = function HeroImage(_ref) {
1304
- var story = _ref.story,
1305
- FullBleed = _ref.FullBleed,
1306
- aspectRatio = _ref.aspectRatio,
1307
- defaultWidth = _ref.defaultWidth,
1308
- widths = _ref.widths,
1309
- isHorizontal = _ref.isHorizontal,
1310
- isHorizontalMobile = _ref.isHorizontalMobile,
1311
- isHorizontalWithImageLast = _ref.isHorizontalWithImageLast,
1312
- defaultFallback = _ref.defaultFallback,
1313
- isStoryPageImage = _ref.isStoryPageImage,
1314
- config = _ref.config;
1315
-
1316
- var _ref2 = useStateValue() || {},
1317
- _ref2$fallbackImageUr = _ref2.fallbackImageUrl,
1318
- fallbackImageUrl = _ref2$fallbackImageUr === void 0 ? "" : _ref2$fallbackImageUr;
1319
-
1320
- var _config$StoryTemplate = config.StoryTemplateIcon,
1321
- StoryTemplateIcon = _config$StoryTemplate === void 0 ? function () {
1322
- return null;
1323
- } : _config$StoryTemplate;
1324
- var showImagePlaceholder = reactRedux.useSelector(function (state) {
1325
- return lodash.get(state, ["qt", "config", "showPlaceholder"]);
1326
- });
1327
- var getPlaceholderStyleName = showImagePlaceholder ? "placeholder" : "";
1328
- var fullBleed = FullBleed ? "" : "with-padding";
1329
- var heroImageClass = "hero-image";
1330
- if (isHorizontal) heroImageClass = "right-padding";else if (isHorizontalWithImageLast) heroImageClass = "left-padding";
1331
- var heroImageMobClasses = isHorizontalMobile ? "right-padding-mob" : "";
1332
-
1333
- var getPadding = function getPadding(aspectRatio) {
1334
- var _aspectRatio = _slicedToArray__default["default"](aspectRatio, 2),
1335
- height = _aspectRatio[0],
1336
- width = _aspectRatio[1];
1337
-
1338
- if (height > 0 && width > 0) {
1339
- var padding = width / height * 100;
1340
- return padding;
1341
- }
1342
-
1343
- return 0;
1344
- };
1345
-
1346
- var _aspectRatio2 = _slicedToArray__default["default"](aspectRatio, 2),
1347
- mobileAspectRatio = _aspectRatio2[0],
1348
- _aspectRatio2$ = _aspectRatio2[1],
1349
- desktopAspectRatio = _aspectRatio2$ === void 0 ? mobileAspectRatio : _aspectRatio2$;
1350
-
1351
- var isMobile = clientWidth("mobile");
1352
- var imageAspectRatio = isMobile ? mobileAspectRatio : desktopAspectRatio;
1353
- var imagePadding = isMobile ? getPadding(mobileAspectRatio) : getPadding(desktopAspectRatio);
1354
- var slug = lodash.get(story, ["hero-image-s3-key"]) || lodash.get(story, ["alternative", "home", "default", "hero-image", "hero-image-s3-key"]);
1355
- var hyperLink = lodash.get(story, ["hero-image-hyperlink"], "");
1356
-
1357
- var fallbackImage = function fallbackImage() {
1358
- if (!slug) {
1359
- if (fallbackImageUrl && !isStoryPageImage) {
1360
- return /*#__PURE__*/React__default["default"].createElement("figure", {
1361
- style: {
1362
- paddingTop: imagePadding + "%"
1363
- },
1364
- className: "arr--responsive-hero-image " + _getClassName__default["default"]("image ".concat(getPlaceholderStyleName), _styleModuleImportMap$4)
1365
- }, /*#__PURE__*/React__default["default"].createElement("img", {
1366
- className: "qt-image",
1367
- "data-src": "".concat(fallbackImageUrl),
1368
- alt: "image-fallback"
1369
- }));
1370
- }
1371
-
1372
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, defaultFallback ? /*#__PURE__*/React__default["default"].createElement("div", {
1373
- "data-test-id": "arr--fallback-hero-image",
1374
- style: {
1375
- paddingTop: imagePadding + "%"
1376
- },
1377
- className: "arr--fallback-hero-image " + _getClassName__default["default"]("image ".concat(getPlaceholderStyleName), _styleModuleImportMap$4)
1378
- }, /*#__PURE__*/React__default["default"].createElement(StoryTemplateIcon, {
1379
- storyTemplate: story["story-template"]
1380
- }), /*#__PURE__*/React__default["default"].createElement(FallbackImage, null)) : null);
1381
- }
1382
-
1383
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("figure", {
1384
- style: {
1385
- paddingTop: imagePadding + "%"
1386
- },
1387
- className: "arr--responsive-hero-image " + _getClassName__default["default"]("image ".concat(getPlaceholderStyleName), _styleModuleImportMap$4)
1388
- }, /*#__PURE__*/React__default["default"].createElement(StoryTemplateIcon, {
1389
- storyTemplate: story["story-template"]
1390
- }), /*#__PURE__*/React__default["default"].createElement(components.ResponsiveHeroImage, {
1391
- story: story,
1392
- aspectRatio: imageAspectRatio,
1393
- defaultWidth: defaultWidth,
1394
- widths: widths,
1395
- imgParams: {
1396
- auto: ["format", "compress"],
1397
- fit: "max"
1398
- }
1399
- })), isStoryPageImage && hyperLink && /*#__PURE__*/React__default["default"].createElement(HyperLink, {
1400
- hyperLink: hyperLink
1401
- }));
1402
- };
1403
-
1404
- return story && (isStoryPageImage ? /*#__PURE__*/React__default["default"].createElement("div", {
1405
- "data-test-id": "arr--hero-image",
1406
- className: "arr--hero-image " + _getClassName__default["default"]("".concat(heroImageClass, " ").concat(fullBleed, " ").concat(heroImageMobClasses), _styleModuleImportMap$4)
1407
- }, fallbackImage()) : /*#__PURE__*/React__default["default"].createElement(components.Link, {
1408
- "data-test-id": "arr--hero-image",
1409
- href: getStoryUrl(story, "/".concat(story.slug)),
1410
- externalLink: isExternalStory(story),
1411
- "aria-label": "fallback-hero-image",
1412
- className: "arr--hero-image " + _getClassName__default["default"]("".concat(heroImageClass, " ").concat(fullBleed, " ").concat(heroImageMobClasses), _styleModuleImportMap$4)
1413
- }, fallbackImage()));
1414
- };
1415
- HeroImage.propTypes = {
1416
- /** The Story Object from the API response */
1417
- story: PropTypes__default["default"].object.isRequired,
1418
-
1419
- /** Removes the Hero Image padding for the image to bleed over the margin */
1420
- FullBleed: PropTypes__default["default"].bool,
1421
-
1422
- /** The default width for the image, in case the browser does not support srcset */
1423
- defaultWidth: PropTypes__default["default"].number,
1424
-
1425
- /** The list of available widths */
1426
- widths: PropTypes__default["default"].array,
1427
- // fatch the correct hero image
1428
- aspectRatio: PropTypes__default["default"].array,
1429
- // Hints for the browser to choose the best size
1430
-
1431
- /** This prop is responsible for adding padding-right of the image and remove padding bottom of the image */
1432
- isHorizontal: PropTypes__default["default"].bool,
1433
-
1434
- /** This prop is responsible for adding padding-bottom in desktop and padding-right in mobile */
1435
- isHorizontalMobile: PropTypes__default["default"].bool,
1436
- // this prop is responsive for rendering fallback image on story page
1437
- defaultFallback: PropTypes__default["default"].bool,
1438
- isHorizontalWithImageLast: PropTypes__default["default"].bool,
1439
- isStoryPageImage: PropTypes__default["default"].bool,
1440
- config: PropTypes__default["default"].object
1441
- };
1442
- HeroImage.defaultProps = {
1443
- FullBleed: true,
1444
- aspectRatio: [[1, 1], [16, 9]],
1445
- defaultWidth: 480,
1446
- widths: [250, 480, 640],
1447
- isHorizontal: false,
1448
- isHorizontalMobile: false,
1449
- defaultFallback: true,
1450
- isStoryPageImage: false,
1451
- isHorizontalWithImageLast: false,
1452
- config: {}
1453
- };
1454
-
1455
- var _styleModuleImportMap$3 = {
1456
- "./section.m.css": {
1457
- "section": "section-m_section__2N4S3",
1458
- "section-borderBottomSml": "section-m_section-borderBottomSml__2GNbo",
1459
- "border-bottom": "section-m_border-bottom__3cRoD",
1460
- "section-borderLeft": "section-m_section-borderLeft__3hKVj",
1461
- "border-left": "section-m_border-left__2oUyp",
1462
- "section-solid": "section-m_section-solid__1vB1Q",
1463
- "dark": "section-m_dark__1r3C4",
1464
- "light": "section-m_light__306hW"
1465
- }
1466
- };
1467
- var SectionTag = function SectionTag(_ref) {
1468
- var story = _ref.story,
1469
- _ref$template = _ref.template,
1470
- template = _ref$template === void 0 ? "" : _ref$template,
1471
- _ref$borderColor = _ref.borderColor,
1472
- borderColor = _ref$borderColor === void 0 ? "" : _ref$borderColor,
1473
- isLightTheme = _ref.isLightTheme;
1474
- var config = useStateValue() || {};
1475
- var isSection = lodash.get(config, ["showSection"], true);
1476
- var templateFromRowContext = lodash.get(config, ["sectionTagTemplate"]);
1477
- var section = lodash.get(story, ["sections", 0], "");
1478
- var supportedTemplates = ["borderBottomSml", "borderLeft", "solid"];
1479
- var getUrl = section ? section["section-url"] : "/";
1480
- var colorToApplyContrast = template === "solid" || templateFromRowContext === "solid" ? borderColor : config.theme;
1481
- var textColor = isLightTheme ? "light" : getTextColor(colorToApplyContrast);
1482
- var sectionTagBorderColor = rgbToHex(borderColor);
1483
- var templateStyle = supportedTemplates.includes(template) ? "section section-".concat(template) : "section";
1484
-
1485
- if (templateFromRowContext) {
1486
- templateStyle = supportedTemplates.includes(templateFromRowContext) ? "section section-".concat(templateFromRowContext) : "section";
1487
- }
1488
-
1489
- if (!isSection) return null;
1490
- return /*#__PURE__*/React__default["default"].createElement(components.Link, {
1491
- href: getUrl,
1492
- className: "arrow-component arr--section-name",
1493
- "aria-label": "section-name"
1494
- }, /*#__PURE__*/React__default["default"].createElement("div", {
1495
- "data-test-id": "sectionTag",
1496
- style: {
1497
- backgroundColor: templateStyle.includes("section-solid") ? sectionTagBorderColor : ""
1498
- },
1499
- className: "section-tag arrow-component " + _getClassName__default["default"]("".concat(textColor, " ").concat(templateStyle), _styleModuleImportMap$3)
1500
- }, templateStyle.includes("section-borderLeft") && /*#__PURE__*/React__default["default"].createElement("span", {
1501
- className: "section-m_border-left__2oUyp",
1502
- style: {
1503
- color: sectionTagBorderColor
1504
- }
1505
- }), section["display-name"] || section["name"], /*#__PURE__*/React__default["default"].createElement("div", {
1506
- className: "section-m_border-bottom__3cRoD",
1507
- style: {
1508
- backgroundColor: "".concat(template === "solid" ? "" : sectionTagBorderColor)
1509
- }
1510
- })));
1511
- };
1512
- SectionTag.propTypes = {
1513
- /** The Story Object from the API response */
1514
- story: PropTypes__default["default"].object.isRequired,
1515
-
1516
- /** The style template for section tag */
1517
- template: PropTypes__default["default"].oneOf(["", "borderBottomSml", "borderLeft", "solid"]),
1518
- borderColor: PropTypes__default["default"].string,
1519
- solidBorderColor: PropTypes__default["default"].string,
1520
- isLightTheme: PropTypes__default["default"].bool
1521
- };
1522
- SectionTag.defaultProps = {
1523
- template: "",
1524
- isLightTheme: false
1525
- };
1526
-
1527
- var _styleModuleImportMap$2 = {
1528
- "./storycard.m.css": {
1529
- "author-timestamp-wrapper": "storycard-m_author-timestamp-wrapper__20yjp",
1530
- "default-card": "storycard-m_default-card__1-POn",
1531
- "horizontal-card": "storycard-m_horizontal-card___7afz",
1532
- "backgroung-img": "storycard-m_backgroung-img__1FMJT",
1533
- "content-overlap": "storycard-m_content-overlap__1yNHR",
1534
- "border-full": "storycard-m_border-full__1nhy7",
1535
- "light": "storycard-m_light__3EhXN",
1536
- "dark": "storycard-m_dark__2wCTq",
1537
- "border-bottom": "storycard-m_border-bottom__2_E-I",
1538
- "border-boxShadow": "storycard-m_border-boxShadow__2-k3Z",
1539
- "center-align": "storycard-m_center-align__1Sn8-",
1540
- "content-bottom": "storycard-m_content-bottom__1QHeC",
1541
- "content-full": "storycard-m_content-full__2zJmU",
1542
- "content-boxShadow": "storycard-m_content-boxShadow__2IAWZ",
1543
- "hero-image": "storycard-m_hero-image__1H3MB",
1544
- "right-padding": "storycard-m_right-padding__12-lQ",
1545
- "horizontal-mob": "storycard-m_horizontal-mob__17JG2",
1546
- "content": "storycard-m_content__1Q9vq",
1547
- "border-default": "storycard-m_border-default__PEZ1x",
1548
- "card": "storycard-m_card__KJwRa",
1549
- "horizontal-image-last": "storycard-m_horizontal-image-last__3o6LY"
1550
- }
1551
- };
1552
- var StoryCard = function StoryCard(_ref) {
1553
- var story = _ref.story,
1554
- children = _ref.children,
1555
- isHorizontal = _ref.isHorizontal,
1556
- aspectRatio = _ref.aspectRatio,
1557
- border = _ref.border,
1558
- useImageAsBackground = _ref.useImageAsBackground,
1559
- bgImgContentOverlap = _ref.bgImgContentOverlap,
1560
- theme = _ref.theme,
1561
- borderColor = _ref.borderColor,
1562
- isHorizontalMobile = _ref.isHorizontalMobile,
1563
- centerAlign = _ref.centerAlign,
1564
- headerLevel = _ref.headerLevel,
1565
- hideAuthorImage = _ref.hideAuthorImage,
1566
- prefix = _ref.prefix,
1567
- config = _ref.config,
1568
- isHorizontalWithImageLast = _ref.isHorizontalWithImageLast;
1569
- if (!story || isEmpty(story)) return /*#__PURE__*/React__default["default"].createElement("div", null);
1570
- var borderOptions = ["default", "full", "bottom", "boxShadow"];
1571
- var borderTemplate = borderOptions.includes(border) ? "border-".concat(border) : ""; // TODO optimize conditions
1572
-
1573
- var horizontalCardStyle = "default-card";
1574
- if (isHorizontal) horizontalCardStyle = "horizontal-card";else if (isHorizontalWithImageLast) horizontalCardStyle = "horizontal-image-last";
1575
- var bgImageClasses = useImageAsBackground ? "backgroung-img" : "";
1576
- var bgImgContentOverlapClass = bgImgContentOverlap ? "content-overlap" : "";
1577
- var textColor = getTextColor(theme);
1578
- var horizontalMobileClasses = isHorizontalMobile ? "horizontal-mob" : "";
1579
- var defaultStorycard = /*#__PURE__*/React__default["default"].createElement(DefaultStoryCard, {
1580
- story: story,
1581
- aspectRatio: aspectRatio,
1582
- border: border,
1583
- isHorizontalMobile: isHorizontalMobile,
1584
- isHorizontal: isHorizontal,
1585
- centerAlign: centerAlign,
1586
- headerLevel: headerLevel,
1587
- borderColor: borderColor,
1588
- hideAuthorImage: hideAuthorImage,
1589
- prefix: prefix,
1590
- config: config,
1591
- isHorizontalWithImageLast: isHorizontalWithImageLast
1592
- });
1593
- return /*#__PURE__*/React__default["default"].createElement("div", {
1594
- "data-test-id": "story-card",
1595
- style: {
1596
- backgroundColor: theme,
1597
- color: textColor
1598
- },
1599
- className: "arr--story-card " + _getClassName__default["default"]("card ".concat(horizontalCardStyle, " ").concat(borderTemplate, " ").concat(textColor, " ").concat(bgImageClasses, " ").concat(bgImgContentOverlapClass, " ").concat(horizontalMobileClasses), _styleModuleImportMap$2)
1600
- }, children || defaultStorycard);
1601
- };
1602
-
1603
- var DefaultStoryCard = function DefaultStoryCard(_ref2) {
1604
- var story = _ref2.story;
1605
- _ref2.border;
1606
- var isHorizontal = _ref2.isHorizontal,
1607
- aspectRatio = _ref2.aspectRatio,
1608
- headerLevel = _ref2.headerLevel,
1609
- _ref2$isHorizontalMob = _ref2.isHorizontalMobile,
1610
- isHorizontalMobile = _ref2$isHorizontalMob === void 0 ? false : _ref2$isHorizontalMob,
1611
- _ref2$centerAlign = _ref2.centerAlign,
1612
- centerAlign = _ref2$centerAlign === void 0 ? false : _ref2$centerAlign,
1613
- borderColor = _ref2.borderColor,
1614
- hideAuthorImage = _ref2.hideAuthorImage,
1615
- prefix = _ref2.prefix,
1616
- isHorizontalWithImageLast = _ref2.isHorizontalWithImageLast,
1617
- config = _ref2.config;
1618
- var alignment = centerAlign ? "center-align" : "";
1619
- var SectionTagborderColor = rgbToHex(borderColor);
1620
- var _config$localizationC = config.localizationConfig,
1621
- localizationConfig = _config$localizationC === void 0 ? {} : _config$localizationC;
1622
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isHorizontal ? /*#__PURE__*/React__default["default"].createElement(HeroImage, {
1623
- config: config,
1624
- story: story,
1625
- isHorizontal: true,
1626
- isHorizontalMobile: isHorizontalMobile,
1627
- aspectRatio: aspectRatio
1628
- }) : isHorizontalWithImageLast ? /*#__PURE__*/React__default["default"].createElement(HeroImage, {
1629
- config: config,
1630
- story: story,
1631
- isHorizontalWithImageLast: true,
1632
- isHorizontalMobile: isHorizontalMobile,
1633
- aspectRatio: aspectRatio
1634
- }) : /*#__PURE__*/React__default["default"].createElement(HeroImage, {
1635
- story: story,
1636
- config: config,
1637
- isHorizontalMobile: isHorizontalMobile,
1638
- aspectRatio: aspectRatio
1639
- }), /*#__PURE__*/React__default["default"].createElement("div", {
1640
- className: "arr--story-content " + _getClassName__default["default"]("content ".concat(alignment), _styleModuleImportMap$2)
1641
- }, /*#__PURE__*/React__default["default"].createElement(SectionTag, {
1642
- story: story,
1643
- borderColor: SectionTagborderColor
1644
- }), /*#__PURE__*/React__default["default"].createElement(Headline, {
1645
- story: story,
1646
- headerLevel: headerLevel,
1647
- premiumStoryIconConfig: config
1648
- }), /*#__PURE__*/React__default["default"].createElement(AuthorWithTime, {
1649
- config: localizationConfig,
1650
- story: story,
1651
- isBottom: true,
1652
- prefix: prefix,
1653
- hideAuthorImage: hideAuthorImage
1654
- }), /*#__PURE__*/React__default["default"].createElement(Subheadline, {
1655
- story: story
1656
- })));
1657
- };
1658
-
1659
- DefaultStoryCard.propTypes = {
1660
- story: PropTypes__default["default"].object.isRequired,
1661
- border: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string]),
1662
- isBottom: PropTypes__default["default"].bool,
1663
- isHorizontal: PropTypes__default["default"].bool,
1664
- aspectRatio: PropTypes__default["default"].oneOfType([PropTypes__default["default"].array]),
1665
- isHorizontalMobile: PropTypes__default["default"].bool,
1666
- centerAlign: PropTypes__default["default"].bool,
1667
- headerLevel: PropTypes__default["default"].string,
1668
- borderColor: PropTypes__default["default"].string,
1669
- hideAuthorImage: PropTypes__default["default"].bool,
1670
- prefix: PropTypes__default["default"].string,
1671
- config: PropTypes__default["default"].object,
1672
- isHorizontalWithImageLast: PropTypes__default["default"].bool
1673
- };
1674
- StoryCard.propTypes = {
1675
- /** The Story Object from the API response */
1676
- story: PropTypes__default["default"].object.isRequired,
1677
- children: PropTypes__default["default"].node,
1678
-
1679
- /** Flip the Story Card to Horizonal mode */
1680
- isHorizontal: PropTypes__default["default"].bool,
1681
-
1682
- /** Add border to the Story Card */
1683
- border: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string]),
1684
- // story card with background image
1685
- useImageAsBackground: PropTypes__default["default"].bool,
1686
- // story card content overlap with image
1687
- bgImgContentOverlap: PropTypes__default["default"].bool,
1688
-
1689
- /** add aspect ratio for hero image */
1690
- aspectRatio: PropTypes__default["default"].oneOfType([PropTypes__default["default"].array]),
1691
-
1692
- /** add theme(dark /light/custom color) for storycard */
1693
- theme: PropTypes__default["default"].string,
1694
-
1695
- /** flip the story card mobile design horizontal */
1696
- isHorizontalMobile: PropTypes__default["default"].bool,
1697
- // make content center align in desktop and left align in mobile
1698
- centerAlign: PropTypes__default["default"].bool,
1699
- headerLevel: PropTypes__default["default"].string,
1700
- borderColor: PropTypes__default["default"].string,
1701
- // handle author image through storycard
1702
- hideAuthorImage: PropTypes__default["default"].bool,
1703
- // handle author prefix through storycard
1704
- prefix: PropTypes__default["default"].string,
1705
- config: PropTypes__default["default"].object,
1706
- isHorizontalWithImageLast: PropTypes__default["default"].bool
1707
- };
1708
- StoryCard.defaultProps = {
1709
- isHorizontal: false,
1710
- isHorizontalMobile: false,
1711
- border: "default",
1712
- theme: "",
1713
- centerAlign: false,
1714
- borderColor: "",
1715
- isHorizontalWithImageLast: false
1716
- };
1717
-
1718
- var _styleModuleImportMap$1 = {
1719
- "./storycardContent.m.css": {
1720
- "wrapper": "storycardContent-m_wrapper__TEmfA",
1721
- "horizontal-content-wrapper": "storycardContent-m_horizontal-content-wrapper__NgpuC",
1722
- "border-full": "storycardContent-m_border-full__2km37"
1723
- }
1724
- };
1725
- var StorycardContent = function StorycardContent(_ref) {
1726
- var story = _ref.story,
1727
- children = _ref.children,
1728
- theme = _ref.theme,
1729
- border = _ref.border,
1730
- isHorizontalMobile = _ref.isHorizontalMobile,
1731
- headerLevel = _ref.headerLevel,
1732
- borderColor = _ref.borderColor,
1733
- config = _ref.config;
1734
- var textColor = getTextColor(theme);
1735
- var borderOptions = ["full"];
1736
- var SectionTagborderColor = rgbToHex(borderColor);
1737
- var borderTemplate = borderOptions.includes(border) ? "border-".concat(border) : "";
1738
- var horizontalCard = isHorizontalMobile ? "horizontal-content-wrapper" : "";
1739
- return /*#__PURE__*/React__default["default"].createElement("div", {
1740
- "data-test-id": "story-card-content",
1741
- style: {
1742
- backgroundColor: theme,
1743
- color: textColor
1744
- },
1745
- className: "arr--content-wrapper " + _getClassName__default["default"]("wrapper ".concat(borderTemplate, " ").concat(horizontalCard), _styleModuleImportMap$1)
1746
- }, children || /*#__PURE__*/React__default["default"].createElement(DefaultStoryCardContent, {
1747
- story: story,
1748
- headerLevel: headerLevel,
1749
- isHorizontalMobile: isHorizontalMobile,
1750
- borderColor: SectionTagborderColor,
1751
- config: config
1752
- }));
1753
- };
1754
-
1755
- var DefaultStoryCardContent = function DefaultStoryCardContent(_ref2) {
1756
- var story = _ref2.story,
1757
- headerLevel = _ref2.headerLevel,
1758
- borderColor = _ref2.borderColor,
1759
- _ref2$config = _ref2.config,
1760
- config = _ref2$config === void 0 ? {} : _ref2$config;
1761
- var SectionTagborderColor = rgbToHex(borderColor);
1762
- var _config$localizationC = config.localizationConfig,
1763
- localizationConfig = _config$localizationC === void 0 ? {} : _config$localizationC;
1764
- return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(SectionTag, {
1765
- story: story,
1766
- borderColor: SectionTagborderColor
1767
- }), /*#__PURE__*/React__default["default"].createElement(Headline, {
1768
- story: story,
1769
- headerLevel: headerLevel,
1770
- premiumStoryIconConfig: config
1771
- }), /*#__PURE__*/React__default["default"].createElement(AuthorWithTime, {
1772
- config: localizationConfig,
1773
- story: story
1774
- }));
1775
- };
1776
-
1777
- DefaultStoryCardContent.propTypes = {
1778
- story: PropTypes__default["default"].object.isRequired,
1779
- border: PropTypes__default["default"].string,
1780
- theme: PropTypes__default["default"].string,
1781
- isHorizontalMobile: PropTypes__default["default"].bool,
1782
- headerLevel: PropTypes__default["default"].string,
1783
- borderColor: PropTypes__default["default"].string,
1784
- config: PropTypes__default["default"].object
1785
- };
1786
- StorycardContent.propTypes = {
1787
- story: PropTypes__default["default"].object.isRequired,
1788
- children: PropTypes__default["default"].node,
1789
- theme: PropTypes__default["default"].string,
1790
- border: PropTypes__default["default"].string,
1791
- isHorizontalMobile: PropTypes__default["default"].bool,
1792
- headerLevel: PropTypes__default["default"].string,
1793
- borderColor: PropTypes__default["default"].string,
1794
- config: PropTypes__default["default"].object
1795
- };
1796
-
1797
- var Loading = function Loading(_ref) {
1798
- _ref.width;
1799
- _ref.height;
1800
- _ref.iconColor;
1801
- return /*#__PURE__*/React__default["default"].createElement("div", {
1802
- className: "loading-m_loading-indicator__2Dlst"
1803
- }, /*#__PURE__*/React__default["default"].createElement("svg", {
1804
- width: "40",
1805
- height: "40",
1806
- xmlns: "http://www.w3.org/2000/svg",
1807
- viewBox: "0 0 100 100",
1808
- preserveAspectRatio: "xMidYMid"
1809
- }, /*#__PURE__*/React__default["default"].createElement("circle", {
1810
- cx: "84",
1811
- cy: "50",
1812
- r: "0",
1813
- fill: "currentColor"
1814
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
1815
- attributeName: "r",
1816
- values: "10;0;0;0;0",
1817
- keyTimes: "0;0.25;0.5;0.75;1",
1818
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1819
- calcMode: "spline",
1820
- dur: "2s",
1821
- repeatCount: "indefinite",
1822
- begin: "0s"
1823
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
1824
- attributeName: "cx",
1825
- values: "84;84;84;84;84",
1826
- keyTimes: "0;0.25;0.5;0.75;1",
1827
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1828
- calcMode: "spline",
1829
- dur: "2s",
1830
- repeatCount: "indefinite",
1831
- begin: "0s"
1832
- })), /*#__PURE__*/React__default["default"].createElement("circle", {
1833
- cx: "84",
1834
- cy: "50",
1835
- r: ".709",
1836
- fill: "currentColor"
1837
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
1838
- attributeName: "r",
1839
- values: "0;10;10;10;0",
1840
- keyTimes: "0;0.25;0.5;0.75;1",
1841
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1842
- calcMode: "spline",
1843
- dur: "2s",
1844
- repeatCount: "indefinite",
1845
- begin: "-1s"
1846
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
1847
- attributeName: "cx",
1848
- values: "16;16;50;84;84",
1849
- keyTimes: "0;0.25;0.5;0.75;1",
1850
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1851
- calcMode: "spline",
1852
- dur: "2s",
1853
- repeatCount: "indefinite",
1854
- begin: "-1s"
1855
- })), /*#__PURE__*/React__default["default"].createElement("circle", {
1856
- cx: "81.59",
1857
- cy: "50",
1858
- r: "10",
1859
- fill: "currentColor"
1860
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
1861
- attributeName: "r",
1862
- values: "0;10;10;10;0",
1863
- keyTimes: "0;0.25;0.5;0.75;1",
1864
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1865
- calcMode: "spline",
1866
- dur: "2s",
1867
- repeatCount: "indefinite",
1868
- begin: "-0.5s"
1869
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
1870
- attributeName: "cx",
1871
- values: "16;16;50;84;84",
1872
- keyTimes: "0;0.25;0.5;0.75;1",
1873
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1874
- calcMode: "spline",
1875
- dur: "2s",
1876
- repeatCount: "indefinite",
1877
- begin: "-0.5s"
1878
- })), /*#__PURE__*/React__default["default"].createElement("circle", {
1879
- cx: "47.59",
1880
- cy: "50",
1881
- r: "10",
1882
- fill: "currentColor"
1883
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
1884
- attributeName: "r",
1885
- values: "0;10;10;10;0",
1886
- keyTimes: "0;0.25;0.5;0.75;1",
1887
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1888
- calcMode: "spline",
1889
- dur: "2s",
1890
- repeatCount: "indefinite",
1891
- begin: "0s"
1892
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
1893
- attributeName: "cx",
1894
- values: "16;16;50;84;84",
1895
- keyTimes: "0;0.25;0.5;0.75;1",
1896
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1897
- calcMode: "spline",
1898
- dur: "2s",
1899
- repeatCount: "indefinite",
1900
- begin: "0s"
1901
- })), /*#__PURE__*/React__default["default"].createElement("circle", {
1902
- cx: "16",
1903
- cy: "50",
1904
- r: "9.291",
1905
- fill: "currentColor"
1906
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
1907
- attributeName: "r",
1908
- values: "0;0;10;10;10",
1909
- keyTimes: "0;0.25;0.5;0.75;1",
1910
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1911
- calcMode: "spline",
1912
- dur: "2s",
1913
- repeatCount: "indefinite",
1914
- begin: "0s"
1915
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
1916
- attributeName: "cx",
1917
- values: "16;16;16;50;84",
1918
- keyTimes: "0;0.25;0.5;0.75;1",
1919
- keySplines: "0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1",
1920
- calcMode: "spline",
1921
- dur: "2s",
1922
- repeatCount: "indefinite",
1923
- begin: "0s"
1924
- }))));
1925
- };
1926
- Loading.propTypes = {
1927
- width: PropTypes__default["default"].object,
1928
- height: PropTypes__default["default"].object,
1929
- iconColor: PropTypes__default["default"].object
1930
- };
1931
-
1932
- var _styleModuleImportMap = {
1933
- "./collection-filter.m.css": {
1934
- "navigator": "collection-filter-m_navigator__3MDUp",
1935
- "wrapper": "collection-filter-m_wrapper__3Nx_h",
1936
- "collection-filter": "collection-filter-m_collection-filter__3At2n",
1937
- "divider": "collection-filter-m_divider__3Nm-k",
1938
- "dark": "collection-filter-m_dark__2LMGY",
1939
- "light": "collection-filter-m_light__1wyGa",
1940
- "subCollection-wrapper": "collection-filter-m_subCollection-wrapper__14azF",
1941
- "subCollection-stories": "collection-filter-m_subCollection-stories__2RDkI",
1942
- "cards": "collection-filter-m_cards__1Co_7",
1943
- "last-column": "collection-filter-m_last-column__UP63_",
1944
- "card": "collection-filter-m_card__2IOTX",
1945
- "card-wrapper": "collection-filter-m_card-wrapper__qzzWB",
1946
- "child-collections": "collection-filter-m_child-collections__2-FiJ",
1947
- "child-collection": "collection-filter-m_child-collection__1YB-F",
1948
- "child-collection-wrapper": "collection-filter-m_child-collection-wrapper__2ezSh",
1949
- "open-subchild": "collection-filter-m_open-subchild__koie_",
1950
- "fadein": "collection-filter-m_fadein__Dxs8G",
1951
- "fadeIn": "collection-filter-m_fadeIn__1AtGp"
1952
- }
1953
- };
1954
-
1955
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1956
-
1957
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1958
- var CollectionFilterBase = function CollectionFilterBase(_ref) {
1959
- var collection = _ref.collection,
1960
- _ref$config = _ref.config,
1961
- config = _ref$config === void 0 ? {} : _ref$config;
1962
- var _config$collectionNam = config.collectionNameBorderColor,
1963
- collectionNameBorderColor = _config$collectionNam === void 0 ? "" : _config$collectionNam,
1964
- _config$borderColor = config.borderColor,
1965
- borderColor = _config$borderColor === void 0 ? "" : _config$borderColor,
1966
- _config$theme = config.theme,
1967
- theme = _config$theme === void 0 ? "" : _config$theme,
1968
- _config$slotConfig = config.slotConfig,
1969
- slotConfig = _config$slotConfig === void 0 ? [] : _config$slotConfig,
1970
- _config$border = config.border,
1971
- border = _config$border === void 0 ? "" : _config$border,
1972
- _config$collectionNam2 = config.collectionNameTemplate,
1973
- collectionNameTemplate = _config$collectionNam2 === void 0 ? "" : _config$collectionNam2,
1974
- _config$footerSlotCon = config.footerSlotConfig,
1975
- footerSlotConfig = _config$footerSlotCon === void 0 ? {} : _config$footerSlotCon,
1976
- _config$footerButton = config.footerButton,
1977
- footerButton = _config$footerButton === void 0 ? "" : _config$footerButton;
1978
-
1979
- var _get = lodash.get(slotConfig, [0], {}),
1980
- _get$type = _get.type,
1981
- type = _get$type === void 0 ? "story" : _get$type,
1982
- component = _get.component;
1983
-
1984
- var footerSlot = footerSlotConfig.footerSlot;
1985
-
1986
- var _useState = React.useState([]),
1987
- _useState2 = _slicedToArray__default["default"](_useState, 2),
1988
- subCollectionStories = _useState2[0],
1989
- handleApiData = _useState2[1];
1990
-
1991
- var _useState3 = React.useState({}),
1992
- _useState4 = _slicedToArray__default["default"](_useState3, 2),
1993
- cachedStories = _useState4[0],
1994
- updateCachedStories = _useState4[1];
1995
-
1996
- var _useState5 = React.useState(0),
1997
- _useState6 = _slicedToArray__default["default"](_useState5, 2),
1998
- active = _useState6[0],
1999
- handleActive = _useState6[1];
2000
-
2001
- var _useState7 = React.useState(true),
2002
- _useState8 = _slicedToArray__default["default"](_useState7, 2),
2003
- loading = _useState8[0],
2004
- handleLoading = _useState8[1];
2005
-
2006
- var getFilteredCollection = lodash.get(collection, ["items"], []).filter(function (collections) {
2007
- return collections.type === "collection";
2008
- });
2009
-
2010
- if (getFilteredCollection.length < 1) {
2011
- return null;
2012
- }
2013
-
2014
- var filteredCollectionids = getFilteredCollection.map(function (subCol) {
2015
- return subCol.id;
2016
- });
2017
-
2018
- var memoizeStories = function memoizeStories(id, data) {
2019
- updateCachedStories(function (cachedStories) {
2020
- return _objectSpread(_objectSpread({}, cachedStories), {}, _defineProperty__default["default"]({}, id, data));
2021
- });
2022
- };
2023
-
2024
- function fetchSubCollectionData() {
2025
- return _fetchSubCollectionData.apply(this, arguments);
2026
- }
2027
-
2028
- function _fetchSubCollectionData() {
2029
- _fetchSubCollectionData = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
2030
- var id,
2031
- data,
2032
- res,
2033
- childCollectionItems,
2034
- _args = arguments;
2035
- return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
2036
- while (1) {
2037
- switch (_context.prev = _context.next) {
2038
- case 0:
2039
- id = _args.length > 0 && _args[0] !== undefined ? _args[0] : filteredCollectionids[0];
2040
- handleLoading(true);
2041
- _context.prev = 2;
2042
- data = {};
2043
-
2044
- if (id in cachedStories) {
2045
- _context.next = 11;
2046
- break;
2047
- }
2048
-
2049
- _context.next = 7;
2050
- return axios__default["default"].get("/api/v1/collections/".concat(id));
2051
-
2052
- case 7:
2053
- res = _context.sent;
2054
- data = res.data;
2055
- _context.next = 12;
2056
- break;
2057
-
2058
- case 11:
2059
- data = cachedStories[id];
2060
-
2061
- case 12:
2062
- memoizeStories(id, data);
2063
- childCollectionItems = components.collectionToStories(data);
2064
- handleLoading(false);
2065
- handleApiData(childCollectionItems);
2066
- _context.next = 21;
2067
- break;
2068
-
2069
- case 18:
2070
- _context.prev = 18;
2071
- _context.t0 = _context["catch"](2);
2072
- // eslint-disable-next-line no-console
2073
- console.error("API call failed", _context.t0);
2074
-
2075
- case 21:
2076
- case "end":
2077
- return _context.stop();
2078
- }
2079
- }
2080
- }, _callee, null, [[2, 18]]);
2081
- }));
2082
- return _fetchSubCollectionData.apply(this, arguments);
2083
- }
2084
-
2085
- React.useEffect(function (id) {
2086
- fetchSubCollectionData(id);
2087
- }, []);
2088
- var dispatch = reactRedux.useDispatch();
2089
- var qtConfig = reactRedux.useSelector(function (state) {
2090
- return lodash.get(state, ["qt", "config"], {});
2091
- });
2092
- var url = generateNavigateSlug(getFilteredCollection[active], qtConfig);
2093
- var items = subCollectionStories.slice(0, 9);
2094
- var textColor = getTextColor(theme);
2095
-
2096
- var openChildCollectionItems = function openChildCollectionItems(event, index, slug) {
2097
- event.stopPropagation();
2098
- fetchSubCollectionData(slug);
2099
- var activeIndex = active === index ? 0 : index;
2100
- handleActive(activeIndex);
2101
- };
2102
-
2103
- var getVerticalCard = function getVerticalCard(story, index) {
2104
- return /*#__PURE__*/React__default["default"].createElement("div", {
2105
- className: "collection-filter-m_card__2IOTX",
2106
- key: index
2107
- }, /*#__PURE__*/React__default["default"].createElement(StoryCard, {
2108
- story: story,
2109
- isHorizontalMobile: true,
2110
- theme: theme,
2111
- border: border,
2112
- borderColor: borderColor,
2113
- config: config
2114
- }, /*#__PURE__*/React__default["default"].createElement(HeroImage, {
2115
- story: story,
2116
- isHorizontalMobile: true
2117
- }), /*#__PURE__*/React__default["default"].createElement(StorycardContent, {
2118
- story: story,
2119
- border: border,
2120
- borderColor: borderColor,
2121
- config: config
2122
- })));
2123
- };
2124
-
2125
- var getHorizontalCard = function getHorizontalCard(story, index) {
2126
- return /*#__PURE__*/React__default["default"].createElement("div", {
2127
- className: "collection-filter-m_card__2IOTX",
2128
- key: index
2129
- }, /*#__PURE__*/React__default["default"].createElement(StoryCard, {
2130
- story: story,
2131
- isHorizontal: true,
2132
- theme: theme,
2133
- border: border,
2134
- borderColor: borderColor,
2135
- config: config
2136
- }, /*#__PURE__*/React__default["default"].createElement(HeroImage, {
2137
- story: story,
2138
- isHorizontal: true,
2139
- aspectRatio: [[1, 1]]
2140
- }), /*#__PURE__*/React__default["default"].createElement(StorycardContent, {
2141
- story: story,
2142
- isHorizontal: true,
2143
- border: border,
2144
- borderColor: borderColor,
2145
- config: config
2146
- })));
2147
- };
2148
-
2149
- var storySlot = function storySlot(items) {
2150
- return /*#__PURE__*/React__default["default"].createElement("div", null, items.slice(6, 9).map(function (story, index) {
2151
- return /*#__PURE__*/React__default["default"].createElement("div", {
2152
- className: "collection-filter-m_card__2IOTX",
2153
- key: index
2154
- }, /*#__PURE__*/React__default["default"].createElement(StoryCard, {
2155
- story: story,
2156
- isHorizontal: true,
2157
- theme: theme,
2158
- border: border,
2159
- borderColor: borderColor,
2160
- config: config
2161
- }, /*#__PURE__*/React__default["default"].createElement(HeroImage, {
2162
- story: story,
2163
- isHorizontal: true,
2164
- aspectRatio: [[1, 1]]
2165
- }), /*#__PURE__*/React__default["default"].createElement(StorycardContent, {
2166
- story: story,
2167
- border: border,
2168
- borderColor: borderColor,
2169
- config: config
2170
- })));
2171
- }));
2172
- };
2173
-
2174
- var footerSlotComp = footerSlot ? footerSlot() : null;
2175
- return /*#__PURE__*/React__default["default"].createElement("div", {
2176
- className: "full-width-with-padding arrow-component",
2177
- "data-test-id": "collection-filter",
2178
- style: {
2179
- backgroundColor: theme,
2180
- color: textColor
2181
- }
2182
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2183
- className: "collection-filter-m_wrapper__3Nx_h"
2184
- }, /*#__PURE__*/React__default["default"].createElement(CollectionName, {
2185
- collection: collection,
2186
- collectionNameTemplate: collectionNameTemplate,
2187
- collectionNameBorderColor: collectionNameBorderColor
2188
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2189
- className: "collection-filter-m_collection-filter__3At2n"
2190
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2191
- className: "collection-filter-m_child-collections__2-FiJ"
2192
- }, getFilteredCollection.map(function (subCollections, index) {
2193
- return /*#__PURE__*/React__default["default"].createElement("div", {
2194
- key: index,
2195
- className: _getClassName__default["default"]("child-collection-wrapper ".concat(index === active ? "open-subchild" : ""), _styleModuleImportMap)
2196
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2197
- onClick: function onClick(event) {
2198
- return openChildCollectionItems(event, index, subCollections.id);
2199
- },
2200
- className: _getClassName__default["default"]("child-collection ".concat(textColor), _styleModuleImportMap)
2201
- }, subCollections.name), /*#__PURE__*/React__default["default"].createElement("span", {
2202
- className: _getClassName__default["default"]("navigator ".concat(textColor), _styleModuleImportMap)
2203
- }));
2204
- })), /*#__PURE__*/React__default["default"].createElement("span", {
2205
- className: _getClassName__default["default"]("divider ".concat(textColor), _styleModuleImportMap)
2206
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2207
- className: "collection-filter-m_subCollection-wrapper__14azF"
2208
- }, loading ? /*#__PURE__*/React__default["default"].createElement(Loading, null) : /*#__PURE__*/React__default["default"].createElement("div", {
2209
- className: "collection-filter-m_subCollection-stories__2RDkI"
2210
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2211
- className: "collection-filter-m_cards__1Co_7"
2212
- }, items.slice(0, 1).map(function (story, index) {
2213
- return /*#__PURE__*/React__default["default"].createElement("div", {
2214
- className: "collection-filter-m_card__2IOTX",
2215
- key: index
2216
- }, /*#__PURE__*/React__default["default"].createElement(StoryCard, {
2217
- story: story,
2218
- border: border,
2219
- theme: theme,
2220
- config: config
2221
- }, /*#__PURE__*/React__default["default"].createElement(HeroImage, {
2222
- story: story,
2223
- aspectRatio: [[16, 9]]
2224
- }), /*#__PURE__*/React__default["default"].createElement(StorycardContent, {
2225
- story: story,
2226
- border: border,
2227
- borderColor: borderColor,
2228
- config: config
2229
- })));
2230
- }), items.slice(1, 4).map(function (story, index) {
2231
- return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
2232
- key: index
2233
- }, getVerticalCard(story, index));
2234
- })), /*#__PURE__*/React__default["default"].createElement("div", {
2235
- className: "collection-filter-m_last-column__UP63_"
2236
- }, items.slice(4, 6).map(function (story, index) {
2237
- return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
2238
- key: index
2239
- }, getHorizontalCard(story, index));
2240
- }), getSlot(type, component, function () {
2241
- return storySlot(items);
2242
- }))))), /*#__PURE__*/React__default["default"].createElement(LoadmoreButton, {
2243
- collection: getFilteredCollection[active],
2244
- template: footerButton,
2245
- config: config,
2246
- navigate: function navigate() {
2247
- return navigateTo(dispatch, url);
2248
- },
2249
- qtConfig: qtConfig
2250
- }), footerSlotComp));
2251
- };
2252
- CollectionFilterBase.propTypes = {
2253
- /** collection is the array of objects which is returning by API */
2254
- collection: PropTypes__default["default"].object.isRequired,
2255
-
2256
- /** The config for the Row */
2257
- config: PropTypes__default["default"].shape({
2258
- // section tag border color
2259
- borderColor: PropTypes__default["default"].string,
2260
- // background color of the row
2261
- theme: PropTypes__default["default"].string,
2262
- border: PropTypes__default["default"].string,
2263
- // configure ad slot widget and story
2264
- slotConfig: PropTypes__default["default"].array,
2265
- collectionNameTemplate: PropTypes__default["default"].string,
2266
- footerSlotConfig: PropTypes__default["default"].object,
2267
- footerButton: PropTypes__default["default"].string,
2268
- collectionNameBorderColor: PropTypes__default["default"].string
2269
- })
2270
- };
2271
- CollectionFilterBase.defaultProps = {
2272
- theme: "#ffffff",
2273
- slotConfig: "story",
2274
- border: ""
2275
- };
2276
- var CollectionFilter = StateProvider(CollectionFilterBase);
2277
-
2278
- exports.CollectionFilter = CollectionFilter;
2279
- exports.CollectionFilterBase = CollectionFilterBase;