@ndla/ui 36.0.1 → 37.0.0

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 (188) hide show
  1. package/es/Article/Article.js +7 -13
  2. package/es/Article/ArticleByline.js +79 -123
  3. package/es/Article/ArticleFootNotes.js +16 -11
  4. package/es/AudioPlayer/AudioPlayer.js +33 -35
  5. package/es/AudioPlayer/initAudioPlayers.js +6 -1
  6. package/es/BlogPost/BlogPost.js +4 -4
  7. package/es/CampaignBlock/CampaignBlock.js +77 -0
  8. package/es/CampaignBlock/index.js +9 -0
  9. package/es/ContactBlock/ContactBlock.js +63 -39
  10. package/es/Embed/AudioEmbed.js +44 -188
  11. package/es/Embed/BrightcoveEmbed.js +27 -123
  12. package/es/Embed/ConceptEmbed.js +53 -75
  13. package/es/Embed/EmbedErrorPlaceholder.js +41 -0
  14. package/es/Embed/ExternalEmbed.js +5 -12
  15. package/es/Embed/H5pEmbed.js +4 -14
  16. package/es/Embed/IframeEmbed.js +4 -4
  17. package/es/Embed/ImageEmbed.js +41 -153
  18. package/es/Embed/conceptComponents.js +62 -228
  19. package/es/Embed/types.js +1 -0
  20. package/es/KeyFigure/KeyFigure.js +57 -0
  21. package/es/{KeyPerformanceIndicator → KeyFigure}/index.js +1 -1
  22. package/es/LicenseByline/EmbedByline.js +115 -0
  23. package/es/LicenseByline/LicenseDescription.js +39 -0
  24. package/es/LicenseByline/LicenseLink.js +36 -0
  25. package/es/LicenseByline/index.js +1 -0
  26. package/es/List/OrderedList.js +48 -0
  27. package/es/List/UnOrderedList.js +36 -0
  28. package/es/List/index.js +10 -0
  29. package/es/Navigation/NavigationBox.js +41 -48
  30. package/es/Navigation/NavigationHeading.js +18 -29
  31. package/es/Notion/Notion.js +5 -5
  32. package/es/Resource/resourceComponents.js +12 -11
  33. package/es/Typography/Heading.js +38 -0
  34. package/es/Typography/index.js +9 -0
  35. package/es/all.css +1 -1
  36. package/es/index.js +4 -2
  37. package/es/locale/messages-en.js +13 -2
  38. package/es/locale/messages-nb.js +13 -2
  39. package/es/locale/messages-nn.js +13 -2
  40. package/es/locale/messages-se.js +13 -2
  41. package/es/locale/messages-sma.js +13 -2
  42. package/es/model/ContentType.js +7 -1
  43. package/lib/Article/Article.d.ts +1 -3
  44. package/lib/Article/Article.js +7 -13
  45. package/lib/Article/ArticleByline.d.ts +3 -5
  46. package/lib/Article/ArticleByline.js +83 -126
  47. package/lib/Article/ArticleFootNotes.js +16 -11
  48. package/lib/AudioPlayer/AudioPlayer.d.ts +1 -2
  49. package/lib/AudioPlayer/AudioPlayer.js +33 -36
  50. package/lib/AudioPlayer/initAudioPlayers.d.ts +1 -0
  51. package/lib/AudioPlayer/initAudioPlayers.js +9 -3
  52. package/lib/BlogPost/BlogPost.js +4 -4
  53. package/lib/CampaignBlock/CampaignBlock.d.ts +31 -0
  54. package/lib/CampaignBlock/CampaignBlock.js +82 -0
  55. package/lib/CampaignBlock/index.d.ts +8 -0
  56. package/lib/CampaignBlock/index.js +13 -0
  57. package/lib/ContactBlock/ContactBlock.js +63 -39
  58. package/lib/Embed/AudioEmbed.d.ts +3 -2
  59. package/lib/Embed/AudioEmbed.js +53 -192
  60. package/lib/Embed/BrightcoveEmbed.d.ts +3 -1
  61. package/lib/Embed/BrightcoveEmbed.js +27 -122
  62. package/lib/Embed/ConceptEmbed.d.ts +7 -2
  63. package/lib/Embed/ConceptEmbed.js +51 -73
  64. package/lib/Embed/EmbedErrorPlaceholder.d.ts +17 -0
  65. package/lib/Embed/EmbedErrorPlaceholder.js +48 -0
  66. package/lib/Embed/ExternalEmbed.js +5 -11
  67. package/lib/Embed/H5pEmbed.js +4 -13
  68. package/lib/Embed/IframeEmbed.d.ts +2 -2
  69. package/lib/Embed/IframeEmbed.js +4 -4
  70. package/lib/Embed/ImageEmbed.d.ts +3 -10
  71. package/lib/Embed/ImageEmbed.js +48 -161
  72. package/lib/Embed/conceptComponents.d.ts +4 -2
  73. package/lib/Embed/conceptComponents.js +67 -231
  74. package/lib/Embed/index.d.ts +1 -0
  75. package/lib/Embed/types.d.ts +14 -0
  76. package/lib/Embed/types.js +5 -0
  77. package/lib/KeyFigure/KeyFigure.d.ts +10 -0
  78. package/lib/KeyFigure/KeyFigure.js +62 -0
  79. package/lib/KeyFigure/index.d.ts +1 -0
  80. package/lib/KeyFigure/index.js +13 -0
  81. package/lib/LicenseByline/EmbedByline.d.ts +51 -0
  82. package/lib/LicenseByline/EmbedByline.js +120 -0
  83. package/lib/LicenseByline/LicenseDescription.d.ts +14 -0
  84. package/lib/LicenseByline/LicenseDescription.js +44 -0
  85. package/lib/LicenseByline/LicenseLink.d.ts +14 -0
  86. package/lib/LicenseByline/LicenseLink.js +44 -0
  87. package/lib/LicenseByline/index.d.ts +1 -0
  88. package/lib/LicenseByline/index.js +13 -0
  89. package/lib/List/OrderedList.d.ts +15 -0
  90. package/lib/List/OrderedList.js +56 -0
  91. package/lib/List/UnOrderedList.d.ts +10 -0
  92. package/lib/List/UnOrderedList.js +43 -0
  93. package/lib/List/index.d.ts +9 -0
  94. package/lib/List/index.js +20 -0
  95. package/lib/Navigation/NavigationBox.js +40 -47
  96. package/lib/Navigation/NavigationHeading.js +17 -28
  97. package/lib/Notion/Notion.js +5 -5
  98. package/lib/Resource/resourceComponents.js +12 -11
  99. package/lib/Typography/Heading.d.ts +26 -0
  100. package/lib/Typography/Heading.js +45 -0
  101. package/lib/Typography/index.d.ts +8 -0
  102. package/lib/Typography/index.js +13 -0
  103. package/lib/all.css +1 -1
  104. package/lib/index.d.ts +4 -1
  105. package/lib/index.js +23 -3
  106. package/lib/locale/messages-en.d.ts +11 -0
  107. package/lib/locale/messages-en.js +13 -2
  108. package/lib/locale/messages-nb.d.ts +11 -0
  109. package/lib/locale/messages-nb.js +13 -2
  110. package/lib/locale/messages-nn.d.ts +11 -0
  111. package/lib/locale/messages-nn.js +13 -2
  112. package/lib/locale/messages-se.d.ts +11 -0
  113. package/lib/locale/messages-se.js +13 -2
  114. package/lib/locale/messages-sma.d.ts +11 -0
  115. package/lib/locale/messages-sma.js +13 -2
  116. package/lib/model/ContentType.d.ts +1 -0
  117. package/lib/model/ContentType.js +9 -2
  118. package/package.json +15 -15
  119. package/src/Article/Article.tsx +1 -8
  120. package/src/Article/ArticleByline.tsx +78 -127
  121. package/src/Article/ArticleFootNotes.tsx +33 -10
  122. package/src/Article/component.article.scss +1 -52
  123. package/src/Article/component.footnotes.scss +2 -2
  124. package/src/Aside/component.aside.scss +3 -3
  125. package/src/AudioPlayer/AudioPlayer.tsx +11 -24
  126. package/src/AudioPlayer/initAudioPlayers.tsx +7 -2
  127. package/src/BlogPost/BlogPost.tsx +0 -4
  128. package/src/CampaignBlock/CampaignBlock.stories.tsx +63 -0
  129. package/src/CampaignBlock/CampaignBlock.tsx +99 -0
  130. package/src/CampaignBlock/index.ts +9 -0
  131. package/src/ContactBlock/ContactBlock.tsx +27 -19
  132. package/src/ContactBlock/Contactblock.stories.tsx +0 -1
  133. package/src/Dialog/component.dialog.scss +4 -5
  134. package/src/Embed/AudioEmbed.stories.tsx +5 -3
  135. package/src/Embed/AudioEmbed.tsx +45 -192
  136. package/src/Embed/BrightcoveEmbed.stories.tsx +5 -1
  137. package/src/Embed/BrightcoveEmbed.tsx +20 -95
  138. package/src/Embed/ConceptEmbed.stories.tsx +5 -0
  139. package/src/Embed/ConceptEmbed.tsx +43 -54
  140. package/src/Embed/EmbedErrorPlaceholder.tsx +59 -0
  141. package/src/Embed/ExternalEmbed.stories.tsx +86 -0
  142. package/src/Embed/ExternalEmbed.tsx +3 -8
  143. package/src/Embed/H5pEmbed.stories.tsx +92 -0
  144. package/src/Embed/H5pEmbed.tsx +2 -10
  145. package/src/Embed/IframeEmbed.stories.tsx +130 -0
  146. package/src/Embed/IframeEmbed.tsx +3 -3
  147. package/src/Embed/ImageEmbed.stories.tsx +3 -1
  148. package/src/Embed/ImageEmbed.tsx +21 -116
  149. package/src/Embed/conceptComponents.tsx +67 -257
  150. package/src/Embed/index.ts +1 -0
  151. package/src/Embed/types.ts +12 -0
  152. package/src/FactBox/component.factbox.scss +3 -3
  153. package/src/Figure/component.figure-license.scss +4 -4
  154. package/src/Figure/component.figure.scss +1 -1
  155. package/src/KeyFigure/KeyFigure.stories.tsx +36 -0
  156. package/src/{KeyPerformanceIndicator/KeyPerformanceIndicator.tsx → KeyFigure/KeyFigure.tsx} +9 -7
  157. package/src/{KeyPerformanceIndicator → KeyFigure}/index.ts +1 -1
  158. package/src/LicenseByline/EmbedByline.stories.tsx +83 -0
  159. package/src/LicenseByline/EmbedByline.tsx +165 -0
  160. package/src/LicenseByline/LicenseDescription.tsx +43 -0
  161. package/src/LicenseByline/LicenseLink.tsx +42 -0
  162. package/src/LicenseByline/index.tsx +1 -0
  163. package/src/List/OrderedList.tsx +115 -0
  164. package/src/List/UnOrderedList.tsx +49 -0
  165. package/src/List/index.ts +10 -0
  166. package/src/MediaList/component.medialist.scss +2 -2
  167. package/src/Navigation/NavigationBox.tsx +10 -14
  168. package/src/Navigation/NavigationHeading.tsx +15 -24
  169. package/src/Notion/Notion.tsx +1 -1
  170. package/src/RelatedArticleList/component.related-articles.scss +3 -13
  171. package/src/Resource/resourceComponents.tsx +4 -2
  172. package/src/Table/component.tables.scss +0 -46
  173. package/src/Translation/component.translation.scss +3 -5
  174. package/src/Typography/Heading.tsx +96 -0
  175. package/src/Typography/index.ts +9 -0
  176. package/src/index.ts +5 -1
  177. package/src/locale/messages-en.ts +11 -0
  178. package/src/locale/messages-nb.ts +11 -0
  179. package/src/locale/messages-nn.ts +11 -0
  180. package/src/locale/messages-se.ts +11 -0
  181. package/src/locale/messages-sma.ts +11 -0
  182. package/src/model/ContentType.ts +7 -0
  183. package/es/KeyPerformanceIndicator/KeyPerformanceIndicator.js +0 -57
  184. package/lib/KeyPerformanceIndicator/KeyPerformanceIndicator.d.ts +0 -8
  185. package/lib/KeyPerformanceIndicator/KeyPerformanceIndicator.js +0 -62
  186. package/lib/KeyPerformanceIndicator/index.d.ts +0 -1
  187. package/lib/KeyPerformanceIndicator/index.js +0 -13
  188. package/src/KeyPerformanceIndicator/KeyPerformanceIndicator.stories.tsx +0 -79
