@ndla/ui 34.6.1 → 34.6.3

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 (153) hide show
  1. package/es/Article/Article.js +11 -6
  2. package/es/Aside/Aside.js +5 -2
  3. package/es/CopyParagraphButton/CopyParagraphButtonV2.js +85 -0
  4. package/es/CopyParagraphButton/index.js +2 -1
  5. package/es/Embed/AudioEmbed.js +254 -0
  6. package/es/Embed/BrightcoveEmbed.js +250 -0
  7. package/es/Embed/ConceptEmbed.js +358 -0
  8. package/es/Embed/ConceptListEmbed.js +71 -0
  9. package/es/Embed/ContentLinkEmbed.js +42 -0
  10. package/es/Embed/ExternalEmbed.js +91 -0
  11. package/es/Embed/FootnoteEmbed.js +32 -0
  12. package/es/Embed/H5pEmbed.js +87 -0
  13. package/es/Embed/IframeEmbed.js +83 -0
  14. package/es/Embed/ImageEmbed.js +322 -0
  15. package/es/Embed/RelatedContentEmbed.js +58 -0
  16. package/es/Embed/UnknownEmbed.js +27 -0
  17. package/es/Embed/conceptComponents.js +282 -0
  18. package/es/Embed/index.js +21 -0
  19. package/es/FactBox/FactBoxV2.js +90 -0
  20. package/es/FactBox/index.js +1 -0
  21. package/es/Figure/Figure.js +8 -5
  22. package/es/Figure/FigureLicenseDialogContent.js +72 -0
  23. package/es/FileList/FileListV2.js +47 -0
  24. package/es/FileList/FileV2.js +34 -0
  25. package/es/FileList/PdfFile.js +25 -0
  26. package/es/FileList/index.js +3 -0
  27. package/es/Notion/Notion.js +5 -5
  28. package/es/Notion/NotionVisualElement.js +2 -2
  29. package/es/RelatedArticleList/RelatedArticleV2.js +101 -0
  30. package/es/RelatedArticleList/index.js +2 -1
  31. package/es/Table/Table.js +95 -8
  32. package/es/all.css +1 -1
  33. package/es/index.js +5 -4
  34. package/es/locale/messages-en.js +11 -1
  35. package/es/locale/messages-nb.js +11 -1
  36. package/es/locale/messages-nn.js +11 -1
  37. package/es/locale/messages-se.js +11 -1
  38. package/es/locale/messages-sma.js +11 -1
  39. package/lib/Article/Article.d.ts +2 -1
  40. package/lib/Article/Article.js +11 -6
  41. package/lib/Aside/Aside.d.ts +2 -1
  42. package/lib/Aside/Aside.js +5 -2
  43. package/lib/CopyParagraphButton/CopyParagraphButtonV2.d.ts +14 -0
  44. package/lib/CopyParagraphButton/CopyParagraphButtonV2.js +84 -0
  45. package/lib/CopyParagraphButton/index.d.ts +2 -1
  46. package/lib/CopyParagraphButton/index.js +7 -0
  47. package/lib/Embed/AudioEmbed.d.ts +20 -0
  48. package/lib/Embed/AudioEmbed.js +252 -0
  49. package/lib/Embed/BrightcoveEmbed.d.ts +16 -0
  50. package/lib/Embed/BrightcoveEmbed.js +250 -0
  51. package/lib/Embed/ConceptEmbed.d.ts +19 -0
  52. package/lib/Embed/ConceptEmbed.js +358 -0
  53. package/lib/Embed/ConceptListEmbed.d.ts +13 -0
  54. package/lib/Embed/ConceptListEmbed.js +70 -0
  55. package/lib/Embed/ContentLinkEmbed.d.ts +14 -0
  56. package/lib/Embed/ContentLinkEmbed.js +50 -0
  57. package/lib/Embed/ExternalEmbed.d.ts +14 -0
  58. package/lib/Embed/ExternalEmbed.js +90 -0
  59. package/lib/Embed/FootnoteEmbed.d.ts +13 -0
  60. package/lib/Embed/FootnoteEmbed.js +39 -0
  61. package/lib/Embed/H5pEmbed.d.ts +14 -0
  62. package/lib/Embed/H5pEmbed.js +86 -0
  63. package/lib/Embed/IframeEmbed.d.ts +14 -0
  64. package/lib/Embed/IframeEmbed.js +91 -0
  65. package/lib/Embed/ImageEmbed.d.ts +37 -0
  66. package/lib/Embed/ImageEmbed.js +326 -0
  67. package/lib/Embed/RelatedContentEmbed.d.ts +16 -0
  68. package/lib/Embed/RelatedContentEmbed.js +64 -0
  69. package/lib/Embed/UnknownEmbed.d.ts +13 -0
  70. package/lib/Embed/UnknownEmbed.js +35 -0
  71. package/lib/Embed/conceptComponents.d.ts +32 -0
  72. package/lib/Embed/conceptComponents.js +280 -0
  73. package/lib/Embed/index.d.ts +20 -0
  74. package/lib/Embed/index.js +97 -0
  75. package/lib/FactBox/FactBoxV2.d.ts +13 -0
  76. package/lib/FactBox/FactBoxV2.js +92 -0
  77. package/lib/FactBox/index.d.ts +1 -0
  78. package/lib/FactBox/index.js +7 -0
  79. package/lib/Figure/Figure.d.ts +5 -2
  80. package/lib/Figure/Figure.js +8 -5
  81. package/lib/Figure/FigureLicenseDialogContent.d.ts +22 -0
  82. package/lib/Figure/FigureLicenseDialogContent.js +71 -0
  83. package/lib/FileList/FileListV2.d.ts +13 -0
  84. package/lib/FileList/FileListV2.js +46 -0
  85. package/lib/FileList/FileV2.d.ts +16 -0
  86. package/lib/FileList/FileV2.js +42 -0
  87. package/lib/FileList/PdfFile.d.ts +13 -0
  88. package/lib/FileList/PdfFile.js +31 -0
  89. package/lib/FileList/index.d.ts +3 -0
  90. package/lib/FileList/index.js +21 -0
  91. package/lib/Notion/Notion.js +5 -5
  92. package/lib/Notion/NotionVisualElement.d.ts +1 -1
  93. package/lib/Notion/NotionVisualElement.js +2 -2
  94. package/lib/RelatedArticleList/RelatedArticleV2.d.ts +25 -0
  95. package/lib/RelatedArticleList/RelatedArticleV2.js +101 -0
  96. package/lib/RelatedArticleList/index.d.ts +2 -1
  97. package/lib/RelatedArticleList/index.js +7 -0
  98. package/lib/Table/Table.js +98 -8
  99. package/lib/all.css +1 -1
  100. package/lib/index.d.ts +5 -4
  101. package/lib/index.js +117 -2
  102. package/lib/locale/messages-en.d.ts +10 -0
  103. package/lib/locale/messages-en.js +11 -1
  104. package/lib/locale/messages-nb.d.ts +10 -0
  105. package/lib/locale/messages-nb.js +11 -1
  106. package/lib/locale/messages-nn.d.ts +10 -0
  107. package/lib/locale/messages-nn.js +11 -1
  108. package/lib/locale/messages-se.d.ts +10 -0
  109. package/lib/locale/messages-se.js +11 -1
  110. package/lib/locale/messages-sma.d.ts +10 -0
  111. package/lib/locale/messages-sma.js +11 -1
  112. package/lib/types.d.ts +1 -1
  113. package/package.json +16 -12
  114. package/src/Article/Article.tsx +8 -3
  115. package/src/Aside/Aside.tsx +9 -1
  116. package/src/Aside/component.aside.scss +3 -0
  117. package/src/CopyParagraphButton/CopyParagraphButtonV2.tsx +84 -0
  118. package/src/CopyParagraphButton/index.tsx +2 -1
  119. package/src/Embed/AudioEmbed.tsx +249 -0
  120. package/src/Embed/BrightcoveEmbed.tsx +203 -0
  121. package/src/Embed/ConceptEmbed.tsx +408 -0
  122. package/src/Embed/ConceptListEmbed.tsx +64 -0
  123. package/src/Embed/ContentLinkEmbed.tsx +41 -0
  124. package/src/Embed/ExternalEmbed.tsx +80 -0
  125. package/src/Embed/FootnoteEmbed.tsx +30 -0
  126. package/src/Embed/H5pEmbed.tsx +74 -0
  127. package/src/Embed/IframeEmbed.tsx +84 -0
  128. package/src/Embed/ImageEmbed.tsx +314 -0
  129. package/src/Embed/RelatedContentEmbed.tsx +62 -0
  130. package/src/Embed/UnknownEmbed.tsx +27 -0
  131. package/src/Embed/conceptComponents.tsx +393 -0
  132. package/src/Embed/index.ts +21 -0
  133. package/src/FactBox/FactBoxV2.tsx +56 -0
  134. package/src/FactBox/index.ts +2 -0
  135. package/src/Figure/Figure.tsx +28 -15
  136. package/src/Figure/FigureLicenseDialogContent.tsx +80 -0
  137. package/src/Figure/component.figure.scss +0 -1
  138. package/src/FileList/FileListV2.tsx +58 -0
  139. package/src/FileList/FileV2.tsx +35 -0
  140. package/src/FileList/PdfFile.tsx +25 -0
  141. package/src/FileList/index.ts +3 -0
  142. package/src/Notion/Notion.tsx +0 -1
  143. package/src/Notion/NotionVisualElement.tsx +1 -1
  144. package/src/RelatedArticleList/RelatedArticleV2.tsx +84 -0
  145. package/src/RelatedArticleList/index.ts +2 -1
  146. package/src/Table/Table.tsx +77 -4
  147. package/src/index.ts +19 -4
  148. package/src/locale/messages-en.ts +10 -0
  149. package/src/locale/messages-nb.ts +10 -0
  150. package/src/locale/messages-nn.ts +10 -0
  151. package/src/locale/messages-se.ts +10 -1
  152. package/src/locale/messages-sma.ts +10 -0
  153. package/src/types.ts +1 -1
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
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
+ var _remarkable = require("remarkable");
12
+ var _button = require("@ndla/button");
13
+ var _safelink = require("@ndla/safelink");
14
+ var _AudioPlayer = _interopRequireDefault(require("../AudioPlayer"));
15
+ var _Figure = require("../Figure");
16
+ var _FigureLicenseDialogContent = require("../Figure/FigureLicenseDialogContent");
17
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
18
+ 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 = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
24
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
+ var getFirstNonEmptyLicenseCredits = function getFirstNonEmptyLicenseCredits(authors) {
26
+ var _Object$values$find;
27
+ return (_Object$values$find = Object.values(authors).find(function (i) {
28
+ return i.length > 0;
29
+ })) !== null && _Object$values$find !== void 0 ? _Object$values$find : [];
30
+ };
31
+ exports.getFirstNonEmptyLicenseCredits = getFirstNonEmptyLicenseCredits;
32
+ var renderMarkdown = function renderMarkdown(text) {
33
+ var md = new _remarkable.Remarkable();
34
+ var rendered = md.render(text);
35
+ return (0, _jsxRuntime.jsx)("span", {
36
+ dangerouslySetInnerHTML: {
37
+ __html: rendered
38
+ }
39
+ });
40
+ };
41
+ var AudioEmbed = function AudioEmbed(_ref) {
42
+ var _data$podcastMeta$int, _data$podcastMeta, _data$podcastMeta2;
43
+ var embed = _ref.embed,
44
+ articlePath = _ref.articlePath;
45
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
46
+ t = _useTranslation.t,
47
+ i18n = _useTranslation.i18n;
48
+ var _useState = (0, _react.useState)(false),
49
+ _useState2 = _slicedToArray(_useState, 2),
50
+ isOpen = _useState2[0],
51
+ setIsOpen = _useState2[1];
52
+ if (embed.status === 'error') {
53
+ return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
54
+ children: [(0, _jsxRuntime.jsxs)("svg", {
55
+ fill: "#8A8888",
56
+ height: "50",
57
+ viewBox: "0 0 24 12",
58
+ width: "100%",
59
+ xmlns: "http://www.w3.org/2000/svg",
60
+ style: {
61
+ backgroundColor: '#EFF0F2'
62
+ },
63
+ children: [(0, _jsxRuntime.jsx)("path", {
64
+ d: "M0 0h24v24H0V0z",
65
+ fill: "none"
66
+ }), (0, _jsxRuntime.jsx)("path", {
67
+ transform: "scale(0.3) translate(28, 8.5)",
68
+ 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"
69
+ })]
70
+ }), (0, _jsxRuntime.jsx)("figcaption", {
71
+ children: t('audio.error.caption')
72
+ })]
73
+ });
74
+ }
75
+ var data = embed.data,
76
+ embedData = embed.embedData,
77
+ seq = embed.seq;
78
+ if (embedData.type === 'minimal') {
79
+ return (0, _jsxRuntime.jsx)(_AudioPlayer["default"], {
80
+ speech: true,
81
+ src: data.audioFile.url,
82
+ title: data.title.title
83
+ });
84
+ }
85
+ var subtitle = data.series ? {
86
+ title: data.series.title.title,
87
+ url: "/podkast/".concat(data.series.id)
88
+ } : undefined;
89
+ var textVersion = data.manuscript && renderMarkdown(data.manuscript.manuscript);
90
+ 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 : '');
91
+ var coverPhoto = (_data$podcastMeta2 = data.podcastMeta) === null || _data$podcastMeta2 === void 0 ? void 0 : _data$podcastMeta2.coverPhoto;
92
+ var img = coverPhoto && {
93
+ url: coverPhoto.url,
94
+ alt: coverPhoto.altText
95
+ };
96
+ var authors = (0, _licenses.getLicenseCredits)(data.copyright);
97
+ var license = (0, _licenses.getLicenseByAbbreviation)(data.copyright.license.license, i18n.language);
98
+ var contributors = (0, _licenses.getGroupedContributorDescriptionList)(data.copyright, i18n.language).map(function (item) {
99
+ return {
100
+ name: item.description,
101
+ type: item.label
102
+ };
103
+ });
104
+ var figureId = "figure-".concat(seq, "-").concat(data.id);
105
+ var copyString = data.audioType === 'podcast' ? (0, _licenses.figureApa7CopyString)(data.title.title, undefined, data.audioFile.url, articlePath, data.copyright, data.copyright.license.license, '', function (id) {
106
+ return t(id);
107
+ }, i18n.language) : undefined;
108
+ var captionAuthors = getFirstNonEmptyLicenseCredits(authors);
109
+ return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
110
+ id: figureId,
111
+ type: "full",
112
+ children: [(0, _jsxRuntime.jsx)(_AudioPlayer["default"], {
113
+ description: description,
114
+ img: img,
115
+ src: data.audioFile.url,
116
+ textVersion: textVersion,
117
+ title: data.title.title,
118
+ subtitle: subtitle
119
+ }), (0, _jsxRuntime.jsx)(_Figure.FigureCaption, {
120
+ id: "",
121
+ figureId: "",
122
+ modalButton: (0, _jsxRuntime.jsx)(_button.ButtonV2, {
123
+ variant: "outline",
124
+ shape: "pill",
125
+ size: "small",
126
+ onClick: function onClick() {
127
+ return setIsOpen(true);
128
+ },
129
+ children: t('audio.reuse')
130
+ }),
131
+ licenseRights: license.rights,
132
+ authors: captionAuthors,
133
+ locale: i18n.language
134
+ }), (0, _jsxRuntime.jsx)(_modal.ModalV2, {
135
+ controlled: true,
136
+ isOpen: isOpen,
137
+ onClose: function onClose() {
138
+ return setIsOpen(false);
139
+ },
140
+ labelledBy: "license-dialog-rules-heading",
141
+ children: function children(close) {
142
+ return (0, _jsxRuntime.jsx)(_FigureLicenseDialogContent.FigureLicenseDialogContent, {
143
+ onClose: close,
144
+ title: data.title.title,
145
+ license: license,
146
+ authors: contributors,
147
+ origin: data.copyright.origin,
148
+ locale: i18n.language,
149
+ type: "audio",
150
+ children: data.copyright.license.license !== 'COPYRIGHT' && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
151
+ children: [copyString && (0, _jsxRuntime.jsx)(_button.CopyButton, {
152
+ variant: "outline",
153
+ copyNode: t('license.hasCopiedTitle'),
154
+ onClick: function onClick() {
155
+ return navigator.clipboard.writeText(copyString);
156
+ },
157
+ children: t('license.copyTitle')
158
+ }), (0, _jsxRuntime.jsx)(_safelink.SafeLinkButton, {
159
+ download: true,
160
+ to: data.audioFile.url,
161
+ variant: "outline",
162
+ children: t('audio.download')
163
+ })]
164
+ })
165
+ });
166
+ }
167
+ }), data.imageMeta && (0, _jsxRuntime.jsx)(ImageLicense, {
168
+ title: data.imageMeta.title.title,
169
+ imageUrl: data.imageMeta.imageUrl,
170
+ copyright: data.imageMeta.copyright,
171
+ articlePath: articlePath
172
+ })]
173
+ });
174
+ };
175
+ var ImageLicense = function ImageLicense(_ref2) {
176
+ var articlePath = _ref2.articlePath,
177
+ title = _ref2.title,
178
+ imageUrl = _ref2.imageUrl,
179
+ copyright = _ref2.copyright;
180
+ var _useTranslation2 = (0, _reactI18next.useTranslation)(),
181
+ t = _useTranslation2.t,
182
+ i18n = _useTranslation2.i18n;
183
+ var _useState3 = (0, _react.useState)(false),
184
+ _useState4 = _slicedToArray(_useState3, 2),
185
+ isOpen = _useState4[0],
186
+ setIsOpen = _useState4[1];
187
+ var copyString = (0, _licenses.figureApa7CopyString)(title, undefined, imageUrl, articlePath, copyright, copyright.license.license, undefined, function (id) {
188
+ return t(id);
189
+ }, i18n.language);
190
+ var license = (0, _licenses.getLicenseByAbbreviation)(copyright.license.license, i18n.language);
191
+ var authors = (0, _licenses.getLicenseCredits)(copyright);
192
+ var contributors = (0, _licenses.getGroupedContributorDescriptionList)(copyright, i18n.language).map(function (item) {
193
+ return {
194
+ name: item.description,
195
+ type: item.label
196
+ };
197
+ });
198
+ var captionAuthors = getFirstNonEmptyLicenseCredits(authors);
199
+ return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
200
+ children: (0, _jsxRuntime.jsx)(_Figure.FigureCaption, {
201
+ figureId: "",
202
+ id: "",
203
+ licenseRights: license.rights,
204
+ modalButton: (0, _jsxRuntime.jsx)(_button.ButtonV2, {
205
+ variant: "outline",
206
+ shape: "pill",
207
+ size: "small",
208
+ onClick: function onClick() {
209
+ return setIsOpen(true);
210
+ },
211
+ children: t('image.reuse')
212
+ }),
213
+ authors: captionAuthors,
214
+ locale: i18n.language,
215
+ children: (0, _jsxRuntime.jsx)(_modal.ModalV2, {
216
+ controlled: true,
217
+ isOpen: isOpen,
218
+ onClose: function onClose() {
219
+ return setIsOpen(false);
220
+ },
221
+ children: function children(close) {
222
+ return (0, _jsxRuntime.jsx)(_FigureLicenseDialogContent.FigureLicenseDialogContent, {
223
+ onClose: close,
224
+ title: title,
225
+ license: license,
226
+ authors: contributors,
227
+ origin: copyright.origin,
228
+ locale: i18n.language,
229
+ type: "image",
230
+ children: copyright.license.license !== 'COPYRIGHTED' && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
231
+ children: [copyString && (0, _jsxRuntime.jsx)(_button.CopyButton, {
232
+ variant: "outline",
233
+ copyNode: t('license.hasCopiedTitle'),
234
+ onClick: function onClick() {
235
+ return navigator.clipboard.writeText(copyString);
236
+ },
237
+ children: t('license.copyTitle')
238
+ }), (0, _jsxRuntime.jsx)(_safelink.SafeLinkButton, {
239
+ download: true,
240
+ to: imageUrl,
241
+ variant: "outline",
242
+ children: t('image.download')
243
+ })]
244
+ })
245
+ });
246
+ }
247
+ })
248
+ })
249
+ });
250
+ };
251
+ var _default = AudioEmbed;
252
+ exports["default"] = _default;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright (c) 2023-present, NDLA.
3
+ *
4
+ * This source code is licensed under the GPLv3 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import { BrightcoveMetaData } from '@ndla/types-embed';
9
+ interface Props {
10
+ embed: BrightcoveMetaData;
11
+ isConcept?: boolean;
12
+ }
13
+ export declare const makeIframeString: (url: string, width: string | number, height: string | number, title?: string) => string;
14
+ export declare const isNumeric: (value: any) => boolean;
15
+ declare const BrightcoveEmbed: ({ embed, isConcept }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
16
+ export default BrightcoveEmbed;
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeIframeString = exports.isNumeric = exports["default"] = void 0;
7
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
8
+ var _sortBy2 = _interopRequireDefault(require("lodash/sortBy"));
9
+ var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
10
+ var _core = require("@ndla/core");
11
+ var _licenses = require("@ndla/licenses");
12
+ var _react = require("react");
13
+ var _modal = require("@ndla/modal");
14
+ var _safelink = require("@ndla/safelink");
15
+ var _reactI18next = require("react-i18next");
16
+ var _button = require("@ndla/button");
17
+ var _Figure = require("../Figure");
18
+ var _FigureLicenseDialogContent = require("../Figure/FigureLicenseDialogContent");
19
+ var _AudioEmbed = require("./AudioEmbed");
20
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
22
+ 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; }
23
+ 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(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; }
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
26
+ 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."); }
27
+ 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); }
28
+ 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; }
29
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
32
+ var LinkedVideoButton = /*#__PURE__*/(0, _base["default"])(_button.ButtonV2, {
33
+ target: "e2wbdyh1",
34
+ label: "LinkedVideoButton"
35
+ })("margin-left:", _core.spacing.small, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJyaWdodGNvdmVFbWJlZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEIwQyIsImZpbGUiOiJCcmlnaHRjb3ZlRW1iZWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc29ydEJ5IGZyb20gJ2xvZGFzaC9zb3J0QnknO1xuaW1wb3J0IGlzTnVtYmVyIGZyb20gJ2xvZGFzaC9pc051bWJlcic7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBzcGFjaW5nIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyBnZXRHcm91cGVkQ29udHJpYnV0b3JEZXNjcmlwdGlvbkxpc3QsIGdldExpY2Vuc2VCeUFiYnJldmlhdGlvbiB9IGZyb20gJ0BuZGxhL2xpY2Vuc2VzJztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1vZGFsVjIgfSBmcm9tICdAbmRsYS9tb2RhbCc7XG5pbXBvcnQgeyBTYWZlTGlua0J1dHRvbiB9IGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IEJyaWdodGNvdmVFbWJlZERhdGEsIEJyaWdodGNvdmVNZXRhRGF0YSwgQnJpZ2h0Y292ZVZpZGVvU291cmNlIH0gZnJvbSAnQG5kbGEvdHlwZXMtZW1iZWQnO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCB7IEJ1dHRvblYyLCBDb3B5QnV0dG9uIH0gZnJvbSAnQG5kbGEvYnV0dG9uJztcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlQ2FwdGlvbiB9IGZyb20gJy4uL0ZpZ3VyZSc7XG5pbXBvcnQgeyBGaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCB9IGZyb20gJy4uL0ZpZ3VyZS9GaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyBnZXRGaXJzdE5vbkVtcHR5TGljZW5zZUNyZWRpdHMgfSBmcm9tICcuL0F1ZGlvRW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQnJpZ2h0Y292ZU1ldGFEYXRhO1xuICBpc0NvbmNlcHQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBMaW5rZWRWaWRlb0J1dHRvbiA9IHN0eWxlZChCdXR0b25WMilgXG4gIG1hcmdpbi1sZWZ0OiAke3NwYWNpbmcuc21hbGx9O1xuYDtcblxuY29uc3QgQnJpZ2h0Y292ZUlmcmFtZSA9IHN0eWxlZC5pZnJhbWVgXG4gIGhlaWdodDogYXV0bztcbmA7XG5cbmV4cG9ydCBjb25zdCBtYWtlSWZyYW1lU3RyaW5nID0gKHVybDogc3RyaW5nLCB3aWR0aDogc3RyaW5nIHwgbnVtYmVyLCBoZWlnaHQ6IHN0cmluZyB8IG51bWJlciwgdGl0bGU6IHN0cmluZyA9ICcnKSA9PiB7XG4gIGNvbnN0IHN0cmlwcGVkV2lkdGggPSBpc051bWJlcih3aWR0aCkgPyB3aWR0aCA6IHdpZHRoLnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3Qgc3RyaXBwZWRIZWlnaHQgPSBpc051bWJlcihoZWlnaHQpID8gaGVpZ2h0IDogaGVpZ2h0LnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3QgdXJsT3JUaXRsZSA9IHRpdGxlIHx8IHVybDtcbiAgcmV0dXJuIGA8aWZyYW1lIHRpdGxlPVwiJHt1cmxPclRpdGxlfVwiIGFyaWEtbGFiZWw9XCIke3VybE9yVGl0bGV9XCIgc3JjPVwiJHt1cmx9XCIgd2lkdGg9XCIke3N0cmlwcGVkV2lkdGh9XCIgaGVpZ2h0PVwiJHtzdHJpcHBlZEhlaWdodH1cIiBhbGxvd2Z1bGxzY3JlZW4gc2Nyb2xsaW5nPVwibm9cIiBmcmFtZWJvcmRlcj1cIjBcIiBsb2FkaW5nPVwibGF6eVwiPjwvaWZyYW1lPmA7XG59O1xuXG5leHBvcnQgY29uc3QgaXNOdW1lcmljID0gKHZhbHVlOiBhbnkpID0+ICFOdW1iZXIuaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7XG5cbmNvbnN0IGdldElmcmFtZVByb3BzID0gKGRhdGE6IEJyaWdodGNvdmVFbWJlZERhdGEsIHNvdXJjZXM6IEJyaWdodGNvdmVWaWRlb1NvdXJjZVtdKSA9PiB7XG4gIGNvbnN0IHsgYWNjb3VudCwgdmlkZW9pZCwgcGxheWVyID0gJ2RlZmF1bHQnIH0gPSBkYXRhO1xuXG4gIGNvbnN0IHNvdXJjZSA9IHNvcnRCeShcbiAgICBzb3VyY2VzLmZpbHRlcigocykgPT4gcy53aWR0aCAmJiBzLmhlaWdodCksXG4gICAgKHMpID0+IHMuaGVpZ2h0LFxuICApWzBdO1xuXG4gIHJldHVybiB7XG4gICAgc3JjOiBgaHR0cHM6Ly9wbGF5ZXJzLmJyaWdodGNvdmUubmV0LyR7YWNjb3VudH0vJHtwbGF5ZXJ9X2RlZmF1bHQvaW5kZXguaHRtbD92aWRlb0lkPSR7dmlkZW9pZH1gLFxuICAgIGhlaWdodDogc291cmNlPy5oZWlnaHQgPz8gJzQ4MCcsXG4gICAgd2lkdGg6IHNvdXJjZT8ud2lkdGggPz8gJzY0MCcsXG4gIH07XG59O1xuY29uc3QgQnJpZ2h0Y292ZUVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd09yaWdpbmFsVmlkZW8sIHNldFNob3dPcmlnaW5hbFZpZGVvXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlmcmFtZVJlZiA9IHVzZVJlZjxIVE1MSUZyYW1lRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHsgZW1iZWREYXRhIH0gPSBlbWJlZDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlmcmFtZSA9IGlmcmFtZVJlZi5jdXJyZW50O1xuICAgIGlmIChpZnJhbWUpIHtcbiAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFtwYXJzZUludChpZnJhbWUud2lkdGgpLCBwYXJzZUludChpZnJhbWUuaGVpZ2h0KV07XG4gICAgICBpZnJhbWUuc3R5bGUuYXNwZWN0UmF0aW8gPSBgJHt3aWR0aH0vJHtoZWlnaHR9YDtcbiAgICB9XG4gIH0sIFtdKTtcbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgIHJldHVybiAoXG4gICAgICA8RmlndXJlIHR5cGU9e2lzQ29uY2VwdCA/ICdmdWxsLWNvbHVtbicgOiAnZnVsbCd9IHJlc2l6ZUlmcmFtZT5cbiAgICAgICAgPEJyaWdodGNvdmVJZnJhbWVcbiAgICAgICAgICByZWY9e2lmcmFtZVJlZn1cbiAgICAgICAgICB0aXRsZT17YFZpZGVvOiAke2VtYmVkRGF0YS52aWRlb2lkID8/ICcnfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YFZpZGVvOiAke2VtYmVkRGF0YS52aWRlb2lkID8/ICcnfWB9XG4gICAgICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcbiAgICAgICAgICB7Li4uZ2V0SWZyYW1lUHJvcHMoZW1iZWREYXRhLCBbXSl9XG4gICAgICAgICAgYWxsb3dGdWxsU2NyZWVuXG4gICAgICAgIC8+XG4gICAgICAgIDxmaWdjYXB0aW9uPnt0KCd2aWRlby5lcnJvcicpfTwvZmlnY2FwdGlvbj5cbiAgICAgIDwvRmlndXJlPlxuICAgICk7XG4gIH1cbiAgY29uc3QgeyBkYXRhLCBzZXEgfSA9IGVtYmVkO1xuXG4gIGNvbnN0IGxpbmtlZFZpZGVvSWQgPSBpc051bWVyaWMoZGF0YS5saW5rPy50ZXh0KSA/IGRhdGEubGluaz8udGV4dCA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBsaWNlbnNlID0gZ2V0TGljZW5zZUJ5QWJicmV2aWF0aW9uKGRhdGEuY29weXJpZ2h0Py5saWNlbnNlLmxpY2Vuc2UgPz8gJycsIGkxOG4ubGFuZ3VhZ2UpO1xuICBjb25zdCBjb250cmlidXRvcnMgPSBkYXRhLmNvcHlyaWdodFxuICAgID8gZ2V0R3JvdXBlZENvbnRyaWJ1dG9yRGVzY3JpcHRpb25MaXN0KGRhdGEuY29weXJpZ2h0LCBpMThuLmxhbmd1YWdlKS5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgIG5hbWU6IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgICAgIHR5cGU6IGl0ZW0ubGFiZWwsXG4gICAgICB9KSlcbiAgICA6IFtdO1xuXG4gIGNvbnN0IHsgcmlnaHRzaG9sZGVycyA9IFtdLCBjcmVhdG9ycyA9IFtdLCBwcm9jZXNzb3JzID0gW10gfSA9IGRhdGEuY29weXJpZ2h0ID8/IHt9O1xuXG4gIGNvbnN0IGRvd25sb2FkID0gc29ydEJ5KFxuICAgIGRhdGEuc291cmNlcy5maWx0ZXIoKHNyYykgPT4gc3JjLmNvbnRhaW5lciA9PT0gJ01QNCcgJiYgc3JjLnNyYyksXG4gICAgKHNyYykgPT4gc3JjLnNpemUsXG4gICk/LlswXT8uc3JjO1xuXG4gIGNvbnN0IGZpZ3VyZUlkID0gYGZpZ3VyZS0ke3NlcX0tJHtkYXRhLmlkfWA7XG4gIGNvbnN0IG9yaWdpbmFsVmlkZW9Qcm9wcyA9IGdldElmcmFtZVByb3BzKGVtYmVkRGF0YSwgZGF0YS5zb3VyY2VzKTtcbiAgY29uc3QgYWx0ZXJuYXRpdmVWaWRlb1Byb3BzID0gbGlua2VkVmlkZW9JZFxuICAgID8gZ2V0SWZyYW1lUHJvcHMoeyAuLi5lbWJlZERhdGEsIHZpZGVvaWQ6IGxpbmtlZFZpZGVvSWQgfSwgZGF0YS5zb3VyY2VzKVxuICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBjYXB0aW9uQXV0aG9ycyA9IGdldEZpcnN0Tm9uRW1wdHlMaWNlbnNlQ3JlZGl0cyh7IHJpZ2h0c2hvbGRlcnMsIGNyZWF0b3JzLCBwcm9jZXNzb3JzIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZpZ3VyZSBpZD17ZmlndXJlSWR9IHR5cGU9e2lzQ29uY2VwdCA/ICdmdWxsLWNvbHVtbicgOiAnZnVsbCd9IHJlc2l6ZUlmcmFtZT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnJpZ2h0Y292ZS12aWRlb1wiPlxuICAgICAgICA8QnJpZ2h0Y292ZUlmcmFtZVxuICAgICAgICAgIHJlZj17aWZyYW1lUmVmfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIm9yaWdpbmFsXCJcbiAgICAgICAgICB0aXRsZT17YFZpZGVvOiAke2RhdGEubmFtZX1gfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2BWaWRlbzogJHtkYXRhLm5hbWV9YH1cbiAgICAgICAgICBmcmFtZUJvcmRlcj1cIjBcIlxuICAgICAgICAgIHsuLi4oYWx0ZXJuYXRpdmVWaWRlb1Byb3BzICYmICFzaG93T3JpZ2luYWxWaWRlbyA/IGFsdGVybmF0aXZlVmlkZW9Qcm9wcyA6IG9yaWdpbmFsVmlkZW9Qcm9wcyl9XG4gICAgICAgICAgYWxsb3dGdWxsU2NyZWVuXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxGaWd1cmVDYXB0aW9uXG4gICAgICAgIGZpZ3VyZUlkPXtmaWd1cmVJZH1cbiAgICAgICAgaWQ9e2RhdGEuaWR9XG4gICAgICAgIGxvY2FsZT17aTE4bi5sYW5ndWFnZX1cbiAgICAgICAgY2FwdGlvbj17ZW1iZWREYXRhLmNhcHRpb24gPz8gJyd9XG4gICAgICAgIG1vZGFsQnV0dG9uPXtcbiAgICAgICAgICA8QnV0dG9uVjIgdmFyaWFudD1cIm91dGxpbmVcIiBzaGFwZT1cInBpbGxcIiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXsoKSA9PiBzZXRJc09wZW4odHJ1ZSl9PlxuICAgICAgICAgICAge3QoJ3ZpZGVvLnJldXNlJyl9XG4gICAgICAgICAgPC9CdXR0b25WMj5cbiAgICAgICAgfVxuICAgICAgICBsaW5rZWRWaWRlb0J1dHRvbj17XG4gICAgICAgICAgPExpbmtlZFZpZGVvQnV0dG9uXG4gICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICBzaGFwZT1cInBpbGxcIlxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dPcmlnaW5hbFZpZGVvKChwKSA9PiAhcCl9PlxuICAgICAgICAgICAge3QoYGZpZ3VyZS5idXR0b24uJHtzaG93T3JpZ2luYWxWaWRlbyA/ICdvcmlnaW5hbCcgOiAnYWx0ZXJuYXRpdmUnfWApfVxuICAgICAgICAgIDwvTGlua2VkVmlkZW9CdXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgbGljZW5zZVJpZ2h0cz17bGljZW5zZS5yaWdodHN9XG4gICAgICAgIGF1dGhvcnM9e2NhcHRpb25BdXRob3JzfVxuICAgICAgICBoYXNMaW5rZWRWaWRlbz17ISFsaW5rZWRWaWRlb0lkfVxuICAgICAgLz5cbiAgICAgIDxNb2RhbFYyIGNvbnRyb2xsZWQgaXNPcGVuPXtpc09wZW59IG9uQ2xvc2U9eygpID0+IHNldElzT3BlbihmYWxzZSl9IGxhYmVsbGVkQnk9XCJsaWNlbnNlLWRpYWxvZy1ydWxlcy1oZWFkaW5nXCI+XG4gICAgICAgIHsoY2xvc2UpID0+IChcbiAgICAgICAgICA8RmlndXJlTGljZW5zZURpYWxvZ0NvbnRlbnRcbiAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlfVxuICAgICAgICAgICAgdGl0bGU9e2RhdGEubmFtZX1cbiAgICAgICAgICAgIGxvY2FsZT17aTE4bi5sYW5ndWFnZX1cbiAgICAgICAgICAgIGxpY2Vuc2U9e2xpY2Vuc2V9XG4gICAgICAgICAgICBhdXRob3JzPXtjb250cmlidXRvcnN9XG4gICAgICAgICAgICB0eXBlPVwidmlkZW9cIj5cbiAgICAgICAgICAgIDxWaWRlb0xpY2Vuc2VCdXR0b25zXG4gICAgICAgICAgICAgIGRvd25sb2FkPXtkb3dubG9hZH1cbiAgICAgICAgICAgICAgbGljZW5zZUNvZGU9e2RhdGEuY29weXJpZ2h0Py5saWNlbnNlLmxpY2Vuc2V9XG4gICAgICAgICAgICAgIHNyYz17b3JpZ2luYWxWaWRlb1Byb3BzLnNyY31cbiAgICAgICAgICAgICAgd2lkdGg9e29yaWdpbmFsVmlkZW9Qcm9wcy53aWR0aH1cbiAgICAgICAgICAgICAgaGVpZ2h0PXtvcmlnaW5hbFZpZGVvUHJvcHMuaGVpZ2h0fVxuICAgICAgICAgICAgICBuYW1lPXtkYXRhLm5hbWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRmlndXJlTGljZW5zZURpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICl9XG4gICAgICA8L01vZGFsVjI+XG4gICAgPC9GaWd1cmU+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgVmlkZW9MaWNlbnNlQnV0dG9uc1Byb3BzIHtcbiAgZG93bmxvYWQ6IHN0cmluZztcbiAgbGljZW5zZUNvZGU/OiBzdHJpbmc7XG4gIHNyYzogc3RyaW5nO1xuICB3aWR0aDogc3RyaW5nIHwgbnVtYmVyO1xuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcbiAgbmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgVmlkZW9MaWNlbnNlQnV0dG9ucyA9ICh7IGRvd25sb2FkLCBzcmMsIHdpZHRoLCBoZWlnaHQsIG5hbWUsIGxpY2Vuc2VDb2RlIH06IFZpZGVvTGljZW5zZUJ1dHRvbnNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtsaWNlbnNlQ29kZSAhPT0gJ0NPUFlSSUdIVEVEJyAmJiAoXG4gICAgICAgIDxTYWZlTGlua0J1dHRvbiBrZXk9XCJkb3dubG9hZFwiIHRvPXtkb3dubG9hZH0gdmFyaWFudD1cIm91dGxpbmVcIiBkb3dubG9hZD5cbiAgICAgICAgICB7dCgndmlkZW8uZG93bmxvYWQnKX1cbiAgICAgICAgPC9TYWZlTGlua0J1dHRvbj5cbiAgICAgICl9XG4gICAgICA8Q29weUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgIGNvcHlOb2RlPXt0KCdsaWNlbnNlLmhhc0NvcGllZFRpdGxlJyl9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG1ha2VJZnJhbWVTdHJpbmcoc3JjLCB3aWR0aCwgaGVpZ2h0LCBuYW1lKSl9PlxuICAgICAgICB7dCgnbGljZW5zZS5lbWJlZCcpfVxuICAgICAgPC9Db3B5QnV0dG9uPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpZ2h0Y292ZUVtYmVkO1xuIl19 */"));
36
+ var BrightcoveIframe = /*#__PURE__*/(0, _base["default"])("iframe", {
37
+ target: "e2wbdyh0",
38
+ label: "BrightcoveIframe"
39
+ })(process.env.NODE_ENV === "production" ? {
40
+ name: "pit38s",
41
+ styles: "height:auto"
42
+ } : {
43
+ name: "pit38s",
44
+ styles: "height:auto",
45
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJyaWdodGNvdmVFbWJlZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0NzQyIsImZpbGUiOiJCcmlnaHRjb3ZlRW1iZWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc29ydEJ5IGZyb20gJ2xvZGFzaC9zb3J0QnknO1xuaW1wb3J0IGlzTnVtYmVyIGZyb20gJ2xvZGFzaC9pc051bWJlcic7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBzcGFjaW5nIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyBnZXRHcm91cGVkQ29udHJpYnV0b3JEZXNjcmlwdGlvbkxpc3QsIGdldExpY2Vuc2VCeUFiYnJldmlhdGlvbiB9IGZyb20gJ0BuZGxhL2xpY2Vuc2VzJztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1vZGFsVjIgfSBmcm9tICdAbmRsYS9tb2RhbCc7XG5pbXBvcnQgeyBTYWZlTGlua0J1dHRvbiB9IGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IEJyaWdodGNvdmVFbWJlZERhdGEsIEJyaWdodGNvdmVNZXRhRGF0YSwgQnJpZ2h0Y292ZVZpZGVvU291cmNlIH0gZnJvbSAnQG5kbGEvdHlwZXMtZW1iZWQnO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCB7IEJ1dHRvblYyLCBDb3B5QnV0dG9uIH0gZnJvbSAnQG5kbGEvYnV0dG9uJztcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlQ2FwdGlvbiB9IGZyb20gJy4uL0ZpZ3VyZSc7XG5pbXBvcnQgeyBGaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCB9IGZyb20gJy4uL0ZpZ3VyZS9GaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyBnZXRGaXJzdE5vbkVtcHR5TGljZW5zZUNyZWRpdHMgfSBmcm9tICcuL0F1ZGlvRW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQnJpZ2h0Y292ZU1ldGFEYXRhO1xuICBpc0NvbmNlcHQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBMaW5rZWRWaWRlb0J1dHRvbiA9IHN0eWxlZChCdXR0b25WMilgXG4gIG1hcmdpbi1sZWZ0OiAke3NwYWNpbmcuc21hbGx9O1xuYDtcblxuY29uc3QgQnJpZ2h0Y292ZUlmcmFtZSA9IHN0eWxlZC5pZnJhbWVgXG4gIGhlaWdodDogYXV0bztcbmA7XG5cbmV4cG9ydCBjb25zdCBtYWtlSWZyYW1lU3RyaW5nID0gKHVybDogc3RyaW5nLCB3aWR0aDogc3RyaW5nIHwgbnVtYmVyLCBoZWlnaHQ6IHN0cmluZyB8IG51bWJlciwgdGl0bGU6IHN0cmluZyA9ICcnKSA9PiB7XG4gIGNvbnN0IHN0cmlwcGVkV2lkdGggPSBpc051bWJlcih3aWR0aCkgPyB3aWR0aCA6IHdpZHRoLnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3Qgc3RyaXBwZWRIZWlnaHQgPSBpc051bWJlcihoZWlnaHQpID8gaGVpZ2h0IDogaGVpZ2h0LnJlcGxhY2UoL1xccypweC8sICcnKTtcbiAgY29uc3QgdXJsT3JUaXRsZSA9IHRpdGxlIHx8IHVybDtcbiAgcmV0dXJuIGA8aWZyYW1lIHRpdGxlPVwiJHt1cmxPclRpdGxlfVwiIGFyaWEtbGFiZWw9XCIke3VybE9yVGl0bGV9XCIgc3JjPVwiJHt1cmx9XCIgd2lkdGg9XCIke3N0cmlwcGVkV2lkdGh9XCIgaGVpZ2h0PVwiJHtzdHJpcHBlZEhlaWdodH1cIiBhbGxvd2Z1bGxzY3JlZW4gc2Nyb2xsaW5nPVwibm9cIiBmcmFtZWJvcmRlcj1cIjBcIiBsb2FkaW5nPVwibGF6eVwiPjwvaWZyYW1lPmA7XG59O1xuXG5leHBvcnQgY29uc3QgaXNOdW1lcmljID0gKHZhbHVlOiBhbnkpID0+ICFOdW1iZXIuaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7XG5cbmNvbnN0IGdldElmcmFtZVByb3BzID0gKGRhdGE6IEJyaWdodGNvdmVFbWJlZERhdGEsIHNvdXJjZXM6IEJyaWdodGNvdmVWaWRlb1NvdXJjZVtdKSA9PiB7XG4gIGNvbnN0IHsgYWNjb3VudCwgdmlkZW9pZCwgcGxheWVyID0gJ2RlZmF1bHQnIH0gPSBkYXRhO1xuXG4gIGNvbnN0IHNvdXJjZSA9IHNvcnRCeShcbiAgICBzb3VyY2VzLmZpbHRlcigocykgPT4gcy53aWR0aCAmJiBzLmhlaWdodCksXG4gICAgKHMpID0+IHMuaGVpZ2h0LFxuICApWzBdO1xuXG4gIHJldHVybiB7XG4gICAgc3JjOiBgaHR0cHM6Ly9wbGF5ZXJzLmJyaWdodGNvdmUubmV0LyR7YWNjb3VudH0vJHtwbGF5ZXJ9X2RlZmF1bHQvaW5kZXguaHRtbD92aWRlb0lkPSR7dmlkZW9pZH1gLFxuICAgIGhlaWdodDogc291cmNlPy5oZWlnaHQgPz8gJzQ4MCcsXG4gICAgd2lkdGg6IHNvdXJjZT8ud2lkdGggPz8gJzY0MCcsXG4gIH07XG59O1xuY29uc3QgQnJpZ2h0Y292ZUVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd09yaWdpbmFsVmlkZW8sIHNldFNob3dPcmlnaW5hbFZpZGVvXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlmcmFtZVJlZiA9IHVzZVJlZjxIVE1MSUZyYW1lRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHsgZW1iZWREYXRhIH0gPSBlbWJlZDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlmcmFtZSA9IGlmcmFtZVJlZi5jdXJyZW50O1xuICAgIGlmIChpZnJhbWUpIHtcbiAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFtwYXJzZUludChpZnJhbWUud2lkdGgpLCBwYXJzZUludChpZnJhbWUuaGVpZ2h0KV07XG4gICAgICBpZnJhbWUuc3R5bGUuYXNwZWN0UmF0aW8gPSBgJHt3aWR0aH0vJHtoZWlnaHR9YDtcbiAgICB9XG4gIH0sIFtdKTtcbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgIHJldHVybiAoXG4gICAgICA8RmlndXJlIHR5cGU9e2lzQ29uY2VwdCA/ICdmdWxsLWNvbHVtbicgOiAnZnVsbCd9IHJlc2l6ZUlmcmFtZT5cbiAgICAgICAgPEJyaWdodGNvdmVJZnJhbWVcbiAgICAgICAgICByZWY9e2lmcmFtZVJlZn1cbiAgICAgICAgICB0aXRsZT17YFZpZGVvOiAke2VtYmVkRGF0YS52aWRlb2lkID8/ICcnfWB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YFZpZGVvOiAke2VtYmVkRGF0YS52aWRlb2lkID8/ICcnfWB9XG4gICAgICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcbiAgICAgICAgICB7Li4uZ2V0SWZyYW1lUHJvcHMoZW1iZWREYXRhLCBbXSl9XG4gICAgICAgICAgYWxsb3dGdWxsU2NyZWVuXG4gICAgICAgIC8+XG4gICAgICAgIDxmaWdjYXB0aW9uPnt0KCd2aWRlby5lcnJvcicpfTwvZmlnY2FwdGlvbj5cbiAgICAgIDwvRmlndXJlPlxuICAgICk7XG4gIH1cbiAgY29uc3QgeyBkYXRhLCBzZXEgfSA9IGVtYmVkO1xuXG4gIGNvbnN0IGxpbmtlZFZpZGVvSWQgPSBpc051bWVyaWMoZGF0YS5saW5rPy50ZXh0KSA/IGRhdGEubGluaz8udGV4dCA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBsaWNlbnNlID0gZ2V0TGljZW5zZUJ5QWJicmV2aWF0aW9uKGRhdGEuY29weXJpZ2h0Py5saWNlbnNlLmxpY2Vuc2UgPz8gJycsIGkxOG4ubGFuZ3VhZ2UpO1xuICBjb25zdCBjb250cmlidXRvcnMgPSBkYXRhLmNvcHlyaWdodFxuICAgID8gZ2V0R3JvdXBlZENvbnRyaWJ1dG9yRGVzY3JpcHRpb25MaXN0KGRhdGEuY29weXJpZ2h0LCBpMThuLmxhbmd1YWdlKS5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgIG5hbWU6IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgICAgIHR5cGU6IGl0ZW0ubGFiZWwsXG4gICAgICB9KSlcbiAgICA6IFtdO1xuXG4gIGNvbnN0IHsgcmlnaHRzaG9sZGVycyA9IFtdLCBjcmVhdG9ycyA9IFtdLCBwcm9jZXNzb3JzID0gW10gfSA9IGRhdGEuY29weXJpZ2h0ID8/IHt9O1xuXG4gIGNvbnN0IGRvd25sb2FkID0gc29ydEJ5KFxuICAgIGRhdGEuc291cmNlcy5maWx0ZXIoKHNyYykgPT4gc3JjLmNvbnRhaW5lciA9PT0gJ01QNCcgJiYgc3JjLnNyYyksXG4gICAgKHNyYykgPT4gc3JjLnNpemUsXG4gICk/LlswXT8uc3JjO1xuXG4gIGNvbnN0IGZpZ3VyZUlkID0gYGZpZ3VyZS0ke3NlcX0tJHtkYXRhLmlkfWA7XG4gIGNvbnN0IG9yaWdpbmFsVmlkZW9Qcm9wcyA9IGdldElmcmFtZVByb3BzKGVtYmVkRGF0YSwgZGF0YS5zb3VyY2VzKTtcbiAgY29uc3QgYWx0ZXJuYXRpdmVWaWRlb1Byb3BzID0gbGlua2VkVmlkZW9JZFxuICAgID8gZ2V0SWZyYW1lUHJvcHMoeyAuLi5lbWJlZERhdGEsIHZpZGVvaWQ6IGxpbmtlZFZpZGVvSWQgfSwgZGF0YS5zb3VyY2VzKVxuICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBjYXB0aW9uQXV0aG9ycyA9IGdldEZpcnN0Tm9uRW1wdHlMaWNlbnNlQ3JlZGl0cyh7IHJpZ2h0c2hvbGRlcnMsIGNyZWF0b3JzLCBwcm9jZXNzb3JzIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZpZ3VyZSBpZD17ZmlndXJlSWR9IHR5cGU9e2lzQ29uY2VwdCA/ICdmdWxsLWNvbHVtbicgOiAnZnVsbCd9IHJlc2l6ZUlmcmFtZT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnJpZ2h0Y292ZS12aWRlb1wiPlxuICAgICAgICA8QnJpZ2h0Y292ZUlmcmFtZVxuICAgICAgICAgIHJlZj17aWZyYW1lUmVmfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIm9yaWdpbmFsXCJcbiAgICAgICAgICB0aXRsZT17YFZpZGVvOiAke2RhdGEubmFtZX1gfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2BWaWRlbzogJHtkYXRhLm5hbWV9YH1cbiAgICAgICAgICBmcmFtZUJvcmRlcj1cIjBcIlxuICAgICAgICAgIHsuLi4oYWx0ZXJuYXRpdmVWaWRlb1Byb3BzICYmICFzaG93T3JpZ2luYWxWaWRlbyA/IGFsdGVybmF0aXZlVmlkZW9Qcm9wcyA6IG9yaWdpbmFsVmlkZW9Qcm9wcyl9XG4gICAgICAgICAgYWxsb3dGdWxsU2NyZWVuXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxGaWd1cmVDYXB0aW9uXG4gICAgICAgIGZpZ3VyZUlkPXtmaWd1cmVJZH1cbiAgICAgICAgaWQ9e2RhdGEuaWR9XG4gICAgICAgIGxvY2FsZT17aTE4bi5sYW5ndWFnZX1cbiAgICAgICAgY2FwdGlvbj17ZW1iZWREYXRhLmNhcHRpb24gPz8gJyd9XG4gICAgICAgIG1vZGFsQnV0dG9uPXtcbiAgICAgICAgICA8QnV0dG9uVjIgdmFyaWFudD1cIm91dGxpbmVcIiBzaGFwZT1cInBpbGxcIiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXsoKSA9PiBzZXRJc09wZW4odHJ1ZSl9PlxuICAgICAgICAgICAge3QoJ3ZpZGVvLnJldXNlJyl9XG4gICAgICAgICAgPC9CdXR0b25WMj5cbiAgICAgICAgfVxuICAgICAgICBsaW5rZWRWaWRlb0J1dHRvbj17XG4gICAgICAgICAgPExpbmtlZFZpZGVvQnV0dG9uXG4gICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICBzaGFwZT1cInBpbGxcIlxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dPcmlnaW5hbFZpZGVvKChwKSA9PiAhcCl9PlxuICAgICAgICAgICAge3QoYGZpZ3VyZS5idXR0b24uJHtzaG93T3JpZ2luYWxWaWRlbyA/ICdvcmlnaW5hbCcgOiAnYWx0ZXJuYXRpdmUnfWApfVxuICAgICAgICAgIDwvTGlua2VkVmlkZW9CdXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgbGljZW5zZVJpZ2h0cz17bGljZW5zZS5yaWdodHN9XG4gICAgICAgIGF1dGhvcnM9e2NhcHRpb25BdXRob3JzfVxuICAgICAgICBoYXNMaW5rZWRWaWRlbz17ISFsaW5rZWRWaWRlb0lkfVxuICAgICAgLz5cbiAgICAgIDxNb2RhbFYyIGNvbnRyb2xsZWQgaXNPcGVuPXtpc09wZW59IG9uQ2xvc2U9eygpID0+IHNldElzT3BlbihmYWxzZSl9IGxhYmVsbGVkQnk9XCJsaWNlbnNlLWRpYWxvZy1ydWxlcy1oZWFkaW5nXCI+XG4gICAgICAgIHsoY2xvc2UpID0+IChcbiAgICAgICAgICA8RmlndXJlTGljZW5zZURpYWxvZ0NvbnRlbnRcbiAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlfVxuICAgICAgICAgICAgdGl0bGU9e2RhdGEubmFtZX1cbiAgICAgICAgICAgIGxvY2FsZT17aTE4bi5sYW5ndWFnZX1cbiAgICAgICAgICAgIGxpY2Vuc2U9e2xpY2Vuc2V9XG4gICAgICAgICAgICBhdXRob3JzPXtjb250cmlidXRvcnN9XG4gICAgICAgICAgICB0eXBlPVwidmlkZW9cIj5cbiAgICAgICAgICAgIDxWaWRlb0xpY2Vuc2VCdXR0b25zXG4gICAgICAgICAgICAgIGRvd25sb2FkPXtkb3dubG9hZH1cbiAgICAgICAgICAgICAgbGljZW5zZUNvZGU9e2RhdGEuY29weXJpZ2h0Py5saWNlbnNlLmxpY2Vuc2V9XG4gICAgICAgICAgICAgIHNyYz17b3JpZ2luYWxWaWRlb1Byb3BzLnNyY31cbiAgICAgICAgICAgICAgd2lkdGg9e29yaWdpbmFsVmlkZW9Qcm9wcy53aWR0aH1cbiAgICAgICAgICAgICAgaGVpZ2h0PXtvcmlnaW5hbFZpZGVvUHJvcHMuaGVpZ2h0fVxuICAgICAgICAgICAgICBuYW1lPXtkYXRhLm5hbWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRmlndXJlTGljZW5zZURpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICl9XG4gICAgICA8L01vZGFsVjI+XG4gICAgPC9GaWd1cmU+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgVmlkZW9MaWNlbnNlQnV0dG9uc1Byb3BzIHtcbiAgZG93bmxvYWQ6IHN0cmluZztcbiAgbGljZW5zZUNvZGU/OiBzdHJpbmc7XG4gIHNyYzogc3RyaW5nO1xuICB3aWR0aDogc3RyaW5nIHwgbnVtYmVyO1xuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcbiAgbmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgVmlkZW9MaWNlbnNlQnV0dG9ucyA9ICh7IGRvd25sb2FkLCBzcmMsIHdpZHRoLCBoZWlnaHQsIG5hbWUsIGxpY2Vuc2VDb2RlIH06IFZpZGVvTGljZW5zZUJ1dHRvbnNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtsaWNlbnNlQ29kZSAhPT0gJ0NPUFlSSUdIVEVEJyAmJiAoXG4gICAgICAgIDxTYWZlTGlua0J1dHRvbiBrZXk9XCJkb3dubG9hZFwiIHRvPXtkb3dubG9hZH0gdmFyaWFudD1cIm91dGxpbmVcIiBkb3dubG9hZD5cbiAgICAgICAgICB7dCgndmlkZW8uZG93bmxvYWQnKX1cbiAgICAgICAgPC9TYWZlTGlua0J1dHRvbj5cbiAgICAgICl9XG4gICAgICA8Q29weUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgIGNvcHlOb2RlPXt0KCdsaWNlbnNlLmhhc0NvcGllZFRpdGxlJyl9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG1ha2VJZnJhbWVTdHJpbmcoc3JjLCB3aWR0aCwgaGVpZ2h0LCBuYW1lKSl9PlxuICAgICAgICB7dCgnbGljZW5zZS5lbWJlZCcpfVxuICAgICAgPC9Db3B5QnV0dG9uPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpZ2h0Y292ZUVtYmVkO1xuIl19 */",
46
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
47
+ });
48
+ var makeIframeString = function makeIframeString(url, width, height) {
49
+ var title = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
50
+ var strippedWidth = (0, _isNumber["default"])(width) ? width : width.replace(/\s*px/, '');
51
+ var strippedHeight = (0, _isNumber["default"])(height) ? height : height.replace(/\s*px/, '');
52
+ var urlOrTitle = title || url;
53
+ return "<iframe title=\"".concat(urlOrTitle, "\" aria-label=\"").concat(urlOrTitle, "\" src=\"").concat(url, "\" width=\"").concat(strippedWidth, "\" height=\"").concat(strippedHeight, "\" allowfullscreen scrolling=\"no\" frameborder=\"0\" loading=\"lazy\"></iframe>");
54
+ };
55
+ exports.makeIframeString = makeIframeString;
56
+ var isNumeric = function isNumeric(value) {
57
+ return !Number.isNaN(value - parseFloat(value));
58
+ };
59
+ exports.isNumeric = isNumeric;
60
+ var getIframeProps = function getIframeProps(data, sources) {
61
+ var _source$height, _source$width;
62
+ var account = data.account,
63
+ videoid = data.videoid,
64
+ _data$player = data.player,
65
+ player = _data$player === void 0 ? 'default' : _data$player;
66
+ var source = (0, _sortBy2["default"])(sources.filter(function (s) {
67
+ return s.width && s.height;
68
+ }), function (s) {
69
+ return s.height;
70
+ })[0];
71
+ return {
72
+ src: "https://players.brightcove.net/".concat(account, "/").concat(player, "_default/index.html?videoId=").concat(videoid),
73
+ height: (_source$height = source === null || source === void 0 ? void 0 : source.height) !== null && _source$height !== void 0 ? _source$height : '480',
74
+ width: (_source$width = source === null || source === void 0 ? void 0 : source.width) !== null && _source$width !== void 0 ? _source$width : '640'
75
+ };
76
+ };
77
+ var BrightcoveEmbed = function BrightcoveEmbed(_ref) {
78
+ var _data$link, _data$link2, _data$copyright$licen, _data$copyright, _data$copyright2, _sortBy, _sortBy$, _embedData$caption;
79
+ var embed = _ref.embed,
80
+ isConcept = _ref.isConcept;
81
+ var _useState = (0, _react.useState)(false),
82
+ _useState2 = _slicedToArray(_useState, 2),
83
+ isOpen = _useState2[0],
84
+ setIsOpen = _useState2[1];
85
+ var _useState3 = (0, _react.useState)(true),
86
+ _useState4 = _slicedToArray(_useState3, 2),
87
+ showOriginalVideo = _useState4[0],
88
+ setShowOriginalVideo = _useState4[1];
89
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
90
+ t = _useTranslation.t,
91
+ i18n = _useTranslation.i18n;
92
+ var iframeRef = (0, _react.useRef)(null);
93
+ var embedData = embed.embedData;
94
+ (0, _react.useEffect)(function () {
95
+ var iframe = iframeRef.current;
96
+ if (iframe) {
97
+ var _ref2 = [parseInt(iframe.width), parseInt(iframe.height)],
98
+ width = _ref2[0],
99
+ height = _ref2[1];
100
+ iframe.style.aspectRatio = "".concat(width, "/").concat(height);
101
+ }
102
+ }, []);
103
+ if (embed.status === 'error') {
104
+ var _embedData$videoid, _embedData$videoid2;
105
+ return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
106
+ type: isConcept ? 'full-column' : 'full',
107
+ resizeIframe: true,
108
+ children: [(0, _jsxRuntime.jsx)(BrightcoveIframe, _objectSpread(_objectSpread({
109
+ ref: iframeRef,
110
+ title: "Video: ".concat((_embedData$videoid = embedData.videoid) !== null && _embedData$videoid !== void 0 ? _embedData$videoid : ''),
111
+ "aria-label": "Video: ".concat((_embedData$videoid2 = embedData.videoid) !== null && _embedData$videoid2 !== void 0 ? _embedData$videoid2 : ''),
112
+ frameBorder: "0"
113
+ }, getIframeProps(embedData, [])), {}, {
114
+ allowFullScreen: true
115
+ })), (0, _jsxRuntime.jsx)("figcaption", {
116
+ children: t('video.error')
117
+ })]
118
+ });
119
+ }
120
+ var data = embed.data,
121
+ seq = embed.seq;
122
+ 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;
123
+ 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);
124
+ var contributors = data.copyright ? (0, _licenses.getGroupedContributorDescriptionList)(data.copyright, i18n.language).map(function (item) {
125
+ return {
126
+ name: item.description,
127
+ type: item.label
128
+ };
129
+ }) : [];
130
+ var _ref3 = (_data$copyright2 = data.copyright) !== null && _data$copyright2 !== void 0 ? _data$copyright2 : {},
131
+ _ref3$rightsholders = _ref3.rightsholders,
132
+ rightsholders = _ref3$rightsholders === void 0 ? [] : _ref3$rightsholders,
133
+ _ref3$creators = _ref3.creators,
134
+ creators = _ref3$creators === void 0 ? [] : _ref3$creators,
135
+ _ref3$processors = _ref3.processors,
136
+ processors = _ref3$processors === void 0 ? [] : _ref3$processors;
137
+ var download = (_sortBy = (0, _sortBy2["default"])(data.sources.filter(function (src) {
138
+ return src.container === 'MP4' && src.src;
139
+ }), function (src) {
140
+ return src.size;
141
+ })) === null || _sortBy === void 0 ? void 0 : (_sortBy$ = _sortBy[0]) === null || _sortBy$ === void 0 ? void 0 : _sortBy$.src;
142
+ var figureId = "figure-".concat(seq, "-").concat(data.id);
143
+ var originalVideoProps = getIframeProps(embedData, data.sources);
144
+ var alternativeVideoProps = linkedVideoId ? getIframeProps(_objectSpread(_objectSpread({}, embedData), {}, {
145
+ videoid: linkedVideoId
146
+ }), data.sources) : undefined;
147
+ var captionAuthors = (0, _AudioEmbed.getFirstNonEmptyLicenseCredits)({
148
+ rightsholders: rightsholders,
149
+ creators: creators,
150
+ processors: processors
151
+ });
152
+ return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
153
+ id: figureId,
154
+ type: isConcept ? 'full-column' : 'full',
155
+ resizeIframe: true,
156
+ children: [(0, _jsxRuntime.jsx)("div", {
157
+ className: "brightcove-video",
158
+ children: (0, _jsxRuntime.jsx)(BrightcoveIframe, _objectSpread(_objectSpread({
159
+ ref: iframeRef,
160
+ className: "original",
161
+ title: "Video: ".concat(data.name),
162
+ "aria-label": "Video: ".concat(data.name),
163
+ frameBorder: "0"
164
+ }, alternativeVideoProps && !showOriginalVideo ? alternativeVideoProps : originalVideoProps), {}, {
165
+ allowFullScreen: true
166
+ }))
167
+ }), (0, _jsxRuntime.jsx)(_Figure.FigureCaption, {
168
+ figureId: figureId,
169
+ id: data.id,
170
+ locale: i18n.language,
171
+ caption: (_embedData$caption = embedData.caption) !== null && _embedData$caption !== void 0 ? _embedData$caption : '',
172
+ modalButton: (0, _jsxRuntime.jsx)(_button.ButtonV2, {
173
+ variant: "outline",
174
+ shape: "pill",
175
+ size: "small",
176
+ onClick: function onClick() {
177
+ return setIsOpen(true);
178
+ },
179
+ children: t('video.reuse')
180
+ }),
181
+ linkedVideoButton: (0, _jsxRuntime.jsx)(LinkedVideoButton, {
182
+ variant: "outline",
183
+ shape: "pill",
184
+ size: "small",
185
+ onClick: function onClick() {
186
+ return setShowOriginalVideo(function (p) {
187
+ return !p;
188
+ });
189
+ },
190
+ children: t("figure.button.".concat(showOriginalVideo ? 'original' : 'alternative'))
191
+ }),
192
+ licenseRights: license.rights,
193
+ authors: captionAuthors,
194
+ hasLinkedVideo: !!linkedVideoId
195
+ }), (0, _jsxRuntime.jsx)(_modal.ModalV2, {
196
+ controlled: true,
197
+ isOpen: isOpen,
198
+ onClose: function onClose() {
199
+ return setIsOpen(false);
200
+ },
201
+ labelledBy: "license-dialog-rules-heading",
202
+ children: function children(close) {
203
+ var _data$copyright3;
204
+ return (0, _jsxRuntime.jsx)(_FigureLicenseDialogContent.FigureLicenseDialogContent, {
205
+ onClose: close,
206
+ title: data.name,
207
+ locale: i18n.language,
208
+ license: license,
209
+ authors: contributors,
210
+ type: "video",
211
+ children: (0, _jsxRuntime.jsx)(VideoLicenseButtons, {
212
+ download: download,
213
+ licenseCode: (_data$copyright3 = data.copyright) === null || _data$copyright3 === void 0 ? void 0 : _data$copyright3.license.license,
214
+ src: originalVideoProps.src,
215
+ width: originalVideoProps.width,
216
+ height: originalVideoProps.height,
217
+ name: data.name
218
+ })
219
+ });
220
+ }
221
+ })]
222
+ });
223
+ };
224
+ var VideoLicenseButtons = function VideoLicenseButtons(_ref4) {
225
+ var download = _ref4.download,
226
+ src = _ref4.src,
227
+ width = _ref4.width,
228
+ height = _ref4.height,
229
+ name = _ref4.name,
230
+ licenseCode = _ref4.licenseCode;
231
+ var _useTranslation2 = (0, _reactI18next.useTranslation)(),
232
+ t = _useTranslation2.t;
233
+ return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
234
+ children: [licenseCode !== 'COPYRIGHTED' && (0, _jsxRuntime.jsx)(_safelink.SafeLinkButton, {
235
+ to: download,
236
+ variant: "outline",
237
+ download: true,
238
+ children: t('video.download')
239
+ }, "download"), (0, _jsxRuntime.jsx)(_button.CopyButton, {
240
+ variant: "outline",
241
+ copyNode: t('license.hasCopiedTitle'),
242
+ onClick: function onClick() {
243
+ return navigator.clipboard.writeText(makeIframeString(src, width, height, name));
244
+ },
245
+ children: t('license.embed')
246
+ })]
247
+ });
248
+ };
249
+ var _default = BrightcoveEmbed;
250
+ exports["default"] = _default;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright (c) 2023-present, NDLA.
3
+ *
4
+ * This source code is licensed under the GPLv3 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import { ConceptMetaData } from '@ndla/types-embed';
9
+ import { ConceptNotionData } from './conceptComponents';
10
+ interface Props {
11
+ embed: ConceptMetaData;
12
+ fullWidth?: boolean;
13
+ }
14
+ export declare const ConceptEmbed: ({ embed, fullWidth }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
15
+ interface ConceptProps extends ConceptNotionData {
16
+ fullWidth?: boolean;
17
+ }
18
+ export declare const BlockConcept: ({ title, content, metaImage, copyright, source, visualElement, fullWidth, }: ConceptProps) => import("@emotion/react/jsx-runtime").JSX.Element;
19
+ export default ConceptEmbed;