@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,3091 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _extends = require('@babel/runtime/helpers/extends');
6
- var _getClassName = require('babel-plugin-react-css-modules/dist/browser/getClassName');
7
- var React = require('react');
8
- var lodash = require('lodash');
9
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
10
- var PropTypes = require('prop-types');
11
- require('@babel/runtime/helpers/asyncToGenerator');
12
- var _typeof = require('@babel/runtime/helpers/typeof');
13
- require('@babel/runtime/regenerator');
14
- require('react-timeago');
15
- require('date-fns-tz');
16
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
17
- var components = require('@quintype/components');
18
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
19
- var reactRedux = require('react-redux');
20
-
21
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
-
23
- function _interopNamespace(e) {
24
- if (e && e.__esModule) return e;
25
- var n = Object.create(null);
26
- if (e) {
27
- Object.keys(e).forEach(function (k) {
28
- if (k !== 'default') {
29
- var d = Object.getOwnPropertyDescriptor(e, k);
30
- Object.defineProperty(n, k, d.get ? d : {
31
- enumerable: true,
32
- get: function () { return e[k]; }
33
- });
34
- }
35
- });
36
- }
37
- n["default"] = e;
38
- return Object.freeze(n);
39
- }
40
-
41
- var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
42
- var _getClassName__default = /*#__PURE__*/_interopDefaultLegacy(_getClassName);
43
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
44
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
45
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
46
- var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
47
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
48
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
49
-
50
- var _excluded$e = ["element", "render"];
51
- var withElementWrapper = function withElementWrapper(StoryElement) {
52
- return function (props) {
53
- var element = props.element,
54
- render = props.render,
55
- restProps = _objectWithoutProperties__default["default"](props, _excluded$e);
56
-
57
- if (!element) return null;
58
- if (render && typeof render === "function") return render(props);
59
- return /*#__PURE__*/React__default["default"].createElement(StoryElement, _extends__default["default"]({}, restProps, {
60
- element: element
61
- }));
62
- };
63
- };
64
- withElementWrapper.propTypes = {
65
- StoryElement: PropTypes__default["default"].element
66
- };
67
-
68
- var hexToRGB = function hexToRGB(hex) {
69
- var r = parseInt(hex.slice(1, 3), 16);
70
- var g = parseInt(hex.slice(3, 5), 16);
71
- var b = parseInt(hex.slice(5, 7), 16);
72
- return {
73
- r: r,
74
- g: g,
75
- b: b
76
- };
77
- };
78
- var getLuminanceOfColor = function getLuminanceOfColor(hex) {
79
- var _hexToRGB = hexToRGB(hex),
80
- r = _hexToRGB.r,
81
- g = _hexToRGB.g,
82
- b = _hexToRGB.b;
83
-
84
- return r * 0.299 + g * 0.587 + b * 0.114;
85
- };
86
- var rgbToHex = function rgbToHex() {
87
- var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "rgba(255, 255, 255, 0)";
88
- var rgba = color.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
89
- 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;
90
- };
91
- var clientWidths = {
92
- mobile: 767,
93
- tablet: 1024
94
- };
95
- var clientWidth = function clientWidth(device) {
96
- var foundDeviceWidth = lodash.get(clientWidths, device);
97
-
98
- if (foundDeviceWidth) {
99
- return lodash.get(global, "document.documentElement.clientWidth") <= foundDeviceWidth;
100
- }
101
-
102
- return false;
103
- };
104
- var getTextColor = function getTextColor() {
105
- var theme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "rgb(255,255,255)";
106
- var isRegexCheck = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(theme);
107
- var getHexValue = !isRegexCheck ? rgbToHex(theme) : theme;
108
- var textColor = getLuminanceOfColor(getHexValue) < 155 ? "light" : "dark";
109
- return textColor;
110
- };
111
-
112
- var updateContentLinks = function updateContentLinks(content) {
113
- var updatedContent = content;
114
- var anchorTagsList = content.match(/(<a).*?(>)/g);
115
- anchorTagsList && anchorTagsList.forEach(function (anchorTag) {
116
- var isTargetPresent = /target=/g.test(anchorTag);
117
-
118
- if (!isTargetPresent) {
119
- updatedContent = updatedContent.replace(anchorTag, "<a aria-label='content' target='_blank'".concat(anchorTag.substring(2)));
120
- }
121
- });
122
- return updatedContent;
123
- };
124
- var isEmpty = function isEmpty(value) {
125
- return value == null || // From standard.js: Always use === - but value == null is allowed to check null || undefined
126
- _typeof__default["default"](value) === "object" && Object.entries(value).length === 0 && value.constructor === Object || typeof value === "string" && value.trim().length === 0;
127
- };
128
- var shapeConfig = PropTypes__default["default"].shape({
129
- "sketches-host": PropTypes__default["default"].string,
130
- "cdn-name": PropTypes__default["default"].string,
131
- "cdn-image": PropTypes__default["default"].string
132
- });
133
- var shapeStory = PropTypes__default["default"].shape({
134
- headline: PropTypes__default["default"].string,
135
- "last-published-at": PropTypes__default["default"].number,
136
- subheadline: PropTypes__default["default"].string
137
- });
138
- var facebookMobileVideoResizeFix = function facebookMobileVideoResizeFix() {
139
- if (typeof window !== "undefined" && window.matchMedia && window.matchMedia("(max-width: 767px)").matches) {
140
- var applyFixAfterTime = 3000;
141
- var aspectRatioAdjustmentFactor = 0.7;
142
- setTimeout(function () {
143
- document.querySelectorAll(".story-element-jsembed.story-element-jsembed-facebook-post span").forEach(function (element) {
144
- if (!element.classList.contains("fixed-mobile-fb-video")) {
145
- element.style.height = "".concat(Math.ceil(element.offsetHeight * aspectRatioAdjustmentFactor), "px");
146
- element.classList.add("fixed-mobile-fb-video");
147
- }
148
- });
149
- }, applyFixAfterTime);
150
- }
151
- };
152
-
153
- var StateContext = /*#__PURE__*/React.createContext(); // eslint-disable-next-line react/display-name
154
- var useStateValue = function useStateValue() {
155
- return React.useContext(StateContext);
156
- };
157
-
158
- var _excluded$d = ["element", "opts", "css", "story", "config"];
159
- var _styleModuleImportMap$g = {
160
- "./text.m.css": {
161
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
162
- "mobile": "768px",
163
- "promotionalMessage": "text-m_promotionalMessage__CUsPM",
164
- "textElement": "text-m_textElement__e3QEt",
165
- "dark": "text-m_dark__1TC18",
166
- "light": "text-m_light__2cRe8"
167
- }
168
- };
169
-
170
- var TextBase = function TextBase(_ref) {
171
- var _ref$element = _ref.element,
172
- element = _ref$element === void 0 ? {} : _ref$element,
173
- _ref$opts = _ref.opts,
174
- opts = _ref$opts === void 0 ? {} : _ref$opts,
175
- _ref$css = _ref.css,
176
- css = _ref$css === void 0 ? {} : _ref$css;
177
- _ref.story;
178
- _ref.config;
179
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$d);
180
-
181
- var content = element.text;
182
- if (!content) return null;
183
- var configData = useStateValue() || {};
184
- var textInvertColor = getTextColor(configData.theme);
185
- var textColor = css.textColor;
186
- var _opts$isExternalLink = opts.isExternalLink,
187
- isExternalLink = _opts$isExternalLink === void 0 ? true : _opts$isExternalLink;
188
- var text = isExternalLink && updateContentLinks(content) || content;
189
- var isPromotionalMessage = lodash.get(element, ["metadata", "promotional-message"], false);
190
- var updatedStyle = isPromotionalMessage ? "promotionalMessage" : "textElement";
191
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
192
- style: !isPromotionalMessage ? {
193
- color: textColor
194
- } : {},
195
- "data-test-id": isPromotionalMessage ? "promotional-message" : "text",
196
- dangerouslySetInnerHTML: {
197
- __html: text
198
- },
199
- id: "text-element"
200
- }, restProps, {
201
- className: "arrow-component arr--text-element " + _getClassName__default["default"]("".concat(updatedStyle, " ").concat(textInvertColor), _styleModuleImportMap$g) + (" " + (restProps ? restProps.className || "" : ""))
202
- }));
203
- };
204
-
205
- TextBase.propTypes = {
206
- element: PropTypes__default["default"].shape({
207
- text: PropTypes__default["default"].string
208
- }),
209
- opts: PropTypes__default["default"].shape({
210
- isExternalLink: PropTypes__default["default"].bool
211
- }),
212
- css: PropTypes__default["default"].shape({
213
- hyperlinkColor: PropTypes__default["default"].string,
214
- textColor: PropTypes__default["default"].string
215
- }),
216
- story: shapeStory,
217
- config: shapeConfig
218
- };
219
- var Text = withElementWrapper(TextBase);
220
-
221
- var _excluded$c = ["element", "template", "opts", "css", "story", "config", "render"];
222
- var _styleModuleImportMap$f = {
223
- "./blurb.m.css": {
224
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
225
- "mobile": "768px",
226
- "blurb": "blurb-m_blurb__3pXi5",
227
- "blurb-default": "blurb-m_blurb-default__JR86y",
228
- "blurb-withBorder": "blurb-m_blurb-withBorder__SjW--",
229
- "dark": "blurb-m_dark__1eErz",
230
- "light": "blurb-m_light__OBWiH"
231
- }
232
- };
233
-
234
- var BlurbBase = function BlurbBase(_ref) {
235
- var element = _ref.element,
236
- _ref$template = _ref.template,
237
- template = _ref$template === void 0 ? "" : _ref$template,
238
- _ref$opts = _ref.opts,
239
- opts = _ref$opts === void 0 ? {} : _ref$opts,
240
- _ref$css = _ref.css,
241
- css = _ref$css === void 0 ? {} : _ref$css;
242
- _ref.story;
243
- _ref.config;
244
- _ref.render;
245
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$c);
246
-
247
- var content = element.text;
248
- var borderColor = css.borderColor;
249
- var initBorderDirection = template === "withBorder" ? {
250
- border: "solid 2px ".concat(borderColor)
251
- } : {
252
- borderLeft: "solid 2px ".concat(borderColor)
253
- };
254
-
255
- var _useState = React.useState(initBorderDirection),
256
- _useState2 = _slicedToArray__default["default"](_useState, 2),
257
- borderDirection = _useState2[0],
258
- setBorderDirection = _useState2[1];
259
-
260
- if (!content) return null;
261
- React.useEffect(function () {
262
- var htmlElement = document.getElementsByTagName("HTML");
263
-
264
- if (htmlElement && htmlElement.length) {
265
- if (htmlElement[0].dir.toLowerCase() === "rtl" && template !== "withBorder") {
266
- setBorderDirection({
267
- borderRight: "solid 2px ".concat(borderColor)
268
- });
269
- }
270
- }
271
- }, []);
272
- var _opts$isExternalLink = opts.isExternalLink,
273
- isExternalLink = _opts$isExternalLink === void 0 ? true : _opts$isExternalLink;
274
- var text = isExternalLink && updateContentLinks(content) || content;
275
- var templateStyle = template ? "blurb-".concat(template) : "blurb";
276
- var configData = useStateValue() || {};
277
- var textInvertColor = getTextColor(configData.theme);
278
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
279
- "data-test-id": "blurb",
280
- style: borderColor && borderDirection,
281
- dangerouslySetInnerHTML: {
282
- __html: text
283
- }
284
- }, restProps, {
285
- className: "arrow-component arr-custom-style arr--blurb-element " + _getClassName__default["default"]("".concat(templateStyle, " ").concat(textInvertColor), _styleModuleImportMap$f) + (" " + (restProps ? restProps.className || "" : ""))
286
- }));
287
- };
288
-
289
- BlurbBase.propTypes = {
290
- element: PropTypes__default["default"].shape({
291
- text: PropTypes__default["default"].string
292
- }),
293
-
294
- /** templates can be either default or withBorder */
295
- template: PropTypes__default["default"].string,
296
- opts: PropTypes__default["default"].shape({
297
- isExternalLink: PropTypes__default["default"].bool
298
- }),
299
- story: shapeStory,
300
- config: shapeConfig,
301
- render: PropTypes__default["default"].func,
302
- css: PropTypes__default["default"].object
303
- };
304
- var Blurb = withElementWrapper(BlurbBase);
305
-
306
- var _excluded$b = ["element", "template", "opts", "css", "story", "config", "render"];
307
- var _styleModuleImportMap$e = {
308
- "./summary.m.css": {
309
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
310
- "mobile": "768px",
311
- "headline": "summary-m_headline__30sie",
312
- "summary": "summary-m_summary__3-CnO",
313
- "content": "summary-m_content__37n8C",
314
- "summary-header": "summary-m_summary-header__UKVHi",
315
- "summary-border": "summary-m_summary-border__M9hrr",
316
- "dark": "summary-m_dark__1ZuzR",
317
- "light": "summary-m_light__2SYiC",
318
- "heading-wrapper": "summary-m_heading-wrapper__23S51",
319
- "content-border": "summary-m_content-border__3ilmJ"
320
- }
321
- };
322
-
323
- var SummaryBase = function SummaryBase(_ref) {
324
- var element = _ref.element,
325
- _ref$template = _ref.template,
326
- template = _ref$template === void 0 ? "" : _ref$template,
327
- _ref$opts = _ref.opts,
328
- opts = _ref$opts === void 0 ? {} : _ref$opts,
329
- _ref$css = _ref.css,
330
- css = _ref$css === void 0 ? {} : _ref$css;
331
- _ref.story;
332
- _ref.config;
333
- _ref.render;
334
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$b);
335
-
336
- var configData = useStateValue() || {};
337
- var textInvertColor = getTextColor(configData.theme);
338
- var content = element.text;
339
- if (!content) return null;
340
- var headerBgColor = css.headerBgColor;
341
- var _opts$isExternalLink = opts.isExternalLink,
342
- isExternalLink = _opts$isExternalLink === void 0 ? true : _opts$isExternalLink,
343
- _opts$headline = opts.headline,
344
- headline = _opts$headline === void 0 ? "Summary" : _opts$headline,
345
- _opts$hideHeadline = opts.hideHeadline,
346
- hideHeadline = _opts$hideHeadline === void 0 ? false : _opts$hideHeadline;
347
- var text = isExternalLink && updateContentLinks(content) || content;
348
- var supportedTemplates = ["header", "border"];
349
- var templateStyle = supportedTemplates.includes(template) ? "summary-".concat(template) : "summary";
350
- var contentBorder = hideHeadline ? "content-border" : "";
351
- var renderTemplate = template === "header" || template === "border";
352
- var updateHeaderColor = renderTemplate ? "".concat(headerBgColor) : "";
353
- var textColor = renderTemplate ? getTextColor(headerBgColor) : "";
354
- var updateContentColor = template === "header" ? "" : textInvertColor;
355
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
356
- "data-test-id": "summary"
357
- }, restProps, {
358
- className: "arrow-component arr--summary-element arr-custom-style " + _getClassName__default["default"](templateStyle, _styleModuleImportMap$e) + (" " + (restProps ? restProps.className || "" : ""))
359
- }), !hideHeadline && /*#__PURE__*/React__default["default"].createElement("div", {
360
- "data-test-id": "summary-headline",
361
- className: _getClassName__default["default"]("heading-wrapper ".concat(textInvertColor), _styleModuleImportMap$e)
362
- }, /*#__PURE__*/React__default["default"].createElement("div", {
363
- style: {
364
- backgroundColor: updateHeaderColor
365
- },
366
- className: _getClassName__default["default"]("headline ".concat(textColor, " ").concat(textInvertColor), _styleModuleImportMap$e)
367
- }, headline)), /*#__PURE__*/React__default["default"].createElement("div", {
368
- dangerouslySetInnerHTML: {
369
- __html: text
370
- },
371
- className: _getClassName__default["default"]("content ".concat(contentBorder, " ").concat(updateContentColor, " ").concat(textInvertColor), _styleModuleImportMap$e)
372
- }));
373
- };
374
-
375
- SummaryBase.propTypes = {
376
- element: PropTypes__default["default"].shape({
377
- text: PropTypes__default["default"].string
378
- }),
379
- template: PropTypes__default["default"].string,
380
- opts: PropTypes__default["default"].shape({
381
- isExternalLink: PropTypes__default["default"].bool,
382
- headline: PropTypes__default["default"].string,
383
- hideHeadline: PropTypes__default["default"].bool
384
- }),
385
- story: shapeStory,
386
- config: shapeConfig,
387
- render: PropTypes__default["default"].func,
388
- css: PropTypes__default["default"].shape({
389
- headerBgColor: PropTypes__default["default"].string
390
- })
391
- };
392
- var Summary = withElementWrapper(SummaryBase);
393
-
394
- var CurveIcon = function CurveIcon(_ref) {
395
- var width = _ref.width,
396
- height = _ref.height,
397
- color = _ref.color,
398
- opacity = _ref.opacity;
399
- var lightColor = color === "light" && "#ffffff";
400
- var darkColor = color === "dark" && "#0d0d0d";
401
- return /*#__PURE__*/React__default["default"].createElement("div", {
402
- className: "icon-m_curve-wrapper__3-sLV",
403
- style: {
404
- fill: "".concat(lightColor || darkColor || color)
405
- }
406
- }, /*#__PURE__*/React__default["default"].createElement("svg", {
407
- xmlns: "http://www.w3.org/2000/svg",
408
- width: width,
409
- height: height,
410
- viewBox: "0 0 64 64"
411
- }, /*#__PURE__*/React__default["default"].createElement("path", {
412
- fill: "inherit",
413
- opacity: opacity,
414
- d: "M61 44.702c0 3.465-1.13 6.214-3.39 8.248-2.261 2.033-5.125 3.05-8.59 3.05-4.07 0-7.423-1.356-10.06-4.067-2.638-2.712-3.956-6.704-3.956-11.976 0-4.971.716-9.227 2.147-12.767 1.432-3.54 3.165-6.553 5.2-9.039 2.034-2.485 4.144-4.481 6.33-5.988 2.184-1.506 4.106-2.56 5.763-3.163l5.652 7.909c-3.316 1.657-5.99 3.879-8.025 6.666-2.035 2.786-3.052 6.289-3.052 10.507.603-.15 1.432-.226 2.487-.226 3.014 0 5.35 1.054 7.007 3.163C60.171 39.13 61 41.69 61 44.702zm-33.004 0c0 3.465-1.13 6.214-3.39 8.248-2.261 2.033-5.125 3.05-8.59 3.05-4.07 0-7.423-1.356-10.06-4.067C3.319 49.22 2 45.229 2 39.957c0-4.971.716-9.227 2.148-12.767 1.431-3.54 3.164-6.553 5.199-9.039 2.034-2.485 4.144-4.481 6.33-5.988C17.86 10.657 19.782 9.603 21.44 9l5.651 7.909c-3.316 1.657-5.99 3.879-8.025 6.666-2.034 2.786-3.052 6.289-3.052 10.507.603-.15 1.432-.226 2.487-.226 3.014 0 5.35 1.054 7.008 3.163 1.657 2.11 2.486 4.67 2.486 7.683z"
415
- })));
416
- };
417
- CurveIcon.propTypes = {
418
- width: PropTypes__default["default"].string,
419
- height: PropTypes__default["default"].string,
420
- color: PropTypes__default["default"].string,
421
- opacity: PropTypes__default["default"].string
422
- };
423
-
424
- var EdgeIcon = function EdgeIcon(_ref) {
425
- var width = _ref.width,
426
- height = _ref.height,
427
- color = _ref.color,
428
- opacity = _ref.opacity;
429
- var lightColor = color === "light" && "#ffffff";
430
- var darkColor = color === "dark" && "#0d0d0d";
431
- return /*#__PURE__*/React__default["default"].createElement("div", {
432
- className: "icon-m_edge-wrapper__xUOdp",
433
- style: {
434
- fill: "".concat(lightColor || darkColor || color)
435
- }
436
- }, /*#__PURE__*/React__default["default"].createElement("svg", {
437
- xmlns: "http://www.w3.org/2000/svg",
438
- width: width,
439
- height: height,
440
- viewBox: "0 0 64 64"
441
- }, /*#__PURE__*/React__default["default"].createElement("path", {
442
- fill: "inherit",
443
- opacity: opacity,
444
- d: "M16.858 29.836v4.727H28V60H4V29.836c0-9.6 2.606-16.727 7.746-21.187C15.3 5.564 19.8 4 25.122 4v13.627c-2.888 0-8.264 0-8.264 12.209zm40.264-12.21V4c-5.32 0-9.82 1.564-13.376 4.65C38.606 13.108 36 20.236 36 29.835V60h24V34.563H48.857v-4.727c0-12.21 5.377-12.21 8.265-12.21z"
445
- })));
446
- };
447
- EdgeIcon.propTypes = {
448
- width: PropTypes__default["default"].string,
449
- height: PropTypes__default["default"].string,
450
- color: PropTypes__default["default"].string,
451
- opacity: PropTypes__default["default"].string
452
- };
453
-
454
- var _excluded$a = ["element", "template", "css", "story", "config", "render"];
455
- var _styleModuleImportMap$d = {
456
- "./block-quote.m.css": {
457
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
458
- "mobile": "768px",
459
- "blockquote-withBackground": "block-quote-m_blockquote-withBackground__1yW-u",
460
- "icon": "block-quote-m_icon__m-EIZ",
461
- "icon-border": "block-quote-m_icon-border__2xQQY",
462
- "blockquote": "block-quote-m_blockquote__HPVh0",
463
- "blockquote-default": "block-quote-m_blockquote-default__fZ8a1",
464
- "blockquote-withBorder": "block-quote-m_blockquote-withBorder__1GVQL",
465
- "border": "block-quote-m_border__1ZTPR",
466
- "content": "block-quote-m_content__xpMqX",
467
- "wrapper": "block-quote-m_wrapper__2KEhw",
468
- "attribution": "block-quote-m_attribution__2m4s2",
469
- "quote-wrapper": "block-quote-m_quote-wrapper__83bEy",
470
- "dark": "block-quote-m_dark__HaZuG",
471
- "light": "block-quote-m_light__1QrNc"
472
- }
473
- };
474
-
475
- var SelectionOfIcon = function SelectionOfIcon(iconType, template, blockQuoteColor, quoteColor) {
476
- var isMobile = clientWidth("mobile");
477
- var dimension = isMobile ? "48px" : "64px";
478
-
479
- if (template === "withBackground") {
480
- if (iconType === "edgeIcon") {
481
- return /*#__PURE__*/React__default["default"].createElement(EdgeIcon, {
482
- width: dimension,
483
- height: dimension,
484
- color: quoteColor,
485
- opacity: ".4"
486
- });
487
- }
488
-
489
- return /*#__PURE__*/React__default["default"].createElement(CurveIcon, {
490
- width: dimension,
491
- height: dimension,
492
- color: quoteColor,
493
- opacity: ".4"
494
- });
495
- }
496
-
497
- if (template !== "withBackground") {
498
- if (iconType === "edgeIcon") {
499
- return /*#__PURE__*/React__default["default"].createElement(EdgeIcon, {
500
- width: dimension,
501
- height: dimension,
502
- color: blockQuoteColor
503
- });
504
- }
505
-
506
- return /*#__PURE__*/React__default["default"].createElement(CurveIcon, {
507
- width: dimension,
508
- height: dimension,
509
- color: blockQuoteColor
510
- });
511
- }
512
- };
513
-
514
- var BlockQuoteBase = function BlockQuoteBase(_ref) {
515
- var element = _ref.element,
516
- template = _ref.template,
517
- _ref$css = _ref.css,
518
- css = _ref$css === void 0 ? {} : _ref$css;
519
- _ref.story;
520
- _ref.config;
521
- _ref.render;
522
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$a);
523
-
524
- var _get = lodash.get(element, ["metadata"]),
525
- content = _get.content,
526
- attribution = _get.attribution;
527
-
528
- if (!content) return null;
529
- var blockQuoteColor = css.blockQuoteColor,
530
- backgroundShade = css.backgroundShade,
531
- iconType = css.iconType;
532
- var templateStyle = template ? "blockquote-".concat(template) : "blockquote";
533
- var isBackground = template === "withBackground";
534
- var textColor = isBackground ? getTextColor(backgroundShade) : "";
535
- var theme = isBackground && backgroundShade ? {
536
- backgroundColor: backgroundShade
537
- } : {};
538
- var configData = useStateValue() || {};
539
- var textInvertColor = getTextColor(isBackground ? theme.backgroundColor : configData.theme);
540
-
541
- var updateStructure = function updateStructure() {
542
- return template === "withBorder" ? /*#__PURE__*/React__default["default"].createElement("div", {
543
- className: "block-quote-m_icon-border__2xQQY"
544
- }, /*#__PURE__*/React__default["default"].createElement("div", {
545
- className: "block-quote-m_icon__m-EIZ"
546
- }, SelectionOfIcon(iconType, template, blockQuoteColor, textColor)), /*#__PURE__*/React__default["default"].createElement("div", {
547
- className: "block-quote-m_border__1ZTPR",
548
- style: blockQuoteColor && {
549
- backgroundColor: blockQuoteColor
550
- }
551
- })) : /*#__PURE__*/React__default["default"].createElement("div", {
552
- className: "block-quote-m_icon__m-EIZ"
553
- }, SelectionOfIcon(iconType, template, blockQuoteColor, textColor));
554
- };
555
-
556
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
557
- "data-test-id": "blockquote",
558
- style: theme
559
- }, restProps, {
560
- className: "arrow-component arr--block-quote " + _getClassName__default["default"]("".concat(templateStyle, " ").concat(textColor), _styleModuleImportMap$d) + (" " + (restProps ? restProps.className || "" : ""))
561
- }), /*#__PURE__*/React__default["default"].createElement("div", {
562
- className: "block-quote-m_quote-wrapper__83bEy"
563
- }, updateStructure(), /*#__PURE__*/React__default["default"].createElement("div", {
564
- className: "block-quote-m_wrapper__2KEhw",
565
- style: blockQuoteColor && {
566
- borderColor: blockQuoteColor
567
- }
568
- }, /*#__PURE__*/React__default["default"].createElement("div", {
569
- dangerouslySetInnerHTML: {
570
- __html: content
571
- },
572
- className: _getClassName__default["default"]("content ".concat(textInvertColor), _styleModuleImportMap$d)
573
- }), /*#__PURE__*/React__default["default"].createElement("div", {
574
- dangerouslySetInnerHTML: {
575
- __html: attribution
576
- },
577
- className: _getClassName__default["default"]("attribution ".concat(textInvertColor), _styleModuleImportMap$d)
578
- }))));
579
- };
580
- BlockQuoteBase.propTypes = {
581
- element: PropTypes__default["default"].shape({
582
- metadata: PropTypes__default["default"].shape({
583
- content: PropTypes__default["default"].string,
584
- attribution: PropTypes__default["default"].string
585
- })
586
- }),
587
- template: PropTypes__default["default"].string,
588
- story: shapeStory,
589
- config: shapeConfig,
590
- render: PropTypes__default["default"].func,
591
- css: PropTypes__default["default"].object
592
- };
593
- var BlockQuote = withElementWrapper(BlockQuoteBase);
594
-
595
- var _excluded$9 = ["element", "story", "config"];
596
- var _styleModuleImportMap$c = {
597
- "./big-fact.m.css": {
598
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
599
- "mobile": "768px",
600
- "bigfact-element": "big-fact-m_bigfact-element__3uAwv",
601
- "light": "big-fact-m_light__ha49M",
602
- "content": "big-fact-m_content__1u2Ul",
603
- "attribution": "big-fact-m_attribution__3XK_P",
604
- "dark": "big-fact-m_dark__7a_KC"
605
- }
606
- };
607
-
608
- var BigFactBase = function BigFactBase(_ref) {
609
- var element = _ref.element;
610
- _ref.story;
611
- _ref.config;
612
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$9);
613
-
614
- var configData = useStateValue() || {};
615
- var textInvertColor = getTextColor(configData.theme);
616
- var _element$metadata = element.metadata,
617
- content = _element$metadata.content,
618
- attribution = _element$metadata.attribution;
619
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
620
- "data-test-id": "bigfact"
621
- }, restProps, {
622
- className: "arrow-component arr--bigfact-element " + _getClassName__default["default"]("bigfact-element ".concat(textInvertColor), _styleModuleImportMap$c) + (" " + (restProps ? restProps.className || "" : ""))
623
- }), /*#__PURE__*/React__default["default"].createElement("div", {
624
- className: "big-fact-m_content__1u2Ul"
625
- }, content), /*#__PURE__*/React__default["default"].createElement("div", {
626
- "data-test-id": "attribution",
627
- className: _getClassName__default["default"]("attribution ".concat(textInvertColor), _styleModuleImportMap$c)
628
- }, attribution));
629
- };
630
-
631
- BigFactBase.propTypes = {
632
- element: PropTypes__default["default"].shape({
633
- metadata: PropTypes__default["default"].shape({
634
- content: PropTypes__default["default"].string,
635
- attribution: PropTypes__default["default"].string
636
- })
637
- }),
638
- story: PropTypes__default["default"].object,
639
- config: PropTypes__default["default"].object
640
- };
641
- var BigFact = withElementWrapper(BigFactBase);
642
-
643
- var ImageFallbackIcon = function ImageFallbackIcon(_ref) {
644
- var _ref$width = _ref.width,
645
- width = _ref$width === void 0 ? 40 : _ref$width,
646
- _ref$height = _ref.height,
647
- height = _ref$height === void 0 ? 30 : _ref$height,
648
- _ref$iconColor = _ref.iconColor,
649
- iconColor = _ref$iconColor === void 0 ? "#99B0CB" : _ref$iconColor;
650
- return /*#__PURE__*/React__default["default"].createElement("svg", {
651
- width: width,
652
- height: height,
653
- viewBox: "0 0 102 76",
654
- version: "1.1"
655
- }, /*#__PURE__*/React__default["default"].createElement("g", {
656
- id: "demo-home-copy",
657
- stroke: "none",
658
- strokeWidth: "1",
659
- fill: "none",
660
- fillRule: "evenodd",
661
- transform: "translate(-377.000000, -314.000000)"
662
- }, /*#__PURE__*/React__default["default"].createElement("g", {
663
- id: "Group-13",
664
- transform: "translate(377.000000, 314.000000)"
665
- }, /*#__PURE__*/React__default["default"].createElement("path", {
666
- 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",
667
- id: "Combined-Shape",
668
- fill: iconColor,
669
- fillRule: "nonzero"
670
- }), /*#__PURE__*/React__default["default"].createElement("rect", {
671
- id: "Rectangle-19",
672
- stroke: iconColor,
673
- strokeWidth: "3",
674
- x: "1.5",
675
- y: "1.5",
676
- width: "99",
677
- height: "73",
678
- rx: "3"
679
- }))));
680
- };
681
- ImageFallbackIcon.propTypes = {
682
- width: PropTypes__default["default"].object,
683
- height: PropTypes__default["default"].object,
684
- iconColor: PropTypes__default["default"].object
685
- };
686
-
687
- var imageFallback = function imageFallback() {
688
- return /*#__PURE__*/React__default["default"].createElement("div", {
689
- className: "arr--fallback-image fallback-m_image__1GYCJ fallback-m_image-position__3KddP"
690
- }, /*#__PURE__*/React__default["default"].createElement("figure", {
691
- className: "arr--fallback-svg fallback-m_fallback-svg__tK9fL"
692
- }, /*#__PURE__*/React__default["default"].createElement(ImageFallbackIcon, null)));
693
- };
694
-
695
- var FallbackImage = function FallbackImage(_ref) {
696
- var slug = _ref.slug;
697
-
698
- if (slug) {
699
- return /*#__PURE__*/React__default["default"].createElement(components.Link, {
700
- href: slug,
701
- "aria-label": "image-fallback"
702
- }, imageFallback());
703
- } else {
704
- return imageFallback();
705
- }
706
- };
707
- FallbackImage.propTypes = {
708
- slug: PropTypes__default["default"].string
709
- };
710
-
711
- var _excluded$8 = ["story", "element", "template", "opts", "css", "config", "render"];
712
- var _styleModuleImportMap$b = {
713
- "./also-read.m.css": {
714
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
715
- "mobile": "768px",
716
- "card-image": "also-read-m_card-image__3CwAv",
717
- "default-text": "also-read-m_default-text__hp2dp",
718
- "alsoread-textLeftAlign": "also-read-m_alsoread-textLeftAlign__S0Dxe",
719
- "alsoread-imageRightAlign": "also-read-m_alsoread-imageRightAlign__1bsF3",
720
- "headline": "also-read-m_headline__VzF-c",
721
- "alsoread-default": "also-read-m_alsoread-default__3cYER",
722
- "card-image-wrapper": "also-read-m_card-image-wrapper__3GFzu",
723
- "image": "also-read-m_image__2jdRP",
724
- "content-wrapper": "also-read-m_content-wrapper__26AZX",
725
- "alsoread": "also-read-m_alsoread__1crOV",
726
- "dark": "also-read-m_dark__1pUib",
727
- "light": "also-read-m_light__bTCze"
728
- }
729
- };
730
-
731
- var DisplayImage = function DisplayImage(_ref) {
732
- var story = _ref.story,
733
- linkedImage = _ref.linkedImage,
734
- template = _ref.template,
735
- isRightAlign = _ref.isRightAlign;
736
- var isLeftAlign = template === "textLeftAlign";
737
- var isMobile = clientWidth("mobile");
738
- var rightAlignAspectRatio = isRightAlign && isMobile ? [4, 3] : [16, 9];
739
- var imageAspectRatio = isLeftAlign ? [16, 9] : rightAlignAspectRatio;
740
- var alternateText = story["hero-image-caption"] || story["headline"];
741
- return /*#__PURE__*/React__default["default"].createElement("div", {
742
- className: "also-read-m_card-image-wrapper__3GFzu"
743
- }, !isEmpty(linkedImage) ? /*#__PURE__*/React__default["default"].createElement("figure", {
744
- className: "also-read-m_card-image__3CwAv"
745
- }, /*#__PURE__*/React__default["default"].createElement(components.LazyLoadImages, null, /*#__PURE__*/React__default["default"].createElement(components.ResponsiveImage, {
746
- slug: linkedImage,
747
- "aspect-ratio": imageAspectRatio,
748
- defaultWidth: 480,
749
- widths: [250, 480, 640],
750
- imgParams: {
751
- auto: ["format", "compress"]
752
- },
753
- alt: alternateText
754
- }))) : /*#__PURE__*/React__default["default"].createElement("div", {
755
- className: "arr--fallback-also-read also-read-m_image__2jdRP"
756
- }, /*#__PURE__*/React__default["default"].createElement(FallbackImage, null)));
757
- };
758
-
759
- DisplayImage.propTypes = {
760
- story: PropTypes__default["default"].shape({
761
- "hero-image-caption": PropTypes__default["default"].string,
762
- headline: PropTypes__default["default"].string
763
- }),
764
- linkedImage: PropTypes__default["default"].string,
765
- template: PropTypes__default["default"].string,
766
- isRightAlign: PropTypes__default["default"].bool
767
- };
768
-
769
- var AlsoReadBase = function AlsoReadBase(_ref2) {
770
- var _ref2$story = _ref2.story,
771
- story = _ref2$story === void 0 ? {} : _ref2$story,
772
- element = _ref2.element,
773
- _ref2$template = _ref2.template,
774
- template = _ref2$template === void 0 ? "" : _ref2$template,
775
- _ref2$opts = _ref2.opts,
776
- opts = _ref2$opts === void 0 ? {} : _ref2$opts,
777
- _ref2$css = _ref2.css,
778
- css = _ref2$css === void 0 ? {} : _ref2$css;
779
- _ref2.config;
780
- _ref2.render;
781
- var restProps = _objectWithoutProperties__default["default"](_ref2, _excluded$8);
782
-
783
- var content = element.text;
784
- if (!content) return null;
785
- var linkedStories = lodash.get(story, ["linked-stories"], {});
786
- var linkedStoryId = lodash.get(element, ["metadata", "linked-story-id"]);
787
- var linkedStorySlug = lodash.get(linkedStories, [linkedStoryId, "url"]);
788
- var linkedImage = lodash.get(linkedStories, [linkedStoryId, "hero-image-s3-key"], "");
789
- var storyUrl = linkedStorySlug && linkedStorySlug;
790
- var configData = useStateValue() || {};
791
- var textInvertColor = getTextColor(configData.theme);
792
- var _opts$title = opts.title,
793
- title = _opts$title === void 0 ? "" : _opts$title;
794
- var textColor = css.textColor;
795
- var displayTitle = title || "Also Read";
796
- var isDefault = template === "" || template === "default";
797
- var isRightAlign = template === "imageRightAlign";
798
- var templateStyle = template ? "alsoread-".concat(template) : "alsoread-default";
799
- return /*#__PURE__*/React__default["default"].createElement(components.Link, _extends__default["default"]({
800
- "data-test-id": "also-read",
801
- href: storyUrl,
802
- "aria-label": "also-read"
803
- }, restProps, {
804
- className: "arrow-component arr--also-read-element " + _getClassName__default["default"](templateStyle, _styleModuleImportMap$b) + (" " + (restProps ? restProps.className || "" : ""))
805
- }), !isDefault && /*#__PURE__*/React__default["default"].createElement("div", {
806
- className: _getClassName__default["default"]("default-text ".concat(textInvertColor), _styleModuleImportMap$b)
807
- }, displayTitle), isDefault && /*#__PURE__*/React__default["default"].createElement(DisplayImage, {
808
- story: story,
809
- linkedImage: linkedImage,
810
- template: template,
811
- isRightAlign: isRightAlign
812
- }), /*#__PURE__*/React__default["default"].createElement("div", {
813
- className: "also-read-m_content-wrapper__26AZX"
814
- }, /*#__PURE__*/React__default["default"].createElement("div", {
815
- className: "also-read-m_headline__VzF-c",
816
- style: textColor ? {
817
- color: textColor
818
- } : {
819
- color: textInvertColor
820
- },
821
- dangerouslySetInnerHTML: {
822
- __html: content
823
- }
824
- }), isRightAlign && /*#__PURE__*/React__default["default"].createElement(DisplayImage, {
825
- story: story,
826
- linkedImage: linkedImage,
827
- template: template
828
- })));
829
- };
830
-
831
- AlsoReadBase.propTypes = {
832
- /** template can be default, textLeftAlign or imageRightAlign */
833
- template: PropTypes__default["default"].string,
834
- story: PropTypes__default["default"].shape({
835
- "linked-stories": PropTypes__default["default"].object
836
- }),
837
- element: PropTypes__default["default"].shape({
838
- text: PropTypes__default["default"].string,
839
- metadata: PropTypes__default["default"].shape({
840
- linkedStoryId: PropTypes__default["default"].shape({
841
- url: PropTypes__default["default"].string,
842
- "hero-image-s3-key": PropTypes__default["default"].string
843
- })
844
- })
845
- }),
846
- opts: PropTypes__default["default"].shape({
847
- title: PropTypes__default["default"].string
848
- }),
849
- config: shapeConfig,
850
- render: PropTypes__default["default"].func,
851
- css: PropTypes__default["default"].object
852
- };
853
- var AlsoRead = withElementWrapper(AlsoReadBase);
854
-
855
- var Loading = function Loading(_ref) {
856
- _ref.width;
857
- _ref.height;
858
- _ref.iconColor;
859
- return /*#__PURE__*/React__default["default"].createElement("div", {
860
- className: "loading-m_loading-indicator__2Dlst"
861
- }, /*#__PURE__*/React__default["default"].createElement("svg", {
862
- width: "40",
863
- height: "40",
864
- xmlns: "http://www.w3.org/2000/svg",
865
- viewBox: "0 0 100 100",
866
- preserveAspectRatio: "xMidYMid"
867
- }, /*#__PURE__*/React__default["default"].createElement("circle", {
868
- cx: "84",
869
- cy: "50",
870
- r: "0",
871
- fill: "currentColor"
872
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
873
- attributeName: "r",
874
- values: "10;0;0;0;0",
875
- keyTimes: "0;0.25;0.5;0.75;1",
876
- 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",
877
- calcMode: "spline",
878
- dur: "2s",
879
- repeatCount: "indefinite",
880
- begin: "0s"
881
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
882
- attributeName: "cx",
883
- values: "84;84;84;84;84",
884
- keyTimes: "0;0.25;0.5;0.75;1",
885
- 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",
886
- calcMode: "spline",
887
- dur: "2s",
888
- repeatCount: "indefinite",
889
- begin: "0s"
890
- })), /*#__PURE__*/React__default["default"].createElement("circle", {
891
- cx: "84",
892
- cy: "50",
893
- r: ".709",
894
- fill: "currentColor"
895
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
896
- attributeName: "r",
897
- values: "0;10;10;10;0",
898
- keyTimes: "0;0.25;0.5;0.75;1",
899
- 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",
900
- calcMode: "spline",
901
- dur: "2s",
902
- repeatCount: "indefinite",
903
- begin: "-1s"
904
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
905
- attributeName: "cx",
906
- values: "16;16;50;84;84",
907
- keyTimes: "0;0.25;0.5;0.75;1",
908
- 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",
909
- calcMode: "spline",
910
- dur: "2s",
911
- repeatCount: "indefinite",
912
- begin: "-1s"
913
- })), /*#__PURE__*/React__default["default"].createElement("circle", {
914
- cx: "81.59",
915
- cy: "50",
916
- r: "10",
917
- fill: "currentColor"
918
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
919
- attributeName: "r",
920
- values: "0;10;10;10;0",
921
- keyTimes: "0;0.25;0.5;0.75;1",
922
- 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",
923
- calcMode: "spline",
924
- dur: "2s",
925
- repeatCount: "indefinite",
926
- begin: "-0.5s"
927
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
928
- attributeName: "cx",
929
- values: "16;16;50;84;84",
930
- keyTimes: "0;0.25;0.5;0.75;1",
931
- 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",
932
- calcMode: "spline",
933
- dur: "2s",
934
- repeatCount: "indefinite",
935
- begin: "-0.5s"
936
- })), /*#__PURE__*/React__default["default"].createElement("circle", {
937
- cx: "47.59",
938
- cy: "50",
939
- r: "10",
940
- fill: "currentColor"
941
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
942
- attributeName: "r",
943
- values: "0;10;10;10;0",
944
- keyTimes: "0;0.25;0.5;0.75;1",
945
- 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",
946
- calcMode: "spline",
947
- dur: "2s",
948
- repeatCount: "indefinite",
949
- begin: "0s"
950
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
951
- attributeName: "cx",
952
- values: "16;16;50;84;84",
953
- keyTimes: "0;0.25;0.5;0.75;1",
954
- 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",
955
- calcMode: "spline",
956
- dur: "2s",
957
- repeatCount: "indefinite",
958
- begin: "0s"
959
- })), /*#__PURE__*/React__default["default"].createElement("circle", {
960
- cx: "16",
961
- cy: "50",
962
- r: "9.291",
963
- fill: "currentColor"
964
- }, /*#__PURE__*/React__default["default"].createElement("animate", {
965
- attributeName: "r",
966
- values: "0;0;10;10;10",
967
- keyTimes: "0;0.25;0.5;0.75;1",
968
- 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",
969
- calcMode: "spline",
970
- dur: "2s",
971
- repeatCount: "indefinite",
972
- begin: "0s"
973
- }), /*#__PURE__*/React__default["default"].createElement("animate", {
974
- attributeName: "cx",
975
- values: "16;16;16;50;84",
976
- keyTimes: "0;0.25;0.5;0.75;1",
977
- 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",
978
- calcMode: "spline",
979
- dur: "2s",
980
- repeatCount: "indefinite",
981
- begin: "0s"
982
- }))));
983
- };
984
- Loading.propTypes = {
985
- width: PropTypes__default["default"].object,
986
- height: PropTypes__default["default"].object,
987
- iconColor: PropTypes__default["default"].object
988
- };
989
-
990
- var HyperLinkIcon = function HyperLinkIcon() {
991
- return /*#__PURE__*/React__default["default"].createElement("svg", {
992
- xmlns: "http://www.w3.org/2000/svg",
993
- width: "36",
994
- height: "28"
995
- }, /*#__PURE__*/React__default["default"].createElement("g", {
996
- fill: "none",
997
- fillRule: "evenodd"
998
- }, /*#__PURE__*/React__default["default"].createElement("rect", {
999
- width: "36",
1000
- height: "28",
1001
- fill: "#3D6FCF",
1002
- rx: "4"
1003
- }), /*#__PURE__*/React__default["default"].createElement("path", {
1004
- stroke: "#FFF",
1005
- strokeLinecap: "round",
1006
- strokeLinejoin: "round",
1007
- strokeWidth: "2",
1008
- 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"
1009
- })));
1010
- };
1011
-
1012
- var HyperLink = function HyperLink(_ref) {
1013
- var _ref$hyperLink = _ref.hyperLink,
1014
- hyperLink = _ref$hyperLink === void 0 ? "" : _ref$hyperLink;
1015
- if (!hyperLink) return null;
1016
- return /*#__PURE__*/React__default["default"].createElement(components.Link, {
1017
- href: hyperLink,
1018
- "aria-label": "hyperlink-button",
1019
- className: "arr--hyperlink-button hyperlink-m_hyperlink-button__1CqWx",
1020
- target: "_blank",
1021
- rel: "noopener noreferrer"
1022
- }, /*#__PURE__*/React__default["default"].createElement(HyperLinkIcon, null));
1023
- };
1024
- HyperLink.propTypes = {
1025
- hyperLink: PropTypes__default["default"].string
1026
- };
1027
-
1028
- 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; }
1029
-
1030
- 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; }
1031
- var Lightbox = /*#__PURE__*/React.lazy(function () {
1032
- return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('react-image-lightbox')); });
1033
- });
1034
- var FullScreenImages = function FullScreenImages(_ref) {
1035
- var _ref$imageSlug = _ref.imageSlug,
1036
- imageSlug = _ref$imageSlug === void 0 ? "" : _ref$imageSlug,
1037
- template = _ref.template,
1038
- _ref$element = _ref.element,
1039
- element = _ref$element === void 0 ? {} : _ref$element,
1040
- props = _ref.props;
1041
- var cdnImage = reactRedux.useSelector(function (state) {
1042
- return lodash.get(state, ["qt", "config", "cdn-image"]);
1043
- });
1044
-
1045
- var _useState = React.useState(0),
1046
- _useState2 = _slicedToArray__default["default"](_useState, 2),
1047
- photoIndex = _useState2[0],
1048
- handleImage = _useState2[1];
1049
-
1050
- var _useState3 = React.useState(false),
1051
- _useState4 = _slicedToArray__default["default"](_useState3, 2),
1052
- isOpen = _useState4[0],
1053
- handleOpen = _useState4[1];
1054
-
1055
- var deviceWidth = lodash.get(global, ["innerWidth"], 0);
1056
- var hyperlinks = lodash.get(element, ["story-elements"], []).map(function (image) {
1057
- return image.hyperlink;
1058
- });
1059
- var imageUrlList = [];
1060
-
1061
- if (!imageSlug) {
1062
- imageUrlList = lodash.get(element, ["story-elements"], []).map(function (image) {
1063
- return "//".concat(cdnImage, "/").concat(image["image-s3-key"], "?w=").concat(deviceWidth);
1064
- });
1065
- }
1066
-
1067
- var onClickHandler = function onClickHandler(index) {
1068
- handleOpen(true);
1069
- handleImage(index);
1070
- };
1071
-
1072
- var onClickKey = imageSlug ? "onClick" : "onClickHandler";
1073
- var imageUrlListLength = imageUrlList.length;
1074
-
1075
- var onMoveNext = function onMoveNext(imageUrlListLength) {
1076
- var next = (photoIndex + 1) % imageUrlListLength;
1077
- handleImage(next);
1078
- };
1079
-
1080
- var onMovePrev = function onMovePrev(imageUrlListLength) {
1081
- var prev = (photoIndex + imageUrlListLength - 1) % imageUrlListLength;
1082
- handleImage(prev);
1083
- };
1084
-
1085
- var onClose = function onClose() {
1086
- handleImage(0);
1087
- handleOpen(false);
1088
- };
1089
-
1090
- var getHyperLink = function getHyperLink() {
1091
- if (element.hyperlink || hyperlinks[photoIndex]) {
1092
- return /*#__PURE__*/React__default["default"].createElement(HyperLink, {
1093
- hyperLink: element.hyperlink || hyperlinks[photoIndex]
1094
- });
1095
- }
1096
-
1097
- return null;
1098
- };
1099
-
1100
- var lightboxProps = imageSlug ? {
1101
- mainSrc: "//".concat(cdnImage, "/").concat(imageSlug, "?w=").concat(deviceWidth),
1102
- toolbarButtons: [getHyperLink()]
1103
- } : {
1104
- mainSrc: imageUrlList[photoIndex],
1105
- nextSrc: imageUrlList[(photoIndex + 1) % imageUrlListLength],
1106
- prevSrc: imageUrlList[(photoIndex + imageUrlListLength - 1) % imageUrlListLength],
1107
- onMoveNextRequest: function onMoveNextRequest() {
1108
- return onMoveNext(imageUrlListLength);
1109
- },
1110
- onMovePrevRequest: function onMovePrevRequest() {
1111
- return onMovePrev(imageUrlListLength);
1112
- },
1113
- toolbarButtons: [getHyperLink()]
1114
- };
1115
-
1116
- var LoadingScreen = function LoadingScreen() {
1117
- return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(Loading, null));
1118
- };
1119
-
1120
- return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(template, _objectSpread(_defineProperty__default["default"]({}, onClickKey, onClickHandler), props)), isOpen ? /*#__PURE__*/React__default["default"].createElement(React.Suspense, {
1121
- fallback: /*#__PURE__*/React__default["default"].createElement(LoadingScreen, null)
1122
- }, /*#__PURE__*/React__default["default"].createElement(Lightbox, _extends__default["default"]({
1123
- wrapperClassName: "arr--image-lightbox",
1124
- onCloseRequest: onClose
1125
- }, lightboxProps))) : null);
1126
- };
1127
- FullScreenImages.propTypes = {
1128
- imageSlug: PropTypes__default["default"].string,
1129
- template: PropTypes__default["default"].func,
1130
- element: PropTypes__default["default"].shape({
1131
- "story-elements": PropTypes__default["default"].array
1132
- }),
1133
- props: PropTypes__default["default"].object
1134
- };
1135
-
1136
- var _styleModuleImportMap$a = {
1137
- "./caption-attribution.m.css": {
1138
- "viewports": "\"../../../../assets/stylesheets/viewports.m.css\"",
1139
- "mobile": "768px",
1140
- "caption": "caption-attribution-m_caption__BM5NN",
1141
- "wrapper": "caption-attribution-m_wrapper__oHBX7",
1142
- "dark": "caption-attribution-m_dark__uER8u",
1143
- "attribution": "caption-attribution-m_attribution__279W9",
1144
- "light": "caption-attribution-m_light__19OWp"
1145
- }
1146
- };
1147
- var CaptionAttribution = function CaptionAttribution(_ref) {
1148
- var story = _ref.story,
1149
- element = _ref.element;
1150
- _ref.config;
1151
- if (!(story || element)) return null;
1152
- var configData = useStateValue() || {};
1153
- var textColor = getTextColor(configData.theme);
1154
-
1155
- var _ref2 = story || {},
1156
- _ref2$heroImageCapt = _ref2["hero-image-caption"],
1157
- heroImageCaption = _ref2$heroImageCapt === void 0 ? "" : _ref2$heroImageCapt,
1158
- _ref2$heroImageAttr = _ref2["hero-image-attribution"],
1159
- heroImageAttribution = _ref2$heroImageAttr === void 0 ? "" : _ref2$heroImageAttr;
1160
-
1161
- var _ref3 = element || {},
1162
- _ref3$title = _ref3.title,
1163
- title = _ref3$title === void 0 ? "" : _ref3$title,
1164
- _ref3$imageAttributi = _ref3["image-attribution"],
1165
- imageAttribution = _ref3$imageAttributi === void 0 ? "" : _ref3$imageAttributi;
1166
-
1167
- var caption = heroImageCaption || title;
1168
- var attribution = heroImageAttribution || imageAttribution;
1169
- var updateStyle = caption ? "wrapper" : "";
1170
- return /*#__PURE__*/React__default["default"].createElement("div", {
1171
- "data-test-id": "caption",
1172
- className: "arr--caption-attribution " + _getClassName__default["default"]("caption ".concat(textColor), _styleModuleImportMap$a)
1173
- }, /*#__PURE__*/React__default["default"].createElement("span", {
1174
- dangerouslySetInnerHTML: {
1175
- __html: caption
1176
- }
1177
- }), attribution && /*#__PURE__*/React__default["default"].createElement("span", {
1178
- "data-test-id": "attribution",
1179
- dangerouslySetInnerHTML: {
1180
- __html: attribution
1181
- },
1182
- className: _getClassName__default["default"]("attribution ".concat(textColor, " ").concat(updateStyle), _styleModuleImportMap$a)
1183
- }));
1184
- };
1185
- CaptionAttribution.propTypes = {
1186
- config: PropTypes__default["default"].shape({
1187
- theme: PropTypes__default["default"].string
1188
- }),
1189
- story: shapeStory,
1190
- element: PropTypes__default["default"].shape({
1191
- "image-attribution": PropTypes__default["default"].string,
1192
- title: PropTypes__default["default"].string
1193
- })
1194
- };
1195
-
1196
- var _excluded$7 = ["element", "opts", "story", "config", "caption"];
1197
-
1198
- var ImageBase = function ImageBase(_ref) {
1199
- var element = _ref.element,
1200
- _ref$opts = _ref.opts,
1201
- opts = _ref$opts === void 0 ? {} : _ref$opts,
1202
- _ref$story = _ref.story,
1203
- story = _ref$story === void 0 ? {} : _ref$story;
1204
- _ref.config;
1205
- var _ref$caption = _ref.caption,
1206
- caption = _ref$caption === void 0 ? true : _ref$caption,
1207
- restProps = _objectWithoutProperties__default["default"](_ref, _excluded$7);
1208
-
1209
- if (!element) return null;
1210
- var configData = useStateValue() || {};
1211
-
1212
- var ImageTemplate = function ImageTemplate(_ref2) {
1213
- var _onClick = _ref2.onClick;
1214
- return /*#__PURE__*/React__default["default"].createElement("div", {
1215
- className: "image-m_image-template__3s9OA"
1216
- }, /*#__PURE__*/React__default["default"].createElement("figure", {
1217
- className: "image-m_element__KVuzX",
1218
- onClick: function onClick() {
1219
- return _onClick();
1220
- }
1221
- }, /*#__PURE__*/React__default["default"].createElement(components.ResponsiveImage, {
1222
- slug: element["image-s3-key"],
1223
- metadata: element["image-metadata"],
1224
- alt: element["title"],
1225
- aspectRatio: null,
1226
- defaultWidth: 640,
1227
- widths: opts.imageWidths || [360, 640, 1200],
1228
- imgParams: {
1229
- auto: ["format", "compress"]
1230
- }
1231
- })), element["hyperlink"] && /*#__PURE__*/React__default["default"].createElement(HyperLink, {
1232
- hyperLink: element["hyperlink"]
1233
- }));
1234
- };
1235
-
1236
- ImageTemplate.propTypes = {
1237
- onClick: PropTypes__default["default"].func
1238
- };
1239
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1240
- className: "arrow-component arr--image-element"
1241
- }, restProps, {
1242
- "data-test-id": "image-element"
1243
- }), /*#__PURE__*/React__default["default"].createElement(FullScreenImages, {
1244
- template: ImageTemplate,
1245
- element: element,
1246
- imageSlug: element["image-s3-key"],
1247
- story: story
1248
- }), caption && /*#__PURE__*/React__default["default"].createElement(CaptionAttribution, {
1249
- element: element,
1250
- config: configData
1251
- }));
1252
- };
1253
-
1254
- ImageBase.propTypes = {
1255
- element: PropTypes__default["default"].shape({
1256
- "image-s3-key": PropTypes__default["default"].string,
1257
- "image-metadata": PropTypes__default["default"].object,
1258
- "image-attribution": PropTypes__default["default"].string,
1259
- title: PropTypes__default["default"].string,
1260
- hyperlink: PropTypes__default["default"].string
1261
- }),
1262
- caption: PropTypes__default["default"].bool,
1263
- opts: PropTypes__default["default"].shape({
1264
- imageWidths: PropTypes__default["default"].array
1265
- }),
1266
- story: shapeStory,
1267
- config: shapeConfig
1268
- };
1269
- var Image = withElementWrapper(ImageBase);
1270
-
1271
- var _excluded$6 = ["element", "template", "css", "story", "config", "opts", "render"];
1272
- var _styleModuleImportMap$9 = {
1273
- "./question-answer.m.css": {
1274
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
1275
- "mobile": "768px",
1276
- "qa-withAuthorImage": "question-answer-m_qa-withAuthorImage__1JB3N",
1277
- "a-element": "question-answer-m_a-element__BTxfl",
1278
- "qa-default": "question-answer-m_qa-default__2fGK3",
1279
- "q-element": "question-answer-m_q-element__1ZA5d",
1280
- "dark": "question-answer-m_dark__O4Mnm",
1281
- "hidden": "question-answer-m_hidden__K0n4n",
1282
- "curveIcon": "question-answer-m_curveIcon__64641",
1283
- "edgeIcon": "question-answer-m_edgeIcon__3js6c",
1284
- "labelAttribution": "question-answer-m_labelAttribution__Rq-v3",
1285
- "light": "question-answer-m_light__3Iqv4",
1286
- "content": "question-answer-m_content__16Ng7"
1287
- }
1288
- };
1289
-
1290
- var supportedTemplates = function supportedTemplates(type, element) {
1291
- switch (type) {
1292
- case "q-and-a":
1293
- var _get = lodash.get(element, ["metadata"]),
1294
- qaQuestion = _get.question,
1295
- qaAnswer = _get.answer;
1296
-
1297
- var qaQuestionAttribution = lodash.get(element, ["metadata", "interviewer", "avatar-url"]);
1298
- var qaAnswerAttribution = lodash.get(element, ["metadata", "interviewee", "avatar-url"]);
1299
- return {
1300
- question: qaQuestion,
1301
- answer: qaAnswer,
1302
- questionAttribution: qaQuestionAttribution,
1303
- answerAttribution: qaAnswerAttribution
1304
- };
1305
-
1306
- case "question":
1307
- var qQuestion = lodash.get(element, ["text"]);
1308
- var qAttribution = lodash.get(element, ["metadata", "interviewer", "avatar-url"]);
1309
- return {
1310
- question: qQuestion,
1311
- questionAttribution: qAttribution
1312
- };
1313
-
1314
- case "answer":
1315
- var aAnswer = lodash.get(element, ["text"]);
1316
- var aAttribution = lodash.get(element, ["metadata", "interviewee", "avatar-url"]);
1317
- return {
1318
- answer: aAnswer,
1319
- answerAttribution: aAttribution
1320
- };
1321
- }
1322
- };
1323
-
1324
- var QuestionAnswerBase = function QuestionAnswerBase(_ref) {
1325
- var element = _ref.element,
1326
- template = _ref.template,
1327
- _ref$css = _ref.css,
1328
- css = _ref$css === void 0 ? {} : _ref$css;
1329
- _ref.story;
1330
- _ref.config;
1331
- var _ref$opts = _ref.opts,
1332
- opts = _ref$opts === void 0 ? {} : _ref$opts;
1333
- _ref.render;
1334
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$6);
1335
-
1336
- var configData = useStateValue() || {};
1337
- var textInvertColor = getTextColor(configData.theme);
1338
- if (!element) return null;
1339
- var type = opts.type,
1340
- defaultIconType = opts.defaultIconType,
1341
- _opts$isExternalLink = opts.isExternalLink,
1342
- isExternalLink = _opts$isExternalLink === void 0 ? true : _opts$isExternalLink;
1343
- var iconColor = css.iconColor;
1344
-
1345
- var _supportedTemplates = supportedTemplates(type, element),
1346
- question = _supportedTemplates.question,
1347
- answer = _supportedTemplates.answer,
1348
- questionAttribution = _supportedTemplates.questionAttribution,
1349
- answerAttribution = _supportedTemplates.answerAttribution;
1350
-
1351
- var theme = getTextColor(iconColor);
1352
- var questionData = question && (isExternalLink && updateContentLinks(question) || question);
1353
- var answerData = answer && (isExternalLink && updateContentLinks(answer) || answer);
1354
- var isAuthorImageTemplate = template === "withAuthorImage";
1355
- var templateStyle = isAuthorImageTemplate ? "qa-withAuthorImage" : "qa-default";
1356
- var iconType = defaultIconType === "curve" ? "curveIcon" : "edgeIcon";
1357
- var supportQuestionElement = isAuthorImageTemplate ? questionAttribution && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
1358
- className: "question-answer-m_labelAttribution__Rq-v3"
1359
- }, /*#__PURE__*/React__default["default"].createElement("img", {
1360
- src: questionAttribution,
1361
- loading: "lazy"
1362
- })), /*#__PURE__*/React__default["default"].createElement("span", {
1363
- className: "question-answer-m_hidden__K0n4n"
1364
- })) : /*#__PURE__*/React__default["default"].createElement("div", {
1365
- "data-test-id": iconType,
1366
- style: {
1367
- backgroundColor: iconColor
1368
- },
1369
- className: _getClassName__default["default"]("".concat(iconType, " ").concat(theme), _styleModuleImportMap$9)
1370
- }, "Q"); // EMPTY SPAN FOR EXTRA SPACE
1371
-
1372
- var supportAnswerElement = isAuthorImageTemplate ? answerAttribution && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
1373
- className: "question-answer-m_labelAttribution__Rq-v3"
1374
- }, /*#__PURE__*/React__default["default"].createElement("img", {
1375
- src: answerAttribution,
1376
- loading: "lazy"
1377
- })), /*#__PURE__*/React__default["default"].createElement("span", {
1378
- className: "question-answer-m_hidden__K0n4n"
1379
- })) : /*#__PURE__*/React__default["default"].createElement("div", {
1380
- "data-test-id": iconType,
1381
- style: {
1382
- backgroundColor: iconColor
1383
- },
1384
- className: _getClassName__default["default"]("".concat(iconType, " ").concat(theme), _styleModuleImportMap$9)
1385
- }, "A");
1386
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1387
- "data-test-id": "question-answer"
1388
- }, restProps, {
1389
- className: "arrow-component arr-custom-style arr--qa-element " + _getClassName__default["default"](templateStyle, _styleModuleImportMap$9) + (" " + (restProps ? restProps.className || "" : ""))
1390
- }), type !== "answer" && /*#__PURE__*/React__default["default"].createElement("div", {
1391
- className: "question-answer-m_q-element__1ZA5d",
1392
- "data-test-id": "question"
1393
- }, supportQuestionElement, /*#__PURE__*/React__default["default"].createElement("div", {
1394
- dangerouslySetInnerHTML: {
1395
- __html: questionData
1396
- },
1397
- className: _getClassName__default["default"]("content ".concat(textInvertColor), _styleModuleImportMap$9)
1398
- })), type !== "question" && /*#__PURE__*/React__default["default"].createElement("div", {
1399
- className: "question-answer-m_a-element__BTxfl",
1400
- "data-test-id": "answer"
1401
- }, supportAnswerElement, /*#__PURE__*/React__default["default"].createElement("div", {
1402
- dangerouslySetInnerHTML: {
1403
- __html: answerData
1404
- },
1405
- className: _getClassName__default["default"]("content ".concat(textInvertColor), _styleModuleImportMap$9)
1406
- })));
1407
- };
1408
-
1409
- QuestionAnswerBase.propTypes = {
1410
- element: PropTypes__default["default"].shape({
1411
- metadata: PropTypes__default["default"].shape({
1412
- interviewer: PropTypes__default["default"].shape({
1413
- "avatar-url": PropTypes__default["default"].string
1414
- }),
1415
- interviewee: PropTypes__default["default"].shape({
1416
- "avatar-url": PropTypes__default["default"].string
1417
- }),
1418
- question: PropTypes__default["default"].string,
1419
- answer: PropTypes__default["default"].string
1420
- }),
1421
- text: PropTypes__default["default"].string
1422
- }),
1423
- opts: PropTypes__default["default"].shape({
1424
- type: PropTypes__default["default"].string,
1425
- defaultIconType: PropTypes__default["default"].string,
1426
- isExternalLink: PropTypes__default["default"].bool
1427
- }),
1428
- template: PropTypes__default["default"].string,
1429
- css: PropTypes__default["default"].object,
1430
- config: shapeConfig,
1431
- story: shapeStory,
1432
- render: PropTypes__default["default"].func
1433
- };
1434
- var QuestionAnswer = withElementWrapper(QuestionAnswerBase);
1435
-
1436
- var _excluded$5 = ["element", "template", "opts", "story", "config"];
1437
- var _styleModuleImportMap$8 = {
1438
- "./image-gallery.m.css": {
1439
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
1440
- "mobile": "768px",
1441
- "image-gallery": "image-gallery-m_image-gallery__1Q7if",
1442
- "image": "image-gallery-m_image__3qwSJ",
1443
- "template-2": "image-gallery-m_template-2__2pjmE",
1444
- "left-images": "image-gallery-m_left-images__34gjv",
1445
- "hyperlink-gallery-image": "image-gallery-m_hyperlink-gallery-image__2qgDp"
1446
- }
1447
- };
1448
-
1449
- var ImageGalleryBase = function ImageGalleryBase(_ref) {
1450
- var element = _ref.element,
1451
- _ref$template = _ref.template,
1452
- template = _ref$template === void 0 ? "" : _ref$template;
1453
- _ref.opts;
1454
- _ref.story;
1455
- _ref.config;
1456
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$5);
1457
-
1458
- if (!element) return null;
1459
- var isMobile = clientWidth("mobile");
1460
- var imageArr = element["story-elements"];
1461
- var imageBaseOnTemp = template === "template-2" && imageArr.length;
1462
- var renderImageDesktop = imageBaseOnTemp > 6 ? imageArr.slice(0, 6) : imageArr;
1463
- var renderMobile = imageBaseOnTemp > 4 ? imageArr.slice(0, 4) : imageArr;
1464
- var renderImage = isMobile ? renderMobile : renderImageDesktop;
1465
- var classes = template === "template-2" ? "template-2" : "";
1466
-
1467
- var hyperlinkClass = function hyperlinkClass(hyperlink) {
1468
- return hyperlink ? "hyperlink-gallery-image" : "";
1469
- };
1470
-
1471
- var ImageGalleryImagesTemplate = function ImageGalleryImagesTemplate(_ref2) {
1472
- var onClickHandler = _ref2.onClickHandler;
1473
- var images = renderImage.map(function (image, index) {
1474
- return /*#__PURE__*/React__default["default"].createElement("div", {
1475
- key: index,
1476
- className: _getClassName__default["default"](hyperlinkClass(image["hyperlink"]), _styleModuleImportMap$8)
1477
- }, /*#__PURE__*/React__default["default"].createElement("figure", {
1478
- key: index,
1479
- "data-text-id": "image-".concat(index),
1480
- onClick: function onClick() {
1481
- return onClickHandler && onClickHandler(index);
1482
- },
1483
- className: _getClassName__default["default"]("image ".concat(classes), _styleModuleImportMap$8)
1484
- }, /*#__PURE__*/React__default["default"].createElement(components.ResponsiveImage, {
1485
- slug: image["image-s3-key"],
1486
- metadata: image["image-metadata"],
1487
- alt: image["title"],
1488
- aspectRatio: [1, 1],
1489
- defaultWidth: 640,
1490
- imgParams: {
1491
- auto: ["format", "compress"]
1492
- }
1493
- })), image["hyperlink"] && /*#__PURE__*/React__default["default"].createElement(HyperLink, {
1494
- hyperLink: image["hyperlink"]
1495
- }));
1496
- });
1497
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1498
- className: " arrow-component arr--image-element image-gallery-m_image-gallery__1Q7if" + (" " + (restProps ? restProps.className || "" : ""))
1499
- }, restProps, {
1500
- "data-test-id": "image-gallery"
1501
- }), images);
1502
- };
1503
-
1504
- ImageGalleryImagesTemplate.propTypes = {
1505
- onClickHandler: PropTypes__default["default"].func
1506
- };
1507
- return /*#__PURE__*/React__default["default"].createElement(FullScreenImages, {
1508
- template: ImageGalleryImagesTemplate,
1509
- element: element
1510
- });
1511
- };
1512
-
1513
- ImageGalleryBase.propTypes = {
1514
- element: PropTypes__default["default"].shape({
1515
- "story-elements": PropTypes__default["default"].array
1516
- }),
1517
- opts: PropTypes__default["default"].shape({
1518
- imageWidths: PropTypes__default["default"].array
1519
- }),
1520
- story: shapeStory,
1521
- config: shapeConfig,
1522
- template: PropTypes__default["default"].string
1523
- };
1524
- var ImageGallery = withElementWrapper(ImageGalleryBase);
1525
-
1526
- var _excluded$4 = ["element", "story", "config"];
1527
-
1528
- var StoryElementBase = function StoryElementBase(_ref) {
1529
- var element = _ref.element;
1530
- _ref.story;
1531
- _ref.config;
1532
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$4);
1533
-
1534
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({}, restProps, {
1535
- "data-test-id": "story-elements"
1536
- }), /*#__PURE__*/React__default["default"].createElement(components.StoryElement, {
1537
- element: element
1538
- }));
1539
- };
1540
-
1541
- var StoryElement = withElementWrapper(StoryElementBase);
1542
- StoryElementBase.propTypes = {
1543
- element: PropTypes__default["default"].object,
1544
- story: shapeStory,
1545
- config: shapeConfig
1546
- };
1547
-
1548
- var _excluded$3 = ["element", "story", "config", "loadIframeOnClick"];
1549
-
1550
- var Videobase = function Videobase(_ref) {
1551
- var element = _ref.element;
1552
- _ref.story;
1553
- _ref.config;
1554
- var _ref$loadIframeOnClic = _ref.loadIframeOnClick,
1555
- loadIframeOnClick = _ref$loadIframeOnClic === void 0 ? false : _ref$loadIframeOnClic,
1556
- restProps = _objectWithoutProperties__default["default"](_ref, _excluded$3);
1557
-
1558
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1559
- className: "video-m_container__MYuWI" + (" " + (restProps ? restProps.className || "" : ""))
1560
- }, restProps, {
1561
- "data-test-id": "video"
1562
- }), /*#__PURE__*/React__default["default"].createElement(components.StoryElement, {
1563
- element: element,
1564
- loadIframeOnClick: loadIframeOnClick
1565
- }));
1566
- };
1567
-
1568
- Videobase.propTypes = {
1569
- element: PropTypes__default["default"].object,
1570
- story: shapeStory,
1571
- config: shapeConfig,
1572
- loadIframeOnClick: PropTypes__default["default"].bool
1573
- };
1574
- var Video = withElementWrapper(Videobase);
1575
-
1576
- var _excluded$2 = ["element", "template", "css", "story", "config", "render"];
1577
- var _styleModuleImportMap$7 = {
1578
- "./quote.m.css": {
1579
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
1580
- "mobile": "768px",
1581
- "quote": "quote-m_quote__13tTt",
1582
- "text": "quote-m_text__2hXSE",
1583
- "quote-borderNone": "quote-m_quote-borderNone__2EuoK",
1584
- "quote-borderTopSmall": "quote-m_quote-borderTopSmall__2DN-3",
1585
- "quote-borderLeft": "quote-m_quote-borderLeft__3QaAY",
1586
- "dark": "quote-m_dark__1migZ",
1587
- "light": "quote-m_light__30NnM",
1588
- "attribution": "quote-m_attribution__20Y6O",
1589
- "line": "quote-m_line__3gtoE"
1590
- }
1591
- };
1592
-
1593
- var QuoteBase = function QuoteBase(_ref) {
1594
- var element = _ref.element,
1595
- _ref$template = _ref.template,
1596
- template = _ref$template === void 0 ? "" : _ref$template,
1597
- _ref$css = _ref.css,
1598
- css = _ref$css === void 0 ? {} : _ref$css;
1599
- _ref.story;
1600
- _ref.config;
1601
- _ref.render;
1602
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded$2);
1603
-
1604
- var configData = useStateValue() || {};
1605
- var textInvertColor = getTextColor(configData.theme);
1606
- var _element$metadata = element.metadata,
1607
- content = _element$metadata.content,
1608
- attribution = _element$metadata.attribution;
1609
- if (!content) return null;
1610
- var borderColor = css.borderColor;
1611
- var updateBorderColor = template === "borderLeft" && "4px solid ".concat(borderColor);
1612
- var templateStyle = template ? "quote-".concat(template) : "quote";
1613
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1614
- "data-test-id": "quote"
1615
- }, restProps, {
1616
- className: "arrow-component arr--quote-element " + _getClassName__default["default"](templateStyle, _styleModuleImportMap$7) + (" " + (restProps ? restProps.className || "" : ""))
1617
- }), template === "borderTopSmall" && /*#__PURE__*/React__default["default"].createElement("div", {
1618
- className: "quote-m_line__3gtoE",
1619
- style: borderColor && {
1620
- backgroundColor: borderColor
1621
- }
1622
- }), /*#__PURE__*/React__default["default"].createElement("p", {
1623
- style: borderColor && {
1624
- borderLeft: updateBorderColor
1625
- },
1626
- dangerouslySetInnerHTML: {
1627
- __html: content
1628
- },
1629
- className: _getClassName__default["default"]("text ".concat(textInvertColor), _styleModuleImportMap$7)
1630
- }), /*#__PURE__*/React__default["default"].createElement("p", {
1631
- "data-test-id": "quote-attribution",
1632
- className: _getClassName__default["default"]("attribution ".concat(textInvertColor), _styleModuleImportMap$7)
1633
- }, attribution));
1634
- };
1635
-
1636
- QuoteBase.propTypes = {
1637
- element: PropTypes__default["default"].shape({
1638
- metadata: PropTypes__default["default"].shape({
1639
- content: PropTypes__default["default"].string,
1640
- attribution: PropTypes__default["default"].string
1641
- })
1642
- }),
1643
-
1644
- /** template can be default, borderTopSmall and borderLeft */
1645
- template: PropTypes__default["default"].string,
1646
- story: shapeStory,
1647
- config: shapeConfig,
1648
- render: PropTypes__default["default"].func,
1649
- css: PropTypes__default["default"].object
1650
- };
1651
- var Quote = withElementWrapper(QuoteBase);
1652
-
1653
- var _excluded$1 = ["element", "config", "opts"];
1654
- var _styleModuleImportMap$6 = {
1655
- "./reference.m.css": {
1656
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
1657
- "mobile": "768px",
1658
- "tablet": "992px",
1659
- "wrapper": "reference-m_wrapper__1C4Ot",
1660
- "name": "reference-m_name__24IwG",
1661
- "description": "reference-m_description__2x3Io",
1662
- "dark": "reference-m_dark__3Zlnx",
1663
- "light": "reference-m_light__1B8Ud"
1664
- }
1665
- };
1666
-
1667
- var ReferenceBase = function ReferenceBase(_ref) {
1668
- var element = _ref.element;
1669
- _ref.config;
1670
- var _ref$opts = _ref.opts,
1671
- opts = _ref$opts === void 0 ? {} : _ref$opts,
1672
- restProps = _objectWithoutProperties__default["default"](_ref, _excluded$1);
1673
-
1674
- if (!element) return null;
1675
- var configData = useStateValue() || {};
1676
- var textInvertColor = getTextColor(configData.theme);
1677
- var eleArr = element["story-elements"] && element["story-elements"].map(function (ref) {
1678
- return ref.metadata;
1679
- });
1680
- var _opts$showHeadline = opts.showHeadline,
1681
- showHeadline = _opts$showHeadline === void 0 ? true : _opts$showHeadline,
1682
- headlineText = opts.headlineText;
1683
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1684
- className: "arrow-component arr--reference-element"
1685
- }, restProps), eleArr && eleArr.map(function (metadata, index) {
1686
- var _metadata$name = metadata.name,
1687
- name = _metadata$name === void 0 ? "" : _metadata$name,
1688
- _metadata$description = metadata.description,
1689
- description = _metadata$description === void 0 ? "" : _metadata$description,
1690
- url = metadata.url;
1691
- return /*#__PURE__*/React__default["default"].createElement("div", {
1692
- key: index,
1693
- className: _getClassName__default["default"]("wrapper ".concat(textInvertColor), _styleModuleImportMap$6)
1694
- }, /*#__PURE__*/React__default["default"].createElement(components.Link, {
1695
- href: url,
1696
- "aria-label": "reference-headline"
1697
- }, showHeadline && /*#__PURE__*/React__default["default"].createElement("div", {
1698
- className: "reference-m_name__24IwG",
1699
- "data-test-id": "ref-headline"
1700
- }, headlineText || name), /*#__PURE__*/React__default["default"].createElement("div", {
1701
- className: "reference-m_description__2x3Io"
1702
- }, description)));
1703
- }));
1704
- };
1705
-
1706
- ReferenceBase.propTypes = {
1707
- element: PropTypes__default["default"].shape({
1708
- "story-elements": PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
1709
- metadata: PropTypes__default["default"].shape({
1710
- name: PropTypes__default["default"].string,
1711
- description: PropTypes__default["default"].string,
1712
- url: PropTypes__default["default"].string
1713
- })
1714
- }))
1715
- }),
1716
- opts: PropTypes__default["default"].shape({
1717
- hideHeadline: PropTypes__default["default"].bool
1718
- }),
1719
- config: shapeConfig
1720
- };
1721
- var Reference = withElementWrapper(ReferenceBase);
1722
-
1723
- var _excluded = ["element", "render"];
1724
- var _styleModuleImportMap$5 = {
1725
- "./attachment.m.css": {
1726
- "viewports": "\"../../../../../assets/stylesheets/viewports.m.css\"",
1727
- "mobile": "768px",
1728
- "tablet": "992px",
1729
- "headline": "attachment-m_headline__kP7Hs",
1730
- "button-wrapper": "attachment-m_button-wrapper__2fajK",
1731
- "file-name": "attachment-m_file-name__1LU9q",
1732
- "dark": "attachment-m_dark__3ixF7",
1733
- "light": "attachment-m_light__1kcpj",
1734
- "pdf": "attachment-m_pdf__3i_bR",
1735
- "doc": "attachment-m_doc__6vUVo attachment-m_pdf__3i_bR",
1736
- "wrapper": "attachment-m_wrapper__3gMwN",
1737
- "content-wrapper": "attachment-m_content-wrapper__3Yu0B"
1738
- }
1739
- };
1740
-
1741
- var AttachmentBase = function AttachmentBase(_ref) {
1742
- var _ref$element = _ref.element,
1743
- element = _ref$element === void 0 ? {} : _ref$element;
1744
- _ref.render;
1745
- var restProps = _objectWithoutProperties__default["default"](_ref, _excluded);
1746
-
1747
- var fileName = element["file-name"],
1748
- url = element.url,
1749
- contentType = element["content-type"];
1750
- if (!contentType || !url) return null;
1751
- var attachmentType = {
1752
- PDF: "application/pdf"
1753
- };
1754
- var isPdf = contentType === attachmentType.PDF;
1755
- var configData = useStateValue() || {};
1756
- var textColor = getTextColor(configData.theme);
1757
- var defaultName = isPdf ? "Attached PDF" : "Attached DOC";
1758
- var defaultFileName = fileName || defaultName;
1759
- return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1760
- "data-test-id": "attachment"
1761
- }, restProps, {
1762
- className: "arrow-component arr--attachment-element " + _getClassName__default["default"](textColor, _styleModuleImportMap$5) + (" " + (restProps ? restProps.className || "" : ""))
1763
- }), /*#__PURE__*/React__default["default"].createElement("div", {
1764
- className: "attachment-m_headline__kP7Hs"
1765
- }, "Attachment"), /*#__PURE__*/React__default["default"].createElement("div", {
1766
- className: "attachment-m_wrapper__3gMwN"
1767
- }, isPdf ? /*#__PURE__*/React__default["default"].createElement("div", {
1768
- "data-test-id": "pdf",
1769
- className: "attachment-m_pdf__3i_bR"
1770
- }, "PDF") : /*#__PURE__*/React__default["default"].createElement("div", {
1771
- "data-test-id": "doc",
1772
- className: "attachment-m_doc__6vUVo attachment-m_pdf__3i_bR"
1773
- }, "DOC"), /*#__PURE__*/React__default["default"].createElement("div", {
1774
- className: "attachment-m_content-wrapper__3Yu0B"
1775
- }, /*#__PURE__*/React__default["default"].createElement("div", {
1776
- className: "attachment-m_file-name__1LU9q",
1777
- dangerouslySetInnerHTML: {
1778
- __html: defaultFileName
1779
- }
1780
- }), /*#__PURE__*/React__default["default"].createElement(components.Link, {
1781
- className: "attachment-m_button-wrapper__2fajK",
1782
- href: url,
1783
- target: "_blank",
1784
- rel: "noopener noreferrer",
1785
- download: true,
1786
- "aria-label": "button"
1787
- }, isPdf ? "Preview" : "Download"))));
1788
- };
1789
-
1790
- AttachmentBase.propTypes = {
1791
- element: PropTypes__default["default"].shape({
1792
- url: PropTypes__default["default"].string,
1793
- fileName: PropTypes__default["default"].string,
1794
- contentType: PropTypes__default["default"].string
1795
- }),
1796
- render: PropTypes__default["default"].func
1797
- };
1798
- var Attachment = withElementWrapper(AttachmentBase);
1799
-
1800
- var Twitter = function Twitter(_ref) {
1801
- var _ref$color = _ref.color,
1802
- color = _ref$color === void 0 ? "#1CB7EB" : _ref$color;
1803
- return /*#__PURE__*/React__default["default"].createElement("svg", {
1804
- xmlns: "http://www.w3.org/2000/svg",
1805
- width: "24",
1806
- height: "24",
1807
- viewBox: "0 0 24 24"
1808
- }, /*#__PURE__*/React__default["default"].createElement("path", {
1809
- fill: color,
1810
- d: "M19.137 8.594c.023.094.035.246.035.457 0 1.687-.41 3.316-1.23 4.887-.844 1.664-2.028 2.988-3.551 3.972-1.664 1.102-3.575 1.652-5.73 1.652-2.063 0-3.95-.55-5.661-1.652.258.024.55.035.879.035 1.71 0 3.246-.527 4.605-1.582-.82 0-1.54-.24-2.162-.72a3.673 3.673 0 01-1.283-1.811c.234.023.457.035.668.035.328 0 .656-.035.984-.105a3.724 3.724 0 01-2.109-1.301 3.542 3.542 0 01-.844-2.32v-.07a3.493 3.493 0 001.653.492 4.097 4.097 0 01-1.196-1.336 3.557 3.557 0 01-.457-1.776c0-.644.176-1.26.528-1.845a10.188 10.188 0 003.357 2.742 10.222 10.222 0 004.236 1.125 5.122 5.122 0 01-.07-.844c0-.656.164-1.272.492-1.846a3.615 3.615 0 011.336-1.353 3.568 3.568 0 011.828-.492c.54 0 1.037.105 1.494.316.457.21.862.492 1.213.844a7.479 7.479 0 002.356-.88c-.281.868-.82 1.548-1.617 2.04A7.926 7.926 0 0021 6.66a8.132 8.132 0 01-1.863 1.934z"
1811
- }));
1812
- };
1813
- Twitter.propTypes = {
1814
- color: PropTypes__default["default"].string
1815
- };
1816
-
1817
- var Facebook = function Facebook(_ref) {
1818
- var _ref$color = _ref.color,
1819
- color = _ref$color === void 0 ? "#3B5998" : _ref$color;
1820
- return /*#__PURE__*/React__default["default"].createElement("svg", {
1821
- xmlns: "http://www.w3.org/2000/svg",
1822
- width: "24",
1823
- height: "24",
1824
- viewBox: "0 0 24 24"
1825
- }, /*#__PURE__*/React__default["default"].createElement("path", {
1826
- fill: color,
1827
- d: "M9.906 20v-7.156H7.5V10h2.406V7.75c0-1.187.334-2.11 1-2.766.667-.656 1.552-.984 2.656-.984.896 0 1.625.042 2.188.125v2.531h-1.5c-.563 0-.948.125-1.156.375-.167.209-.25.542-.25 1V10H15.5l-.375 2.844h-2.281V20H9.906z"
1828
- }));
1829
- };
1830
- Facebook.propTypes = {
1831
- color: PropTypes__default["default"].string
1832
- };
1833
-
1834
- var LinkedIn = function LinkedIn(_ref) {
1835
- var _ref$color = _ref.color,
1836
- color = _ref$color === void 0 ? "#0077B5" : _ref$color;
1837
- return /*#__PURE__*/React__default["default"].createElement("svg", {
1838
- xmlns: "http://www.w3.org/2000/svg",
1839
- width: "24",
1840
- height: "24",
1841
- viewBox: "0 0 24 24"
1842
- }, /*#__PURE__*/React__default["default"].createElement("path", {
1843
- fill: color,
1844
- d: "M6.71 19H3.26V7.904h3.45V19zM5.005 6.383a1.926 1.926 0 01-1.41-.594A1.923 1.923 0 013 4.38c0-.544.198-1.014.594-1.41a1.926 1.926 0 011.41-.594c.544 0 1.014.198 1.41.594.396.396.594.866.594 1.41 0 .544-.198 1.014-.594 1.41a1.926 1.926 0 01-1.41.594zM19.625 19h-3.451v-5.418c0-.89-.074-1.534-.223-1.93-.272-.668-.804-1.002-1.596-1.002-.791 0-1.348.297-1.67.891-.247.445-.37 1.1-.37 1.967V19H8.9V7.904h3.303v1.522h.037c.248-.495.643-.903 1.188-1.225.593-.396 1.286-.594 2.078-.594 1.608 0 2.734.508 3.377 1.522.495.816.742 2.078.742 3.785V19z"
1845
- }));
1846
- };
1847
- LinkedIn.propTypes = {
1848
- color: PropTypes__default["default"].string
1849
- };
1850
-
1851
- var WhatsApp = function WhatsApp(_ref) {
1852
- var _ref$color = _ref.color,
1853
- color = _ref$color === void 0 ? "#4AC959" : _ref$color;
1854
- return /*#__PURE__*/React__default["default"].createElement("svg", {
1855
- xmlns: "http://www.w3.org/2000/svg",
1856
- width: "24",
1857
- height: "24",
1858
- viewBox: "0 0 24 24"
1859
- }, /*#__PURE__*/React__default["default"].createElement("path", {
1860
- fill: color,
1861
- fillRule: "evenodd",
1862
- d: "M18.404 5.505a9.457 9.457 0 012.02 2.96 8.587 8.587 0 01.715 3.449 8.665 8.665 0 01-1.245 4.53 9.282 9.282 0 01-3.347 3.307 8.894 8.894 0 01-4.552 1.225 8.835 8.835 0 01-4.327-1.102l-4.817 1.265 1.307-4.694a8.775 8.775 0 01-1.225-4.531 8.77 8.77 0 011.225-4.531 9.17 9.17 0 013.306-3.307 8.781 8.781 0 014.531-1.224c1.198 0 2.347.23 3.45.693a9.515 9.515 0 012.959 1.96zm-6.409 13.96c1.36 0 2.626-.34 3.797-1.02a7.75 7.75 0 002.796-2.756 7.202 7.202 0 001.04-3.775c0-.98-.203-1.933-.612-2.858a8.088 8.088 0 00-1.694-2.47 7.565 7.565 0 00-2.449-1.653 7.405 7.405 0 00-2.878-.571c-1.36 0-2.62.34-3.776 1.02a7.646 7.646 0 00-2.755 2.756 7.316 7.316 0 00-1.02 3.776c0 1.442.394 2.775 1.183 4l.164.286-.776 2.775 2.857-.734.286.163a7.275 7.275 0 003.837 1.061zm4.123-5.674l.123.082c.19.082.299.15.326.204.027.054.034.19.02.408a2.11 2.11 0 01-.163.674c-.095.231-.313.462-.653.694-.34.231-.633.36-.878.388-.38.054-.748.054-1.102 0-.408-.082-.952-.273-1.632-.572-1.388-.599-2.654-1.714-3.797-3.347l-.081-.082c-.6-.843-.898-1.62-.898-2.327 0-.707.244-1.32.734-1.837l.041-.04c.19-.19.395-.286.612-.286h.49c.11 0 .198.02.266.061.068.041.129.143.183.306l.694 1.674c.082.163.095.3.041.408a2.832 2.832 0 01-.53.735.917.917 0 00-.205.265c-.027.068 0 .143.082.225.38.707.83 1.265 1.347 1.673.381.3.952.64 1.714 1.02.218.11.381.096.49-.04.354-.408.599-.707.735-.898.054-.109.123-.163.204-.163.082 0 .177.013.286.04.218.082.735.327 1.551.735z"
1863
- }));
1864
- };
1865
- WhatsApp.propTypes = {
1866
- color: PropTypes__default["default"].string
1867
- };
1868
-
1869
- var getSocialIcons = function getSocialIcons(color, iconType) {
1870
- switch (iconType) {
1871
- case "plain-color-svg":
1872
- return {
1873
- facebook: /*#__PURE__*/React__default["default"].createElement(Facebook, {
1874
- key: iconType
1875
- }),
1876
- twitter: /*#__PURE__*/React__default["default"].createElement(Twitter, {
1877
- key: iconType
1878
- }),
1879
- linkedin: /*#__PURE__*/React__default["default"].createElement(LinkedIn, {
1880
- key: iconType
1881
- }),
1882
- whatsapp: /*#__PURE__*/React__default["default"].createElement(WhatsApp, {
1883
- key: iconType
1884
- })
1885
- };
1886
-
1887
- default:
1888
- return {
1889
- facebook: /*#__PURE__*/React__default["default"].createElement(Facebook, {
1890
- color: color,
1891
- key: iconType
1892
- }),
1893
- twitter: /*#__PURE__*/React__default["default"].createElement(Twitter, {
1894
- color: color,
1895
- key: iconType
1896
- }),
1897
- linkedin: /*#__PURE__*/React__default["default"].createElement(LinkedIn, {
1898
- color: color,
1899
- key: iconType
1900
- }),
1901
- whatsapp: /*#__PURE__*/React__default["default"].createElement(WhatsApp, {
1902
- color: color,
1903
- key: iconType
1904
- })
1905
- };
1906
- }
1907
- };
1908
-
1909
- var socialShareData = function socialShareData(_ref) {
1910
- var fbUrl = _ref.fbUrl,
1911
- twitterUrl = _ref.twitterUrl,
1912
- linkedinUrl = _ref.linkedinUrl,
1913
- whatsappUrl = _ref.whatsappUrl,
1914
- iconColor = _ref.iconColor,
1915
- _ref$iconType = _ref.iconType,
1916
- iconType = _ref$iconType === void 0 ? "plain-svg" : _ref$iconType;
1917
- var socialIcons = getSocialIcons(iconColor, iconType);
1918
-
1919
- var getOptions = function getOptions() {
1920
- return [{
1921
- name: "facebook",
1922
- url: fbUrl,
1923
- icon: socialIcons["facebook"],
1924
- text: "Facebook",
1925
- bgColor: "#4e71a8",
1926
- alt: "fb icon"
1927
- }, {
1928
- name: "twitter",
1929
- url: twitterUrl,
1930
- icon: socialIcons["twitter"],
1931
- text: "Twitter",
1932
- bgColor: "#1db7eb",
1933
- alt: "twitter icon"
1934
- }, {
1935
- name: "linkedin",
1936
- url: linkedinUrl,
1937
- icon: socialIcons["linkedin"],
1938
- text: "LinkedIn",
1939
- bgColor: "#0077B5",
1940
- alt: "linkedin icon"
1941
- }, {
1942
- name: "whatsapp",
1943
- url: whatsappUrl,
1944
- icon: socialIcons["whatsapp"],
1945
- text: "Whatsapp",
1946
- bgColor: "#25d366",
1947
- alt: "whatsapp share"
1948
- }];
1949
- };
1950
-
1951
- return getOptions();
1952
- };
1953
-
1954
- var CloseIcon = function CloseIcon(_ref) {
1955
- var _ref$color = _ref.color,
1956
- color = _ref$color === void 0 ? "#333" : _ref$color;
1957
- return /*#__PURE__*/React__default["default"].createElement("svg", {
1958
- xmlns: "http://www.w3.org/2000/svg",
1959
- width: "24",
1960
- height: "24",
1961
- viewBox: "0 0 24 24"
1962
- }, /*#__PURE__*/React__default["default"].createElement("g", {
1963
- fill: "none",
1964
- stroke: color,
1965
- strokeLinecap: "square",
1966
- strokeWidth: "2"
1967
- }, /*#__PURE__*/React__default["default"].createElement("path", {
1968
- d: "M16.95 6.914l-9.9 9.9M16.95 17.107l-9.9-9.9"
1969
- })));
1970
- };
1971
- CloseIcon.propTypes = {
1972
- color: PropTypes__default["default"].string
1973
- };
1974
-
1975
- var _styleModuleImportMap$4 = {
1976
- "./social-share-popup.m.css": {
1977
- "share-popup-wrapper": "social-share-popup-m_share-popup-wrapper__GEJqD",
1978
- "light": "social-share-popup-m_light__gQmxf",
1979
- "dark": "social-share-popup-m_dark__26Igp",
1980
- "share-popup": "social-share-popup-m_share-popup__QRt3l social-share-popup-m_share-popup-wrapper__GEJqD",
1981
- "social-wrapper": "social-share-popup-m_social-wrapper__1lPzr",
1982
- "social-icon-wrapper": "social-share-popup-m_social-icon-wrapper__36jyV",
1983
- "wrapper": "social-share-popup-m_wrapper__3Ytce",
1984
- "top-bar": "social-share-popup-m_top-bar__174Um",
1985
- "share-text": "social-share-popup-m_share-text__19E-F",
1986
- "close": "social-share-popup-m_close__3k-Hj",
1987
- "social-icon": "social-share-popup-m_social-icon__2a4nT",
1988
- "social-text": "social-share-popup-m_social-text__1QPXb"
1989
- }
1990
- };
1991
-
1992
- var popupSocialShareItem = function popupSocialShareItem(url, icon, text, index) {
1993
- return url ? /*#__PURE__*/React__default["default"].createElement("li", {
1994
- className: "social-share-popup-m_social-icon-wrapper__36jyV",
1995
- "data-testid": text,
1996
- key: "popup-item-".concat(index)
1997
- }, /*#__PURE__*/React__default["default"].createElement("a", {
1998
- href: url,
1999
- target: "_blank",
2000
- rel: "noopener noreferrer",
2001
- className: "social-share-popup-m_social-wrapper__1lPzr",
2002
- "aria-label": "social-icon"
2003
- }, icon, /*#__PURE__*/React__default["default"].createElement("span", {
2004
- className: "social-share-popup-m_social-text__1QPXb"
2005
- }, text))) : null;
2006
- };
2007
-
2008
- var SocialSharePopup = function SocialSharePopup(_ref) {
2009
- var _ref$fbUrl = _ref.fbUrl,
2010
- fbUrl = _ref$fbUrl === void 0 ? "" : _ref$fbUrl,
2011
- _ref$twitterUrl = _ref.twitterUrl,
2012
- twitterUrl = _ref$twitterUrl === void 0 ? "" : _ref$twitterUrl,
2013
- _ref$linkedinUrl = _ref.linkedinUrl,
2014
- linkedinUrl = _ref$linkedinUrl === void 0 ? "" : _ref$linkedinUrl,
2015
- _ref$whatsappUrl = _ref.whatsappUrl,
2016
- whatsappUrl = _ref$whatsappUrl === void 0 ? "" : _ref$whatsappUrl,
2017
- theme = _ref.theme,
2018
- _ref$closePopup = _ref.closePopup,
2019
- closePopup = _ref$closePopup === void 0 ? "" : _ref$closePopup,
2020
- _ref$iconType = _ref.iconType,
2021
- iconType = _ref$iconType === void 0 ? "plain-color-svg" : _ref$iconType;
2022
- var textColor = getTextColor(theme);
2023
- var iconColor = textColor === "dark" ? "#000000" : "#ffffff";
2024
- var options = {
2025
- fbUrl: fbUrl,
2026
- twitterUrl: twitterUrl,
2027
- linkedinUrl: linkedinUrl,
2028
- whatsappUrl: whatsappUrl,
2029
- iconColor: iconColor,
2030
- iconType: iconType
2031
- };
2032
- var popupItemsList = socialShareData(options);
2033
- return /*#__PURE__*/React__default["default"].createElement("div", {
2034
- className: _getClassName__default["default"]("share-popup-wrapper ".concat(textColor), _styleModuleImportMap$4)
2035
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2036
- className: "social-share-popup-m_share-popup__QRt3l social-share-popup-m_share-popup-wrapper__GEJqD"
2037
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2038
- className: "social-share-popup-m_top-bar__174Um"
2039
- }, /*#__PURE__*/React__default["default"].createElement("span", {
2040
- className: "social-share-popup-m_share-text__19E-F"
2041
- }, "Share via"), /*#__PURE__*/React__default["default"].createElement("span", {
2042
- className: "social-share-popup-m_close__3k-Hj",
2043
- onClick: closePopup
2044
- }, /*#__PURE__*/React__default["default"].createElement(CloseIcon, {
2045
- color: iconColor
2046
- }))), /*#__PURE__*/React__default["default"].createElement("ul", {
2047
- className: "social-share-popup-m_wrapper__3Ytce"
2048
- }, popupItemsList.map(function (_ref2, index) {
2049
- var url = _ref2.url,
2050
- icon = _ref2.icon,
2051
- text = _ref2.text,
2052
- bgColor = _ref2.bgColor;
2053
- _ref2.alt;
2054
- return popupSocialShareItem(url, icon, text, bgColor);
2055
- }))));
2056
- };
2057
- SocialSharePopup.propTypes = {
2058
- fbUrl: PropTypes__default["default"].string,
2059
- twitterUrl: PropTypes__default["default"].string,
2060
- linkedinUrl: PropTypes__default["default"].string,
2061
- whatsappUrl: PropTypes__default["default"].string,
2062
- grey: PropTypes__default["default"].string,
2063
- primaryColor: PropTypes__default["default"].string,
2064
- closePopup: PropTypes__default["default"].bool,
2065
- theme: PropTypes__default["default"].string,
2066
- iconType: PropTypes__default["default"].string
2067
- };
2068
-
2069
- var ShareIcon = function ShareIcon(_ref) {
2070
- var _ref$color = _ref.color,
2071
- color = _ref$color === void 0 ? "#0D0D0D" : _ref$color;
2072
- return /*#__PURE__*/React__default["default"].createElement("svg", {
2073
- xmlns: "http://www.w3.org/2000/svg",
2074
- width: "24",
2075
- height: "24",
2076
- viewBox: "0 0 24 24"
2077
- }, /*#__PURE__*/React__default["default"].createElement("path", {
2078
- fill: color,
2079
- fillRule: "evenodd",
2080
- d: "M15.843 3.189c-1.478 0-2.689 1.239-2.689 2.75 0 .293.046.58.13.846L8.844 9.31a2.638 2.638 0 00-1.687-.621c-1.477 0-2.688 1.238-2.688 2.75 0 1.51 1.21 2.75 2.688 2.75.638 0 1.224-.231 1.687-.615l4.446 2.525a2.778 2.778 0 00-.136.84c0 1.51 1.211 2.75 2.689 2.75 1.477 0 2.688-1.24 2.688-2.75 0-1.512-1.21-2.75-2.688-2.75-.742 0-1.419.317-1.907.82l-4.323-2.46a2.763 2.763 0 000-2.221l4.317-2.459c.488.506 1.168.82 1.913.82 1.477 0 2.688-1.239 2.688-2.75s-1.21-2.75-2.688-2.75z"
2081
- }));
2082
- };
2083
- ShareIcon.propTypes = {
2084
- color: PropTypes__default["default"].string
2085
- };
2086
-
2087
- var _styleModuleImportMap$3 = {
2088
- "./social-share-template.m.css": {
2089
- "desktop-view": "social-share-template-m_desktop-view__3TmkO",
2090
- "tablet-view": "social-share-template-m_tablet-view__kATzi",
2091
- "wrapper": "social-share-template-m_wrapper__1wXin",
2092
- "horizontal": "social-share-template-m_horizontal__1c9Kt",
2093
- "vertical": "social-share-template-m_vertical__VU5JY",
2094
- "light": "social-share-template-m_light__3-V_k",
2095
- "dark": "social-share-template-m_dark__1lmTM",
2096
- "icon": "social-share-template-m_icon__1Mnu5",
2097
- "open": "social-share-template-m_open__3xObA",
2098
- "popup-wrapper": "social-share-template-m_popup-wrapper__1Zv3e",
2099
- "popup-open": "social-share-template-m_popup-open__21UNo",
2100
- "overlay": "social-share-template-m_overlay__1nBp-",
2101
- "tablet-view-popup": "social-share-template-m_tablet-view-popup__1hXU9"
2102
- }
2103
- };
2104
-
2105
- var ShareItem = function ShareItem(_ref) {
2106
- var name = _ref.name,
2107
- url = _ref.url,
2108
- icon = _ref.icon,
2109
- dataTestId = _ref.dataTestId;
2110
- return url ? /*#__PURE__*/React__default["default"].createElement("li", {
2111
- "data-testid": dataTestId,
2112
- className: "social-share-template-m_icon__1Mnu5"
2113
- }, /*#__PURE__*/React__default["default"].createElement("a", {
2114
- href: url,
2115
- target: "_blank",
2116
- rel: "noopener noreferrer",
2117
- "data-share-icon": name,
2118
- "aria-label": "share-icon"
2119
- }, icon)) : null;
2120
- };
2121
-
2122
- ShareItem.propTypes = {
2123
- name: PropTypes__default["default"].string,
2124
- url: PropTypes__default["default"].string,
2125
- icon: PropTypes__default["default"].node,
2126
- dataTestId: PropTypes__default["default"].string
2127
- };
2128
-
2129
- function getActionIcon(open, color) {
2130
- if (!open) return /*#__PURE__*/React__default["default"].createElement(ShareIcon, {
2131
- color: color
2132
- });
2133
- return /*#__PURE__*/React__default["default"].createElement(CloseIcon, {
2134
- color: color
2135
- });
2136
- }
2137
-
2138
- var SocialShareTemplate = function SocialShareTemplate(props) {
2139
- var _props$fbUrl = props.fbUrl,
2140
- fbUrl = _props$fbUrl === void 0 ? "" : _props$fbUrl,
2141
- _props$twitterUrl = props.twitterUrl,
2142
- twitterUrl = _props$twitterUrl === void 0 ? "" : _props$twitterUrl,
2143
- _props$linkedinUrl = props.linkedinUrl,
2144
- linkedinUrl = _props$linkedinUrl === void 0 ? "" : _props$linkedinUrl,
2145
- _props$whatsappUrl = props.whatsappUrl,
2146
- whatsappUrl = _props$whatsappUrl === void 0 ? "" : _props$whatsappUrl,
2147
- _props$vertical = props.vertical,
2148
- vertical = _props$vertical === void 0 ? false : _props$vertical,
2149
- theme = props.theme,
2150
- _props$iconType = props.iconType,
2151
- iconType = _props$iconType === void 0 ? "plain-color-svg" : _props$iconType,
2152
- _props$open = props.open,
2153
- open = _props$open === void 0 ? false : _props$open;
2154
- if (!fbUrl && !twitterUrl && !linkedinUrl && !whatsappUrl) return null;
2155
- var iconShade = getTextColor(theme);
2156
- var iconColor = iconShade === "dark" ? "#000000" : "#ffffff";
2157
- var options = {
2158
- fbUrl: fbUrl,
2159
- twitterUrl: twitterUrl,
2160
- linkedinUrl: linkedinUrl,
2161
- whatsappUrl: whatsappUrl,
2162
- iconColor: iconColor,
2163
- iconType: iconType
2164
- };
2165
- var iconsList = socialShareData(options);
2166
-
2167
- var _useState = React.useState(open),
2168
- _useState2 = _slicedToArray__default["default"](_useState, 2),
2169
- isOpen = _useState2[0],
2170
- setIsOpen = _useState2[1];
2171
-
2172
- var verticalShare = vertical ? "vertical" : "horizontal";
2173
- React.useEffect(function () {
2174
- return setIsOpen(open);
2175
- }, [open]);
2176
-
2177
- var shareIcon = function shareIcon() {
2178
- return /*#__PURE__*/React__default["default"].createElement("li", {
2179
- className: "social-share-template-m_icon__1Mnu5",
2180
- key: "horizontal-0"
2181
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2182
- onClick: clickHandler
2183
- }, getActionIcon(isOpen, iconColor)));
2184
- };
2185
-
2186
- var clickHandler = function clickHandler() {
2187
- setIsOpen(!isOpen);
2188
- };
2189
-
2190
- var popUpWrapper = function popUpWrapper() {
2191
- return /*#__PURE__*/React__default["default"].createElement("div", {
2192
- className: "social-share-template-m_tablet-view__kATzi"
2193
- }, !isOpen && /*#__PURE__*/React__default["default"].createElement("ul", {
2194
- className: _getClassName__default["default"]("wrapper ".concat(isOpen ? "open" : ""), _styleModuleImportMap$3)
2195
- }, shareIcon()), isOpen && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
2196
- className: "social-share-template-m_overlay__1nBp-",
2197
- onClick: clickHandler
2198
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2199
- className: "arr--popup " + _getClassName__default["default"]("popup-wrapper ".concat(isOpen ? "popup-open" : ""), _styleModuleImportMap$3)
2200
- }, /*#__PURE__*/React__default["default"].createElement(SocialSharePopup, {
2201
- fbUrl: fbUrl,
2202
- twitterUrl: twitterUrl,
2203
- linkedinUrl: linkedinUrl,
2204
- whatsappUrl: whatsappUrl,
2205
- iconType: iconType,
2206
- theme: theme,
2207
- closePopup: function closePopup() {
2208
- setIsOpen(false);
2209
- }
2210
- })))));
2211
- };
2212
-
2213
- var popupStyle = !isOpen && vertical ? "tablet-view-popup" : "";
2214
- return /*#__PURE__*/React__default["default"].createElement("div", {
2215
- "data-test-id": verticalShare,
2216
- className: "arr--share " + _getClassName__default["default"]("".concat(iconShade, " ").concat(verticalShare, " ").concat(popupStyle), _styleModuleImportMap$3)
2217
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2218
- className: "social-share-template-m_desktop-view__3TmkO"
2219
- }, /*#__PURE__*/React__default["default"].createElement("ul", {
2220
- "data-test-id": lodash.camelCase(iconType),
2221
- className: "desktop-share-wrapper " + _getClassName__default["default"]("wrapper ".concat(isOpen ? "open" : ""), _styleModuleImportMap$3)
2222
- }, shareIcon(), iconsList.map(function (iconData, index) {
2223
- return /*#__PURE__*/React__default["default"].createElement(ShareItem, _extends__default["default"]({}, iconData, {
2224
- key: iconData.name,
2225
- dataTestId: "card-share-".concat(index)
2226
- }));
2227
- }))), popUpWrapper());
2228
- };
2229
- SocialShareTemplate.propTypes = {
2230
- fbUrl: PropTypes__default["default"].string,
2231
- twitterUrl: PropTypes__default["default"].string,
2232
- linkedinUrl: PropTypes__default["default"].string,
2233
- whatsappUrl: PropTypes__default["default"].string,
2234
- vertical: PropTypes__default["default"].bool,
2235
- theme: PropTypes__default["default"].string,
2236
- iconType: PropTypes__default["default"].string,
2237
- open: PropTypes__default["default"]["boolean"]
2238
- };
2239
-
2240
- var LeftArrow = function LeftArrow(_ref) {
2241
- var _ref$color = _ref.color,
2242
- color = _ref$color === void 0 ? "#333" : _ref$color;
2243
- return /*#__PURE__*/React__default["default"].createElement("svg", {
2244
- xmlns: "http://www.w3.org/2000/svg",
2245
- width: "16",
2246
- height: "16",
2247
- viewBox: "0 0 10 16"
2248
- }, /*#__PURE__*/React__default["default"].createElement("g", {
2249
- fill: "none",
2250
- fillRule: "nonzero"
2251
- }, /*#__PURE__*/React__default["default"].createElement("path", {
2252
- d: "M17 20H-7V-4h24z",
2253
- opacity: ".384"
2254
- }), /*#__PURE__*/React__default["default"].createElement("path", {
2255
- stroke: color,
2256
- d: "M9 16L1 8l8-8"
2257
- })));
2258
- };
2259
- LeftArrow.propTypes = {
2260
- color: PropTypes__default["default"].string
2261
- };
2262
-
2263
- var RightArrow = function RightArrow(_ref) {
2264
- var _ref$color = _ref.color,
2265
- color = _ref$color === void 0 ? "#333" : _ref$color;
2266
- return /*#__PURE__*/React__default["default"].createElement("svg", {
2267
- xmlns: "http://www.w3.org/2000/svg",
2268
- width: "16",
2269
- height: "16",
2270
- viewBox: "0 0 10 16"
2271
- }, /*#__PURE__*/React__default["default"].createElement("g", {
2272
- fill: "none",
2273
- fillRule: "nonzero"
2274
- }, /*#__PURE__*/React__default["default"].createElement("path", {
2275
- d: "M-7-4h24v24H-7z",
2276
- opacity: ".384"
2277
- }), /*#__PURE__*/React__default["default"].createElement("path", {
2278
- stroke: color,
2279
- d: "M1 0l8 8-8 8"
2280
- })));
2281
- };
2282
- RightArrow.propTypes = {
2283
- color: PropTypes__default["default"].string
2284
- };
2285
-
2286
- var _styleModuleImportMap$2 = {
2287
- "./slider-arrow.m.css": {
2288
- "arrow": "slider-arrow-m_arrow__1eBUU",
2289
- "left-arrow-dark": "slider-arrow-m_left-arrow-dark__3mTJS",
2290
- "right-arrow-dark": "slider-arrow-m_right-arrow-dark__3hWZe",
2291
- "left-arrow-light": "slider-arrow-m_left-arrow-light__2ipUK",
2292
- "right-arrow-light": "slider-arrow-m_right-arrow-light__3omMU",
2293
- "left-arrow-ltr": "slider-arrow-m_left-arrow-ltr__1ngNF",
2294
- "right-arrow-ltr": "slider-arrow-m_right-arrow-ltr__2svWX",
2295
- "left-arrow-rtl": "slider-arrow-m_left-arrow-rtl__2ynyn",
2296
- "right-arrow-rtl": "slider-arrow-m_right-arrow-rtl__1GjPz"
2297
- }
2298
- };
2299
- var SliderArrow = function SliderArrow(_ref) {
2300
- var selectedIndex = _ref.selectedIndex,
2301
- previousClick = _ref.previousClick,
2302
- nextClick = _ref.nextClick,
2303
- noOfItems = _ref.noOfItems,
2304
- perView = _ref.perView,
2305
- languageDirection = _ref.languageDirection;
2306
-
2307
- if (noOfItems < 1) {
2308
- return null;
2309
- }
2310
-
2311
- var config = useStateValue() || {};
2312
- var textColor = getTextColor(config.theme);
2313
-
2314
- var rightArrowView = function rightArrowView() {
2315
- if (selectedIndex >= noOfItems - perView) return false;
2316
- return true;
2317
- };
2318
-
2319
- var getLeftArrowClassName = languageDirection === "rtl" ? "left-arrow-rtl" : "left-arrow-ltr";
2320
- var getRightArrowClassName = languageDirection === "rtl" ? "right-arrow-rtl" : "right-arrow-ltr";
2321
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, selectedIndex !== 0 ? /*#__PURE__*/React__default["default"].createElement("button", {
2322
- onClick: previousClick,
2323
- className: ("left-arrow ".concat(getLeftArrowClassName) ? "left-arrow ".concat(getLeftArrowClassName) + " " : "") + _getClassName__default["default"]("arrow left-arrow-".concat(textColor, " ").concat(getLeftArrowClassName), _styleModuleImportMap$2)
2324
- }, /*#__PURE__*/React__default["default"].createElement(LeftArrow, {
2325
- color: textColor === "dark" ? "#fff" : "#333"
2326
- })) : null, selectedIndex < noOfItems - 1 && rightArrowView() ? /*#__PURE__*/React__default["default"].createElement("button", {
2327
- onClick: nextClick,
2328
- className: ("right-arrow ".concat(getRightArrowClassName) ? "right-arrow ".concat(getRightArrowClassName) + " " : "") + _getClassName__default["default"]("arrow right-arrow-".concat(textColor, " ").concat(getRightArrowClassName), _styleModuleImportMap$2)
2329
- }, /*#__PURE__*/React__default["default"].createElement(RightArrow, {
2330
- color: textColor === "dark" ? "#fff" : "#333"
2331
- })) : null);
2332
- };
2333
- SliderArrow.propTypes = {
2334
- noOfItems: PropTypes.number,
2335
- perView: PropTypes.number,
2336
- slideIndicator: PropTypes.string,
2337
- previousClick: PropTypes.func,
2338
- nextClick: PropTypes.func,
2339
- selectedIndex: PropTypes.number,
2340
- languageDirection: PropTypes.string
2341
- };
2342
-
2343
- var _styleModuleImportMap$1 = {
2344
- "./slider-indicator.m.css": {
2345
- "indicators": "slider-indicator-m_indicators__3MNXc",
2346
- "indicator": "slider-indicator-m_indicator__gTv3x",
2347
- "indicator-button": "slider-indicator-m_indicator-button__1e82r",
2348
- "indicator-dots": "slider-indicator-m_indicator-dots__2TR3H",
2349
- "indicator-dots-dark": "slider-indicator-m_indicator-dots-dark__sGrev",
2350
- "indicator-dots-light": "slider-indicator-m_indicator-dots-light__2nPn-",
2351
- "indicator-dashes": "slider-indicator-m_indicator-dashes__DyNCE",
2352
- "indicator-dashes-dark": "slider-indicator-m_indicator-dashes-dark__VrqJI",
2353
- "indicator-dashes-light": "slider-indicator-m_indicator-dashes-light__34ESx"
2354
- }
2355
- };
2356
- var SliderIndicator = function SliderIndicator(_ref) {
2357
- var indicatorItems = _ref.indicatorItems,
2358
- indicatorClick = _ref.indicatorClick,
2359
- selectedIndex = _ref.selectedIndex,
2360
- indicatorType = _ref.indicatorType;
2361
-
2362
- if (indicatorItems.length < 1) {
2363
- return null;
2364
- }
2365
-
2366
- var config = useStateValue() || {};
2367
- var textColor = getTextColor(config.theme);
2368
- return /*#__PURE__*/React__default["default"].createElement("ul", {
2369
- className: "slider-indicators slider-indicator-m_indicators__3MNXc"
2370
- }, indicatorItems.map(function (_, index) {
2371
- return /*#__PURE__*/React__default["default"].createElement("li", {
2372
- key: "slider-".concat(index),
2373
- className: "indicator slider-indicator-m_indicator__gTv3x",
2374
- onClick: function onClick(e) {
2375
- return indicatorClick(e, index);
2376
- }
2377
- }, /*#__PURE__*/React__default["default"].createElement("button", {
2378
- "aria-pressed": selectedIndex === index ? "true" : "false",
2379
- className: ("indicator-button indicator-".concat(indicatorType) ? "indicator-button indicator-".concat(indicatorType) + " " : "") + _getClassName__default["default"]("indicator-button indicator-".concat(indicatorType, " indicator-").concat(indicatorType, "-").concat(textColor), _styleModuleImportMap$1)
2380
- }));
2381
- }));
2382
- };
2383
- SliderIndicator.propTypes = {
2384
- indicatorItems: PropTypes.array,
2385
- perView: PropTypes.number,
2386
- indicatorType: PropTypes.string,
2387
- indicatorClick: PropTypes.func,
2388
- selectedIndex: PropTypes.number
2389
- };
2390
-
2391
- var smoothScroll = function smoothScroll(node, topOrLeft, horizontal) {
2392
- var _node$scrollTo;
2393
-
2394
- node.scrollTo((_node$scrollTo = {}, _defineProperty__default["default"](_node$scrollTo, horizontal ? "left" : "top", topOrLeft), _defineProperty__default["default"](_node$scrollTo, "behavior", "smooth"), _node$scrollTo));
2395
- };
2396
-
2397
- var updateItemSelection = function updateItemSelection(index, languageDirection, scroller, noOfItems) {
2398
- var getScrollValue = Math.floor(scroller.current.scrollWidth * (index / noOfItems));
2399
- var scrollValue = languageDirection === "rtl" ? getScrollValue * -1 : getScrollValue;
2400
- smoothScroll(scroller.current, scrollValue, true);
2401
- };
2402
-
2403
- var setIndicatorValue = function setIndicatorValue(func, ms) {
2404
- var timeout;
2405
- return function () {
2406
- clearTimeout(timeout);
2407
- timeout = setTimeout(function () {
2408
- timeout = null;
2409
- func();
2410
- }, ms);
2411
- };
2412
- };
2413
-
2414
- var ScrollSnap = function ScrollSnap(_ref) {
2415
- var children = _ref.children,
2416
- isArrow = _ref.isArrow,
2417
- interval = _ref.interval,
2418
- isInfinite = _ref.isInfinite,
2419
- pauseOnHover = _ref.pauseOnHover,
2420
- perView = _ref.perView,
2421
- slideIndicator = _ref.slideIndicator;
2422
-
2423
- var _useState = React.useState(0),
2424
- _useState2 = _slicedToArray__default["default"](_useState, 2),
2425
- selectedIndex = _useState2[0],
2426
- setSelectedIndex = _useState2[1];
2427
-
2428
- var _useState3 = React.useState(false),
2429
- _useState4 = _slicedToArray__default["default"](_useState3, 2),
2430
- autoScroll = _useState4[0],
2431
- setAutoScroll = _useState4[1];
2432
-
2433
- var languageDirection = reactRedux.useSelector(function (state) {
2434
- return lodash.get(state, ["qt", "config", "language", "direction"], "ltr");
2435
- });
2436
- var noOfItems = children ? children.length : 0;
2437
- var scroller = React.useRef(null);
2438
- var numberOfIndicatorsToShow = children.length - (perView - 1);
2439
- var indicatorItems = children.slice(0, numberOfIndicatorsToShow);
2440
- React.useEffect(function () {
2441
- if (scroller.current) {
2442
- scroller.current.addEventListener("scroll", setIndicatorValue(function () {
2443
- var value = Math.round(scroller.current.scrollLeft / scroller.current.scrollWidth * noOfItems);
2444
- setSelectedIndex(Math.abs(value));
2445
- }, 150)); // For Default Selection if selectedIndex is not 0 then manually select it
2446
-
2447
- if (selectedIndex !== 0) {
2448
- updateItemSelection(selectedIndex);
2449
- }
2450
- }
2451
-
2452
- return function () {
2453
- scroller.current.removeEventListener("scroll", setIndicatorValue);
2454
- };
2455
- }, []); // Infinite scroll
2456
-
2457
- React.useEffect(function () {
2458
- if (isInfinite && !autoScroll) {
2459
- var timer = setInterval(function () {
2460
- infiniteScroll();
2461
- }, interval);
2462
- return function () {
2463
- clearInterval(timer);
2464
- };
2465
- }
2466
- }, [isInfinite, autoScroll]);
2467
-
2468
- var infiniteScroll = function infiniteScroll() {
2469
- setSelectedIndex(function (value) {
2470
- var newIndex = value === noOfItems - perView ? 0 : value + 1;
2471
- updateItemSelection(newIndex, languageDirection, scroller, noOfItems);
2472
- return newIndex;
2473
- });
2474
- };
2475
-
2476
- var pauseAutoPlay = function pauseAutoPlay() {
2477
- pauseOnHover && setAutoScroll(!autoScroll);
2478
- };
2479
-
2480
- var indicatorClick = function indicatorClick(e, newIndex) {
2481
- e.preventDefault();
2482
- e.stopPropagation();
2483
- setSelectedIndex(newIndex);
2484
- updateItemSelection(newIndex, languageDirection, scroller, noOfItems);
2485
- };
2486
-
2487
- var nextClick = function nextClick(e) {
2488
- e.preventDefault();
2489
- e.stopPropagation();
2490
-
2491
- if (selectedIndex < noOfItems) {
2492
- var newIndex = selectedIndex + 1;
2493
- setSelectedIndex(newIndex);
2494
- updateItemSelection(newIndex, languageDirection, scroller, noOfItems);
2495
- }
2496
- };
2497
-
2498
- var previousClick = function previousClick(e) {
2499
- e.preventDefault();
2500
- e.stopPropagation();
2501
- var newIndex = selectedIndex - 1;
2502
- setSelectedIndex(newIndex);
2503
- updateItemSelection(newIndex, languageDirection, scroller, noOfItems);
2504
- };
2505
-
2506
- return /*#__PURE__*/React__default["default"].createElement("div", {
2507
- className: "scroll-snap-container"
2508
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2509
- className: "scroll-snap-wrapper scroll-snap-m_wrapper__1Rz9v",
2510
- onMouseEnter: pauseAutoPlay,
2511
- onMouseLeave: pauseAutoPlay
2512
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2513
- ref: scroller,
2514
- className: "scroll-snap-carousel scroll-snap-m_carousel__2m3cg"
2515
- }, children), isArrow && /*#__PURE__*/React__default["default"].createElement(SliderArrow, {
2516
- noOfItems: noOfItems,
2517
- perView: perView,
2518
- previousClick: previousClick,
2519
- nextClick: nextClick,
2520
- selectedIndex: selectedIndex,
2521
- languageDirection: languageDirection
2522
- })), children.length > perView && slideIndicator !== "none" && /*#__PURE__*/React__default["default"].createElement(SliderIndicator, {
2523
- indicatorItems: indicatorItems,
2524
- indicatorClick: indicatorClick,
2525
- selectedIndex: selectedIndex,
2526
- indicatorType: slideIndicator
2527
- }));
2528
- };
2529
- ScrollSnap.defaultProps = {
2530
- isArrow: true,
2531
- isInfinite: false,
2532
- interval: 4000,
2533
- pauseOnHover: true,
2534
- perView: 1,
2535
- slideIndicator: "dots"
2536
- };
2537
- ScrollSnap.propTypes = {
2538
- children: PropTypes.array.isRequired,
2539
- isArrow: PropTypes.bool,
2540
- isInfinite: PropTypes.bool,
2541
- interval: PropTypes.number,
2542
- pauseOnHover: PropTypes.bool,
2543
- perView: PropTypes.number,
2544
- slideIndicator: PropTypes.string
2545
- };
2546
-
2547
- var ImageSlideshowBase = function ImageSlideshowBase(props) {
2548
- if (!props.element) return null;
2549
-
2550
- var Slide = function Slide(image, index, onClickHandler) {
2551
- var id = image.id,
2552
- imageS3Key = image["image-s3-key"],
2553
- metadata = image.metadata,
2554
- title = image.title,
2555
- _image$hyperlink = image.hyperlink,
2556
- hyperlink = _image$hyperlink === void 0 ? "" : _image$hyperlink;
2557
- return /*#__PURE__*/React__default["default"].createElement("div", {
2558
- className: "image-slideshow-m_slide__3URCC",
2559
- key: id
2560
- }, /*#__PURE__*/React__default["default"].createElement("figure", {
2561
- key: id,
2562
- className: "image-slideshow-m_image-container__2VTEK",
2563
- onClick: function onClick() {
2564
- return onClickHandler(index);
2565
- }
2566
- }, /*#__PURE__*/React__default["default"].createElement(components.LazyLoadImages, {
2567
- margin: "0px"
2568
- }, /*#__PURE__*/React__default["default"].createElement(components.ResponsiveImage, {
2569
- slug: imageS3Key,
2570
- metadata: metadata,
2571
- "aspect-ratio": [16, 9],
2572
- defaultWidth: 480,
2573
- widths: [250, 480, 640],
2574
- imgParams: {
2575
- auto: ["format", "compress"]
2576
- },
2577
- className: "image-slideshow-m_image__1p1fO",
2578
- alt: title
2579
- }))), hyperlink && /*#__PURE__*/React__default["default"].createElement(HyperLink, {
2580
- hyperLink: hyperlink
2581
- }), /*#__PURE__*/React__default["default"].createElement("p", {
2582
- className: "image-slideshow-m_caption__mWpmc",
2583
- dangerouslySetInnerHTML: {
2584
- __html: title
2585
- }
2586
- }));
2587
- };
2588
-
2589
- var ImageSlideshowTemplate = function ImageSlideshowTemplate(_ref) {
2590
- var onClickHandler = _ref.onClickHandler;
2591
- var storyElements = lodash.get(props, ["element", "story-elements"], []);
2592
- return /*#__PURE__*/React__default["default"].createElement("div", {
2593
- className: "arr--image-slideshow-element image-slideshow-m_slideshow__3jRFX",
2594
- "data-test-id": "image-slideshow"
2595
- }, /*#__PURE__*/React__default["default"].createElement(ScrollSnap, {
2596
- slideIndicator: "none"
2597
- }, storyElements.map(function (image, index) {
2598
- return Slide(image, index, onClickHandler);
2599
- })));
2600
- };
2601
-
2602
- ImageSlideshowTemplate.propTypes = {
2603
- onClickHandler: PropTypes__default["default"].func
2604
- };
2605
- return /*#__PURE__*/React__default["default"].createElement(FullScreenImages, {
2606
- template: ImageSlideshowTemplate,
2607
- element: props.element
2608
- });
2609
- };
2610
-
2611
- ImageSlideshowBase.propTypes = {
2612
- element: PropTypes__default["default"].shape({
2613
- "story-elements": PropTypes__default["default"].array
2614
- }),
2615
- story: shapeStory
2616
- };
2617
- var ImageSlideshow = withElementWrapper(ImageSlideshowBase);
2618
-
2619
- var _styleModuleImportMap = {
2620
- "./story-element-card.m.css": {
2621
- "element-container": "story-element-card-m_element-container__1ZeJL",
2622
- "live-blog": "story-element-card-m_live-blog__JSpmI",
2623
- "image-share": "story-element-card-m_image-share__2V7dB",
2624
- "story-card": "story-element-card-m_story-card__H2VYl",
2625
- "table": "story-element-card-m_table__34F2c",
2626
- "dark": "story-element-card-m_dark__1AX15",
2627
- "light": "story-element-card-m_light__3T2uA"
2628
- }
2629
- };
2630
-
2631
- var getElementType = function getElementType(element) {
2632
- return element["subtype"] || element["type"] || "";
2633
- };
2634
-
2635
- var getElement = function getElement(story, element) {
2636
- var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
2637
- var AdComponent = arguments.length > 3 ? arguments[3] : undefined;
2638
- var WidgetComp = arguments.length > 4 ? arguments[4] : undefined;
2639
- var index = arguments.length > 5 ? arguments[5] : undefined;
2640
- var cardId = arguments.length > 6 ? arguments[6] : undefined;
2641
- var _config$text = config.text,
2642
- text = _config$text === void 0 ? {} : _config$text,
2643
- _config$summary = config.summary,
2644
- summary = _config$summary === void 0 ? {} : _config$summary,
2645
- _config$blurb = config.blurb,
2646
- blurb = _config$blurb === void 0 ? {} : _config$blurb,
2647
- _config$blockquote = config.blockquote,
2648
- blockquote = _config$blockquote === void 0 ? {} : _config$blockquote,
2649
- _config$quote = config.quote,
2650
- quote = _config$quote === void 0 ? {} : _config$quote,
2651
- _config$alsoRead = config["also-read"],
2652
- alsoRead = _config$alsoRead === void 0 ? {} : _config$alsoRead,
2653
- _config$qAndA = config["q-and-a"],
2654
- qaElement = _config$qAndA === void 0 ? {} : _config$qAndA,
2655
- _config$question = config.question,
2656
- questionElement = _config$question === void 0 ? {} : _config$question,
2657
- _config$answer = config.answer,
2658
- answerElement = _config$answer === void 0 ? {} : _config$answer,
2659
- _config$references = config.references,
2660
- references = _config$references === void 0 ? {} : _config$references;
2661
- var elementType = getElementType(element);
2662
-
2663
- if (elementType === "image-gallery") {
2664
- elementType = element.metadata["type"];
2665
- }
2666
-
2667
- var storyElementId = lodash.get(element, ["id"]);
2668
-
2669
- switch (elementType) {
2670
- case "ad":
2671
- return /*#__PURE__*/React__default["default"].createElement(AdComponent, _extends__default["default"]({}, element, {
2672
- id: "ad-".concat(index, "_").concat(cardId)
2673
- }));
2674
-
2675
- case "widget":
2676
- return /*#__PURE__*/React__default["default"].createElement(WidgetComp, {
2677
- widgetCode: element.config.customCode,
2678
- id: "widget-".concat(index, "_").concat(cardId)
2679
- });
2680
-
2681
- case "text":
2682
- case "cta":
2683
- var _text$css = text.css;
2684
- _text$css = _text$css === void 0 ? {} : _text$css;
2685
- var _text$css$textColor = _text$css.textColor,
2686
- textElementColor = _text$css$textColor === void 0 ? "#000" : _text$css$textColor,
2687
- _text$css$hyperlinkCo = _text$css.hyperlinkColor,
2688
- hyperlinkColor = _text$css$hyperlinkCo === void 0 ? "#2f81cd" : _text$css$hyperlinkCo;
2689
- return /*#__PURE__*/React__default["default"].createElement(Text, {
2690
- element: element,
2691
- css: {
2692
- textColor: textElementColor,
2693
- hyperlinkColor: hyperlinkColor
2694
- }
2695
- });
2696
-
2697
- case "summary":
2698
- var _summary$template = summary.template,
2699
- summaryTemplate = _summary$template === void 0 ? "" : _summary$template,
2700
- _summary$css = summary.css;
2701
- _summary$css = _summary$css === void 0 ? {} : _summary$css;
2702
- var _summary$css$headerBg = _summary$css.headerBgColor,
2703
- headerBgColor = _summary$css$headerBg === void 0 ? "" : _summary$css$headerBg,
2704
- _summary$opts = summary.opts;
2705
- _summary$opts = _summary$opts === void 0 ? {} : _summary$opts;
2706
- var _summary$opts$headlin = _summary$opts.headline,
2707
- headline = _summary$opts$headlin === void 0 ? "" : _summary$opts$headlin,
2708
- _summary$opts$hideHea = _summary$opts.hideHeadline,
2709
- hideHeadline = _summary$opts$hideHea === void 0 ? false : _summary$opts$hideHea;
2710
- return /*#__PURE__*/React__default["default"].createElement(Summary, {
2711
- element: element,
2712
- template: summaryTemplate,
2713
- opts: {
2714
- headline: headline || "Summary",
2715
- hideHeadline: hideHeadline
2716
- },
2717
- css: {
2718
- headerBgColor: headerBgColor || ""
2719
- }
2720
- });
2721
-
2722
- case "blurb":
2723
- var _blurb$template = blurb.template,
2724
- blurbTemplate = _blurb$template === void 0 ? "default" : _blurb$template,
2725
- _blurb$css = blurb.css;
2726
- _blurb$css = _blurb$css === void 0 ? {} : _blurb$css;
2727
- var _blurb$css$borderColo = _blurb$css.borderColor,
2728
- borderColor = _blurb$css$borderColo === void 0 ? "#2f81cd" : _blurb$css$borderColo;
2729
- return /*#__PURE__*/React__default["default"].createElement(Blurb, {
2730
- element: element,
2731
- template: blurbTemplate,
2732
- css: {
2733
- borderColor: borderColor
2734
- }
2735
- });
2736
-
2737
- case "blockquote":
2738
- var _blockquote$template = blockquote.template,
2739
- blockQuoteTemplate = _blockquote$template === void 0 ? "default" : _blockquote$template,
2740
- _blockquote$css = blockquote.css;
2741
- _blockquote$css = _blockquote$css === void 0 ? {} : _blockquote$css;
2742
- var _blockquote$css$iconT = _blockquote$css.iconType,
2743
- iconType = _blockquote$css$iconT === void 0 ? "edgeIcon" : _blockquote$css$iconT,
2744
- _blockquote$css$block = _blockquote$css.blockQuoteColor,
2745
- blockQuoteColor = _blockquote$css$block === void 0 ? "#2f81cd" : _blockquote$css$block,
2746
- _blockquote$css$backg = _blockquote$css.backgroundShade,
2747
- backgroundShade = _blockquote$css$backg === void 0 ? "" : _blockquote$css$backg;
2748
- return /*#__PURE__*/React__default["default"].createElement(BlockQuote, {
2749
- element: element,
2750
- template: blockQuoteTemplate,
2751
- css: {
2752
- iconType: iconType,
2753
- blockQuoteColor: blockQuoteColor,
2754
- backgroundShade: backgroundShade
2755
- }
2756
- });
2757
-
2758
- case "quote":
2759
- var _quote$template = quote.template,
2760
- quoteTemplate = _quote$template === void 0 ? "borderNone" : _quote$template,
2761
- _quote$css = quote.css;
2762
- _quote$css = _quote$css === void 0 ? {} : _quote$css;
2763
- var _quote$css$borderColo = _quote$css.borderColor,
2764
- quoteBorderColor = _quote$css$borderColo === void 0 ? "#2f81cd" : _quote$css$borderColo;
2765
- return /*#__PURE__*/React__default["default"].createElement(Quote, {
2766
- element: element,
2767
- template: quoteTemplate,
2768
- css: {
2769
- borderColor: quoteBorderColor
2770
- }
2771
- });
2772
-
2773
- case "bigfact":
2774
- return /*#__PURE__*/React__default["default"].createElement(BigFact, {
2775
- element: element
2776
- });
2777
-
2778
- case "also-read":
2779
- var _alsoRead$template = alsoRead.template,
2780
- alsoReadTemplate = _alsoRead$template === void 0 ? "default" : _alsoRead$template,
2781
- _alsoRead$css = alsoRead.css;
2782
- _alsoRead$css = _alsoRead$css === void 0 ? {} : _alsoRead$css;
2783
- var _alsoRead$css$textCol = _alsoRead$css.textColor,
2784
- textColor = _alsoRead$css$textCol === void 0 ? "#000" : _alsoRead$css$textCol,
2785
- _alsoRead$opts = alsoRead.opts;
2786
- _alsoRead$opts = _alsoRead$opts === void 0 ? {} : _alsoRead$opts;
2787
- var _alsoRead$opts$title = _alsoRead$opts.title,
2788
- title = _alsoRead$opts$title === void 0 ? "" : _alsoRead$opts$title;
2789
- return /*#__PURE__*/React__default["default"].createElement(AlsoRead, {
2790
- story: story,
2791
- element: element,
2792
- template: alsoReadTemplate,
2793
- css: {
2794
- textColor: textColor
2795
- },
2796
- opts: {
2797
- title: title
2798
- }
2799
- });
2800
-
2801
- case "image":
2802
- return /*#__PURE__*/React__default["default"].createElement(Image, {
2803
- element: element
2804
- });
2805
-
2806
- case "q-and-a":
2807
- var _qaElement$template = qaElement.template,
2808
- qaTemplate = _qaElement$template === void 0 ? "default" : _qaElement$template,
2809
- _qaElement$css = qaElement.css;
2810
- _qaElement$css = _qaElement$css === void 0 ? {} : _qaElement$css;
2811
- var _qaElement$css$iconCo = _qaElement$css.iconColor,
2812
- iconColor = _qaElement$css$iconCo === void 0 ? "" : _qaElement$css$iconCo,
2813
- _qaElement$opts = qaElement.opts;
2814
- _qaElement$opts = _qaElement$opts === void 0 ? {} : _qaElement$opts;
2815
- var _qaElement$opts$defau = _qaElement$opts.defaultIconType,
2816
- defaultIconType = _qaElement$opts$defau === void 0 ? "edge" : _qaElement$opts$defau;
2817
- return /*#__PURE__*/React__default["default"].createElement(QuestionAnswer, {
2818
- element: element,
2819
- opts: {
2820
- type: "q-and-a",
2821
- defaultIconType: defaultIconType
2822
- },
2823
- template: qaTemplate,
2824
- css: {
2825
- iconColor: iconColor
2826
- }
2827
- });
2828
-
2829
- case "question":
2830
- var _questionElement$temp = questionElement.template,
2831
- questionTemplate = _questionElement$temp === void 0 ? "default" : _questionElement$temp,
2832
- _questionElement$css = questionElement.css;
2833
- _questionElement$css = _questionElement$css === void 0 ? {} : _questionElement$css;
2834
- var _questionElement$css$ = _questionElement$css.questionIconColor,
2835
- questionIconColor = _questionElement$css$ === void 0 ? "" : _questionElement$css$,
2836
- _questionElement$opts = questionElement.opts;
2837
- _questionElement$opts = _questionElement$opts === void 0 ? {} : _questionElement$opts;
2838
- var _questionElement$opts2 = _questionElement$opts.defaultQuestionIconType,
2839
- defaultQuestionIconType = _questionElement$opts2 === void 0 ? "edge" : _questionElement$opts2;
2840
- return /*#__PURE__*/React__default["default"].createElement(QuestionAnswer, {
2841
- element: element,
2842
- opts: {
2843
- type: "question",
2844
- defaultIconType: defaultQuestionIconType
2845
- },
2846
- template: questionTemplate,
2847
- css: {
2848
- iconColor: questionIconColor
2849
- }
2850
- });
2851
-
2852
- case "answer":
2853
- var _answerElement$templa = answerElement.template,
2854
- answerTemplate = _answerElement$templa === void 0 ? "default" : _answerElement$templa,
2855
- _answerElement$css = answerElement.css;
2856
- _answerElement$css = _answerElement$css === void 0 ? {} : _answerElement$css;
2857
- var _answerElement$css$an = _answerElement$css.answerIconColor,
2858
- answerIconColor = _answerElement$css$an === void 0 ? "" : _answerElement$css$an,
2859
- _answerElement$opts = answerElement.opts;
2860
- _answerElement$opts = _answerElement$opts === void 0 ? {} : _answerElement$opts;
2861
- var _answerElement$opts$d = _answerElement$opts.defaultAnswerIconType,
2862
- defaultAnswerIconType = _answerElement$opts$d === void 0 ? "edge" : _answerElement$opts$d;
2863
- return /*#__PURE__*/React__default["default"].createElement(QuestionAnswer, {
2864
- element: element,
2865
- opts: {
2866
- type: "answer",
2867
- defaultIconType: defaultAnswerIconType
2868
- },
2869
- template: answerTemplate,
2870
- css: {
2871
- iconColor: answerIconColor
2872
- }
2873
- });
2874
-
2875
- case "gallery":
2876
- return /*#__PURE__*/React__default["default"].createElement("div", {
2877
- className: "content-style",
2878
- id: "image-gallery-".concat(storyElementId)
2879
- }, /*#__PURE__*/React__default["default"].createElement(ImageGallery, {
2880
- element: element
2881
- }));
2882
-
2883
- case "slideshow":
2884
- return /*#__PURE__*/React__default["default"].createElement("div", {
2885
- className: "content-style",
2886
- id: "image-slideshow-".concat(storyElementId)
2887
- }, /*#__PURE__*/React__default["default"].createElement(ImageSlideshow, {
2888
- element: element
2889
- }));
2890
-
2891
- case "youtube-video":
2892
- case "dailymotion-video":
2893
- return /*#__PURE__*/React__default["default"].createElement("div", {
2894
- className: "content-style",
2895
- id: "video-".concat(storyElementId)
2896
- }, /*#__PURE__*/React__default["default"].createElement(Video, {
2897
- element: element,
2898
- story: story,
2899
- loadIframeOnClick: true
2900
- }));
2901
-
2902
- case "attachment":
2903
- return /*#__PURE__*/React__default["default"].createElement(Attachment, {
2904
- element: element
2905
- });
2906
-
2907
- case "tweet":
2908
- case "jsembed":
2909
- return /*#__PURE__*/React__default["default"].createElement("div", {
2910
- className: "content-style",
2911
- id: "jsembed-".concat(storyElementId)
2912
- }, /*#__PURE__*/React__default["default"].createElement(StoryElement, {
2913
- element: element
2914
- }));
2915
-
2916
- case "references":
2917
- var _references$opts = references.opts;
2918
- _references$opts = _references$opts === void 0 ? {} : _references$opts;
2919
- var _references$opts$show = _references$opts.showHeadline,
2920
- showHeadline = _references$opts$show === void 0 ? true : _references$opts$show,
2921
- _references$opts$head = _references$opts.headlineText,
2922
- headlineText = _references$opts$head === void 0 ? "" : _references$opts$head;
2923
- return /*#__PURE__*/React__default["default"].createElement(Reference, {
2924
- element: element,
2925
- opts: {
2926
- showHeadline: showHeadline,
2927
- headlineText: headlineText
2928
- }
2929
- });
2930
-
2931
- default:
2932
- return /*#__PURE__*/React__default["default"].createElement("div", {
2933
- className: "content-style",
2934
- id: "element-".concat(storyElementId)
2935
- }, /*#__PURE__*/React__default["default"].createElement(StoryElement, {
2936
- element: element,
2937
- story: story
2938
- }));
2939
- }
2940
- };
2941
-
2942
- var MainImageWrapper = function MainImageWrapper(_ref) {
2943
- var imageElement = _ref.imageElement,
2944
- story = _ref.story;
2945
- _ref.children;
2946
- var config = _ref.config,
2947
- card = _ref.card;
2948
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
2949
- style: {
2950
- backgroundColor: config.theme
2951
- }
2952
- }, /*#__PURE__*/React__default["default"].createElement(Image, {
2953
- element: imageElement,
2954
- caption: false
2955
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2956
- className: "story-element-card-m_image-share__2V7dB"
2957
- }, /*#__PURE__*/React__default["default"].createElement(CaptionAttribution, {
2958
- element: imageElement,
2959
- config: config
2960
- }), /*#__PURE__*/React__default["default"].createElement(components.SocialShare, {
2961
- template: SocialShareTemplate,
2962
- title: story.headline,
2963
- theme: config.theme,
2964
- fullUrl: encodeURI("".concat(lodash.get(story, ["url"], ""), "?cardId=").concat(lodash.get(card, ["id"], -1)))
2965
- }))));
2966
- };
2967
-
2968
- MainImageWrapper.propTypes = {
2969
- story: PropTypes__default["default"].object,
2970
- imageElement: PropTypes__default["default"].object,
2971
- config: PropTypes__default["default"].object,
2972
- children: PropTypes__default["default"].node,
2973
- card: PropTypes__default["default"].shape({
2974
- id: PropTypes__default["default"].string
2975
- })
2976
- };
2977
- var StoryElementCard = function StoryElementCard(_ref2) {
2978
- var story = _ref2.story,
2979
- card = _ref2.card,
2980
- _ref2$heroVideoElemen = _ref2.heroVideoElementId,
2981
- heroVideoElementId = _ref2$heroVideoElemen === void 0 ? -1 : _ref2$heroVideoElemen,
2982
- config = _ref2.config,
2983
- isLive = _ref2.isLive,
2984
- theme = _ref2.theme,
2985
- adComponent = _ref2.adComponent,
2986
- widgetComp = _ref2.widgetComp;
2987
- var textColor = getTextColor(theme);
2988
- var isLiveBlog = isLive ? "live-blog" : "";
2989
- var shouldRunFBMobileVideoFix = true;
2990
- return /*#__PURE__*/React__default["default"].createElement("div", {
2991
- className: "arr--story-page-card-wrapper"
2992
- }, lodash.get(card, ["story-elements"], []).map(function (element, index) {
2993
- if (element.id === heroVideoElementId) return false;
2994
-
2995
- if (element.subtype && element.subtype === "facebook-post" && shouldRunFBMobileVideoFix) {
2996
- facebookMobileVideoResizeFix();
2997
- shouldRunFBMobileVideoFix = false;
2998
- }
2999
-
3000
- var tableStyle = element && element.subtype === "table" ? "table" : "";
3001
- var cardId = lodash.get(card, ["id"], "");
3002
- return /*#__PURE__*/React__default["default"].createElement("div", {
3003
- key: element.id,
3004
- className: "arr--element-container " + _getClassName__default["default"]("element-container ".concat(isLiveBlog, " ").concat(tableStyle, " ").concat(textColor), _styleModuleImportMap)
3005
- }, getElement(story, element, config, adComponent, widgetComp, index, cardId));
3006
- }));
3007
- };
3008
- StoryElementCard.propTypes = {
3009
- story: PropTypes__default["default"].object,
3010
- card: PropTypes__default["default"].array,
3011
- heroVideoElementId: PropTypes__default["default"].number,
3012
- config: PropTypes__default["default"].object,
3013
- isLive: PropTypes__default["default"].bool,
3014
- theme: PropTypes__default["default"].string,
3015
- adComponent: PropTypes__default["default"].func,
3016
- widgetComp: PropTypes__default["default"].func
3017
- };
3018
- var PhotoStoryElement = function PhotoStoryElement(_ref3) {
3019
- var _ref3$card = _ref3.card,
3020
- card = _ref3$card === void 0 ? {} : _ref3$card,
3021
- config = _ref3.config,
3022
- story = _ref3.story,
3023
- adComponent = _ref3.adComponent,
3024
- widgetComp = _ref3.widgetComp;
3025
- var shouldRunFBMobileVideoFix = true;
3026
- return /*#__PURE__*/React__default["default"].createElement("div", {
3027
- className: "story-element-card-m_story-card__H2VYl"
3028
- }, lodash.get(card, ["story-elements"], []).map(function (element, index) {
3029
- var cardId = lodash.get(card, ["id"], "");
3030
-
3031
- if (element.type === "image") {
3032
- return /*#__PURE__*/React__default["default"].createElement(MainImageWrapper, {
3033
- imageElement: element,
3034
- story: story,
3035
- config: config,
3036
- card: card
3037
- });
3038
- } else {
3039
- if (element.subtype && element.subtype === "facebook-post" && shouldRunFBMobileVideoFix) {
3040
- facebookMobileVideoResizeFix();
3041
- shouldRunFBMobileVideoFix = false;
3042
- }
3043
-
3044
- return /*#__PURE__*/React__default["default"].createElement("div", {
3045
- className: "story-element-card-m_element-container__1ZeJL",
3046
- key: index
3047
- }, getElement(story, element, config, adComponent, widgetComp, index, cardId));
3048
- }
3049
- }));
3050
- };
3051
- PhotoStoryElement.propTypes = {
3052
- story: PropTypes__default["default"].object,
3053
- card: PropTypes__default["default"].object,
3054
- config: PropTypes__default["default"].object,
3055
- adComponent: PropTypes__default["default"].func,
3056
- widgetComp: PropTypes__default["default"].func
3057
- };
3058
- var SlotAfterStory = function SlotAfterStory(_ref4) {
3059
- var _ref4$id = _ref4.id,
3060
- id = _ref4$id === void 0 ? "" : _ref4$id,
3061
- _ref4$element = _ref4.element,
3062
- element = _ref4$element === void 0 ? {} : _ref4$element,
3063
- AdComponent = _ref4.AdComponent,
3064
- WidgetComp = _ref4.WidgetComp;
3065
-
3066
- switch (element.type) {
3067
- case "ad":
3068
- return /*#__PURE__*/React__default["default"].createElement(AdComponent, _extends__default["default"]({}, element, {
3069
- id: "ad-after-story-".concat(id)
3070
- }));
3071
-
3072
- case "widget":
3073
- return /*#__PURE__*/React__default["default"].createElement(WidgetComp, {
3074
- widgetCode: element.config.customCode,
3075
- id: "widget-after-story-".concat(id)
3076
- });
3077
-
3078
- default:
3079
- return null;
3080
- }
3081
- };
3082
- SlotAfterStory.propTypes = {
3083
- id: PropTypes__default["default"].string,
3084
- element: PropTypes__default["default"].object,
3085
- AdComponent: PropTypes__default["default"].func,
3086
- WidgetComp: PropTypes__default["default"].func
3087
- };
3088
-
3089
- exports.PhotoStoryElement = PhotoStoryElement;
3090
- exports.SlotAfterStory = SlotAfterStory;
3091
- exports.StoryElementCard = StoryElementCard;