@@ -4,30 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getFirstNonEmptyLicenseCredits = exports["default"] = void 0;
7
- var _licenses = require("@ndla/licenses");
8
- var _modal = require("@ndla/modal");
9
- var _react = require("react");
10
- var _reactI18next = require("react-i18next");
11
7
  var _remarkable = require("remarkable");
12
- var _button = require("@ndla/button");
13
- var _safelink = require("@ndla/safelink");
14
8
  var _AudioPlayer = _interopRequireDefault(require("../AudioPlayer"));
15
9
  var _Figure = require("../Figure");
16
- var _FigureLicenseDialogContent = require("../Figure/FigureLicenseDialogContent");
10
+ var _LicenseByline = require("../LicenseByline");
11
+ var _EmbedErrorPlaceholder = _interopRequireDefault(require("./EmbedErrorPlaceholder"));
17
12
  var _jsxRuntime = require("@emotion/react/jsx-runtime");
18
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
20
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
22
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
23
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
24
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
25
- * Copyright (c) 2023-present, NDLA.
26
- *
27
- * This source code is licensed under the GPLv3 license found in the
28
- * LICENSE file in the root directory of this source tree.
29
- *
30
- */ //@ts-ignore
14
+ /**
15
+ * Copyright (c) 2023-present, NDLA.
16
+ *
17
+ * This source code is licensed under the GPLv3 license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ *
20
+ */
21
+
22
+ //@ts-ignore
23
+
31
24
  var getFirstNonEmptyLicenseCredits = function getFirstNonEmptyLicenseCredits(authors) {
32
25
  var _Object$values$find;
33
26
  return (_Object$values$find = Object.values(authors).find(function (i) {
@@ -44,38 +37,29 @@ var renderMarkdown = function renderMarkdown(text) {
44
37
  }
45
38
  });
46
39
  };
40
+ var imageMetaToMockEmbed = function imageMetaToMockEmbed(imageMeta) {
41
+ var _imageMeta$data$image, _imageMeta$data$image2, _imageMeta$data$image3, _imageMeta$data$image4;
42
+ return {
43
+ resource: 'image',
44
+ status: 'success',
45
+ // Make sure the seq is unused. It's rarely used, but it's nice to ensure uniqueness.
46
+ seq: imageMeta.seq + 0.1,
47
+ // We check that this exists where the function is used.
48
+ data: imageMeta.data.imageMeta,
49
+ embedData: {
50
+ resource: 'image',
51
+ resourceId: ((_imageMeta$data$image = imageMeta.data.imageMeta) === null || _imageMeta$data$image === void 0 ? void 0 : (_imageMeta$data$image2 = _imageMeta$data$image.id) === null || _imageMeta$data$image2 === void 0 ? void 0 : _imageMeta$data$image2.toString()) || '',
52
+ alt: (_imageMeta$data$image3 = (_imageMeta$data$image4 = imageMeta.data.imageMeta) === null || _imageMeta$data$image4 === void 0 ? void 0 : _imageMeta$data$image4.alttext.alttext) !== null && _imageMeta$data$image3 !== void 0 ? _imageMeta$data$image3 : ''
53
+ }
54
+ };
55
+ };
47
56
  var AudioEmbed = function AudioEmbed(_ref) {
48
- var _data$podcastMeta$int, _data$podcastMeta, _data$podcastMeta2;
57
+ var _data$manuscript, _data$podcastMeta, _data$podcastMeta$int, _data$podcastMeta2;
49
58
  var embed = _ref.embed,
50
- articlePath = _ref.articlePath;
51
- var _useTranslation = (0, _reactI18next.useTranslation)(),
52
- t = _useTranslation.t,
53
- i18n = _useTranslation.i18n;
54
- var _useState = (0, _react.useState)(false),
55
- _useState2 = _slicedToArray(_useState, 2),
56
- isOpen = _useState2[0],
57
- setIsOpen = _useState2[1];
59
+ HeartButton = _ref.heartButton;
58
60
  if (embed.status === 'error') {
59
- return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
60
- children: [(0, _jsxRuntime.jsxs)("svg", {
61
- fill: "#8A8888",
62
- height: "50",
63
- viewBox: "0 0 24 12",
64
- width: "100%",
65
- xmlns: "http://www.w3.org/2000/svg",
66
- style: {
67
- backgroundColor: '#EFF0F2'
68
- },
69
- children: [(0, _jsxRuntime.jsx)("path", {
70
- d: "M0 0h24v24H0V0z",
71
- fill: "none"
72
- }), (0, _jsxRuntime.jsx)("path", {
73
- transform: "scale(0.3) translate(28, 8.5)",
74
- d: "M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
75
- })]
76
- }), (0, _jsxRuntime.jsx)("figcaption", {
77
- children: t('audio.error.caption')
78
- })]
61
+ return (0, _jsxRuntime.jsx)(_EmbedErrorPlaceholder["default"], {
62
+ type: embed.embedData.type === 'standard' ? 'audio' : 'podcast'
79
63
  });
80
64
  }
81
65
  var data = embed.data,
@@ -92,166 +76,43 @@ var AudioEmbed = function AudioEmbed(_ref) {
92
76
  title: data.series.title.title,
93
77
  url: "/podkast/".concat(data.series.id)
94
78
  } : undefined;
95
- var textVersion = data.manuscript && renderMarkdown(data.manuscript.manuscript);
96
- var description = renderMarkdown((_data$podcastMeta$int = (_data$podcastMeta = data.podcastMeta) === null || _data$podcastMeta === void 0 ? void 0 : _data$podcastMeta.introduction) !== null && _data$podcastMeta$int !== void 0 ? _data$podcastMeta$int : '');
97
- var coverPhoto = (_data$podcastMeta2 = data.podcastMeta) === null || _data$podcastMeta2 === void 0 ? void 0 : _data$podcastMeta2.coverPhoto;
79
+ var textVersion = (_data$manuscript = data.manuscript) !== null && _data$manuscript !== void 0 && _data$manuscript.manuscript.length ? renderMarkdown(data.manuscript.manuscript) : undefined;
80
+ var coverPhoto = (_data$podcastMeta = data.podcastMeta) === null || _data$podcastMeta === void 0 ? void 0 : _data$podcastMeta.coverPhoto;
98
81
  var img = coverPhoto && {
99
82
  url: coverPhoto.url,
100
83
  alt: coverPhoto.altText
101
84
  };
102
- var authors = (0, _licenses.getLicenseCredits)(data.copyright);
103
- var license = (0, _licenses.getLicenseByAbbreviation)(data.copyright.license.license, i18n.language);
104
- var contributors = (0, _licenses.getGroupedContributorDescriptionList)(data.copyright, i18n.language).map(function (item) {
105
- return {
106
- name: item.description,
107
- type: item.label
108
- };
109
- });
110
85
  var figureId = "figure-".concat(seq, "-").concat(data.id);
111
- var copyString = data.audioType === 'podcast' ? (0, _licenses.figureApa7CopyString)(data.title.title, undefined, data.audioFile.url, articlePath, data.copyright, data.copyright.license.license, '', function (id) {
112
- return t(id);
113
- }, i18n.language) : undefined;
114
- var captionAuthors = getFirstNonEmptyLicenseCredits(authors);
115
86
  return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
116
87
  id: figureId,
117
88
  type: "full",
118
89
  children: [(0, _jsxRuntime.jsx)(_AudioPlayer["default"], {
119
- description: description,
90
+ description: (_data$podcastMeta$int = (_data$podcastMeta2 = data.podcastMeta) === null || _data$podcastMeta2 === void 0 ? void 0 : _data$podcastMeta2.introduction) !== null && _data$podcastMeta$int !== void 0 ? _data$podcastMeta$int : '',
120
91
  img: img,
121
92
  src: data.audioFile.url,
122
93
  textVersion: textVersion,
123
94
  title: data.title.title,
124
95
  subtitle: subtitle
125
- }), (0, _jsxRuntime.jsx)(_Figure.FigureCaption, {
126
- id: "",
127
- figureId: "",
128
- modalButton: (0, _jsxRuntime.jsx)(_button.ButtonV2, {
129
- variant: "outline",
130
- shape: "pill",
131
- size: "small",
132
- onClick: function onClick() {
133
- return setIsOpen(true);
134
- },
135
- children: t('audio.reuse')
136
- }),
137
- licenseRights: license.rights,
138
- authors: captionAuthors,
139
- locale: i18n.language
140
- }), (0, _jsxRuntime.jsx)(_modal.ModalV2, {
141
- controlled: true,
142
- isOpen: isOpen,
143
- onClose: function onClose() {
144
- return setIsOpen(false);
145
- },
146
- labelledBy: "license-dialog-rules-heading",
147
- children: function children(close) {
148
- return (0, _jsxRuntime.jsx)(_FigureLicenseDialogContent.FigureLicenseDialogContent, {
149
- onClose: close,
150
- title: data.title.title,
151
- license: license,
152
- authors: contributors,
153
- origin: data.copyright.origin,
154
- locale: i18n.language,
155
- type: "audio",
156
- children: data.copyright.license.license !== 'COPYRIGHT' && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
157
- children: [copyString && (0, _jsxRuntime.jsx)(_button.CopyButton, {
158
- variant: "outline",
159
- copyNode: t('license.hasCopiedTitle'),
160
- onClick: function onClick() {
161
- return navigator.clipboard.writeText(copyString);
162
- },
163
- children: t('license.copyTitle')
164
- }), (0, _jsxRuntime.jsx)(_safelink.SafeLinkButton, {
165
- download: true,
166
- to: data.audioFile.url,
167
- variant: "outline",
168
- children: t('audio.download')
169
- })]
170
- })
171
- });
172
- }
173
- }), data.imageMeta && (0, _jsxRuntime.jsx)(ImageLicense, {
174
- title: data.imageMeta.title.title,
175
- imageUrl: data.imageMeta.imageUrl,
96
+ }), (0, _jsxRuntime.jsx)(_LicenseByline.EmbedByline, {
97
+ error: false,
98
+ type: embedData.type === 'standard' ? 'audio' : 'podcast',
99
+ topRounded: false,
100
+ bottomRounded: !data.imageMeta,
101
+ copyright: embed.data.copyright,
102
+ children: HeartButton && (0, _jsxRuntime.jsx)(HeartButton, {
103
+ embed: embed
104
+ })
105
+ }), data.imageMeta && (0, _jsxRuntime.jsx)(_LicenseByline.EmbedByline, {
106
+ error: false,
107
+ first: false,
108
+ type: "image",
109
+ topRounded: false,
110
+ bottomRounded: true,
176
111
  copyright: data.imageMeta.copyright,
177
- articlePath: articlePath
178
- })]
179
- });
180
- };
181
- var ImageLicense = function ImageLicense(_ref2) {
182
- var articlePath = _ref2.articlePath,
183
- title = _ref2.title,
184
- imageUrl = _ref2.imageUrl,
185
- copyright = _ref2.copyright;
186
- var _useTranslation2 = (0, _reactI18next.useTranslation)(),
187
- t = _useTranslation2.t,
188
- i18n = _useTranslation2.i18n;
189
- var _useState3 = (0, _react.useState)(false),
190
- _useState4 = _slicedToArray(_useState3, 2),
191
- isOpen = _useState4[0],
192
- setIsOpen = _useState4[1];
193
- var copyString = (0, _licenses.figureApa7CopyString)(title, undefined, imageUrl, articlePath, copyright, copyright.license.license, undefined, function (id) {
194
- return t(id);
195
- }, i18n.language);
196
- var license = (0, _licenses.getLicenseByAbbreviation)(copyright.license.license, i18n.language);
197
- var authors = (0, _licenses.getLicenseCredits)(copyright);
198
- var contributors = (0, _licenses.getGroupedContributorDescriptionList)(copyright, i18n.language).map(function (item) {
199
- return {
200
- name: item.description,
201
- type: item.label
202
- };
203
- });
204
- var captionAuthors = getFirstNonEmptyLicenseCredits(authors);
205
- return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
206
- children: (0, _jsxRuntime.jsx)(_Figure.FigureCaption, {
207
- figureId: "",
208
- id: "",
209
- licenseRights: license.rights,
210
- modalButton: (0, _jsxRuntime.jsx)(_button.ButtonV2, {
211
- variant: "outline",
212
- shape: "pill",
213
- size: "small",
214
- onClick: function onClick() {
215
- return setIsOpen(true);
216
- },
217
- children: t('image.reuse')
218
- }),
219
- authors: captionAuthors,
220
- locale: i18n.language,
221
- children: (0, _jsxRuntime.jsx)(_modal.ModalV2, {
222
- controlled: true,
223
- isOpen: isOpen,
224
- onClose: function onClose() {
225
- return setIsOpen(false);
226
- },
227
- children: function children(close) {
228
- return (0, _jsxRuntime.jsx)(_FigureLicenseDialogContent.FigureLicenseDialogContent, {
229
- onClose: close,
230
- title: title,
231
- license: license,
232
- authors: contributors,
233
- origin: copyright.origin,
234
- locale: i18n.language,
235
- type: "image",
236
- children: copyright.license.license !== 'COPYRIGHTED' && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
237
- children: [copyString && (0, _jsxRuntime.jsx)(_button.CopyButton, {
238
- variant: "outline",
239
- copyNode: t('license.hasCopiedTitle'),
240
- onClick: function onClick() {
241
- return navigator.clipboard.writeText(copyString);
242
- },
243
- children: t('license.copyTitle')
244
- }), (0, _jsxRuntime.jsx)(_safelink.SafeLinkButton, {
245
- download: true,
246
- to: imageUrl,
247
- variant: "outline",
248
- children: t('image.download')
249
- })]
250
- })
251
- });
252
- }
112
+ children: HeartButton && (0, _jsxRuntime.jsx)(HeartButton, {
113
+ embed: imageMetaToMockEmbed(embed)
253
114
  })
254
- })
115
+ })]
255
116
  });
