@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.
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 +8 -1
  35. package/es/locale/messages-nb.js +8 -1
  36. package/es/locale/messages-nn.js +8 -1
  37. package/es/locale/messages-se.js +8 -1
  38. package/es/locale/messages-sma.js +8 -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 +7 -0
  103. package/lib/locale/messages-en.js +8 -1
  104. package/lib/locale/messages-nb.d.ts +7 -0
  105. package/lib/locale/messages-nb.js +8 -1
  106. package/lib/locale/messages-nn.d.ts +7 -0
  107. package/lib/locale/messages-nn.js +8 -1
  108. package/lib/locale/messages-se.d.ts +7 -0
  109. package/lib/locale/messages-se.js +8 -1
  110. package/lib/locale/messages-sma.d.ts +7 -0
  111. package/lib/locale/messages-sma.js +8 -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 +7 -0
  149. package/src/locale/messages-nb.ts +7 -0
  150. package/src/locale/messages-nn.ts +7 -0
  151. package/src/locale/messages-se.ts +7 -0
  152. package/src/locale/messages-sma.ts +7 -0
  153. package/src/types.ts +1 -1
@@ -0,0 +1,13 @@
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 { ConceptListMetaData } from '@ndla/types-embed';
9
+ interface Props {
10
+ embed: ConceptListMetaData;
11
+ }
12
+ declare const ConceptListEmbed: ({ embed }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
13
+ export default ConceptListEmbed;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
8
+ var _reactI18next = require("react-i18next");
9
+ var _core = require("@ndla/core");
10
+ var _Figure = require("../Figure");
11
+ var _ConceptEmbed = require("./ConceptEmbed");
12
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+ 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)."; }
15
+ var ConceptList = /*#__PURE__*/(0, _base["default"])("div", {
16
+ target: "e1g5p4xu1",
17
+ label: "ConceptList"
18
+ })(process.env.NODE_ENV === "production" ? {
19
+ name: "1m0jptr",
20
+ styles: "&>figure:first-of-type{margin-top:32px;}& li{display:block;}"
21
+ } : {
22
+ name: "1m0jptr",
23
+ styles: "&>figure:first-of-type{margin-top:32px;}& li{display:block;}",
24
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbmNlcHRMaXN0RW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1COEIiLCJmaWxlIjoiQ29uY2VwdExpc3RFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IENvbmNlcHRMaXN0TWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbXBvcnQgeyBGaWd1cmUgfSBmcm9tICcuLi9GaWd1cmUnO1xuaW1wb3J0IHsgQmxvY2tDb25jZXB0IH0gZnJvbSAnLi9Db25jZXB0RW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQ29uY2VwdExpc3RNZXRhRGF0YTtcbn1cblxuY29uc3QgQ29uY2VwdExpc3QgPSBzdHlsZWQuZGl2YFxuICAmID4gZmlndXJlOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gIH1cbiAgJiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7Y29sb3JzLnN1cHBvcnQucmVkfTtcbmA7XG5cbmNvbnN0IENvbmNlcHRMaXN0RW1iZWQgPSAoeyBlbWJlZCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGlmIChlbWJlZC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gPFN0eWxlZFNwYW4+e3QoJ2VtYmVkLmNvbmNlcHRMaXN0RXJyb3InKX08L1N0eWxlZFNwYW4+O1xuICB9XG4gIGNvbnN0IHsgZW1iZWREYXRhLCBkYXRhIH0gPSBlbWJlZDtcbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPEZpZ3VyZSB0eXBlPVwiZnVsbFwiIHJlc2l6ZUlmcmFtZT5cbiAgICAgICAge2VtYmVkRGF0YS50aXRsZSAmJiA8aDI+e2VtYmVkRGF0YS50aXRsZX08L2gyPn1cbiAgICAgICAgPENvbmNlcHRMaXN0PlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIHtkYXRhLmNvbmNlcHRzLm1hcCgoeyBjb25jZXB0LCB2aXN1YWxFbGVtZW50IH0pID0+IChcbiAgICAgICAgICAgICAgPGxpIGtleT17Y29uY2VwdC5pZH0+XG4gICAgICAgICAgICAgICAgPEJsb2NrQ29uY2VwdFxuICAgICAgICAgICAgICAgICAgdGl0bGU9e2NvbmNlcHQudGl0bGUudGl0bGV9XG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb25jZXB0LmNvbnRlbnQuY29udGVudH1cbiAgICAgICAgICAgICAgICAgIG1ldGFJbWFnZT17Y29uY2VwdC5tZXRhSW1hZ2V9XG4gICAgICAgICAgICAgICAgICBjb3B5cmlnaHQ9e2NvbmNlcHQuY29weXJpZ2h0fVxuICAgICAgICAgICAgICAgICAgc291cmNlPXtjb25jZXB0LnNvdXJjZX1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQ9e3Zpc3VhbEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvQ29uY2VwdExpc3Q+XG4gICAgICA8L0ZpZ3VyZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbmNlcHRMaXN0RW1iZWQ7XG4iXX0= */",
25
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
26
+ });
27
+ var StyledSpan = /*#__PURE__*/(0, _base["default"])("span", {
28
+ target: "e1g5p4xu0",
29
+ label: "StyledSpan"
30
+ })("color:", _core.colors.support.red, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbmNlcHRMaXN0RW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCOEIiLCJmaWxlIjoiQ29uY2VwdExpc3RFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IENvbmNlcHRMaXN0TWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbXBvcnQgeyBGaWd1cmUgfSBmcm9tICcuLi9GaWd1cmUnO1xuaW1wb3J0IHsgQmxvY2tDb25jZXB0IH0gZnJvbSAnLi9Db25jZXB0RW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQ29uY2VwdExpc3RNZXRhRGF0YTtcbn1cblxuY29uc3QgQ29uY2VwdExpc3QgPSBzdHlsZWQuZGl2YFxuICAmID4gZmlndXJlOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gIH1cbiAgJiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7Y29sb3JzLnN1cHBvcnQucmVkfTtcbmA7XG5cbmNvbnN0IENvbmNlcHRMaXN0RW1iZWQgPSAoeyBlbWJlZCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGlmIChlbWJlZC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gPFN0eWxlZFNwYW4+e3QoJ2VtYmVkLmNvbmNlcHRMaXN0RXJyb3InKX08L1N0eWxlZFNwYW4+O1xuICB9XG4gIGNvbnN0IHsgZW1iZWREYXRhLCBkYXRhIH0gPSBlbWJlZDtcbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPEZpZ3VyZSB0eXBlPVwiZnVsbFwiIHJlc2l6ZUlmcmFtZT5cbiAgICAgICAge2VtYmVkRGF0YS50aXRsZSAmJiA8aDI+e2VtYmVkRGF0YS50aXRsZX08L2gyPn1cbiAgICAgICAgPENvbmNlcHRMaXN0PlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIHtkYXRhLmNvbmNlcHRzLm1hcCgoeyBjb25jZXB0LCB2aXN1YWxFbGVtZW50IH0pID0+IChcbiAgICAgICAgICAgICAgPGxpIGtleT17Y29uY2VwdC5pZH0+XG4gICAgICAgICAgICAgICAgPEJsb2NrQ29uY2VwdFxuICAgICAgICAgICAgICAgICAgdGl0bGU9e2NvbmNlcHQudGl0bGUudGl0bGV9XG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb25jZXB0LmNvbnRlbnQuY29udGVudH1cbiAgICAgICAgICAgICAgICAgIG1ldGFJbWFnZT17Y29uY2VwdC5tZXRhSW1hZ2V9XG4gICAgICAgICAgICAgICAgICBjb3B5cmlnaHQ9e2NvbmNlcHQuY29weXJpZ2h0fVxuICAgICAgICAgICAgICAgICAgc291cmNlPXtjb25jZXB0LnNvdXJjZX1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQ9e3Zpc3VhbEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvQ29uY2VwdExpc3Q+XG4gICAgICA8L0ZpZ3VyZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbmNlcHRMaXN0RW1iZWQ7XG4iXX0= */"));
31
+ var ConceptListEmbed = function ConceptListEmbed(_ref) {
32
+ var embed = _ref.embed;
33
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
34
+ t = _useTranslation.t;
35
+ if (embed.status === 'error') {
36
+ return (0, _jsxRuntime.jsx)(StyledSpan, {
37
+ children: t('embed.conceptListError')
38
+ });
39
+ }
40
+ var embedData = embed.embedData,
41
+ data = embed.data;
42
+ return (0, _jsxRuntime.jsx)("div", {
43
+ children: (0, _jsxRuntime.jsxs)(_Figure.Figure, {
44
+ type: "full",
45
+ resizeIframe: true,
46
+ children: [embedData.title && (0, _jsxRuntime.jsx)("h2", {
47
+ children: embedData.title
48
+ }), (0, _jsxRuntime.jsx)(ConceptList, {
49
+ children: (0, _jsxRuntime.jsx)("ul", {
50
+ children: data.concepts.map(function (_ref2) {
51
+ var concept = _ref2.concept,
52
+ visualElement = _ref2.visualElement;
53
+ return (0, _jsxRuntime.jsx)("li", {
54
+ children: (0, _jsxRuntime.jsx)(_ConceptEmbed.BlockConcept, {
55
+ title: concept.title.title,
56
+ content: concept.content.content,
57
+ metaImage: concept.metaImage,
58
+ copyright: concept.copyright,
59
+ source: concept.source,
60
+ visualElement: visualElement
61
+ })
62
+ }, concept.id);
63
+ })
64
+ })
65
+ })]
66
+ })
67
+ });
68
+ };
69
+ var _default = ConceptListEmbed;
70
+ exports["default"] = _default;
@@ -0,0 +1,14 @@
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 { ContentLinkMetaData } from '@ndla/types-embed';
9
+ interface Props {
10
+ embed: ContentLinkMetaData;
11
+ isOembed?: boolean;
12
+ }
13
+ declare const ContentLinkEmbed: ({ embed, isOembed }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
14
+ export default ContentLinkEmbed;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
8
+ var _reactI18next = require("react-i18next");
9
+ var _core = require("@ndla/core");
10
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
+ /**
13
+ * Copyright (c) 2023-present, NDLA.
14
+ *
15
+ * This source code is licensed under the GPLv3 license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ *
18
+ */
19
+
20
+ var StyledSpan = /*#__PURE__*/(0, _base["default"])("span", {
21
+ target: "e1s10cki0",
22
+ label: "StyledSpan"
23
+ })("color:", _core.colors.support.red, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRMaW5rRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCOEIiLCJmaWxlIjoiQ29udGVudExpbmtFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IENvbnRlbnRMaW5rTWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogQ29udGVudExpbmtNZXRhRGF0YTtcbiAgaXNPZW1iZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTcGFuID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAke2NvbG9ycy5zdXBwb3J0LnJlZH07XG5gO1xuXG5jb25zdCBDb250ZW50TGlua0VtYmVkID0gKHsgZW1iZWQsIGlzT2VtYmVkIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgIHJldHVybiA8U3R5bGVkU3Bhbj57YCR7dCgnZW1iZWQubGlua0Vycm9yJyl9OiAke2VtYmVkLmVtYmVkRGF0YS5saW5rVGV4dH1gfTwvU3R5bGVkU3Bhbj47XG4gIH1cblxuICBjb25zdCB7IGVtYmVkRGF0YSwgZGF0YSB9ID0gZW1iZWQ7XG5cbiAgaWYgKGVtYmVkRGF0YS5vcGVuSW4gPT09ICduZXctY29udGV4dCcgfHwgaXNPZW1iZWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGEgaHJlZj17ZW1iZWQuZGF0YS5wYXRofSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIHtlbWJlZERhdGEubGlua1RleHR9XG4gICAgICA8L2E+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiA8YSBocmVmPXtkYXRhLnBhdGh9PntlbWJlZERhdGEubGlua1RleHR9PC9hPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRlbnRMaW5rRW1iZWQ7XG4iXX0= */"));
24
+ var ContentLinkEmbed = function ContentLinkEmbed(_ref) {
25
+ var embed = _ref.embed,
26
+ isOembed = _ref.isOembed;
27
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
28
+ t = _useTranslation.t;
29
+ if (embed.status === 'error') {
30
+ return (0, _jsxRuntime.jsx)(StyledSpan, {
31
+ children: "".concat(t('embed.linkError'), ": ").concat(embed.embedData.linkText)
32
+ });
33
+ }
34
+ var embedData = embed.embedData,
35
+ data = embed.data;
36
+ if (embedData.openIn === 'new-context' || isOembed) {
37
+ return (0, _jsxRuntime.jsx)("a", {
38
+ href: embed.data.path,
39
+ target: "_blank",
40
+ rel: "noopener noreferrer",
41
+ children: embedData.linkText
42
+ });
43
+ }
44
+ return (0, _jsxRuntime.jsx)("a", {
45
+ href: data.path,
46
+ children: embedData.linkText
47
+ });
48
+ };
49
+ var _default = ContentLinkEmbed;
50
+ exports["default"] = _default;
@@ -0,0 +1,14 @@
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 { OembedMetaData } from '@ndla/types-embed';
9
+ interface Props {
10
+ embed: OembedMetaData;
11
+ isConcept?: boolean;
12
+ }
13
+ declare const ExternalEmbed: ({ embed, isConcept }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
14
+ export default ExternalEmbed;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
8
+ var _react = require("react");
9
+ var _reactI18next = require("react-i18next");
10
+ var _Figure = require("../Figure");
11
+ var _ResourceBox = require("../ResourceBox");
12
+ var _ImageEmbed = require("./ImageEmbed");
13
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ 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)."; }
16
+ var StyledFigure = /*#__PURE__*/(0, _base["default"])("figure", {
17
+ target: "e13ppouw0",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkV4dGVybmFsRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCa0MiLCJmaWxlIjoiRXh0ZXJuYWxFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IE9lbWJlZE1ldGFEYXRhIH0gZnJvbSAnQG5kbGEvdHlwZXMtZW1iZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHsgRmlndXJlIH0gZnJvbSAnLi4vRmlndXJlJztcbmltcG9ydCB7IFJlc291cmNlQm94IH0gZnJvbSAnLi4vUmVzb3VyY2VCb3gnO1xuaW1wb3J0IHsgZXJyb3JTdmdTcmMgfSBmcm9tICcuL0ltYWdlRW1iZWQnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogT2VtYmVkTWV0YURhdGE7XG4gIGlzQ29uY2VwdD86IGJvb2xlYW47XG59XG5cbmNvbnN0IFN0eWxlZEZpZ3VyZSA9IHN0eWxlZC5maWd1cmVgXG4gIGlmcmFtZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5gO1xuXG5jb25zdCBFeHRlcm5hbEVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGZpZ1JlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpZnJhbWUgPSBmaWdSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvcihgaWZyYW1lYCk7XG4gICAgaWYgKGlmcmFtZSkge1xuICAgICAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID0gW3BhcnNlSW50KGlmcmFtZS53aWR0aCksIHBhcnNlSW50KGlmcmFtZS5oZWlnaHQpXTtcbiAgICAgIGlmcmFtZS5zdHlsZS5hc3BlY3RSYXRpbyA9IGAke3dpZHRoID8gd2lkdGggOiAxNn0vJHtoZWlnaHQgPyBoZWlnaHQgOiA5fWA7XG4gICAgfVxuICB9LCBbXSk7XG4gIGlmIChlbWJlZC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGZpZ3VyZSBjbGFzc05hbWU9e2lzQ29uY2VwdCA/ICcnIDogJ2MtZmlndXJlJ30+XG4gICAgICAgIDxpbWcgYWx0PXt0KCdleHRlcm5hbC5lcnJvcicpfSBzcmM9e2Vycm9yU3ZnU3JjfSAvPlxuICAgICAgICA8ZmlnY2FwdGlvbj57dCgnZXh0ZXJuYWwuZXJyb3InKX08L2ZpZ2NhcHRpb24+XG4gICAgICA8L2ZpZ3VyZT5cbiAgICApO1xuICB9XG5cbiAgY29uc3QgeyBlbWJlZERhdGEsIGRhdGEgfSA9IGVtYmVkO1xuXG4gIGlmIChlbWJlZERhdGEudHlwZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgY29uc3QgaW1hZ2UgPSB7IHNyYzogZGF0YS5pZnJhbWVJbWFnZT8uaW1hZ2VVcmwgPz8gJycsIGFsdDogZGF0YS5pZnJhbWVJbWFnZT8uYWx0dGV4dD8uYWx0dGV4dCA/PyAnJyB9O1xuICAgIHJldHVybiAoXG4gICAgICA8RmlndXJlIHR5cGU9XCJmdWxsXCI+XG4gICAgICAgIDxSZXNvdXJjZUJveFxuICAgICAgICAgIGltYWdlPXtpbWFnZX1cbiAgICAgICAgICB0aXRsZT17ZW1iZWREYXRhLnRpdGxlID8/ICcnfVxuICAgICAgICAgIHVybD17ZW1iZWREYXRhLnVybH1cbiAgICAgICAgICBjYXB0aW9uPXtlbWJlZERhdGEuY2FwdGlvbiA/PyAnJ31cbiAgICAgICAgICBidXR0b25UZXh0PXt0KCdsaWNlbnNlLm90aGVyLml0ZW1JbWFnZS5hcmlhTGFiZWwnKX1cbiAgICAgICAgLz5cbiAgICAgIDwvRmlndXJlPlxuICAgICk7XG4gIH1cblxuICBjb25zdCBmdWxsQ29sdW1uQ2xhc3MgPSBpc0NvbmNlcHQgPyAnYy1maWd1cmUtLWZ1bGwtY29sdW1uJyA6ICcnO1xuICBjb25zdCBjbGFzc2VzID0gYGMtZmlndXJlICR7ZnVsbENvbHVtbkNsYXNzfSBjLWZpZ3VyZS0tcmVzaXplYDtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRGaWd1cmVcbiAgICAgIHJlZj17ZmlnUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgcmVzaXplaWZyYW1lPVwidHJ1ZVwiXG4gICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGRhdGEub2VtYmVkLmh0bWwgPz8gJycgfX1cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRXh0ZXJuYWxFbWJlZDtcbiJdfQ== */",
26
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
+ });
28
+ var ExternalEmbed = function ExternalEmbed(_ref) {
29
+ var _data$oembed$html;
30
+ var embed = _ref.embed,
31
+ isConcept = _ref.isConcept;
32
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
33
+ t = _useTranslation.t;
34
+ var figRef = (0, _react.useRef)(null);
35
+ (0, _react.useEffect)(function () {
36
+ var _figRef$current;
37
+ var iframe = (_figRef$current = figRef.current) === null || _figRef$current === void 0 ? void 0 : _figRef$current.querySelector("iframe");
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
+ }, []);
45
+ if (embed.status === 'error') {
46
+ return (0, _jsxRuntime.jsxs)("figure", {
47
+ className: isConcept ? '' : 'c-figure',
48
+ children: [(0, _jsxRuntime.jsx)("img", {
49
+ alt: t('external.error'),
50
+ src: _ImageEmbed.errorSvgSrc
51
+ }), (0, _jsxRuntime.jsx)("figcaption", {
52
+ children: t('external.error')
53
+ })]
54
+ });
55
+ }
56
+ var embedData = embed.embedData,
57
+ data = embed.data;
58
+ if (embedData.type === 'fullscreen') {
59
+ var _data$iframeImage$ima, _data$iframeImage, _data$iframeImage$alt, _data$iframeImage2, _data$iframeImage2$al, _embedData$title, _embedData$caption;
60
+ var image = {
61
+ 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 : '',
62
+ 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 : ''
63
+ };
64
+ return (0, _jsxRuntime.jsx)(_Figure.Figure, {
65
+ type: "full",
66
+ children: (0, _jsxRuntime.jsx)(_ResourceBox.ResourceBox, {
67
+ image: image,
68
+ title: (_embedData$title = embedData.title) !== null && _embedData$title !== void 0 ? _embedData$title : '',
69
+ url: embedData.url,
70
+ caption: (_embedData$caption = embedData.caption) !== null && _embedData$caption !== void 0 ? _embedData$caption : '',
71
+ buttonText: t('license.other.itemImage.ariaLabel')
72
+ })
73
+ });
74
+ }
75
+ var fullColumnClass = isConcept ? 'c-figure--full-column' : '';
76
+ var classes = "c-figure ".concat(fullColumnClass, " c-figure--resize");
77
+ return (0, _jsxRuntime.jsx)(StyledFigure, {
78
+ ref: figRef,
79
+ className: classes
80
+ //@ts-ignore
81
+ // eslint-disable-next-line react/no-unknown-property
82
+ ,
83
+ resizeiframe: "true",
84
+ dangerouslySetInnerHTML: {
85
+ __html: (_data$oembed$html = data.oembed.html) !== null && _data$oembed$html !== void 0 ? _data$oembed$html : ''
86
+ }
87
+ });
88
+ };
89
+ var _default = ExternalEmbed;
90
+ exports["default"] = _default;
@@ -0,0 +1,13 @@
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 { FootnoteMetaData } from '@ndla/types-embed';
9
+ interface Props {
10
+ embed: FootnoteMetaData;
11
+ }
12
+ declare const FootnoteEmbed: ({ embed }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
13
+ export default FootnoteEmbed;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _reactI18next = require("react-i18next");
8
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
9
+ /**
10
+ * Copyright (c) 2023-present, NDLA.
11
+ *
12
+ * This source code is licensed under the GPLv3 license found in the
13
+ * LICENSE file in the root directory of this source tree.
14
+ *
15
+ */
16
+
17
+ var FootnoteEmbed = function FootnoteEmbed(_ref) {
18
+ var embed = _ref.embed;
19
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
20
+ t = _useTranslation.t;
21
+ if (embed.status === 'error') {
22
+ return (0, _jsxRuntime.jsx)("div", {
23
+ children: t('error')
24
+ });
25
+ }
26
+ return (0, _jsxRuntime.jsx)("span", {
27
+ id: "ref".concat(embed.data.entryNum),
28
+ className: "c-footnotes__ref",
29
+ children: (0, _jsxRuntime.jsx)("sup", {
30
+ children: (0, _jsxRuntime.jsx)("a", {
31
+ href: "#note".concat(embed.data.entryNum),
32
+ target: "_self",
33
+ children: "[".concat(embed.data.entryNum, "]")
34
+ })
35
+ })
36
+ });
37
+ };
38
+ var _default = FootnoteEmbed;
39
+ exports["default"] = _default;
@@ -0,0 +1,14 @@
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 { H5pMetaData } from '@ndla/types-embed';
9
+ interface Props {
10
+ embed: H5pMetaData;
11
+ isConcept?: boolean;
12
+ }
13
+ declare const H5pEmbed: ({ embed, isConcept }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
14
+ export default H5pEmbed;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
8
+ var _react = require("react");
9
+ var _reactI18next = require("react-i18next");
10
+ var _ImageEmbed = require("./ImageEmbed");
11
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+ 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)."; }
14
+ var StyledFigure = /*#__PURE__*/(0, _base["default"])("figure", {
15
+ target: "etjdel10",
16
+ label: "StyledFigure"
17
+ })(process.env.NODE_ENV === "production" ? {
18
+ name: "9y4sui",
19
+ styles: "iframe{height:auto;}"
20
+ } : {
21
+ name: "9y4sui",
22
+ styles: "iframe{height:auto;}",
23
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkg1cEVtYmVkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQmtDIiwiZmlsZSI6Ikg1cEVtYmVkLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIzLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgSDVwTWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBlcnJvclN2Z1NyYyB9IGZyb20gJy4vSW1hZ2VFbWJlZCc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGVtYmVkOiBINXBNZXRhRGF0YTtcbiAgaXNDb25jZXB0PzogYm9vbGVhbjtcbn1cblxuY29uc3QgU3R5bGVkRmlndXJlID0gc3R5bGVkLmZpZ3VyZWBcbiAgaWZyYW1lIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbmA7XG5cbmNvbnN0IEg1cEVtYmVkID0gKHsgZW1iZWQsIGlzQ29uY2VwdCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cbiAgY29uc3QgaWZyYW1lUmVmID0gdXNlUmVmPEhUTUxJRnJhbWVFbGVtZW50PihudWxsKTtcbiAgY29uc3QgZmlnUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50PihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlmcmFtZSA9XG4gICAgICBlbWJlZC5zdGF0dXMgPT09ICdzdWNjZXNzJyAmJiBlbWJlZC5kYXRhLm9lbWJlZCA/IGZpZ1JlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yKCdpZnJhbWUnKSA6IGlmcmFtZVJlZi5jdXJyZW50O1xuICAgIGlmIChpZnJhbWUpIHtcbiAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFtwYXJzZUludChpZnJhbWUud2lkdGgpLCBwYXJzZUludChpZnJhbWUuaGVpZ2h0KV07XG4gICAgICBpZnJhbWUuc3R5bGUuYXNwZWN0UmF0aW8gPSBgJHt3aWR0aCA/IHdpZHRoIDogMTZ9LyR7aGVpZ2h0ID8gaGVpZ2h0IDogOX1gO1xuICAgIH1cbiAgfSwgW2VtYmVkXSk7XG5cbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZmlndXJlIGNsYXNzTmFtZT17aXNDb25jZXB0ID8gJycgOiAnYy1maWd1cmUnfT5cbiAgICAgICAgPGltZyBhbHQ9e3QoJ2g1cC5lcnJvcicpfSBzcmM9e2Vycm9yU3ZnU3JjfSAvPlxuICAgICAgICA8ZmlnY2FwdGlvbj57dCgnaDVwLmVycm9yJyl9PC9maWdjYXB0aW9uPlxuICAgICAgPC9maWd1cmU+XG4gICAgKTtcbiAgfVxuICBjb25zdCBmdWxsQ29sdW1uQ2xhc3MgPSBpc0NvbmNlcHQgPyAnYy1maWd1cmUtLWZ1bGwtY29sdW1uJyA6ICcnO1xuICBjb25zdCBjbGFzc2VzID0gYGMtZmlndXJlICR7ZnVsbENvbHVtbkNsYXNzfSBjLWZpZ3VyZS0tcmVzaXplYDtcblxuICBpZiAoZW1iZWQuZGF0YS5vZW1iZWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEZpZ3VyZVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXN9XG4gICAgICAgIHJlZj17ZmlnUmVmfVxuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgICAgcmVzaXplaWZyYW1lPVwidHJ1ZVwiXG4gICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogZW1iZWQuZGF0YS5vZW1iZWQuaHRtbCA/PyAnJyB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICAvL0B0cy1pZ25vcmVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgIDxTdHlsZWRGaWd1cmUgY2xhc3NOYW1lPXtjbGFzc2VzfSByZXNpemVpZnJhbWU9XCJ0cnVlXCI+XG4gICAgICA8aWZyYW1lIHRpdGxlPXtlbWJlZC5lbWJlZERhdGEudXJsfSByZWY9e2lmcmFtZVJlZn0gYXJpYS1sYWJlbD17ZW1iZWQuZW1iZWREYXRhLnVybH0gc3JjPXtlbWJlZC5lbWJlZERhdGEudXJsfSAvPlxuICAgIDwvU3R5bGVkRmlndXJlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSDVwRW1iZWQ7XG4iXX0= */",
24
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
25
+ });
26
+ var H5pEmbed = function H5pEmbed(_ref) {
27
+ var embed = _ref.embed,
28
+ isConcept = _ref.isConcept;
29
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
30
+ t = _useTranslation.t;
31
+ var iframeRef = (0, _react.useRef)(null);
32
+ var figRef = (0, _react.useRef)(null);
33
+ (0, _react.useEffect)(function () {
34
+ var _figRef$current;
35
+ 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;
36
+ if (iframe) {
37
+ var _ref2 = [parseInt(iframe.width), parseInt(iframe.height)],
38
+ width = _ref2[0],
39
+ height = _ref2[1];
40
+ iframe.style.aspectRatio = "".concat(width ? width : 16, "/").concat(height ? height : 9);
41
+ }
42
+ }, [embed]);
43
+ if (embed.status === 'error') {
44
+ return (0, _jsxRuntime.jsxs)("figure", {
45
+ className: isConcept ? '' : 'c-figure',
46
+ children: [(0, _jsxRuntime.jsx)("img", {
47
+ alt: t('h5p.error'),
48
+ src: _ImageEmbed.errorSvgSrc
49
+ }), (0, _jsxRuntime.jsx)("figcaption", {
50
+ children: t('h5p.error')
51
+ })]
52
+ });
53
+ }
54
+ var fullColumnClass = isConcept ? 'c-figure--full-column' : '';
55
+ var classes = "c-figure ".concat(fullColumnClass, " c-figure--resize");
56
+ if (embed.data.oembed) {
57
+ var _embed$data$oembed$ht;
58
+ return (0, _jsxRuntime.jsx)(StyledFigure, {
59
+ className: classes,
60
+ ref: figRef
61
+ //@ts-ignore
62
+ // eslint-disable-next-line react/no-unknown-property
63
+ ,
64
+ resizeiframe: "true",
65
+ dangerouslySetInnerHTML: {
66
+ __html: (_embed$data$oembed$ht = embed.data.oembed.html) !== null && _embed$data$oembed$ht !== void 0 ? _embed$data$oembed$ht : ''
67
+ }
68
+ });
69
+ }
70
+ return (
71
+ //@ts-ignore
72
+ // eslint-disable-next-line react/no-unknown-property
73
+ (0, _jsxRuntime.jsx)(StyledFigure, {
74
+ className: classes,
75
+ resizeiframe: "true",
76
+ children: (0, _jsxRuntime.jsx)("iframe", {
77
+ title: embed.embedData.url,
78
+ ref: iframeRef,
79
+ "aria-label": embed.embedData.url,
80
+ src: embed.embedData.url
81
+ })
82
+ })
83
+ );
84
+ };
85
+ var _default = H5pEmbed;
86
+ exports["default"] = _default;
@@ -0,0 +1,14 @@
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 { IframeMetaData } from '@ndla/types-embed';
9
+ interface Props {
10
+ embed: IframeMetaData;
11
+ isConcept?: boolean;
12
+ }
13
+ declare const ExternalEmbed: ({ embed, isConcept }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
14
+ export default ExternalEmbed;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
8
+ var _react = require("react");
9
+ var _reactI18next = require("react-i18next");
10
+ var _Figure = require("../Figure");
11
+ var _ResourceBox = require("../ResourceBox");
12
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+ /**
15
+ * Copyright (c) 2023-present, NDLA.
16
+ *
17
+ * This source code is licensed under the GPLv3 license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ *
20
+ */
21
+
22
+ var ExternalEmbed = function ExternalEmbed(_ref) {
23
+ var embed = _ref.embed,
24
+ isConcept = _ref.isConcept;
25
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
26
+ t = _useTranslation.t;
27
+ var iframeRef = (0, _react.useRef)(null);
28
+ var embedData = embed.embedData;
29
+ (0, _react.useEffect)(function () {
30
+ var iframe = iframeRef.current;
31
+ if (iframe) {
32
+ var _ref2 = [parseInt(iframe.width), parseInt(iframe.height)],
33
+ _width = _ref2[0],
34
+ _height = _ref2[1];
35
+ iframe.style.aspectRatio = "".concat(_width ? _width : 16, "/").concat(_height ? _height : 9);
36
+ }
37
+ }, []);
38
+ if (embedData.type === 'fullscreen') {
39
+ var _iframeImage$imageUrl, _iframeImage$alttext$, _iframeImage$alttext, _embedData$title, _embedData$caption;
40
+ var iframeImage = embed.status === 'success' ? embed.data.iframeImage : undefined;
41
+ var image = {
42
+ src: (_iframeImage$imageUrl = iframeImage === null || iframeImage === void 0 ? void 0 : iframeImage.imageUrl) !== null && _iframeImage$imageUrl !== void 0 ? _iframeImage$imageUrl : '',
43
+ 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$ : ''
44
+ };
45
+ return (0, _jsxRuntime.jsx)(_Figure.Figure, {
46
+ type: "full",
47
+ children: (0, _jsxRuntime.jsx)(_ResourceBox.ResourceBox, {
48
+ image: image,
49
+ title: (_embedData$title = embedData.title) !== null && _embedData$title !== void 0 ? _embedData$title : '',
50
+ url: embedData.url,
51
+ caption: (_embedData$caption = embedData.caption) !== null && _embedData$caption !== void 0 ? _embedData$caption : '',
52
+ buttonText: t('license.other.itemImage.ariaLabel')
53
+ })
54
+ });
55
+ }
56
+ var resize = !embedData.url.includes('trinket.io');
57
+ var fullColumnClass = isConcept ? 'c-figure--full-column' : '';
58
+ var resizeClass = resize ? 'c-figure--resize' : '';
59
+ var classes = "c-figure ".concat(fullColumnClass, " ").concat(resizeClass);
60
+ var width = embedData.width,
61
+ height = embedData.height,
62
+ title = embedData.title,
63
+ url = embedData.url;
64
+ var strippedWidth = (0, _isNumber["default"])(width) ? width : width === null || width === void 0 ? void 0 : width.replace(/\s*px/, '');
65
+ var strippedHeight = (0, _isNumber["default"])(height) ? height : height === null || height === void 0 ? void 0 : height.replace(/\s*px/, '');
66
+ var urlOrTitle = title || url;
67
+ return (
68
+ //@ts-ignore
69
+ // eslint-disable-next-line react/no-unknown-property
70
+ (0, _jsxRuntime.jsx)("figure", {
71
+ className: classes,
72
+ resizeiframe: "".concat(resize),
73
+ children: (0, _jsxRuntime.jsx)("iframe", {
74
+ ref: iframeRef,
75
+ title: urlOrTitle,
76
+ "aria-label": urlOrTitle,
77
+ src: url,
78
+ width: strippedWidth,
79
+ height: strippedHeight
80
+ // eslint-disable-next-line react/no-unknown-property
81
+ ,
82
+ allowFullScreen: true,
83
+ scrolling: "no",
84
+ frameBorder: "0",
85
+ loading: "lazy"
86
+ })
87
+ })
88
+ );
89
+ };
90
+ var _default = ExternalEmbed;
91
+ exports["default"] = _default;
@@ -0,0 +1,37 @@
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 { ImageMetaData } from '@ndla/types-embed';
9
+ import { Copyright } from '../types';
10
+ interface Props {
11
+ embed: ImageMetaData;
12
+ articlePath?: string;
13
+ previewAlt?: boolean;
14
+ }
15
+ export interface Author {
16
+ name: string;
17
+ type: string;
18
+ }
19
+ export declare const getLicenseCredits: (copyright?: {
20
+ creators?: Author[];
21
+ rightsholders?: Author[];
22
+ processors?: Author[];
23
+ }) => {
24
+ creators: Author[];
25
+ rightsholders: Author[];
26
+ processors: Author[];
27
+ };
28
+ export declare const errorSvgSrc = "data:image/svg+xml;charset=UTF-8,%3Csvg fill='%238A8888' height='400' viewBox='0 0 24 12' width='100%25' xmlns='http://www.w3.org/2000/svg' style='background-color: %23EFF0F2'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath transform='scale(0.3) translate(28, 8.5)' 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'/%3E%3C/svg%3E";
29
+ declare const ImageEmbed: ({ embed, articlePath, previewAlt }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
30
+ interface ImageLicenseButtonsProps {
31
+ imageUrl: string;
32
+ title?: string;
33
+ articlePath?: string;
34
+ copyright?: Partial<Copyright>;
35
+ }
36
+ export declare const ImageLicenseButtons: ({ imageUrl, title, articlePath, copyright }: ImageLicenseButtonsProps) => import("@emotion/react/jsx-runtime").JSX.Element | null;
37
+ export default ImageEmbed;