@ndla/ui 34.6.2 → 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.
- package/es/Article/Article.js +11 -6
- package/es/Aside/Aside.js +5 -2
- package/es/CopyParagraphButton/CopyParagraphButtonV2.js +85 -0
- package/es/CopyParagraphButton/index.js +2 -1
- package/es/Embed/AudioEmbed.js +254 -0
- package/es/Embed/BrightcoveEmbed.js +250 -0
- package/es/Embed/ConceptEmbed.js +358 -0
- package/es/Embed/ConceptListEmbed.js +71 -0
- package/es/Embed/ContentLinkEmbed.js +42 -0
- package/es/Embed/ExternalEmbed.js +91 -0
- package/es/Embed/FootnoteEmbed.js +32 -0
- package/es/Embed/H5pEmbed.js +87 -0
- package/es/Embed/IframeEmbed.js +83 -0
- package/es/Embed/ImageEmbed.js +322 -0
- package/es/Embed/RelatedContentEmbed.js +58 -0
- package/es/Embed/UnknownEmbed.js +27 -0
- package/es/Embed/conceptComponents.js +282 -0
- package/es/Embed/index.js +21 -0
- package/es/FactBox/FactBoxV2.js +90 -0
- package/es/FactBox/index.js +1 -0
- package/es/Figure/Figure.js +8 -5
- package/es/Figure/FigureLicenseDialogContent.js +72 -0
- package/es/FileList/FileListV2.js +47 -0
- package/es/FileList/FileV2.js +34 -0
- package/es/FileList/PdfFile.js +25 -0
- package/es/FileList/index.js +3 -0
- package/es/Notion/Notion.js +5 -5
- package/es/Notion/NotionVisualElement.js +2 -2
- package/es/RelatedArticleList/RelatedArticleV2.js +101 -0
- package/es/RelatedArticleList/index.js +2 -1
- package/es/Table/Table.js +95 -8
- package/es/all.css +1 -1
- package/es/index.js +5 -4
- package/es/locale/messages-en.js +8 -1
- package/es/locale/messages-nb.js +8 -1
- package/es/locale/messages-nn.js +8 -1
- package/es/locale/messages-se.js +8 -1
- package/es/locale/messages-sma.js +8 -1
- package/lib/Article/Article.d.ts +2 -1
- package/lib/Article/Article.js +11 -6
- package/lib/Aside/Aside.d.ts +2 -1
- package/lib/Aside/Aside.js +5 -2
- package/lib/CopyParagraphButton/CopyParagraphButtonV2.d.ts +14 -0
- package/lib/CopyParagraphButton/CopyParagraphButtonV2.js +84 -0
- package/lib/CopyParagraphButton/index.d.ts +2 -1
- package/lib/CopyParagraphButton/index.js +7 -0
- package/lib/Embed/AudioEmbed.d.ts +20 -0
- package/lib/Embed/AudioEmbed.js +252 -0
- package/lib/Embed/BrightcoveEmbed.d.ts +16 -0
- package/lib/Embed/BrightcoveEmbed.js +250 -0
- package/lib/Embed/ConceptEmbed.d.ts +19 -0
- package/lib/Embed/ConceptEmbed.js +358 -0
- package/lib/Embed/ConceptListEmbed.d.ts +13 -0
- package/lib/Embed/ConceptListEmbed.js +70 -0
- package/lib/Embed/ContentLinkEmbed.d.ts +14 -0
- package/lib/Embed/ContentLinkEmbed.js +50 -0
- package/lib/Embed/ExternalEmbed.d.ts +14 -0
- package/lib/Embed/ExternalEmbed.js +90 -0
- package/lib/Embed/FootnoteEmbed.d.ts +13 -0
- package/lib/Embed/FootnoteEmbed.js +39 -0
- package/lib/Embed/H5pEmbed.d.ts +14 -0
- package/lib/Embed/H5pEmbed.js +86 -0
- package/lib/Embed/IframeEmbed.d.ts +14 -0
- package/lib/Embed/IframeEmbed.js +91 -0
- package/lib/Embed/ImageEmbed.d.ts +37 -0
- package/lib/Embed/ImageEmbed.js +326 -0
- package/lib/Embed/RelatedContentEmbed.d.ts +16 -0
- package/lib/Embed/RelatedContentEmbed.js +64 -0
- package/lib/Embed/UnknownEmbed.d.ts +13 -0
- package/lib/Embed/UnknownEmbed.js +35 -0
- package/lib/Embed/conceptComponents.d.ts +32 -0
- package/lib/Embed/conceptComponents.js +280 -0
- package/lib/Embed/index.d.ts +20 -0
- package/lib/Embed/index.js +97 -0
- package/lib/FactBox/FactBoxV2.d.ts +13 -0
- package/lib/FactBox/FactBoxV2.js +92 -0
- package/lib/FactBox/index.d.ts +1 -0
- package/lib/FactBox/index.js +7 -0
- package/lib/Figure/Figure.d.ts +5 -2
- package/lib/Figure/Figure.js +8 -5
- package/lib/Figure/FigureLicenseDialogContent.d.ts +22 -0
- package/lib/Figure/FigureLicenseDialogContent.js +71 -0
- package/lib/FileList/FileListV2.d.ts +13 -0
- package/lib/FileList/FileListV2.js +46 -0
- package/lib/FileList/FileV2.d.ts +16 -0
- package/lib/FileList/FileV2.js +42 -0
- package/lib/FileList/PdfFile.d.ts +13 -0
- package/lib/FileList/PdfFile.js +31 -0
- package/lib/FileList/index.d.ts +3 -0
- package/lib/FileList/index.js +21 -0
- package/lib/Notion/Notion.js +5 -5
- package/lib/Notion/NotionVisualElement.d.ts +1 -1
- package/lib/Notion/NotionVisualElement.js +2 -2
- package/lib/RelatedArticleList/RelatedArticleV2.d.ts +25 -0
- package/lib/RelatedArticleList/RelatedArticleV2.js +101 -0
- package/lib/RelatedArticleList/index.d.ts +2 -1
- package/lib/RelatedArticleList/index.js +7 -0
- package/lib/Table/Table.js +98 -8
- package/lib/all.css +1 -1
- package/lib/index.d.ts +5 -4
- package/lib/index.js +117 -2
- package/lib/locale/messages-en.d.ts +7 -0
- package/lib/locale/messages-en.js +8 -1
- package/lib/locale/messages-nb.d.ts +7 -0
- package/lib/locale/messages-nb.js +8 -1
- package/lib/locale/messages-nn.d.ts +7 -0
- package/lib/locale/messages-nn.js +8 -1
- package/lib/locale/messages-se.d.ts +7 -0
- package/lib/locale/messages-se.js +8 -1
- package/lib/locale/messages-sma.d.ts +7 -0
- package/lib/locale/messages-sma.js +8 -1
- package/lib/types.d.ts +1 -1
- package/package.json +16 -12
- package/src/Article/Article.tsx +8 -3
- package/src/Aside/Aside.tsx +9 -1
- package/src/Aside/component.aside.scss +3 -0
- package/src/CopyParagraphButton/CopyParagraphButtonV2.tsx +84 -0
- package/src/CopyParagraphButton/index.tsx +2 -1
- package/src/Embed/AudioEmbed.tsx +249 -0
- package/src/Embed/BrightcoveEmbed.tsx +203 -0
- package/src/Embed/ConceptEmbed.tsx +408 -0
- package/src/Embed/ConceptListEmbed.tsx +64 -0
- package/src/Embed/ContentLinkEmbed.tsx +41 -0
- package/src/Embed/ExternalEmbed.tsx +80 -0
- package/src/Embed/FootnoteEmbed.tsx +30 -0
- package/src/Embed/H5pEmbed.tsx +74 -0
- package/src/Embed/IframeEmbed.tsx +84 -0
- package/src/Embed/ImageEmbed.tsx +314 -0
- package/src/Embed/RelatedContentEmbed.tsx +62 -0
- package/src/Embed/UnknownEmbed.tsx +27 -0
- package/src/Embed/conceptComponents.tsx +393 -0
- package/src/Embed/index.ts +21 -0
- package/src/FactBox/FactBoxV2.tsx +56 -0
- package/src/FactBox/index.ts +2 -0
- package/src/Figure/Figure.tsx +28 -15
- package/src/Figure/FigureLicenseDialogContent.tsx +80 -0
- package/src/Figure/component.figure.scss +0 -1
- package/src/FileList/FileListV2.tsx +58 -0
- package/src/FileList/FileV2.tsx +35 -0
- package/src/FileList/PdfFile.tsx +25 -0
- package/src/FileList/index.ts +3 -0
- package/src/Notion/Notion.tsx +0 -1
- package/src/Notion/NotionVisualElement.tsx +1 -1
- package/src/RelatedArticleList/RelatedArticleV2.tsx +84 -0
- package/src/RelatedArticleList/index.ts +2 -1
- package/src/Table/Table.tsx +77 -4
- package/src/index.ts +19 -4
- package/src/locale/messages-en.ts +7 -0
- package/src/locale/messages-nb.ts +7 -0
- package/src/locale/messages-nn.ts +7 -0
- package/src/locale/messages-se.ts +7 -0
- package/src/locale/messages-sma.ts +7 -0
- package/src/types.ts +1 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
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)."; }
|
|
3
|
+
/**
|
|
4
|
+
* Copyright (c) 2023-present, NDLA.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { useTranslation } from 'react-i18next';
|
|
12
|
+
import { colors } from '@ndla/core';
|
|
13
|
+
import { Figure } from '../Figure';
|
|
14
|
+
import { BlockConcept } from './ConceptEmbed';
|
|
15
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
16
|
+
import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
17
|
+
var ConceptList = /*#__PURE__*/_styled("div", {
|
|
18
|
+
target: "e1g5p4xu1",
|
|
19
|
+
label: "ConceptList"
|
|
20
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
21
|
+
name: "1m0jptr",
|
|
22
|
+
styles: "&>figure:first-of-type{margin-top:32px;}& li{display:block;}"
|
|
23
|
+
} : {
|
|
24
|
+
name: "1m0jptr",
|
|
25
|
+
styles: "&>figure:first-of-type{margin-top:32px;}& li{display:block;}",
|
|
26
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbmNlcHRMaXN0RW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1COEIiLCJmaWxlIjoiQ29uY2VwdExpc3RFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IENvbmNlcHRMaXN0TWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbXBvcnQgeyBGaWd1cmUgfSBmcm9tICcuLi9GaWd1cmUnO1xuaW1wb3J0IHsgQmxvY2tDb25jZXB0IH0gZnJvbSAnLi9Db25jZXB0RW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQ29uY2VwdExpc3RNZXRhRGF0YTtcbn1cblxuY29uc3QgQ29uY2VwdExpc3QgPSBzdHlsZWQuZGl2YFxuICAmID4gZmlndXJlOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gIH1cbiAgJiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7Y29sb3JzLnN1cHBvcnQucmVkfTtcbmA7XG5cbmNvbnN0IENvbmNlcHRMaXN0RW1iZWQgPSAoeyBlbWJlZCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGlmIChlbWJlZC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gPFN0eWxlZFNwYW4+e3QoJ2VtYmVkLmNvbmNlcHRMaXN0RXJyb3InKX08L1N0eWxlZFNwYW4+O1xuICB9XG4gIGNvbnN0IHsgZW1iZWREYXRhLCBkYXRhIH0gPSBlbWJlZDtcbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPEZpZ3VyZSB0eXBlPVwiZnVsbFwiIHJlc2l6ZUlmcmFtZT5cbiAgICAgICAge2VtYmVkRGF0YS50aXRsZSAmJiA8aDI+e2VtYmVkRGF0YS50aXRsZX08L2gyPn1cbiAgICAgICAgPENvbmNlcHRMaXN0PlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIHtkYXRhLmNvbmNlcHRzLm1hcCgoeyBjb25jZXB0LCB2aXN1YWxFbGVtZW50IH0pID0+IChcbiAgICAgICAgICAgICAgPGxpIGtleT17Y29uY2VwdC5pZH0+XG4gICAgICAgICAgICAgICAgPEJsb2NrQ29uY2VwdFxuICAgICAgICAgICAgICAgICAgdGl0bGU9e2NvbmNlcHQudGl0bGUudGl0bGV9XG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb25jZXB0LmNvbnRlbnQuY29udGVudH1cbiAgICAgICAgICAgICAgICAgIG1ldGFJbWFnZT17Y29uY2VwdC5tZXRhSW1hZ2V9XG4gICAgICAgICAgICAgICAgICBjb3B5cmlnaHQ9e2NvbmNlcHQuY29weXJpZ2h0fVxuICAgICAgICAgICAgICAgICAgc291cmNlPXtjb25jZXB0LnNvdXJjZX1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQ9e3Zpc3VhbEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvQ29uY2VwdExpc3Q+XG4gICAgICA8L0ZpZ3VyZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbmNlcHRMaXN0RW1iZWQ7XG4iXX0= */",
|
|
27
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
28
|
+
});
|
|
29
|
+
var StyledSpan = /*#__PURE__*/_styled("span", {
|
|
30
|
+
target: "e1g5p4xu0",
|
|
31
|
+
label: "StyledSpan"
|
|
32
|
+
})("color:", colors.support.red, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbmNlcHRMaXN0RW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCOEIiLCJmaWxlIjoiQ29uY2VwdExpc3RFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IENvbmNlcHRMaXN0TWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbXBvcnQgeyBGaWd1cmUgfSBmcm9tICcuLi9GaWd1cmUnO1xuaW1wb3J0IHsgQmxvY2tDb25jZXB0IH0gZnJvbSAnLi9Db25jZXB0RW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQ29uY2VwdExpc3RNZXRhRGF0YTtcbn1cblxuY29uc3QgQ29uY2VwdExpc3QgPSBzdHlsZWQuZGl2YFxuICAmID4gZmlndXJlOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gIH1cbiAgJiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7Y29sb3JzLnN1cHBvcnQucmVkfTtcbmA7XG5cbmNvbnN0IENvbmNlcHRMaXN0RW1iZWQgPSAoeyBlbWJlZCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGlmIChlbWJlZC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gPFN0eWxlZFNwYW4+e3QoJ2VtYmVkLmNvbmNlcHRMaXN0RXJyb3InKX08L1N0eWxlZFNwYW4+O1xuICB9XG4gIGNvbnN0IHsgZW1iZWREYXRhLCBkYXRhIH0gPSBlbWJlZDtcbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPEZpZ3VyZSB0eXBlPVwiZnVsbFwiIHJlc2l6ZUlmcmFtZT5cbiAgICAgICAge2VtYmVkRGF0YS50aXRsZSAmJiA8aDI+e2VtYmVkRGF0YS50aXRsZX08L2gyPn1cbiAgICAgICAgPENvbmNlcHRMaXN0PlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIHtkYXRhLmNvbmNlcHRzLm1hcCgoeyBjb25jZXB0LCB2aXN1YWxFbGVtZW50IH0pID0+IChcbiAgICAgICAgICAgICAgPGxpIGtleT17Y29uY2VwdC5pZH0+XG4gICAgICAgICAgICAgICAgPEJsb2NrQ29uY2VwdFxuICAgICAgICAgICAgICAgICAgdGl0bGU9e2NvbmNlcHQudGl0bGUudGl0bGV9XG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb25jZXB0LmNvbnRlbnQuY29udGVudH1cbiAgICAgICAgICAgICAgICAgIG1ldGFJbWFnZT17Y29uY2VwdC5tZXRhSW1hZ2V9XG4gICAgICAgICAgICAgICAgICBjb3B5cmlnaHQ9e2NvbmNlcHQuY29weXJpZ2h0fVxuICAgICAgICAgICAgICAgICAgc291cmNlPXtjb25jZXB0LnNvdXJjZX1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQ9e3Zpc3VhbEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvQ29uY2VwdExpc3Q+XG4gICAgICA8L0ZpZ3VyZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbmNlcHRMaXN0RW1iZWQ7XG4iXX0= */"));
|
|
33
|
+
var ConceptListEmbed = function ConceptListEmbed(_ref) {
|
|
34
|
+
var embed = _ref.embed;
|
|
35
|
+
var _useTranslation = useTranslation(),
|
|
36
|
+
t = _useTranslation.t;
|
|
37
|
+
if (embed.status === 'error') {
|
|
38
|
+
return _jsx(StyledSpan, {
|
|
39
|
+
children: t('embed.conceptListError')
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
var embedData = embed.embedData,
|
|
43
|
+
data = embed.data;
|
|
44
|
+
return _jsx("div", {
|
|
45
|
+
children: _jsxs(Figure, {
|
|
46
|
+
type: "full",
|
|
47
|
+
resizeIframe: true,
|
|
48
|
+
children: [embedData.title && _jsx("h2", {
|
|
49
|
+
children: embedData.title
|
|
50
|
+
}), _jsx(ConceptList, {
|
|
51
|
+
children: _jsx("ul", {
|
|
52
|
+
children: data.concepts.map(function (_ref2) {
|
|
53
|
+
var concept = _ref2.concept,
|
|
54
|
+
visualElement = _ref2.visualElement;
|
|
55
|
+
return _jsx("li", {
|
|
56
|
+
children: _jsx(BlockConcept, {
|
|
57
|
+
title: concept.title.title,
|
|
58
|
+
content: concept.content.content,
|
|
59
|
+
metaImage: concept.metaImage,
|
|
60
|
+
copyright: concept.copyright,
|
|
61
|
+
source: concept.source,
|
|
62
|
+
visualElement: visualElement
|
|
63
|
+
})
|
|
64
|
+
}, concept.id);
|
|
65
|
+
})
|
|
66
|
+
})
|
|
67
|
+
})]
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
export default ConceptListEmbed;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2023-present, NDLA.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { useTranslation } from 'react-i18next';
|
|
11
|
+
import { colors } from '@ndla/core';
|
|
12
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
13
|
+
var StyledSpan = /*#__PURE__*/_styled("span", {
|
|
14
|
+
target: "e1s10cki0",
|
|
15
|
+
label: "StyledSpan"
|
|
16
|
+
})("color:", colors.support.red, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRMaW5rRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCOEIiLCJmaWxlIjoiQ29udGVudExpbmtFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IENvbnRlbnRMaW5rTWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQ29udGVudExpbmtNZXRhRGF0YTtcbiAgaXNPZW1iZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTcGFuID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAke2NvbG9ycy5zdXBwb3J0LnJlZH07XG5gO1xuXG5jb25zdCBDb250ZW50TGlua0VtYmVkID0gKHsgZW1iZWQsIGlzT2VtYmVkIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgIHJldHVybiA8U3R5bGVkU3Bhbj57YCR7dCgnZW1iZWQubGlua0Vycm9yJyl9OiAke2VtYmVkLmVtYmVkRGF0YS5saW5rVGV4dH1gfTwvU3R5bGVkU3Bhbj47XG4gIH1cblxuICBjb25zdCB7IGVtYmVkRGF0YSwgZGF0YSB9ID0gZW1iZWQ7XG5cbiAgaWYgKGVtYmVkRGF0YS5vcGVuSW4gPT09ICduZXctY29udGV4dCcgfHwgaXNPZW1iZWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGEgaHJlZj17ZW1iZWQuZGF0YS5wYXRofSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIHtlbWJlZERhdGEubGlua1RleHR9XG4gICAgICA8L2E+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiA8YSBocmVmPXtkYXRhLnBhdGh9PntlbWJlZERhdGEubGlua1RleHR9PC9hPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRlbnRMaW5rRW1iZWQ7XG4iXX0= */"));
|
|
17
|
+
var ContentLinkEmbed = function ContentLinkEmbed(_ref) {
|
|
18
|
+
var embed = _ref.embed,
|
|
19
|
+
isOembed = _ref.isOembed;
|
|
20
|
+
var _useTranslation = useTranslation(),
|
|
21
|
+
t = _useTranslation.t;
|
|
22
|
+
if (embed.status === 'error') {
|
|
23
|
+
return _jsx(StyledSpan, {
|
|
24
|
+
children: "".concat(t('embed.linkError'), ": ").concat(embed.embedData.linkText)
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
var embedData = embed.embedData,
|
|
28
|
+
data = embed.data;
|
|
29
|
+
if (embedData.openIn === 'new-context' || isOembed) {
|
|
30
|
+
return _jsx("a", {
|
|
31
|
+
href: embed.data.path,
|
|
32
|
+
target: "_blank",
|
|
33
|
+
rel: "noopener noreferrer",
|
|
34
|
+
children: embedData.linkText
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return _jsx("a", {
|
|
38
|
+
href: data.path,
|
|
39
|
+
children: embedData.linkText
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
export default ContentLinkEmbed;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
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)."; }
|
|
3
|
+
/**
|
|
4
|
+
* Copyright (c) 2023-present, NDLA.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { useEffect, useRef } from 'react';
|
|
12
|
+
import { useTranslation } from 'react-i18next';
|
|
13
|
+
import { Figure } from '../Figure';
|
|
14
|
+
import { ResourceBox } from '../ResourceBox';
|
|
15
|
+
import { errorSvgSrc } from './ImageEmbed';
|
|
16
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
17
|
+
import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
18
|
+
var StyledFigure = /*#__PURE__*/_styled("figure", {
|
|
19
|
+
target: "e13ppouw0",
|
|
20
|
+
label: "StyledFigure"
|
|
21
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
22
|
+
name: "9y4sui",
|
|
23
|
+
styles: "iframe{height:auto;}"
|
|
24
|
+
} : {
|
|
25
|
+
name: "9y4sui",
|
|
26
|
+
styles: "iframe{height:auto;}",
|
|
27
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkV4dGVybmFsRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCa0MiLCJmaWxlIjoiRXh0ZXJuYWxFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IE9lbWJlZE1ldGFEYXRhIH0gZnJvbSAnQG5kbGEvdHlwZXMtZW1iZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHsgRmlndXJlIH0gZnJvbSAnLi4vRmlndXJlJztcbmltcG9ydCB7IFJlc291cmNlQm94IH0gZnJvbSAnLi4vUmVzb3VyY2VCb3gnO1xuaW1wb3J0IHsgZXJyb3JTdmdTcmMgfSBmcm9tICcuL0ltYWdlRW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogT2VtYmVkTWV0YURhdGE7XG4gIGlzQ29uY2VwdD86IGJvb2xlYW47XG59XG5cbmNvbnN0IFN0eWxlZEZpZ3VyZSA9IHN0eWxlZC5maWd1cmVgXG4gIGlmcmFtZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5gO1xuXG5jb25zdCBFeHRlcm5hbEVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGZpZ1JlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpZnJhbWUgPSBmaWdSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvcihgaWZyYW1lYCk7XG4gICAgaWYgKGlmcmFtZSkge1xuICAgICAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID0gW3BhcnNlSW50KGlmcmFtZS53aWR0aCksIHBhcnNlSW50KGlmcmFtZS5oZWlnaHQpXTtcbiAgICAgIGlmcmFtZS5zdHlsZS5hc3BlY3RSYXRpbyA9IGAke3dpZHRoID8gd2lkdGggOiAxNn0vJHtoZWlnaHQgPyBoZWlnaHQgOiA5fWA7XG4gICAgfVxuICB9LCBbXSk7XG4gIGlmIChlbWJlZC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGZpZ3VyZSBjbGFzc05hbWU9e2lzQ29uY2VwdCA/ICcnIDogJ2MtZmlndXJlJ30+XG4gICAgICAgIDxpbWcgYWx0PXt0KCdleHRlcm5hbC5lcnJvcicpfSBzcmM9e2Vycm9yU3ZnU3JjfSAvPlxuICAgICAgICA8ZmlnY2FwdGlvbj57dCgnZXh0ZXJuYWwuZXJyb3InKX08L2ZpZ2NhcHRpb24+XG4gICAgICA8L2ZpZ3VyZT5cbiAgICApO1xuICB9XG5cbiAgY29uc3QgeyBlbWJlZERhdGEsIGRhdGEgfSA9IGVtYmVkO1xuXG4gIGlmIChlbWJlZERhdGEudHlwZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgY29uc3QgaW1hZ2UgPSB7IHNyYzogZGF0YS5pZnJhbWVJbWFnZT8uaW1hZ2VVcmwgPz8gJycsIGFsdDogZGF0YS5pZnJhbWVJbWFnZT8uYWx0dGV4dD8uYWx0dGV4dCA/PyAnJyB9O1xuICAgIHJldHVybiAoXG4gICAgICA8RmlndXJlIHR5cGU9XCJmdWxsXCI+XG4gICAgICAgIDxSZXNvdXJjZUJveFxuICAgICAgICAgIGltYWdlPXtpbWFnZX1cbiAgICAgICAgICB0aXRsZT17ZW1iZWREYXRhLnRpdGxlID8/ICcnfVxuICAgICAgICAgIHVybD17ZW1iZWREYXRhLnVybH1cbiAgICAgICAgICBjYXB0aW9uPXtlbWJlZERhdGEuY2FwdGlvbiA/PyAnJ31cbiAgICAgICAgICBidXR0b25UZXh0PXt0KCdsaWNlbnNlLm90aGVyLml0ZW1JbWFnZS5hcmlhTGFiZWwnKX1cbiAgICAgICAgLz5cbiAgICAgIDwvRmlndXJlPlxuICAgICk7XG4gIH1cblxuICBjb25zdCBmdWxsQ29sdW1uQ2xhc3MgPSBpc0NvbmNlcHQgPyAnYy1maWd1cmUtLWZ1bGwtY29sdW1uJyA6ICcnO1xuICBjb25zdCBjbGFzc2VzID0gYGMtZmlndXJlICR7ZnVsbENvbHVtbkNsYXNzfSBjLWZpZ3VyZS0tcmVzaXplYDtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRGaWd1cmVcbiAgICAgIHJlZj17ZmlnUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgcmVzaXplaWZyYW1lPVwidHJ1ZVwiXG4gICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGRhdGEub2VtYmVkLmh0bWwgPz8gJycgfX1cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRXh0ZXJuYWxFbWJlZDtcbiJdfQ== */",
|
|
28
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
29
|
+
});
|
|
30
|
+
var ExternalEmbed = function ExternalEmbed(_ref) {
|
|
31
|
+
var _data$oembed$html;
|
|
32
|
+
var embed = _ref.embed,
|
|
33
|
+
isConcept = _ref.isConcept;
|
|
34
|
+
var _useTranslation = useTranslation(),
|
|
35
|
+
t = _useTranslation.t;
|
|
36
|
+
var figRef = useRef(null);
|
|
37
|
+
useEffect(function () {
|
|
38
|
+
var _figRef$current;
|
|
39
|
+
var iframe = (_figRef$current = figRef.current) === null || _figRef$current === void 0 ? void 0 : _figRef$current.querySelector("iframe");
|
|
40
|
+
if (iframe) {
|
|
41
|
+
var _ref2 = [parseInt(iframe.width), parseInt(iframe.height)],
|
|
42
|
+
width = _ref2[0],
|
|
43
|
+
height = _ref2[1];
|
|
44
|
+
iframe.style.aspectRatio = "".concat(width ? width : 16, "/").concat(height ? height : 9);
|
|
45
|
+
}
|
|
46
|
+
}, []);
|
|
47
|
+
if (embed.status === 'error') {
|
|
48
|
+
return _jsxs("figure", {
|
|
49
|
+
className: isConcept ? '' : 'c-figure',
|
|
50
|
+
children: [_jsx("img", {
|
|
51
|
+
alt: t('external.error'),
|
|
52
|
+
src: errorSvgSrc
|
|
53
|
+
}), _jsx("figcaption", {
|
|
54
|
+
children: t('external.error')
|
|
55
|
+
})]
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
var embedData = embed.embedData,
|
|
59
|
+
data = embed.data;
|
|
60
|
+
if (embedData.type === 'fullscreen') {
|
|
61
|
+
var _data$iframeImage$ima, _data$iframeImage, _data$iframeImage$alt, _data$iframeImage2, _data$iframeImage2$al, _embedData$title, _embedData$caption;
|
|
62
|
+
var image = {
|
|
63
|
+
src: (_data$iframeImage$ima = (_data$iframeImage = data.iframeImage) === null || _data$iframeImage === void 0 ? void 0 : _data$iframeImage.imageUrl) !== null && _data$iframeImage$ima !== void 0 ? _data$iframeImage$ima : '',
|
|
64
|
+
alt: (_data$iframeImage$alt = (_data$iframeImage2 = data.iframeImage) === null || _data$iframeImage2 === void 0 ? void 0 : (_data$iframeImage2$al = _data$iframeImage2.alttext) === null || _data$iframeImage2$al === void 0 ? void 0 : _data$iframeImage2$al.alttext) !== null && _data$iframeImage$alt !== void 0 ? _data$iframeImage$alt : ''
|
|
65
|
+
};
|
|
66
|
+
return _jsx(Figure, {
|
|
67
|
+
type: "full",
|
|
68
|
+
children: _jsx(ResourceBox, {
|
|
69
|
+
image: image,
|
|
70
|
+
title: (_embedData$title = embedData.title) !== null && _embedData$title !== void 0 ? _embedData$title : '',
|
|
71
|
+
url: embedData.url,
|
|
72
|
+
caption: (_embedData$caption = embedData.caption) !== null && _embedData$caption !== void 0 ? _embedData$caption : '',
|
|
73
|
+
buttonText: t('license.other.itemImage.ariaLabel')
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
var fullColumnClass = isConcept ? 'c-figure--full-column' : '';
|
|
78
|
+
var classes = "c-figure ".concat(fullColumnClass, " c-figure--resize");
|
|
79
|
+
return _jsx(StyledFigure, {
|
|
80
|
+
ref: figRef,
|
|
81
|
+
className: classes
|
|
82
|
+
//@ts-ignore
|
|
83
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
84
|
+
,
|
|
85
|
+
resizeiframe: "true",
|
|
86
|
+
dangerouslySetInnerHTML: {
|
|
87
|
+
__html: (_data$oembed$html = data.oembed.html) !== null && _data$oembed$html !== void 0 ? _data$oembed$html : ''
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
export default ExternalEmbed;
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
|
|
9
|
+
import { useTranslation } from 'react-i18next';
|
|
10
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
11
|
+
var FootnoteEmbed = function FootnoteEmbed(_ref) {
|
|
12
|
+
var embed = _ref.embed;
|
|
13
|
+
var _useTranslation = useTranslation(),
|
|
14
|
+
t = _useTranslation.t;
|
|
15
|
+
if (embed.status === 'error') {
|
|
16
|
+
return _jsx("div", {
|
|
17
|
+
children: t('error')
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return _jsx("span", {
|
|
21
|
+
id: "ref".concat(embed.data.entryNum),
|
|
22
|
+
className: "c-footnotes__ref",
|
|
23
|
+
children: _jsx("sup", {
|
|
24
|
+
children: _jsx("a", {
|
|
25
|
+
href: "#note".concat(embed.data.entryNum),
|
|
26
|
+
target: "_self",
|
|
27
|
+
children: "[".concat(embed.data.entryNum, "]")
|
|
28
|
+
})
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
export default FootnoteEmbed;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
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)."; }
|
|
3
|
+
/**
|
|
4
|
+
* Copyright (c) 2023-present, NDLA.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { useEffect, useRef } from 'react';
|
|
12
|
+
import { useTranslation } from 'react-i18next';
|
|
13
|
+
import { errorSvgSrc } from './ImageEmbed';
|
|
14
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
15
|
+
import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
16
|
+
var StyledFigure = /*#__PURE__*/_styled("figure", {
|
|
17
|
+
target: "etjdel10",
|
|
18
|
+
label: "StyledFigure"
|
|
19
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
20
|
+
name: "9y4sui",
|
|
21
|
+
styles: "iframe{height:auto;}"
|
|
22
|
+
} : {
|
|
23
|
+
name: "9y4sui",
|
|
24
|
+
styles: "iframe{height:auto;}",
|
|
25
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkg1cEVtYmVkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQmtDIiwiZmlsZSI6Ikg1cEVtYmVkLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIzLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgSDVwTWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBlcnJvclN2Z1NyYyB9IGZyb20gJy4vSW1hZ2VFbWJlZCc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGVtYmVkOiBINXBNZXRhRGF0YTtcbiAgaXNDb25jZXB0PzogYm9vbGVhbjtcbn1cblxuY29uc3QgU3R5bGVkRmlndXJlID0gc3R5bGVkLmZpZ3VyZWBcbiAgaWZyYW1lIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbmA7XG5cbmNvbnN0IEg1cEVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cbiAgY29uc3QgaWZyYW1lUmVmID0gdXNlUmVmPEhUTUxJRnJhbWVFbGVtZW50PihudWxsKTtcbiAgY29uc3QgZmlnUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50PihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlmcmFtZSA9XG4gICAgICBlbWJlZC5zdGF0dXMgPT09ICdzdWNjZXNzJyAmJiBlbWJlZC5kYXRhLm9lbWJlZCA/IGZpZ1JlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yKCdpZnJhbWUnKSA6IGlmcmFtZVJlZi5jdXJyZW50O1xuICAgIGlmIChpZnJhbWUpIHtcbiAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFtwYXJzZUludChpZnJhbWUud2lkdGgpLCBwYXJzZUludChpZnJhbWUuaGVpZ2h0KV07XG4gICAgICBpZnJhbWUuc3R5bGUuYXNwZWN0UmF0aW8gPSBgJHt3aWR0aCA/IHdpZHRoIDogMTZ9LyR7aGVpZ2h0ID8gaGVpZ2h0IDogOX1gO1xuICAgIH1cbiAgfSwgW2VtYmVkXSk7XG5cbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZmlndXJlIGNsYXNzTmFtZT17aXNDb25jZXB0ID8gJycgOiAnYy1maWd1cmUnfT5cbiAgICAgICAgPGltZyBhbHQ9e3QoJ2g1cC5lcnJvcicpfSBzcmM9e2Vycm9yU3ZnU3JjfSAvPlxuICAgICAgICA8ZmlnY2FwdGlvbj57dCgnaDVwLmVycm9yJyl9PC9maWdjYXB0aW9uPlxuICAgICAgPC9maWd1cmU+XG4gICAgKTtcbiAgfVxuICBjb25zdCBmdWxsQ29sdW1uQ2xhc3MgPSBpc0NvbmNlcHQgPyAnYy1maWd1cmUtLWZ1bGwtY29sdW1uJyA6ICcnO1xuICBjb25zdCBjbGFzc2VzID0gYGMtZmlndXJlICR7ZnVsbENvbHVtbkNsYXNzfSBjLWZpZ3VyZS0tcmVzaXplYDtcblxuICBpZiAoZW1iZWQuZGF0YS5vZW1iZWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEZpZ3VyZVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXN9XG4gICAgICAgIHJlZj17ZmlnUmVmfVxuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgICAgcmVzaXplaWZyYW1lPVwidHJ1ZVwiXG4gICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogZW1iZWQuZGF0YS5vZW1iZWQuaHRtbCA/PyAnJyB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICAvL0B0cy1pZ25vcmVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgIDxTdHlsZWRGaWd1cmUgY2xhc3NOYW1lPXtjbGFzc2VzfSByZXNpemVpZnJhbWU9XCJ0cnVlXCI+XG4gICAgICA8aWZyYW1lIHRpdGxlPXtlbWJlZC5lbWJlZERhdGEudXJsfSByZWY9e2lmcmFtZVJlZn0gYXJpYS1sYWJlbD17ZW1iZWQuZW1iZWREYXRhLnVybH0gc3JjPXtlbWJlZC5lbWJlZERhdGEudXJsfSAvPlxuICAgIDwvU3R5bGVkRmlndXJlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSDVwRW1iZWQ7XG4iXX0= */",
|
|
26
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
27
|
+
});
|
|
28
|
+
var H5pEmbed = function H5pEmbed(_ref) {
|
|
29
|
+
var embed = _ref.embed,
|
|
30
|
+
isConcept = _ref.isConcept;
|
|
31
|
+
var _useTranslation = useTranslation(),
|
|
32
|
+
t = _useTranslation.t;
|
|
33
|
+
var iframeRef = useRef(null);
|
|
34
|
+
var figRef = useRef(null);
|
|
35
|
+
useEffect(function () {
|
|
36
|
+
var _figRef$current;
|
|
37
|
+
var iframe = embed.status === 'success' && embed.data.oembed ? (_figRef$current = figRef.current) === null || _figRef$current === void 0 ? void 0 : _figRef$current.querySelector('iframe') : iframeRef.current;
|
|
38
|
+
if (iframe) {
|
|
39
|
+
var _ref2 = [parseInt(iframe.width), parseInt(iframe.height)],
|
|
40
|
+
width = _ref2[0],
|
|
41
|
+
height = _ref2[1];
|
|
42
|
+
iframe.style.aspectRatio = "".concat(width ? width : 16, "/").concat(height ? height : 9);
|
|
43
|
+
}
|
|
44
|
+
}, [embed]);
|
|
45
|
+
if (embed.status === 'error') {
|
|
46
|
+
return _jsxs("figure", {
|
|
47
|
+
className: isConcept ? '' : 'c-figure',
|
|
48
|
+
children: [_jsx("img", {
|
|
49
|
+
alt: t('h5p.error'),
|
|
50
|
+
src: errorSvgSrc
|
|
51
|
+
}), _jsx("figcaption", {
|
|
52
|
+
children: t('h5p.error')
|
|
53
|
+
})]
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
var fullColumnClass = isConcept ? 'c-figure--full-column' : '';
|
|
57
|
+
var classes = "c-figure ".concat(fullColumnClass, " c-figure--resize");
|
|
58
|
+
if (embed.data.oembed) {
|
|
59
|
+
var _embed$data$oembed$ht;
|
|
60
|
+
return _jsx(StyledFigure, {
|
|
61
|
+
className: classes,
|
|
62
|
+
ref: figRef
|
|
63
|
+
//@ts-ignore
|
|
64
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
65
|
+
,
|
|
66
|
+
resizeiframe: "true",
|
|
67
|
+
dangerouslySetInnerHTML: {
|
|
68
|
+
__html: (_embed$data$oembed$ht = embed.data.oembed.html) !== null && _embed$data$oembed$ht !== void 0 ? _embed$data$oembed$ht : ''
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return (
|
|
73
|
+
//@ts-ignore
|
|
74
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
75
|
+
_jsx(StyledFigure, {
|
|
76
|
+
className: classes,
|
|
77
|
+
resizeiframe: "true",
|
|
78
|
+
children: _jsx("iframe", {
|
|
79
|
+
title: embed.embedData.url,
|
|
80
|
+
ref: iframeRef,
|
|
81
|
+
"aria-label": embed.embedData.url,
|
|
82
|
+
src: embed.embedData.url
|
|
83
|
+
})
|
|
84
|
+
})
|
|
85
|
+
);
|
|
86
|
+
};
|
|
87
|
+
export default H5pEmbed;
|
|
@@ -0,0 +1,83 @@
|
|
|
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
|
+
|
|
9
|
+
import isNumber from 'lodash/isNumber';
|
|
10
|
+
import { useEffect, useRef } from 'react';
|
|
11
|
+
import { useTranslation } from 'react-i18next';
|
|
12
|
+
import { Figure } from '../Figure';
|
|
13
|
+
import { ResourceBox } from '../ResourceBox';
|
|
14
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
15
|
+
var ExternalEmbed = function ExternalEmbed(_ref) {
|
|
16
|
+
var embed = _ref.embed,
|
|
17
|
+
isConcept = _ref.isConcept;
|
|
18
|
+
var _useTranslation = useTranslation(),
|
|
19
|
+
t = _useTranslation.t;
|
|
20
|
+
var iframeRef = useRef(null);
|
|
21
|
+
var embedData = embed.embedData;
|
|
22
|
+
useEffect(function () {
|
|
23
|
+
var iframe = iframeRef.current;
|
|
24
|
+
if (iframe) {
|
|
25
|
+
var _ref2 = [parseInt(iframe.width), parseInt(iframe.height)],
|
|
26
|
+
_width = _ref2[0],
|
|
27
|
+
_height = _ref2[1];
|
|
28
|
+
iframe.style.aspectRatio = "".concat(_width ? _width : 16, "/").concat(_height ? _height : 9);
|
|
29
|
+
}
|
|
30
|
+
}, []);
|
|
31
|
+
if (embedData.type === 'fullscreen') {
|
|
32
|
+
var _iframeImage$imageUrl, _iframeImage$alttext$, _iframeImage$alttext, _embedData$title, _embedData$caption;
|
|
33
|
+
var iframeImage = embed.status === 'success' ? embed.data.iframeImage : undefined;
|
|
34
|
+
var image = {
|
|
35
|
+
src: (_iframeImage$imageUrl = iframeImage === null || iframeImage === void 0 ? void 0 : iframeImage.imageUrl) !== null && _iframeImage$imageUrl !== void 0 ? _iframeImage$imageUrl : '',
|
|
36
|
+
alt: (_iframeImage$alttext$ = iframeImage === null || iframeImage === void 0 ? void 0 : (_iframeImage$alttext = iframeImage.alttext) === null || _iframeImage$alttext === void 0 ? void 0 : _iframeImage$alttext.alttext) !== null && _iframeImage$alttext$ !== void 0 ? _iframeImage$alttext$ : ''
|
|
37
|
+
};
|
|
38
|
+
return _jsx(Figure, {
|
|
39
|
+
type: "full",
|
|
40
|
+
children: _jsx(ResourceBox, {
|
|
41
|
+
image: image,
|
|
42
|
+
title: (_embedData$title = embedData.title) !== null && _embedData$title !== void 0 ? _embedData$title : '',
|
|
43
|
+
url: embedData.url,
|
|
44
|
+
caption: (_embedData$caption = embedData.caption) !== null && _embedData$caption !== void 0 ? _embedData$caption : '',
|
|
45
|
+
buttonText: t('license.other.itemImage.ariaLabel')
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
var resize = !embedData.url.includes('trinket.io');
|
|
50
|
+
var fullColumnClass = isConcept ? 'c-figure--full-column' : '';
|
|
51
|
+
var resizeClass = resize ? 'c-figure--resize' : '';
|
|
52
|
+
var classes = "c-figure ".concat(fullColumnClass, " ").concat(resizeClass);
|
|
53
|
+
var width = embedData.width,
|
|
54
|
+
height = embedData.height,
|
|
55
|
+
title = embedData.title,
|
|
56
|
+
url = embedData.url;
|
|
57
|
+
var strippedWidth = isNumber(width) ? width : width === null || width === void 0 ? void 0 : width.replace(/\s*px/, '');
|
|
58
|
+
var strippedHeight = isNumber(height) ? height : height === null || height === void 0 ? void 0 : height.replace(/\s*px/, '');
|
|
59
|
+
var urlOrTitle = title || url;
|
|
60
|
+
return (
|
|
61
|
+
//@ts-ignore
|
|
62
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
63
|
+
_jsx("figure", {
|
|
64
|
+
className: classes,
|
|
65
|
+
resizeiframe: "".concat(resize),
|
|
66
|
+
children: _jsx("iframe", {
|
|
67
|
+
ref: iframeRef,
|
|
68
|
+
title: urlOrTitle,
|
|
69
|
+
"aria-label": urlOrTitle,
|
|
70
|
+
src: url,
|
|
71
|
+
width: strippedWidth,
|
|
72
|
+
height: strippedHeight
|
|
73
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
74
|
+
,
|
|
75
|
+
allowFullScreen: true,
|
|
76
|
+
scrolling: "no",
|
|
77
|
+
frameBorder: "0",
|
|
78
|
+
loading: "lazy"
|
|
79
|
+
})
|
|
80
|
+
})
|
|
81
|
+
);
|
|
82
|
+
};
|
|
83
|
+
export default ExternalEmbed;
|