256
117
  };
257
118
  var _default = AudioEmbed;
@@ -6,11 +6,13 @@
6
6
  *
7
7
  */
8
8
  import { BrightcoveMetaData } from '@ndla/types-embed';
9
+ import { HeartButtonType } from './types';
9
10
  interface Props {
10
11
  embed: BrightcoveMetaData;
11
12
  isConcept?: boolean;
13
+ heartButton?: HeartButtonType;
12
14
  }
13
15
  export declare const makeIframeString: (url: string, width: string | number, height: string | number, title?: string) => string;
14
16
  export declare const isNumeric: (value: any) => boolean;
15
- declare const BrightcoveEmbed: ({ embed, isConcept }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
17
+ declare const BrightcoveEmbed: ({ embed, isConcept, heartButton: HeartButton }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
16
18
  export default BrightcoveEmbed;
@@ -6,18 +6,15 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.makeIframeString = exports.isNumeric = exports["default"] = void 0;
8
8
  var _base = _interopRequireDefault(require("@emotion/styled/base"));
9
- var _sortBy2 = _interopRequireDefault(require("lodash/sortBy"));
9
+ var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
10
10
  var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
11
11
  var _core = require("@ndla/core");
12
- var _licenses = require("@ndla/licenses");
13
12
  var _react = require("react");
14
- var _modal = require("@ndla/modal");
15
- var _safelink = require("@ndla/safelink");
16
13
  var _reactI18next = require("react-i18next");
17
14
  var _button = require("@ndla/button");
18
15
  var _Figure = require("../Figure");
19
- var _FigureLicenseDialogContent = require("../Figure/FigureLicenseDialogContent");
20
- var _AudioEmbed = require("./AudioEmbed");
16
+ var _LicenseByline = require("../LicenseByline");
17
+ var _EmbedErrorPlaceholder = _interopRequireDefault(require("./EmbedErrorPlaceholder"));
21
18
  var _jsxRuntime = require("@emotion/react/jsx-runtime");
22
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
20
  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; }
@@ -41,7 +38,7 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
41
38
  var LinkedVideoButton = /*#__PURE__*/(0, _base["default"])(_button.ButtonV2, {
42
39
  target: "e2wbdyh1",
43
40
  label: "LinkedVideoButton"
44
- })("margin-left:", _core.spacing.small, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJyaWdodGNvdmVFbWJlZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEIwQyIsImZpbGUiOiJCcmlnaHRjb3ZlRW1iZWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc29ydEJ5IGZyb20gJ2xvZGFzaC9zb3J0QnknO1xuaW1wb3J0IGlzTnVtYmVyIGZyb20gJ2xvZGFzaC9pc051bWJlcic7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBzcGFjaW5nIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyBnZXRHcm91cGVkQ29udHJpYnV0b3JEZXNjcmlwdGlvbkxpc3QsIGdldExpY2Vuc2VCeUFiYnJldmlhdGlvbiB9IGZyb20gJ0BuZGxhL2xpY2Vuc2VzJztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1vZGFsVjIgfSBmcm9tICdAbmRsYS9tb2RhbCc7XG5pbXBvcnQgeyBTYWZlTGlua0J1dHRvbiB9IGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IEJyaWdodGNvdmVFbWJlZERhdGEsIEJyaWdodGNvdmVNZXRhRGF0YSwgQnJpZ2h0Y292ZVZpZGVvU291cmNlIH0gZnJvbSAnQG5kbGEvdHlwZXMtZW1iZWQnO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCB7IEJ1dHRvblYyLCBDb3B5QnV0dG9uIH0gZnJvbSAnQG5kbGEvYnV0dG9uJztcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlQ2FwdGlvbiB9IGZyb20gJy4uL0ZpZ3VyZSc7XG5pbXBvcnQgeyBGaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCB9IGZyb20gJy4uL0ZpZ3VyZS9GaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyBnZXRGaXJzdE5vbkVtcHR5TGljZW5zZUNyZWRpdHMgfSBmcm9tICcuL0F1ZGlvRW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQnJpZ2h0Y292ZU1ldGFEYXRhO1xuICBpc0NvbmNlcHQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBMaW5rZWRWaWRlb0J1dHRvbiA9IHN0eWxlZChCdXR0b25WMilgXG4gIG1hcmdpbi1sZWZ0OiAke3NwYWNpbmcuc21hbGx9O1xuYDtcblxuY29uc3QgQnJpZ2h0Y292ZUlmcmFtZSA9IHN0eWxlZC5pZnJhbWVgXG4gIGhlaWdodDogYXV0bztcbmA7XG5cbmV4cG9ydCBjb25zdCBtYWtlSWZyYW1lU3RyaW5nID0gKHVybDogc3RyaW5nLCB3aWR0aDogc3RyaW5nIHwgbnVtYmVyLCBoZWlnaHQ6IHN0cmluZyB8IG51bWJlciwgdGl0bGU6IHN0cmluZyA9ICcnKSA9PiB7XG4gIGNvbnN0IHN0cmlwcGVkV2lkdGggPSBpc051bWJlcih3aWR0aCkgPyB3aWR0aCA6IHdpZHRoLnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3Qgc3RyaXBwZWRIZWlnaHQgPSBpc051bWJlcihoZWlnaHQpID8gaGVpZ2h0IDogaGVpZ2h0LnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3QgdXJsT3JUaXRsZSA9IHRpdGxlIHx8IHVybDtcbiAgcmV0dXJuIGA8aWZyYW1lIHRpdGxlPVwiJHt1cmxPclRpdGxlfVwiIGFyaWEtbGFiZWw9XCIke3VybE9yVGl0bGV9XCIgc3JjPVwiJHt1cmx9XCIgd2lkdGg9XCIke3N0cmlwcGVkV2lkdGh9XCIgaGVpZ2h0PVwiJHtzdHJpcHBlZEhlaWdodH1cIiBhbGxvd2Z1bGxzY3JlZW4gc2Nyb2xsaW5nPVwibm9cIiBmcmFtZWJvcmRlcj1cIjBcIiBsb2FkaW5nPVwibGF6eVwiPjwvaWZyYW1lPmA7XG59O1xuXG5leHBvcnQgY29uc3QgaXNOdW1lcmljID0gKHZhbHVlOiBhbnkpID0+ICFOdW1iZXIuaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7XG5cbmNvbnN0IGdldElmcmFtZVByb3BzID0gKGRhdGE6IEJyaWdodGNvdmVFbWJlZERhdGEsIHNvdXJjZXM6IEJyaWdodGNvdmVWaWRlb1NvdXJjZVtdKSA9PiB7XG4gIGNvbnN0IHsgYWNjb3VudCwgdmlkZW9pZCwgcGxheWVyID0gJ2RlZmF1bHQnIH0gPSBkYXRhO1xuXG4gIGNvbnN0IHNvdXJjZSA9IHNvcnRCeShcbiAgICBzb3VyY2VzLmZpbHRlcigocykgPT4gcy53aWR0aCAmJiBzLmhlaWdodCksXG4gICAgKHMpID0+IHMuaGVpZ2h0LFxuICApWzBdO1xuXG4gIHJldHVybiB7XG4gICAgc3JjOiBgaHR0cHM6Ly9wbGF5ZXJzLmJyaWdodGNvdmUubmV0LyR7YWNjb3VudH0vJHtwbGF5ZXJ9X2RlZmF1bHQvaW5kZXguaHRtbD92aWRlb0lkPSR7dmlkZW9pZH1gLFxuICAgIGhlaWdodDogc291cmNlPy5oZWlnaHQgPz8gJzQ4MCcsXG4gICAgd2lkdGg6IHNvdXJjZT8ud2lkdGggPz8gJzY0MCcsXG4gIH07XG59O1xuY29uc3QgQnJpZ2h0Y292ZUVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd09yaWdpbmFsVmlkZW8sIHNldFNob3dPcmlnaW5hbFZpZGVvXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlmcmFtZVJlZiA9IHVzZVJlZjxIVE1MSUZyYW1lRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHsgZW1iZWREYXRhIH0gPSBlbWJlZDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlmcmFtZSA9IGlmcmFtZVJlZi5jdXJyZW50O1xuICAgIGlmIChpZnJhbWUpIHtcbiAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFtwYXJzZUludChpZnJhbWUud2lkdGgpLCBwYXJzZUludChpZnJhbWUuaGVpZ2h0KV07XG4gICAgICBpZnJhbWUuc3R5bGUuYXNwZWN0UmF0aW8gPSBgJHt3aWR0aH0vJHtoZWlnaHR9YDtcbiAgICAgIGlmcmFtZS53aWR0aCA9ICcnO1xuICAgICAgaWZyYW1lLmhlaWdodCA9ICcnO1xuICAgIH1cbiAgfSwgW10pO1xuICBpZiAoZW1iZWQuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxGaWd1cmUgdHlwZT17aXNDb25jZXB0ID8gJ2Z1bGwtY29sdW1uJyA6ICdmdWxsJ30gcmVzaXplSWZyYW1lPlxuICAgICAgICA8QnJpZ2h0Y292ZUlmcmFtZVxuICAgICAgICAgIHJlZj17aWZyYW1lUmVmfVxuICAgICAgICAgIHRpdGxlPXtgVmlkZW86ICR7ZW1iZWREYXRhLnZpZGVvaWQgPz8gJyd9YH1cbiAgICAgICAgICBhcmlhLWxhYmVsPXtgVmlkZW86ICR7ZW1iZWREYXRhLnZpZGVvaWQgPz8gJyd9YH1cbiAgICAgICAgICBmcmFtZUJvcmRlcj1cIjBcIlxuICAgICAgICAgIHsuLi5nZXRJZnJhbWVQcm9wcyhlbWJlZERhdGEsIFtdKX1cbiAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgLz5cbiAgICAgICAgPGZpZ2NhcHRpb24+e3QoJ3ZpZGVvLmVycm9yJyl9PC9maWdjYXB0aW9uPlxuICAgICAgPC9GaWd1cmU+XG4gICAgKTtcbiAgfVxuICBjb25zdCB7IGRhdGEsIHNlcSB9ID0gZW1iZWQ7XG5cbiAgY29uc3QgbGlua2VkVmlkZW9JZCA9IGlzTnVtZXJpYyhkYXRhLmxpbms/LnRleHQpID8gZGF0YS5saW5rPy50ZXh0IDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGxpY2Vuc2UgPSBnZXRMaWNlbnNlQnlBYmJyZXZpYXRpb24oZGF0YS5jb3B5cmlnaHQ/LmxpY2Vuc2UubGljZW5zZSA/PyAnJywgaTE4bi5sYW5ndWFnZSk7XG4gIGNvbnN0IGNvbnRyaWJ1dG9ycyA9IGRhdGEuY29weXJpZ2h0XG4gICAgPyBnZXRHcm91cGVkQ29udHJpYnV0b3JEZXNjcmlwdGlvbkxpc3QoZGF0YS5jb3B5cmlnaHQsIGkxOG4ubGFuZ3VhZ2UpLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgbmFtZTogaXRlbS5kZXNjcmlwdGlvbixcbiAgICAgICAgdHlwZTogaXRlbS5sYWJlbCxcbiAgICAgIH0pKVxuICAgIDogW107XG5cbiAgY29uc3QgeyByaWdodHNob2xkZXJzID0gW10sIGNyZWF0b3JzID0gW10sIHByb2Nlc3NvcnMgPSBbXSB9ID0gZGF0YS5jb3B5cmlnaHQgPz8ge307XG5cbiAgY29uc3QgZG93bmxvYWQgPSBzb3J0QnkoXG4gICAgZGF0YS5zb3VyY2VzLmZpbHRlcigoc3JjKSA9PiBzcmMuY29udGFpbmVyID09PSAnTVA0JyAmJiBzcmMuc3JjKSxcbiAgICAoc3JjKSA9PiBzcmMuc2l6ZSxcbiAgKT8uWzBdPy5zcmM7XG5cbiAgY29uc3QgZmlndXJlSWQgPSBgZmlndXJlLSR7c2VxfS0ke2RhdGEuaWR9YDtcbiAgY29uc3Qgb3JpZ2luYWxWaWRlb1Byb3BzID0gZ2V0SWZyYW1lUHJvcHMoZW1iZWREYXRhLCBkYXRhLnNvdXJjZXMpO1xuICBjb25zdCBhbHRlcm5hdGl2ZVZpZGVvUHJvcHMgPSBsaW5rZWRWaWRlb0lkXG4gICAgPyBnZXRJZnJhbWVQcm9wcyh7IC4uLmVtYmVkRGF0YSwgdmlkZW9pZDogbGlua2VkVmlkZW9JZCB9LCBkYXRhLnNvdXJjZXMpXG4gICAgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGNhcHRpb25BdXRob3JzID0gZ2V0Rmlyc3ROb25FbXB0eUxpY2Vuc2VDcmVkaXRzKHsgcmlnaHRzaG9sZGVycywgY3JlYXRvcnMsIHByb2Nlc3NvcnMgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmlndXJlIGlkPXtmaWd1cmVJZH0gdHlwZT17aXNDb25jZXB0ID8gJ2Z1bGwtY29sdW1uJyA6ICdmdWxsJ30gcmVzaXplSWZyYW1lPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJicmlnaHRjb3ZlLXZpZGVvXCI+XG4gICAgICAgIDxCcmlnaHRjb3ZlSWZyYW1lXG4gICAgICAgICAgcmVmPXtpZnJhbWVSZWZ9XG4gICAgICAgICAgY2xhc3NOYW1lPVwib3JpZ2luYWxcIlxuICAgICAgICAgIHRpdGxlPXtgVmlkZW86ICR7ZGF0YS5uYW1lfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YFZpZGVvOiAke2RhdGEubmFtZX1gfVxuICAgICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgICAgey4uLihhbHRlcm5hdGl2ZVZpZGVvUHJvcHMgJiYgIXNob3dPcmlnaW5hbFZpZGVvID8gYWx0ZXJuYXRpdmVWaWRlb1Byb3BzIDogb3JpZ2luYWxWaWRlb1Byb3BzKX1cbiAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPEZpZ3VyZUNhcHRpb25cbiAgICAgICAgZmlndXJlSWQ9e2ZpZ3VyZUlkfVxuICAgICAgICBpZD17ZGF0YS5pZH1cbiAgICAgICAgbG9jYWxlPXtpMThuLmxhbmd1YWdlfVxuICAgICAgICBjYXB0aW9uPXtlbWJlZERhdGEuY2FwdGlvbiA/PyAnJ31cbiAgICAgICAgbW9kYWxCdXR0b249e1xuICAgICAgICAgIDxCdXR0b25WMiB2YXJpYW50PVwib3V0bGluZVwiIHNoYXBlPVwicGlsbFwiIHNpemU9XCJzbWFsbFwiIG9uQ2xpY2s9eygpID0+IHNldElzT3Blbih0cnVlKX0+XG4gICAgICAgICAgICB7dCgndmlkZW8ucmV1c2UnKX1cbiAgICAgICAgICA8L0J1dHRvblYyPlxuICAgICAgICB9XG4gICAgICAgIGxpbmtlZFZpZGVvQnV0dG9uPXtcbiAgICAgICAgICA8TGlua2VkVmlkZW9CdXR0b25cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIHNoYXBlPVwicGlsbFwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd09yaWdpbmFsVmlkZW8oKHApID0+ICFwKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dChgZmlndXJlLmJ1dHRvbi4ke3Nob3dPcmlnaW5hbFZpZGVvID8gJ29yaWdpbmFsJyA6ICdhbHRlcm5hdGl2ZSd9YCl9XG4gICAgICAgICAgPC9MaW5rZWRWaWRlb0J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBsaWNlbnNlUmlnaHRzPXtsaWNlbnNlLnJpZ2h0c31cbiAgICAgICAgYXV0aG9ycz17Y2FwdGlvbkF1dGhvcnN9XG4gICAgICAgIGhhc0xpbmtlZFZpZGVvPXshIWxpbmtlZFZpZGVvSWR9XG4gICAgICAvPlxuICAgICAgPE1vZGFsVjIgY29udHJvbGxlZCBpc09wZW49e2lzT3Blbn0gb25DbG9zZT17KCkgPT4gc2V0SXNPcGVuKGZhbHNlKX0gbGFiZWxsZWRCeT1cImxpY2Vuc2UtZGlhbG9nLXJ1bGVzLWhlYWRpbmdcIj5cbiAgICAgICAgeyhjbG9zZSkgPT4gKFxuICAgICAgICAgIDxGaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudFxuICAgICAgICAgICAgb25DbG9zZT17Y2xvc2V9XG4gICAgICAgICAgICB0aXRsZT17ZGF0YS5uYW1lfVxuICAgICAgICAgICAgbG9jYWxlPXtpMThuLmxhbmd1YWdlfVxuICAgICAgICAgICAgbGljZW5zZT17bGljZW5zZX1cbiAgICAgICAgICAgIGF1dGhvcnM9e2NvbnRyaWJ1dG9yc31cbiAgICAgICAgICAgIHR5cGU9XCJ2aWRlb1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFZpZGVvTGljZW5zZUJ1dHRvbnNcbiAgICAgICAgICAgICAgZG93bmxvYWQ9e2Rvd25sb2FkfVxuICAgICAgICAgICAgICBsaWNlbnNlQ29kZT17ZGF0YS5jb3B5cmlnaHQ/LmxpY2Vuc2UubGljZW5zZX1cbiAgICAgICAgICAgICAgc3JjPXtvcmlnaW5hbFZpZGVvUHJvcHMuc3JjfVxuICAgICAgICAgICAgICB3aWR0aD17b3JpZ2luYWxWaWRlb1Byb3BzLndpZHRofVxuICAgICAgICAgICAgICBoZWlnaHQ9e29yaWdpbmFsVmlkZW9Qcm9wcy5oZWlnaHR9XG4gICAgICAgICAgICAgIG5hbWU9e2RhdGEubmFtZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9GaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudD5cbiAgICAgICAgKX1cbiAgICAgIDwvTW9kYWxWMj5cbiAgICA8L0ZpZ3VyZT5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBWaWRlb0xpY2Vuc2VCdXR0b25zUHJvcHMge1xuICBkb3dubG9hZDogc3RyaW5nO1xuICBsaWNlbnNlQ29kZT86IHN0cmluZztcbiAgc3JjOiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XG4gIGhlaWdodDogc3RyaW5nIHwgbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5jb25zdCBWaWRlb0xpY2Vuc2VCdXR0b25zID0gKHsgZG93bmxvYWQsIHNyYywgd2lkdGgsIGhlaWdodCwgbmFtZSwgbGljZW5zZUNvZGUgfTogVmlkZW9MaWNlbnNlQnV0dG9uc1Byb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2xpY2Vuc2VDb2RlICE9PSAnQ09QWVJJR0hURUQnICYmIChcbiAgICAgICAgPFNhZmVMaW5rQnV0dG9uIGtleT1cImRvd25sb2FkXCIgdG89e2Rvd25sb2FkfSB2YXJpYW50PVwib3V0bGluZVwiIGRvd25sb2FkPlxuICAgICAgICAgIHt0KCd2aWRlby5kb3dubG9hZCcpfVxuICAgICAgICA8L1NhZmVMaW5rQnV0dG9uPlxuICAgICAgKX1cbiAgICAgIDxDb3B5QnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgY29weU5vZGU9e3QoJ2xpY2Vuc2UuaGFzQ29waWVkVGl0bGUnKX1cbiAgICAgICAgb25DbGljaz17KCkgPT4gbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQobWFrZUlmcmFtZVN0cmluZyhzcmMsIHdpZHRoLCBoZWlnaHQsIG5hbWUpKX1cbiAgICAgID5cbiAgICAgICAge3QoJ2xpY2Vuc2UuZW1iZWQnKX1cbiAgICAgIDwvQ29weUJ1dHRvbj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJyaWdodGNvdmVFbWJlZDtcbiJdfQ== */"));
41
+ })("margin-left:", _core.spacing.small, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJyaWdodGNvdmVFbWJlZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkIwQyIsImZpbGUiOiJCcmlnaHRjb3ZlRW1iZWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc29ydEJ5IGZyb20gJ2xvZGFzaC9zb3J0QnknO1xuaW1wb3J0IGlzTnVtYmVyIGZyb20gJ2xvZGFzaC9pc051bWJlcic7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBzcGFjaW5nIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCcmlnaHRjb3ZlRW1iZWREYXRhLCBCcmlnaHRjb3ZlTWV0YURhdGEsIEJyaWdodGNvdmVWaWRlb1NvdXJjZSB9IGZyb20gJ0BuZGxhL3R5cGVzLWVtYmVkJztcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBCdXR0b25WMiB9IGZyb20gJ0BuZGxhL2J1dHRvbic7XG5pbXBvcnQgeyBGaWd1cmUgfSBmcm9tICcuLi9GaWd1cmUnO1xuaW1wb3J0IHsgRW1iZWRCeWxpbmUgfSBmcm9tICcuLi9MaWNlbnNlQnlsaW5lJztcbmltcG9ydCBFbWJlZEVycm9yUGxhY2Vob2xkZXIgZnJvbSAnLi9FbWJlZEVycm9yUGxhY2Vob2xkZXInO1xuaW1wb3J0IHsgSGVhcnRCdXR0b25UeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGVtYmVkOiBCcmlnaHRjb3ZlTWV0YURhdGE7XG4gIGlzQ29uY2VwdD86IGJvb2xlYW47XG4gIGhlYXJ0QnV0dG9uPzogSGVhcnRCdXR0b25UeXBlO1xufVxuXG5jb25zdCBMaW5rZWRWaWRlb0J1dHRvbiA9IHN0eWxlZChCdXR0b25WMilgXG4gIG1hcmdpbi1sZWZ0OiAke3NwYWNpbmcuc21hbGx9O1xuYDtcblxuY29uc3QgQnJpZ2h0Y292ZUlmcmFtZSA9IHN0eWxlZC5pZnJhbWVgXG4gIGhlaWdodDogYXV0bztcbmA7XG5cbmV4cG9ydCBjb25zdCBtYWtlSWZyYW1lU3RyaW5nID0gKHVybDogc3RyaW5nLCB3aWR0aDogc3RyaW5nIHwgbnVtYmVyLCBoZWlnaHQ6IHN0cmluZyB8IG51bWJlciwgdGl0bGU6IHN0cmluZyA9ICcnKSA9PiB7XG4gIGNvbnN0IHN0cmlwcGVkV2lkdGggPSBpc051bWJlcih3aWR0aCkgPyB3aWR0aCA6IHdpZHRoLnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3Qgc3RyaXBwZWRIZWlnaHQgPSBpc051bWJlcihoZWlnaHQpID8gaGVpZ2h0IDogaGVpZ2h0LnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3QgdXJsT3JUaXRsZSA9IHRpdGxlIHx8IHVybDtcbiAgcmV0dXJuIGA8aWZyYW1lIHRpdGxlPVwiJHt1cmxPclRpdGxlfVwiIGFyaWEtbGFiZWw9XCIke3VybE9yVGl0bGV9XCIgc3JjPVwiJHt1cmx9XCIgd2lkdGg9XCIke3N0cmlwcGVkV2lkdGh9XCIgaGVpZ2h0PVwiJHtzdHJpcHBlZEhlaWdodH1cIiBhbGxvd2Z1bGxzY3JlZW4gc2Nyb2xsaW5nPVwibm9cIiBmcmFtZWJvcmRlcj1cIjBcIiBsb2FkaW5nPVwibGF6eVwiPjwvaWZyYW1lPmA7XG59O1xuXG5leHBvcnQgY29uc3QgaXNOdW1lcmljID0gKHZhbHVlOiBhbnkpID0+ICFOdW1iZXIuaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7XG5cbmNvbnN0IGdldElmcmFtZVByb3BzID0gKGRhdGE6IEJyaWdodGNvdmVFbWJlZERhdGEsIHNvdXJjZXM6IEJyaWdodGNvdmVWaWRlb1NvdXJjZVtdKSA9PiB7XG4gIGNvbnN0IHsgYWNjb3VudCwgdmlkZW9pZCwgcGxheWVyID0gJ2RlZmF1bHQnIH0gPSBkYXRhO1xuXG4gIGNvbnN0IHNvdXJjZSA9IHNvcnRCeShcbiAgICBzb3VyY2VzLmZpbHRlcigocykgPT4gcy53aWR0aCAmJiBzLmhlaWdodCksXG4gICAgKHMpID0+IHMuaGVpZ2h0LFxuICApWzBdO1xuXG4gIHJldHVybiB7XG4gICAgc3JjOiBgaHR0cHM6Ly9wbGF5ZXJzLmJyaWdodGNvdmUubmV0LyR7YWNjb3VudH0vJHtwbGF5ZXJ9X2RlZmF1bHQvaW5kZXguaHRtbD92aWRlb0lkPSR7dmlkZW9pZH1gLFxuICAgIGhlaWdodDogc291cmNlPy5oZWlnaHQgPz8gJzQ4MCcsXG4gICAgd2lkdGg6IHNvdXJjZT8ud2lkdGggPz8gJzY0MCcsXG4gIH07XG59O1xuY29uc3QgQnJpZ2h0Y292ZUVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCwgaGVhcnRCdXR0b246IEhlYXJ0QnV0dG9uIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFtzaG93T3JpZ2luYWxWaWRlbywgc2V0U2hvd09yaWdpbmFsVmlkZW9dID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgaWZyYW1lUmVmID0gdXNlUmVmPEhUTUxJRnJhbWVFbGVtZW50PihudWxsKTtcbiAgY29uc3QgeyBlbWJlZERhdGEgfSA9IGVtYmVkO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaWZyYW1lID0gaWZyYW1lUmVmLmN1cnJlbnQ7XG4gICAgaWYgKGlmcmFtZSkge1xuICAgICAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID0gW3BhcnNlSW50KGlmcmFtZS53aWR0aCksIHBhcnNlSW50KGlmcmFtZS5oZWlnaHQpXTtcbiAgICAgIGlmcmFtZS5zdHlsZS5hc3BlY3RSYXRpbyA9IGAke3dpZHRofS8ke2hlaWdodH1gO1xuICAgICAgaWZyYW1lLndpZHRoID0gJyc7XG4gICAgICBpZnJhbWUuaGVpZ2h0ID0gJyc7XG4gICAgfVxuICB9LCBbXSk7XG4gIGlmIChlbWJlZC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEVtYmVkRXJyb3JQbGFjZWhvbGRlciB0eXBlPVwidmlkZW9cIj5cbiAgICAgICAgPEJyaWdodGNvdmVJZnJhbWVcbiAgICAgICAgICByZWY9e2lmcmFtZVJlZn1cbiAgICAgICAgICB0aXRsZT17YFZpZGVvOiAke2VtYmVkRGF0YS52aWRlb2lkID8/ICcnfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YFZpZGVvOiAke2VtYmVkRGF0YS52aWRlb2lkID8/ICcnfWB9XG4gICAgICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcbiAgICAgICAgICB7Li4uZ2V0SWZyYW1lUHJvcHMoZW1iZWREYXRhLCBbXSl9XG4gICAgICAgICAgYWxsb3dGdWxsU2NyZWVuXG4gICAgICAgIC8+XG4gICAgICA8L0VtYmVkRXJyb3JQbGFjZWhvbGRlcj5cbiAgICApO1xuICB9XG4gIGNvbnN0IHsgZGF0YSwgc2VxIH0gPSBlbWJlZDtcblxuICBjb25zdCBsaW5rZWRWaWRlb0lkID0gaXNOdW1lcmljKGRhdGEubGluaz8udGV4dCkgPyBkYXRhLmxpbms/LnRleHQgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgZmlndXJlSWQgPSBgZmlndXJlLSR7c2VxfS0ke2RhdGEuaWR9YDtcbiAgY29uc3Qgb3JpZ2luYWxWaWRlb1Byb3BzID0gZ2V0SWZyYW1lUHJvcHMoZW1iZWREYXRhLCBkYXRhLnNvdXJjZXMpO1xuICBjb25zdCBhbHRlcm5hdGl2ZVZpZGVvUHJvcHMgPSBsaW5rZWRWaWRlb0lkXG4gICAgPyBnZXRJZnJhbWVQcm9wcyh7IC4uLmVtYmVkRGF0YSwgdmlkZW9pZDogbGlua2VkVmlkZW9JZCB9LCBkYXRhLnNvdXJjZXMpXG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8RmlndXJlIGlkPXtmaWd1cmVJZH0gdHlwZT17aXNDb25jZXB0ID8gJ2Z1bGwtY29sdW1uJyA6ICdmdWxsJ30gcmVzaXplSWZyYW1lPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJicmlnaHRjb3ZlLXZpZGVvXCI+XG4gICAgICAgIDxCcmlnaHRjb3ZlSWZyYW1lXG4gICAgICAgICAgcmVmPXtpZnJhbWVSZWZ9XG4gICAgICAgICAgY2xhc3NOYW1lPVwib3JpZ2luYWxcIlxuICAgICAgICAgIHRpdGxlPXtgVmlkZW86ICR7ZGF0YS5uYW1lfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YFZpZGVvOiAke2RhdGEubmFtZX1gfVxuICAgICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgICAgey4uLihhbHRlcm5hdGl2ZVZpZGVvUHJvcHMgJiYgIXNob3dPcmlnaW5hbFZpZGVvID8gYWx0ZXJuYXRpdmVWaWRlb1Byb3BzIDogb3JpZ2luYWxWaWRlb1Byb3BzKX1cbiAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPEVtYmVkQnlsaW5lXG4gICAgICAgIHR5cGU9XCJ2aWRlb1wiXG4gICAgICAgIGNvcHlyaWdodD17ZGF0YS5jb3B5cmlnaHQhfVxuICAgICAgICBkZXNjcmlwdGlvbj17ZW1iZWREYXRhLmNhcHRpb24gPz8gZGF0YS5kZXNjcmlwdGlvbiA/PyAnJ31cbiAgICAgICAgYm90dG9tUm91bmRlZFxuICAgICAgPlxuICAgICAgICB7ISFsaW5rZWRWaWRlb0lkICYmIChcbiAgICAgICAgICA8TGlua2VkVmlkZW9CdXR0b25cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIHNoYXBlPVwicGlsbFwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd09yaWdpbmFsVmlkZW8oKHApID0+ICFwKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dChgZmlndXJlLmJ1dHRvbi4keyFzaG93T3JpZ2luYWxWaWRlbyA/ICdvcmlnaW5hbCcgOiAnYWx0ZXJuYXRpdmUnfWApfVxuICAgICAgICAgIDwvTGlua2VkVmlkZW9CdXR0b24+XG4gICAgICAgICl9XG4gICAgICAgIHtIZWFydEJ1dHRvbiAmJiA8SGVhcnRCdXR0b24gZW1iZWQ9e2VtYmVkfSAvPn1cbiAgICAgIDwvRW1iZWRCeWxpbmU+XG4gICAgPC9GaWd1cmU+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCcmlnaHRjb3ZlRW1iZWQ7XG4iXX0= */"));
45
42
  var BrightcoveIframe = /*#__PURE__*/(0, _base["default"])("iframe", {
46
43
  target: "e2wbdyh0",
47
44
  label: "BrightcoveIframe"
@@ -51,7 +48,7 @@ var BrightcoveIframe = /*#__PURE__*/(0, _base["default"])("iframe", {
51
48
  } : {
52
49
  name: "pit38s",
53
50
  styles: "height:auto",
54
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJyaWdodGNvdmVFbWJlZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0NzQyIsImZpbGUiOiJCcmlnaHRjb3ZlRW1iZWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc29ydEJ5IGZyb20gJ2xvZGFzaC9zb3J0QnknO1xuaW1wb3J0IGlzTnVtYmVyIGZyb20gJ2xvZGFzaC9pc051bWJlcic7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBzcGFjaW5nIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyBnZXRHcm91cGVkQ29udHJpYnV0b3JEZXNjcmlwdGlvbkxpc3QsIGdldExpY2Vuc2VCeUFiYnJldmlhdGlvbiB9IGZyb20gJ0BuZGxhL2xpY2Vuc2VzJztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1vZGFsVjIgfSBmcm9tICdAbmRsYS9tb2RhbCc7XG5pbXBvcnQgeyBTYWZlTGlua0J1dHRvbiB9IGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IEJyaWdodGNvdmVFbWJlZERhdGEsIEJyaWdodGNvdmVNZXRhRGF0YSwgQnJpZ2h0Y292ZVZpZGVvU291cmNlIH0gZnJvbSAnQG5kbGEvdHlwZXMtZW1iZWQnO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCB7IEJ1dHRvblYyLCBDb3B5QnV0dG9uIH0gZnJvbSAnQG5kbGEvYnV0dG9uJztcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlQ2FwdGlvbiB9IGZyb20gJy4uL0ZpZ3VyZSc7XG5pbXBvcnQgeyBGaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCB9IGZyb20gJy4uL0ZpZ3VyZS9GaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyBnZXRGaXJzdE5vbkVtcHR5TGljZW5zZUNyZWRpdHMgfSBmcm9tICcuL0F1ZGlvRW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQnJpZ2h0Y292ZU1ldGFEYXRhO1xuICBpc0NvbmNlcHQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBMaW5rZWRWaWRlb0J1dHRvbiA9IHN0eWxlZChCdXR0b25WMilgXG4gIG1hcmdpbi1sZWZ0OiAke3NwYWNpbmcuc21hbGx9O1xuYDtcblxuY29uc3QgQnJpZ2h0Y292ZUlmcmFtZSA9IHN0eWxlZC5pZnJhbWVgXG4gIGhlaWdodDogYXV0bztcbmA7XG5cbmV4cG9ydCBjb25zdCBtYWtlSWZyYW1lU3RyaW5nID0gKHVybDogc3RyaW5nLCB3aWR0aDogc3RyaW5nIHwgbnVtYmVyLCBoZWlnaHQ6IHN0cmluZyB8IG51bWJlciwgdGl0bGU6IHN0cmluZyA9ICcnKSA9PiB7XG4gIGNvbnN0IHN0cmlwcGVkV2lkdGggPSBpc051bWJlcih3aWR0aCkgPyB3aWR0aCA6IHdpZHRoLnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3Qgc3RyaXBwZWRIZWlnaHQgPSBpc051bWJlcihoZWlnaHQpID8gaGVpZ2h0IDogaGVpZ2h0LnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3QgdXJsT3JUaXRsZSA9IHRpdGxlIHx8IHVybDtcbiAgcmV0dXJuIGA8aWZyYW1lIHRpdGxlPVwiJHt1cmxPclRpdGxlfVwiIGFyaWEtbGFiZWw9XCIke3VybE9yVGl0bGV9XCIgc3JjPVwiJHt1cmx9XCIgd2lkdGg9XCIke3N0cmlwcGVkV2lkdGh9XCIgaGVpZ2h0PVwiJHtzdHJpcHBlZEhlaWdodH1cIiBhbGxvd2Z1bGxzY3JlZW4gc2Nyb2xsaW5nPVwibm9cIiBmcmFtZWJvcmRlcj1cIjBcIiBsb2FkaW5nPVwibGF6eVwiPjwvaWZyYW1lPmA7XG59O1xuXG5leHBvcnQgY29uc3QgaXNOdW1lcmljID0gKHZhbHVlOiBhbnkpID0+ICFOdW1iZXIuaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7XG5cbmNvbnN0IGdldElmcmFtZVByb3BzID0gKGRhdGE6IEJyaWdodGNvdmVFbWJlZERhdGEsIHNvdXJjZXM6IEJyaWdodGNvdmVWaWRlb1NvdXJjZVtdKSA9PiB7XG4gIGNvbnN0IHsgYWNjb3VudCwgdmlkZW9pZCwgcGxheWVyID0gJ2RlZmF1bHQnIH0gPSBkYXRhO1xuXG4gIGNvbnN0IHNvdXJjZSA9IHNvcnRCeShcbiAgICBzb3VyY2VzLmZpbHRlcigocykgPT4gcy53aWR0aCAmJiBzLmhlaWdodCksXG4gICAgKHMpID0+IHMuaGVpZ2h0LFxuICApWzBdO1xuXG4gIHJldHVybiB7XG4gICAgc3JjOiBgaHR0cHM6Ly9wbGF5ZXJzLmJyaWdodGNvdmUubmV0LyR7YWNjb3VudH0vJHtwbGF5ZXJ9X2RlZmF1bHQvaW5kZXguaHRtbD92aWRlb0lkPSR7dmlkZW9pZH1gLFxuICAgIGhlaWdodDogc291cmNlPy5oZWlnaHQgPz8gJzQ4MCcsXG4gICAgd2lkdGg6IHNvdXJjZT8ud2lkdGggPz8gJzY0MCcsXG4gIH07XG59O1xuY29uc3QgQnJpZ2h0Y292ZUVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd09yaWdpbmFsVmlkZW8sIHNldFNob3dPcmlnaW5hbFZpZGVvXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlmcmFtZVJlZiA9IHVzZVJlZjxIVE1MSUZyYW1lRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHsgZW1iZWREYXRhIH0gPSBlbWJlZDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlmcmFtZSA9IGlmcmFtZVJlZi5jdXJyZW50O1xuICAgIGlmIChpZnJhbWUpIHtcbiAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFtwYXJzZUludChpZnJhbWUud2lkdGgpLCBwYXJzZUludChpZnJhbWUuaGVpZ2h0KV07XG4gICAgICBpZnJhbWUuc3R5bGUuYXNwZWN0UmF0aW8gPSBgJHt3aWR0aH0vJHtoZWlnaHR9YDtcbiAgICAgIGlmcmFtZS53aWR0aCA9ICcnO1xuICAgICAgaWZyYW1lLmhlaWdodCA9ICcnO1xuICAgIH1cbiAgfSwgW10pO1xuICBpZiAoZW1iZWQuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxGaWd1cmUgdHlwZT17aXNDb25jZXB0ID8gJ2Z1bGwtY29sdW1uJyA6ICdmdWxsJ30gcmVzaXplSWZyYW1lPlxuICAgICAgICA8QnJpZ2h0Y292ZUlmcmFtZVxuICAgICAgICAgIHJlZj17aWZyYW1lUmVmfVxuICAgICAgICAgIHRpdGxlPXtgVmlkZW86ICR7ZW1iZWREYXRhLnZpZGVvaWQgPz8gJyd9YH1cbiAgICAgICAgICBhcmlhLWxhYmVsPXtgVmlkZW86ICR7ZW1iZWREYXRhLnZpZGVvaWQgPz8gJyd9YH1cbiAgICAgICAgICBmcmFtZUJvcmRlcj1cIjBcIlxuICAgICAgICAgIHsuLi5nZXRJZnJhbWVQcm9wcyhlbWJlZERhdGEsIFtdKX1cbiAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgLz5cbiAgICAgICAgPGZpZ2NhcHRpb24+e3QoJ3ZpZGVvLmVycm9yJyl9PC9maWdjYXB0aW9uPlxuICAgICAgPC9GaWd1cmU+XG4gICAgKTtcbiAgfVxuICBjb25zdCB7IGRhdGEsIHNlcSB9ID0gZW1iZWQ7XG5cbiAgY29uc3QgbGlua2VkVmlkZW9JZCA9IGlzTnVtZXJpYyhkYXRhLmxpbms/LnRleHQpID8gZGF0YS5saW5rPy50ZXh0IDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGxpY2Vuc2UgPSBnZXRMaWNlbnNlQnlBYmJyZXZpYXRpb24oZGF0YS5jb3B5cmlnaHQ/LmxpY2Vuc2UubGljZW5zZSA/PyAnJywgaTE4bi5sYW5ndWFnZSk7XG4gIGNvbnN0IGNvbnRyaWJ1dG9ycyA9IGRhdGEuY29weXJpZ2h0XG4gICAgPyBnZXRHcm91cGVkQ29udHJpYnV0b3JEZXNjcmlwdGlvbkxpc3QoZGF0YS5jb3B5cmlnaHQsIGkxOG4ubGFuZ3VhZ2UpLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgbmFtZTogaXRlbS5kZXNjcmlwdGlvbixcbiAgICAgICAgdHlwZTogaXRlbS5sYWJlbCxcbiAgICAgIH0pKVxuICAgIDogW107XG5cbiAgY29uc3QgeyByaWdodHNob2xkZXJzID0gW10sIGNyZWF0b3JzID0gW10sIHByb2Nlc3NvcnMgPSBbXSB9ID0gZGF0YS5jb3B5cmlnaHQgPz8ge307XG5cbiAgY29uc3QgZG93bmxvYWQgPSBzb3J0QnkoXG4gICAgZGF0YS5zb3VyY2VzLmZpbHRlcigoc3JjKSA9PiBzcmMuY29udGFpbmVyID09PSAnTVA0JyAmJiBzcmMuc3JjKSxcbiAgICAoc3JjKSA9PiBzcmMuc2l6ZSxcbiAgKT8uWzBdPy5zcmM7XG5cbiAgY29uc3QgZmlndXJlSWQgPSBgZmlndXJlLSR7c2VxfS0ke2RhdGEuaWR9YDtcbiAgY29uc3Qgb3JpZ2luYWxWaWRlb1Byb3BzID0gZ2V0SWZyYW1lUHJvcHMoZW1iZWREYXRhLCBkYXRhLnNvdXJjZXMpO1xuICBjb25zdCBhbHRlcm5hdGl2ZVZpZGVvUHJvcHMgPSBsaW5rZWRWaWRlb0lkXG4gICAgPyBnZXRJZnJhbWVQcm9wcyh7IC4uLmVtYmVkRGF0YSwgdmlkZW9pZDogbGlua2VkVmlkZW9JZCB9LCBkYXRhLnNvdXJjZXMpXG4gICAgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGNhcHRpb25BdXRob3JzID0gZ2V0Rmlyc3ROb25FbXB0eUxpY2Vuc2VDcmVkaXRzKHsgcmlnaHRzaG9sZGVycywgY3JlYXRvcnMsIHByb2Nlc3NvcnMgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmlndXJlIGlkPXtmaWd1cmVJZH0gdHlwZT17aXNDb25jZXB0ID8gJ2Z1bGwtY29sdW1uJyA6ICdmdWxsJ30gcmVzaXplSWZyYW1lPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJicmlnaHRjb3ZlLXZpZGVvXCI+XG4gICAgICAgIDxCcmlnaHRjb3ZlSWZyYW1lXG4gICAgICAgICAgcmVmPXtpZnJhbWVSZWZ9XG4gICAgICAgICAgY2xhc3NOYW1lPVwib3JpZ2luYWxcIlxuICAgICAgICAgIHRpdGxlPXtgVmlkZW86ICR7ZGF0YS5uYW1lfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YFZpZGVvOiAke2RhdGEubmFtZX1gfVxuICAgICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgICAgey4uLihhbHRlcm5hdGl2ZVZpZGVvUHJvcHMgJiYgIXNob3dPcmlnaW5hbFZpZGVvID8gYWx0ZXJuYXRpdmVWaWRlb1Byb3BzIDogb3JpZ2luYWxWaWRlb1Byb3BzKX1cbiAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPEZpZ3VyZUNhcHRpb25cbiAgICAgICAgZmlndXJlSWQ9e2ZpZ3VyZUlkfVxuICAgICAgICBpZD17ZGF0YS5pZH1cbiAgICAgICAgbG9jYWxlPXtpMThuLmxhbmd1YWdlfVxuICAgICAgICBjYXB0aW9uPXtlbWJlZERhdGEuY2FwdGlvbiA/PyAnJ31cbiAgICAgICAgbW9kYWxCdXR0b249e1xuICAgICAgICAgIDxCdXR0b25WMiB2YXJpYW50PVwib3V0bGluZVwiIHNoYXBlPVwicGlsbFwiIHNpemU9XCJzbWFsbFwiIG9uQ2xpY2s9eygpID0+IHNldElzT3Blbih0cnVlKX0+XG4gICAgICAgICAgICB7dCgndmlkZW8ucmV1c2UnKX1cbiAgICAgICAgICA8L0J1dHRvblYyPlxuICAgICAgICB9XG4gICAgICAgIGxpbmtlZFZpZGVvQnV0dG9uPXtcbiAgICAgICAgICA8TGlua2VkVmlkZW9CdXR0b25cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIHNoYXBlPVwicGlsbFwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd09yaWdpbmFsVmlkZW8oKHApID0+ICFwKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dChgZmlndXJlLmJ1dHRvbi4ke3Nob3dPcmlnaW5hbFZpZGVvID8gJ29yaWdpbmFsJyA6ICdhbHRlcm5hdGl2ZSd9YCl9XG4gICAgICAgICAgPC9MaW5rZWRWaWRlb0J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBsaWNlbnNlUmlnaHRzPXtsaWNlbnNlLnJpZ2h0c31cbiAgICAgICAgYXV0aG9ycz17Y2FwdGlvbkF1dGhvcnN9XG4gICAgICAgIGhhc0xpbmtlZFZpZGVvPXshIWxpbmtlZFZpZGVvSWR9XG4gICAgICAvPlxuICAgICAgPE1vZGFsVjIgY29udHJvbGxlZCBpc09wZW49e2lzT3Blbn0gb25DbG9zZT17KCkgPT4gc2V0SXNPcGVuKGZhbHNlKX0gbGFiZWxsZWRCeT1cImxpY2Vuc2UtZGlhbG9nLXJ1bGVzLWhlYWRpbmdcIj5cbiAgICAgICAgeyhjbG9zZSkgPT4gKFxuICAgICAgICAgIDxGaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudFxuICAgICAgICAgICAgb25DbG9zZT17Y2xvc2V9XG4gICAgICAgICAgICB0aXRsZT17ZGF0YS5uYW1lfVxuICAgICAgICAgICAgbG9jYWxlPXtpMThuLmxhbmd1YWdlfVxuICAgICAgICAgICAgbGljZW5zZT17bGljZW5zZX1cbiAgICAgICAgICAgIGF1dGhvcnM9e2NvbnRyaWJ1dG9yc31cbiAgICAgICAgICAgIHR5cGU9XCJ2aWRlb1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFZpZGVvTGljZW5zZUJ1dHRvbnNcbiAgICAgICAgICAgICAgZG93bmxvYWQ9e2Rvd25sb2FkfVxuICAgICAgICAgICAgICBsaWNlbnNlQ29kZT17ZGF0YS5jb3B5cmlnaHQ/LmxpY2Vuc2UubGljZW5zZX1cbiAgICAgICAgICAgICAgc3JjPXtvcmlnaW5hbFZpZGVvUHJvcHMuc3JjfVxuICAgICAgICAgICAgICB3aWR0aD17b3JpZ2luYWxWaWRlb1Byb3BzLndpZHRofVxuICAgICAgICAgICAgICBoZWlnaHQ9e29yaWdpbmFsVmlkZW9Qcm9wcy5oZWlnaHR9XG4gICAgICAgICAgICAgIG5hbWU9e2RhdGEubmFtZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9GaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudD5cbiAgICAgICAgKX1cbiAgICAgIDwvTW9kYWxWMj5cbiAgICA8L0ZpZ3VyZT5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBWaWRlb0xpY2Vuc2VCdXR0b25zUHJvcHMge1xuICBkb3dubG9hZDogc3RyaW5nO1xuICBsaWNlbnNlQ29kZT86IHN0cmluZztcbiAgc3JjOiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XG4gIGhlaWdodDogc3RyaW5nIHwgbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5jb25zdCBWaWRlb0xpY2Vuc2VCdXR0b25zID0gKHsgZG93bmxvYWQsIHNyYywgd2lkdGgsIGhlaWdodCwgbmFtZSwgbGljZW5zZUNvZGUgfTogVmlkZW9MaWNlbnNlQnV0dG9uc1Byb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2xpY2Vuc2VDb2RlICE9PSAnQ09QWVJJR0hURUQnICYmIChcbiAgICAgICAgPFNhZmVMaW5rQnV0dG9uIGtleT1cImRvd25sb2FkXCIgdG89e2Rvd25sb2FkfSB2YXJpYW50PVwib3V0bGluZVwiIGRvd25sb2FkPlxuICAgICAgICAgIHt0KCd2aWRlby5kb3dubG9hZCcpfVxuICAgICAgICA8L1NhZmVMaW5rQnV0dG9uPlxuICAgICAgKX1cbiAgICAgIDxDb3B5QnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgY29weU5vZGU9e3QoJ2xpY2Vuc2UuaGFzQ29waWVkVGl0bGUnKX1cbiAgICAgICAgb25DbGljaz17KCkgPT4gbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQobWFrZUlmcmFtZVN0cmluZyhzcmMsIHdpZHRoLCBoZWlnaHQsIG5hbWUpKX1cbiAgICAgID5cbiAgICAgICAge3QoJ2xpY2Vuc2UuZW1iZWQnKX1cbiAgICAgIDwvQ29weUJ1dHRvbj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJyaWdodGNvdmVFbWJlZDtcbiJdfQ== */",
51
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJyaWdodGNvdmVFbWJlZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0JzQyIsImZpbGUiOiJCcmlnaHRjb3ZlRW1iZWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc29ydEJ5IGZyb20gJ2xvZGFzaC9zb3J0QnknO1xuaW1wb3J0IGlzTnVtYmVyIGZyb20gJ2xvZGFzaC9pc051bWJlcic7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBzcGFjaW5nIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCcmlnaHRjb3ZlRW1iZWREYXRhLCBCcmlnaHRjb3ZlTWV0YURhdGEsIEJyaWdodGNvdmVWaWRlb1NvdXJjZSB9IGZyb20gJ0BuZGxhL3R5cGVzLWVtYmVkJztcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBCdXR0b25WMiB9IGZyb20gJ0BuZGxhL2J1dHRvbic7XG5pbXBvcnQgeyBGaWd1cmUgfSBmcm9tICcuLi9GaWd1cmUnO1xuaW1wb3J0IHsgRW1iZWRCeWxpbmUgfSBmcm9tICcuLi9MaWNlbnNlQnlsaW5lJztcbmltcG9ydCBFbWJlZEVycm9yUGxhY2Vob2xkZXIgZnJvbSAnLi9FbWJlZEVycm9yUGxhY2Vob2xkZXInO1xuaW1wb3J0IHsgSGVhcnRCdXR0b25UeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGVtYmVkOiBCcmlnaHRjb3ZlTWV0YURhdGE7XG4gIGlzQ29uY2VwdD86IGJvb2xlYW47XG4gIGhlYXJ0QnV0dG9uPzogSGVhcnRCdXR0b25UeXBlO1xufVxuXG5jb25zdCBMaW5rZWRWaWRlb0J1dHRvbiA9IHN0eWxlZChCdXR0b25WMilgXG4gIG1hcmdpbi1sZWZ0OiAke3NwYWNpbmcuc21hbGx9O1xuYDtcblxuY29uc3QgQnJpZ2h0Y292ZUlmcmFtZSA9IHN0eWxlZC5pZnJhbWVgXG4gIGhlaWdodDogYXV0bztcbmA7XG5cbmV4cG9ydCBjb25zdCBtYWtlSWZyYW1lU3RyaW5nID0gKHVybDogc3RyaW5nLCB3aWR0aDogc3RyaW5nIHwgbnVtYmVyLCBoZWlnaHQ6IHN0cmluZyB8IG51bWJlciwgdGl0bGU6IHN0cmluZyA9ICcnKSA9PiB7XG4gIGNvbnN0IHN0cmlwcGVkV2lkdGggPSBpc051bWJlcih3aWR0aCkgPyB3aWR0aCA6IHdpZHRoLnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3Qgc3RyaXBwZWRIZWlnaHQgPSBpc051bWJlcihoZWlnaHQpID8gaGVpZ2h0IDogaGVpZ2h0LnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3QgdXJsT3JUaXRsZSA9IHRpdGxlIHx8IHVybDtcbiAgcmV0dXJuIGA8aWZyYW1lIHRpdGxlPVwiJHt1cmxPclRpdGxlfVwiIGFyaWEtbGFiZWw9XCIke3VybE9yVGl0bGV9XCIgc3JjPVwiJHt1cmx9XCIgd2lkdGg9XCIke3N0cmlwcGVkV2lkdGh9XCIgaGVpZ2h0PVwiJHtzdHJpcHBlZEhlaWdodH1cIiBhbGxvd2Z1bGxzY3JlZW4gc2Nyb2xsaW5nPVwibm9cIiBmcmFtZWJvcmRlcj1cIjBcIiBsb2FkaW5nPVwibGF6eVwiPjwvaWZyYW1lPmA7XG59O1xuXG5leHBvcnQgY29uc3QgaXNOdW1lcmljID0gKHZhbHVlOiBhbnkpID0+ICFOdW1iZXIuaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7XG5cbmNvbnN0IGdldElmcmFtZVByb3BzID0gKGRhdGE6IEJyaWdodGNvdmVFbWJlZERhdGEsIHNvdXJjZXM6IEJyaWdodGNvdmVWaWRlb1NvdXJjZVtdKSA9PiB7XG4gIGNvbnN0IHsgYWNjb3VudCwgdmlkZW9pZCwgcGxheWVyID0gJ2RlZmF1bHQnIH0gPSBkYXRhO1xuXG4gIGNvbnN0IHNvdXJjZSA9IHNvcnRCeShcbiAgICBzb3VyY2VzLmZpbHRlcigocykgPT4gcy53aWR0aCAmJiBzLmhlaWdodCksXG4gICAgKHMpID0+IHMuaGVpZ2h0LFxuICApWzBdO1xuXG4gIHJldHVybiB7XG4gICAgc3JjOiBgaHR0cHM6Ly9wbGF5ZXJzLmJyaWdodGNvdmUubmV0LyR7YWNjb3VudH0vJHtwbGF5ZXJ9X2RlZmF1bHQvaW5kZXguaHRtbD92aWRlb0lkPSR7dmlkZW9pZH1gLFxuICAgIGhlaWdodDogc291cmNlPy5oZWlnaHQgPz8gJzQ4MCcsXG4gICAgd2lkdGg6IHNvdXJjZT8ud2lkdGggPz8gJzY0MCcsXG4gIH07XG59O1xuY29uc3QgQnJpZ2h0Y292ZUVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCwgaGVhcnRCdXR0b246IEhlYXJ0QnV0dG9uIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFtzaG93T3JpZ2luYWxWaWRlbywgc2V0U2hvd09yaWdpbmFsVmlkZW9dID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgaWZyYW1lUmVmID0gdXNlUmVmPEhUTUxJRnJhbWVFbGVtZW50PihudWxsKTtcbiAgY29uc3QgeyBlbWJlZERhdGEgfSA9IGVtYmVkO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaWZyYW1lID0gaWZyYW1lUmVmLmN1cnJlbnQ7XG4gICAgaWYgKGlmcmFtZSkge1xuICAgICAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID0gW3BhcnNlSW50KGlmcmFtZS53aWR0aCksIHBhcnNlSW50KGlmcmFtZS5oZWlnaHQpXTtcbiAgICAgIGlmcmFtZS5zdHlsZS5hc3BlY3RSYXRpbyA9IGAke3dpZHRofS8ke2hlaWdodH1gO1xuICAgICAgaWZyYW1lLndpZHRoID0gJyc7XG4gICAgICBpZnJhbWUuaGVpZ2h0ID0gJyc7XG4gICAgfVxuICB9LCBbXSk7XG4gIGlmIChlbWJlZC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEVtYmVkRXJyb3JQbGFjZWhvbGRlciB0eXBlPVwidmlkZW9cIj5cbiAgICAgICAgPEJyaWdodGNvdmVJZnJhbWVcbiAgICAgICAgICByZWY9e2lmcmFtZVJlZn1cbiAgICAgICAgICB0aXRsZT17YFZpZGVvOiAke2VtYmVkRGF0YS52aWRlb2lkID8/ICcnfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YFZpZGVvOiAke2VtYmVkRGF0YS52aWRlb2lkID8/ICcnfWB9XG4gICAgICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcbiAgICAgICAgICB7Li4uZ2V0SWZyYW1lUHJvcHMoZW1iZWREYXRhLCBbXSl9XG4gICAgICAgICAgYWxsb3dGdWxsU2NyZWVuXG4gICAgICAgIC8+XG4gICAgICA8L0VtYmVkRXJyb3JQbGFjZWhvbGRlcj5cbiAgICApO1xuICB9XG4gIGNvbnN0IHsgZGF0YSwgc2VxIH0gPSBlbWJlZDtcblxuICBjb25zdCBsaW5rZWRWaWRlb0lkID0gaXNOdW1lcmljKGRhdGEubGluaz8udGV4dCkgPyBkYXRhLmxpbms/LnRleHQgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgZmlndXJlSWQgPSBgZmlndXJlLSR7c2VxfS0ke2RhdGEuaWR9YDtcbiAgY29uc3Qgb3JpZ2luYWxWaWRlb1Byb3BzID0gZ2V0SWZyYW1lUHJvcHMoZW1iZWREYXRhLCBkYXRhLnNvdXJjZXMpO1xuICBjb25zdCBhbHRlcm5hdGl2ZVZpZGVvUHJvcHMgPSBsaW5rZWRWaWRlb0lkXG4gICAgPyBnZXRJZnJhbWVQcm9wcyh7IC4uLmVtYmVkRGF0YSwgdmlkZW9pZDogbGlua2VkVmlkZW9JZCB9LCBkYXRhLnNvdXJjZXMpXG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8RmlndXJlIGlkPXtmaWd1cmVJZH0gdHlwZT17aXNDb25jZXB0ID8gJ2Z1bGwtY29sdW1uJyA6ICdmdWxsJ30gcmVzaXplSWZyYW1lPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJicmlnaHRjb3ZlLXZpZGVvXCI+XG4gICAgICAgIDxCcmlnaHRjb3ZlSWZyYW1lXG4gICAgICAgICAgcmVmPXtpZnJhbWVSZWZ9XG4gICAgICAgICAgY2xhc3NOYW1lPVwib3JpZ2luYWxcIlxuICAgICAgICAgIHRpdGxlPXtgVmlkZW86ICR7ZGF0YS5uYW1lfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YFZpZGVvOiAke2RhdGEubmFtZX1gfVxuICAgICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgICAgey4uLihhbHRlcm5hdGl2ZVZpZGVvUHJvcHMgJiYgIXNob3dPcmlnaW5hbFZpZGVvID8gYWx0ZXJuYXRpdmVWaWRlb1Byb3BzIDogb3JpZ2luYWxWaWRlb1Byb3BzKX1cbiAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPEVtYmVkQnlsaW5lXG4gICAgICAgIHR5cGU9XCJ2aWRlb1wiXG4gICAgICAgIGNvcHlyaWdodD17ZGF0YS5jb3B5cmlnaHQhfVxuICAgICAgICBkZXNjcmlwdGlvbj17ZW1iZWREYXRhLmNhcHRpb24gPz8gZGF0YS5kZXNjcmlwdGlvbiA/PyAnJ31cbiAgICAgICAgYm90dG9tUm91bmRlZFxuICAgICAgPlxuICAgICAgICB7ISFsaW5rZWRWaWRlb0lkICYmIChcbiAgICAgICAgICA8TGlua2VkVmlkZW9CdXR0b25cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIHNoYXBlPVwicGlsbFwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd09yaWdpbmFsVmlkZW8oKHApID0+ICFwKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dChgZmlndXJlLmJ1dHRvbi4keyFzaG93T3JpZ2luYWxWaWRlbyA/ICdvcmlnaW5hbCcgOiAnYWx0ZXJuYXRpdmUnfWApfVxuICAgICAgICAgIDwvTGlua2VkVmlkZW9CdXR0b24+XG4gICAgICAgICl9XG4gICAgICAgIHtIZWFydEJ1dHRvbiAmJiA8SGVhcnRCdXR0b24gZW1iZWQ9e2VtYmVkfSAvPn1cbiAgICAgIDwvRW1iZWRCeWxpbmU+XG4gICAgPC9GaWd1cmU+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCcmlnaHRjb3ZlRW1iZWQ7XG4iXX0= */",
55
52
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
56
53
  });
57
54
  var makeIframeString = function makeIframeString(url, width, height) {
@@ -72,7 +69,7 @@ var getIframeProps = function getIframeProps(data, sources) {
72
69
  videoid = data.videoid,
73
70
  _data$player = data.player,
74
71
  player = _data$player === void 0 ? 'default' : _data$player;
75
- var source = (0, _sortBy2["default"])(sources.filter(function (s) {
72
+ var source = (0, _sortBy["default"])(sources.filter(function (s) {
76
73
  return s.width && s.height;
77
74
  }), function (s) {
78
75
  return s.height;
@@ -84,20 +81,16 @@ var getIframeProps = function getIframeProps(data, sources) {
84
81
  };
85
82
  };
86
83
  var BrightcoveEmbed = function BrightcoveEmbed(_ref) {
87
- var _data$link, _data$link2, _data$copyright$licen, _data$copyright, _data$copyright2, _sortBy, _sortBy$, _embedData$caption;
84
+ var _data$link, _data$link2, _ref3, _embedData$caption;
88
85
  var embed = _ref.embed,
89
- isConcept = _ref.isConcept;
90
- var _useState = (0, _react.useState)(false),
86
+ isConcept = _ref.isConcept,
87
+ HeartButton = _ref.heartButton;
88
+ var _useState = (0, _react.useState)(true),
91
89
  _useState2 = _slicedToArray(_useState, 2),
92
- isOpen = _useState2[0],
93
- setIsOpen = _useState2[1];
94
- var _useState3 = (0, _react.useState)(true),
95
- _useState4 = _slicedToArray(_useState3, 2),
96
- showOriginalVideo = _useState4[0],
97
- setShowOriginalVideo = _useState4[1];
90
+ showOriginalVideo = _useState2[0],
91
+ setShowOriginalVideo = _useState2[1];
98
92
  var _useTranslation = (0, _reactI18next.useTranslation)(),
99
- t = _useTranslation.t,
100
- i18n = _useTranslation.i18n;
93
+ t = _useTranslation.t;
101
94
  var iframeRef = (0, _react.useRef)(null);
102
95
  var embedData = embed.embedData;
103
96
  (0, _react.useEffect)(function () {
@@ -113,53 +106,26 @@ var BrightcoveEmbed = function BrightcoveEmbed(_ref) {
113
106
  }, []);
114
107
  if (embed.status === 'error') {
115
108
  var _embedData$videoid, _embedData$videoid2;
116
- return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
117
- type: isConcept ? 'full-column' : 'full',
118
- resizeIframe: true,
119
- children: [(0, _jsxRuntime.jsx)(BrightcoveIframe, _objectSpread(_objectSpread({
109
+ return (0, _jsxRuntime.jsx)(_EmbedErrorPlaceholder["default"], {
110
+ type: "video",
111
+ children: (0, _jsxRuntime.jsx)(BrightcoveIframe, _objectSpread(_objectSpread({
120
112
  ref: iframeRef,
121
113
  title: "Video: ".concat((_embedData$videoid = embedData.videoid) !== null && _embedData$videoid !== void 0 ? _embedData$videoid : ''),
122
114
  "aria-label": "Video: ".concat((_embedData$videoid2 = embedData.videoid) !== null && _embedData$videoid2 !== void 0 ? _embedData$videoid2 : ''),
123
115
  frameBorder: "0"
124
116
  }, getIframeProps(embedData, [])), {}, {
125
117
  allowFullScreen: true
126
- })), (0, _jsxRuntime.jsx)("figcaption", {
127
- children: t('video.error')
128
- })]
118
+ }))
129
119
  });
130
120
  }
131
121
  var data = embed.data,
132
122
  seq = embed.seq;
133
123
  var linkedVideoId = isNumeric((_data$link = data.link) === null || _data$link === void 0 ? void 0 : _data$link.text) ? (_data$link2 = data.link) === null || _data$link2 === void 0 ? void 0 : _data$link2.text : undefined;
134
- var license = (0, _licenses.getLicenseByAbbreviation)((_data$copyright$licen = (_data$copyright = data.copyright) === null || _data$copyright === void 0 ? void 0 : _data$copyright.license.license) !== null && _data$copyright$licen !== void 0 ? _data$copyright$licen : '', i18n.language);
135
- var contributors = data.copyright ? (0, _licenses.getGroupedContributorDescriptionList)(data.copyright, i18n.language).map(function (item) {
136
- return {
137
- name: item.description,
138
- type: item.label
139
- };
140
- }) : [];
141
- var _ref3 = (_data$copyright2 = data.copyright) !== null && _data$copyright2 !== void 0 ? _data$copyright2 : {},
142
- _ref3$rightsholders = _ref3.rightsholders,
143
- rightsholders = _ref3$rightsholders === void 0 ? [] : _ref3$rightsholders,
144
- _ref3$creators = _ref3.creators,
145
- creators = _ref3$creators === void 0 ? [] : _ref3$creators,
146
- _ref3$processors = _ref3.processors,
147
- processors = _ref3$processors === void 0 ? [] : _ref3$processors;
148
- var download = (_sortBy = (0, _sortBy2["default"])(data.sources.filter(function (src) {
149
- return src.container === 'MP4' && src.src;
150
- }), function (src) {
151
- return src.size;
152
- })) === null || _sortBy === void 0 ? void 0 : (_sortBy$ = _sortBy[0]) === null || _sortBy$ === void 0 ? void 0 : _sortBy$.src;
153
124
  var figureId = "figure-".concat(seq, "-").concat(data.id);
154
125
  var originalVideoProps = getIframeProps(embedData, data.sources);
155
126
  var alternativeVideoProps = linkedVideoId ? getIframeProps(_objectSpread(_objectSpread({}, embedData), {}, {
156
127
  videoid: linkedVideoId
157
128
  }), data.sources) : undefined;
158
- var captionAuthors = (0, _AudioEmbed.getFirstNonEmptyLicenseCredits)({
159
- rightsholders: rightsholders,
160
- creators: creators,
161
- processors: processors
162
- });
163
129
  return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
164
130
  id: figureId,
165
131
  type: isConcept ? 'full-column' : 'full',
@@ -175,21 +141,12 @@ var BrightcoveEmbed = function BrightcoveEmbed(_ref) {
175
141
  }, alternativeVideoProps && !showOriginalVideo ? alternativeVideoProps : originalVideoProps), {}, {
176
142
  allowFullScreen: true
177
143
  }))
178
- }), (0, _jsxRuntime.jsx)(_Figure.FigureCaption, {
179
- figureId: figureId,
180
- id: data.id,
181
- locale: i18n.language,
182
- caption: (_embedData$caption = embedData.caption) !== null && _embedData$caption !== void 0 ? _embedData$caption : '',
183
- modalButton: (0, _jsxRuntime.jsx)(_button.ButtonV2, {
184
- variant: "outline",
185
- shape: "pill",
186
- size: "small",
187
- onClick: function onClick() {
188
- return setIsOpen(true);
189
- },
190
- children: t('video.reuse')
191
- }),
192
- linkedVideoButton: (0, _jsxRuntime.jsx)(LinkedVideoButton, {
144
+ }), (0, _jsxRuntime.jsxs)(_LicenseByline.EmbedByline, {
145
+ type: "video",
146
+ copyright: data.copyright,
147
+ description: (_ref3 = (_embedData$caption = embedData.caption) !== null && _embedData$caption !== void 0 ? _embedData$caption : data.description) !== null && _ref3 !== void 0 ? _ref3 : '',
148
+ bottomRounded: true,
149
+ children: [!!linkedVideoId && (0, _jsxRuntime.jsx)(LinkedVideoButton, {
193
150
  variant: "outline",
194
151
  shape: "pill",
195
152
  size: "small",
@@ -198,62 +155,10 @@ var BrightcoveEmbed = function BrightcoveEmbed(_ref) {
198
155
  return !p;
199
156
  });
200
157
  },
201
- children: t("figure.button.".concat(showOriginalVideo ? 'original' : 'alternative'))
202
- }),
203
- licenseRights: license.rights,
204
- authors: captionAuthors,
205
- hasLinkedVideo: !!linkedVideoId
206
- }), (0, _jsxRuntime.jsx)(_modal.ModalV2, {
207
- controlled: true,
208
- isOpen: isOpen,
209
- onClose: function onClose() {
210
- return setIsOpen(false);
211
- },
212
- labelledBy: "license-dialog-rules-heading",
213
- children: function children(close) {
214
- var _data$copyright3;
215
- return (0, _jsxRuntime.jsx)(_FigureLicenseDialogContent.FigureLicenseDialogContent, {
216
- onClose: close,
217
- title: data.name,
218
- locale: i18n.language,
219
- license: license,
220
- authors: contributors,
221
- type: "video",
222
- children: (0, _jsxRuntime.jsx)(VideoLicenseButtons, {
223
- download: download,
224
- licenseCode: (_data$copyright3 = data.copyright) === null || _data$copyright3 === void 0 ? void 0 : _data$copyright3.license.license,
225
- src: originalVideoProps.src,
226
- width: originalVideoProps.width,
227
- height: originalVideoProps.height,
228
- name: data.name
229
- })
230
- });
231
- }
232
- })]
233
- });
234
- };
235
- var VideoLicenseButtons = function VideoLicenseButtons(_ref4) {
236
- var download = _ref4.download,
237
- src = _ref4.src,
238
- width = _ref4.width,
239
- height = _ref4.height,
240
- name = _ref4.name,
241
- licenseCode = _ref4.licenseCode;
242
- var _useTranslation2 = (0, _reactI18next.useTranslation)(),
243
- t = _useTranslation2.t;
244
- return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
245
- children: [licenseCode !== 'COPYRIGHTED' && (0, _jsxRuntime.jsx)(_safelink.SafeLinkButton, {
246
- to: download,
247
- variant: "outline",
248
- download: true,
249
- children: t('video.download')
250
- }, "download"), (0, _jsxRuntime.jsx)(_button.CopyButton, {
251
- variant: "outline",
252
- copyNode: t('license.hasCopiedTitle'),
253
- onClick: function onClick() {
254
- return navigator.clipboard.writeText(makeIframeString(src, width, height, name));
255
- },
256
- children: t('license.embed')
158
+ children: t("figure.button.".concat(!showOriginalVideo ? 'original' : 'alternative'))
159
+ }), HeartButton && (0, _jsxRuntime.jsx)(HeartButton, {
160
+ embed: embed
161
+ })]
257
162
  })]
258
163
  });
259
164
  };
@@ -5,15 +5,20 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
+ import { ReactElement } from 'react';
8
9
  import { ConceptMetaData } from '@ndla/types-embed';
9
10
  import { ConceptNotionData } from './conceptComponents';
11
+ import { HeartButtonType } from './types';
10
12
  interface Props {
11
13
  embed: ConceptMetaData;
12
14
  fullWidth?: boolean;
15
+ heartButton?: HeartButtonType;
13
16
  }
14
- export declare const ConceptEmbed: ({ embed, fullWidth }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
17
+ export declare const ConceptEmbed: ({ embed, fullWidth, heartButton: HeartButton }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
15
18
  interface ConceptProps extends ConceptNotionData {
16
19
  fullWidth?: boolean;
20
+ heartButton?: HeartButtonType;
21
+ conceptHeartButton?: ReactElement;
17
22
  }
18
- export declare const BlockConcept: ({ title, content, metaImage, copyright, source, visualElement, fullWidth, }: ConceptProps) => import("@emotion/react/jsx-runtime").JSX.Element;
23
+ export declare const BlockConcept: ({ title, content, metaImage, copyright, source, visualElement, fullWidth, heartButton, conceptHeartButton, }: ConceptProps) => import("@emotion/react/jsx-runtime").JSX.Element;
19
24
  export default ConceptEmbed;