@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,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getLicenseCredits = exports.errorSvgSrc = exports["default"] = exports.ImageLicenseButtons = void 0;
|
|
8
|
+
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
|
9
|
+
var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
|
|
10
|
+
var _licenses = require("@ndla/licenses");
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _modal = require("@ndla/modal");
|
|
13
|
+
var _safelink = require("@ndla/safelink");
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
var _button = require("@ndla/button");
|
|
16
|
+
var _action = require("@ndla/icons/action");
|
|
17
|
+
var _common = require("@ndla/icons/common");
|
|
18
|
+
var _Figure = require("../Figure");
|
|
19
|
+
var _Image = _interopRequireWildcard(require("../Image"));
|
|
20
|
+
var _FigureLicenseDialogContent = require("../Figure/FigureLicenseDialogContent");
|
|
21
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
26
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
27
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
28
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
29
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
30
|
+
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."); }
|
|
31
|
+
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); }
|
|
32
|
+
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; }
|
|
33
|
+
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; }
|
|
34
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
|
+
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)."; }
|
|
36
|
+
var getLicenseCredits = function getLicenseCredits(copyright) {
|
|
37
|
+
var _copyright$creators, _copyright$rightshold, _copyright$processors;
|
|
38
|
+
return {
|
|
39
|
+
creators: (_copyright$creators = copyright === null || copyright === void 0 ? void 0 : copyright.creators) !== null && _copyright$creators !== void 0 ? _copyright$creators : [],
|
|
40
|
+
rightsholders: (_copyright$rightshold = copyright === null || copyright === void 0 ? void 0 : copyright.rightsholders) !== null && _copyright$rightshold !== void 0 ? _copyright$rightshold : [],
|
|
41
|
+
processors: (_copyright$processors = copyright === null || copyright === void 0 ? void 0 : copyright.processors) !== null && _copyright$processors !== void 0 ? _copyright$processors : []
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
exports.getLicenseCredits = getLicenseCredits;
|
|
45
|
+
var 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";
|
|
46
|
+
exports.errorSvgSrc = errorSvgSrc;
|
|
47
|
+
var isSmall = function isSmall(size) {
|
|
48
|
+
return size === 'xsmall' || size === 'small';
|
|
49
|
+
};
|
|
50
|
+
var isAlign = function isAlign(align) {
|
|
51
|
+
return align === 'left' || align === 'right';
|
|
52
|
+
};
|
|
53
|
+
var getFigureType = function getFigureType(size, align) {
|
|
54
|
+
if (size && isSmall(size) && align && isAlign(align)) {
|
|
55
|
+
return "".concat(size, "-").concat(align);
|
|
56
|
+
}
|
|
57
|
+
if (size && isSmall(size) && !align) {
|
|
58
|
+
return size;
|
|
59
|
+
}
|
|
60
|
+
if (align && isAlign(align)) {
|
|
61
|
+
return align;
|
|
62
|
+
}
|
|
63
|
+
return 'full';
|
|
64
|
+
};
|
|
65
|
+
var getSizes = function getSizes(size, align) {
|
|
66
|
+
if (align && size === 'full') {
|
|
67
|
+
return '(min-width: 1024px) 512px, (min-width: 768px) 350px, 100vw';
|
|
68
|
+
}
|
|
69
|
+
if (align && size === 'small') {
|
|
70
|
+
return '(min-width: 1024px) 350px, (min-width: 768px) 180px, 100vw';
|
|
71
|
+
}
|
|
72
|
+
if (align && size === 'xsmall') {
|
|
73
|
+
return '(min-width: 1024px) 180px, (min-width: 768px) 180px, 100vw';
|
|
74
|
+
}
|
|
75
|
+
return '(min-width: 1024px) 1024px, 100vw';
|
|
76
|
+
};
|
|
77
|
+
var getFocalPoint = function getFocalPoint(data) {
|
|
78
|
+
if ((0, _isNumber["default"])(data.focalX) && (0, _isNumber["default"])(data.focalY)) {
|
|
79
|
+
return {
|
|
80
|
+
x: data.focalX,
|
|
81
|
+
y: data.focalY
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return undefined;
|
|
85
|
+
};
|
|
86
|
+
var getCrop = function getCrop(data) {
|
|
87
|
+
if ((0, _isNumber["default"])(data.lowerRightX) && (0, _isNumber["default"])(data.lowerRightY) && (0, _isNumber["default"])(data.upperLeftX) && (0, _isNumber["default"])(data.upperLeftY)) {
|
|
88
|
+
return {
|
|
89
|
+
startX: data.lowerRightX,
|
|
90
|
+
startY: data.lowerRightY,
|
|
91
|
+
endX: data.upperLeftX,
|
|
92
|
+
endY: data.upperLeftY
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return undefined;
|
|
96
|
+
};
|
|
97
|
+
var StyledSpan = /*#__PURE__*/(0, _base["default"])("span", {
|
|
98
|
+
target: "ened8ka0",
|
|
99
|
+
label: "StyledSpan"
|
|
100
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
101
|
+
name: "1t01il3",
|
|
102
|
+
styles: "font-style:italic;color:grey"
|
|
103
|
+
} : {
|
|
104
|
+
name: "1t01il3",
|
|
105
|
+
styles: "font-style:italic;color:grey",
|
|
106
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkltYWdlRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNHOEIiLCJmaWxlIjoiSW1hZ2VFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBpc051bWJlciBmcm9tICdsb2Rhc2gvaXNOdW1iZXInO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZmlndXJlQXBhN0NvcHlTdHJpbmcsIGdldEdyb3VwZWRDb250cmlidXRvckRlc2NyaXB0aW9uTGlzdCwgZ2V0TGljZW5zZUJ5QWJicmV2aWF0aW9uIH0gZnJvbSAnQG5kbGEvbGljZW5zZXMnO1xuaW1wb3J0IHsgSW1hZ2VFbWJlZERhdGEsIEltYWdlTWV0YURhdGEgfSBmcm9tICdAbmRsYS90eXBlcy1lbWJlZCc7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHsgTW9kYWxWMiB9IGZyb20gJ0BuZGxhL21vZGFsJztcbmltcG9ydCB7IFNhZmVMaW5rQnV0dG9uIH0gZnJvbSAnQG5kbGEvc2FmZWxpbmsnO1xuaW1wb3J0IHsgTW91c2VFdmVudEhhbmRsZXIsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uVjIsIENvcHlCdXR0b24gfSBmcm9tICdAbmRsYS9idXR0b24nO1xuaW1wb3J0IHsgRXhwYW5kVHdvQXJyb3dzIH0gZnJvbSAnQG5kbGEvaWNvbnMvYWN0aW9uJztcbmltcG9ydCB7IEFycm93Q29sbGFwc2UsIENoZXZyb25Eb3duLCBDaGV2cm9uVXAgfSBmcm9tICdAbmRsYS9pY29ucy9jb21tb24nO1xuaW1wb3J0IHsgRmlndXJlLCBGaWd1cmVDYXB0aW9uLCBGaWd1cmVUeXBlIH0gZnJvbSAnLi4vRmlndXJlJztcbmltcG9ydCBJbWFnZSwgeyBJbWFnZUxpbmsgfSBmcm9tICcuLi9JbWFnZSc7XG5pbXBvcnQgeyBGaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCB9IGZyb20gJy4uL0ZpZ3VyZS9GaWd1cmVMaWNlbnNlRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyBDb3B5cmlnaHQgfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGVtYmVkOiBJbWFnZU1ldGFEYXRhO1xuICBhcnRpY2xlUGF0aD86IHN0cmluZztcbiAgcHJldmlld0FsdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRMaWNlbnNlQ3JlZGl0cyA9IChjb3B5cmlnaHQ/OiB7XG4gIGNyZWF0b3JzPzogQXV0aG9yW107XG4gIHJpZ2h0c2hvbGRlcnM/OiBBdXRob3JbXTtcbiAgcHJvY2Vzc29ycz86IEF1dGhvcltdO1xufSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0b3JzOiBjb3B5cmlnaHQ/LmNyZWF0b3JzID8/IFtdLFxuICAgIHJpZ2h0c2hvbGRlcnM6IGNvcHlyaWdodD8ucmlnaHRzaG9sZGVycyA/PyBbXSxcbiAgICBwcm9jZXNzb3JzOiBjb3B5cmlnaHQ/LnByb2Nlc3NvcnMgPz8gW10sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JTdmdTcmMgPSBgZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnIGZpbGw9JyUyMzhBODg4OCcgaGVpZ2h0PSc0MDAnIHZpZXdCb3g9JzAgMCAyNCAxMicgd2lkdGg9JzEwMCUyNScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogJTIzRUZGMEYyJyUzRSUzQ3BhdGggZD0nTTAgMGgyNHYyNEgwVjB6JyBmaWxsPSdub25lJy8lM0UlM0NwYXRoIHRyYW5zZm9ybT0nc2NhbGUoMC4zKSB0cmFuc2xhdGUoMjgsIDguNSknIGQ9J00xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Jy8lM0UlM0Mvc3ZnJTNFYDtcbmNvbnN0IGlzU21hbGwgPSAoc2l6ZT86IHN0cmluZyk6IHNpemUgaXMgJ3hzbWFsbCcgfCAnc21hbGwnID0+IHNpemUgPT09ICd4c21hbGwnIHx8IHNpemUgPT09ICdzbWFsbCc7XG5cbmNvbnN0IGlzQWxpZ24gPSAoYWxpZ24/OiBzdHJpbmcpOiBhbGlnbiBpcyAnbGVmdCcgfCAncmlnaHQnID0+IGFsaWduID09PSAnbGVmdCcgfHwgYWxpZ24gPT09ICdyaWdodCc7XG5cbmNvbnN0IGdldEZpZ3VyZVR5cGUgPSAoc2l6ZT86IHN0cmluZywgYWxpZ24/OiBzdHJpbmcpOiBGaWd1cmVUeXBlID0+IHtcbiAgaWYgKHNpemUgJiYgaXNTbWFsbChzaXplKSAmJiBhbGlnbiAmJiBpc0FsaWduKGFsaWduKSkge1xuICAgIHJldHVybiBgJHtzaXplfS0ke2FsaWdufWA7XG4gIH1cbiAgaWYgKHNpemUgJiYgaXNTbWFsbChzaXplKSAmJiAhYWxpZ24pIHtcbiAgICByZXR1cm4gc2l6ZSBhcyBGaWd1cmVUeXBlO1xuICB9XG4gIGlmIChhbGlnbiAmJiBpc0FsaWduKGFsaWduKSkge1xuICAgIHJldHVybiBhbGlnbjtcbiAgfVxuICByZXR1cm4gJ2Z1bGwnO1xufTtcblxuY29uc3QgZ2V0U2l6ZXMgPSAoc2l6ZT86IHN0cmluZywgYWxpZ24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGFsaWduICYmIHNpemUgPT09ICdmdWxsJykge1xuICAgIHJldHVybiAnKG1pbi13aWR0aDogMTAyNHB4KSA1MTJweCwgKG1pbi13aWR0aDogNzY4cHgpIDM1MHB4LCAxMDB2dyc7XG4gIH1cbiAgaWYgKGFsaWduICYmIHNpemUgPT09ICdzbWFsbCcpIHtcbiAgICByZXR1cm4gJyhtaW4td2lkdGg6IDEwMjRweCkgMzUwcHgsIChtaW4td2lkdGg6IDc2OHB4KSAxODBweCwgMTAwdncnO1xuICB9XG4gIGlmIChhbGlnbiAmJiBzaXplID09PSAneHNtYWxsJykge1xuICAgIHJldHVybiAnKG1pbi13aWR0aDogMTAyNHB4KSAxODBweCwgKG1pbi13aWR0aDogNzY4cHgpIDE4MHB4LCAxMDB2dyc7XG4gIH1cbiAgcmV0dXJuICcobWluLXdpZHRoOiAxMDI0cHgpIDEwMjRweCwgMTAwdncnO1xufTtcblxuY29uc3QgZ2V0Rm9jYWxQb2ludCA9IChkYXRhOiBJbWFnZUVtYmVkRGF0YSkgPT4ge1xuICBpZiAoaXNOdW1iZXIoZGF0YS5mb2NhbFgpICYmIGlzTnVtYmVyKGRhdGEuZm9jYWxZKSkge1xuICAgIHJldHVybiB7IHg6IGRhdGEuZm9jYWxYLCB5OiBkYXRhLmZvY2FsWSB9O1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBnZXRDcm9wID0gKGRhdGE6IEltYWdlRW1iZWREYXRhKSA9PiB7XG4gIGlmIChcbiAgICBpc051bWJlcihkYXRhLmxvd2VyUmlnaHRYKSAmJlxuICAgIGlzTnVtYmVyKGRhdGEubG93ZXJSaWdodFkpICYmXG4gICAgaXNOdW1iZXIoZGF0YS51cHBlckxlZnRYKSAmJlxuICAgIGlzTnVtYmVyKGRhdGEudXBwZXJMZWZ0WSlcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0WDogZGF0YS5sb3dlclJpZ2h0WCxcbiAgICAgIHN0YXJ0WTogZGF0YS5sb3dlclJpZ2h0WSxcbiAgICAgIGVuZFg6IGRhdGEudXBwZXJMZWZ0WCxcbiAgICAgIGVuZFk6IGRhdGEudXBwZXJMZWZ0WSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBTdHlsZWRTcGFuID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6IGdyZXk7XG5gO1xuXG5jb25zdCBleHBhbmRlZFNpemVzID0gJyhtaW4td2lkdGg6IDEwMjRweCkgMTAyNHB4LCAxMDB2dyc7XG5cbmNvbnN0IEltYWdlRW1iZWQgPSAoeyBlbWJlZCwgYXJ0aWNsZVBhdGgsIHByZXZpZXdBbHQgfTogUHJvcHMpID0+IHtcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzQnlsaW5lSGlkZGVuLCBzZXRJc0J5bGluZUhpZGRlbl0gPSB1c2VTdGF0ZShoaWRlQnlsaW5lKGVtYmVkLmVtYmVkRGF0YS5zaXplKSk7XG4gIGNvbnN0IFtpbWFnZVNpemVzLCBzZXRJbWFnZVNpemVzXSA9IHVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoZW1iZWQuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgY29uc3QgeyBhbGlnbiwgc2l6ZSB9ID0gZW1iZWQuZW1iZWREYXRhO1xuICAgIGNvbnN0IGZpZ3VyZVR5cGUgPSBnZXRGaWd1cmVUeXBlKHNpemUsIGFsaWduKTtcbiAgICByZXR1cm4gKFxuICAgICAgPEZpZ3VyZSB0eXBlPXtmaWd1cmVUeXBlfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjLWZpZ3VyZV9faW1nXCI+XG4gICAgICAgICAgPGltZyBhbHQ9e3QoJ2ltYWdlLmVycm9yLnVybCcpfSBzcmM9e2Vycm9yU3ZnU3JjfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZpZ2NhcHRpb24+e3QoJ2ltYWdlLmVycm9yLmNhcHRpb24nKX08L2ZpZ2NhcHRpb24+XG4gICAgICA8L0ZpZ3VyZT5cbiAgICApO1xuICB9XG5cbiAgY29uc3QgeyBkYXRhLCBlbWJlZERhdGEsIHNlcSB9ID0gZW1iZWQ7XG5cbiAgY29uc3QgYXV0aG9ycyA9IGdldExpY2Vuc2VDcmVkaXRzKGRhdGEuY29weXJpZ2h0KTtcblxuICBjb25zdCBhbHRUZXh0ID0gZW1iZWREYXRhLmFsdCB8fCAnJztcbiAgY29uc3QgY2FwdGlvbiA9IGVtYmVkRGF0YS5jYXB0aW9uIHx8ICcnO1xuICBjb25zdCBsaWNlbnNlID0gZ2V0TGljZW5zZUJ5QWJicmV2aWF0aW9uKGRhdGEuY29weXJpZ2h0LmxpY2Vuc2UubGljZW5zZSwgaTE4bi5sYW5ndWFnZSk7XG5cbiAgY29uc3QgZmlndXJlVHlwZSA9IGdldEZpZ3VyZVR5cGUoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG4gIGNvbnN0IHNpemVzID0gZ2V0U2l6ZXMoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG5cbiAgY29uc3QgZm9jYWxQb2ludCA9IGdldEZvY2FsUG9pbnQoZW1iZWREYXRhKTtcbiAgY29uc3QgY3JvcCA9IGdldENyb3AoZW1iZWREYXRhKTtcblxuICBjb25zdCBjb250cmlidXRvcnMgPSBnZXRHcm91cGVkQ29udHJpYnV0b3JEZXNjcmlwdGlvbkxpc3QoZGF0YS5jb3B5cmlnaHQsIGkxOG4ubGFuZ3VhZ2UpLm1hcCgoaXRlbSkgPT4gKHtcbiAgICBuYW1lOiBpdGVtLmRlc2NyaXB0aW9uLFxuICAgIHR5cGU6IGl0ZW0ubGFiZWwsXG4gIH0pKTtcblxuICBjb25zdCBmaWd1cmVJZCA9IGBmaWd1cmUtJHtzZXF9LSR7ZGF0YS5pZH1gO1xuXG4gIGNvbnN0IHsgY3JlYXRvcnMsIHJpZ2h0c2hvbGRlcnMsIHByb2Nlc3NvcnMgfSA9IGF1dGhvcnM7XG4gIGNvbnN0IGNhcHRpb25BdXRob3JzID0gY3JlYXRvcnMubGVuZ3RoIHx8IHJpZ2h0c2hvbGRlcnMubGVuZ3RoID8gWy4uLmNyZWF0b3JzLCAuLi5yaWdodHNob2xkZXJzXSA6IHByb2Nlc3NvcnM7XG4gIHJldHVybiAoXG4gICAgPEZpZ3VyZVxuICAgICAgaWQ9e2ZpZ3VyZUlkfVxuICAgICAgdHlwZT17aW1hZ2VTaXplcyA/IHVuZGVmaW5lZCA6IGZpZ3VyZVR5cGV9XG4gICAgICBjbGFzc05hbWU9e2ltYWdlU2l6ZXMgPyAnYy1maWd1cmUtLXJpZ2h0IGV4cGFuZGVkJyA6ICcnfT5cbiAgICAgIDxJbWFnZVdyYXBwZXIgc3JjPXtkYXRhLmltYWdlVXJsfSBjcm9wPXtjcm9wfSBzaXplPXtlbWJlZERhdGEuc2l6ZX0+XG4gICAgICAgIDxJbWFnZVxuICAgICAgICAgIGZvY2FsUG9pbnQ9e2ZvY2FsUG9pbnR9XG4gICAgICAgICAgY29udGVudFR5cGU9e2RhdGEuY29udGVudFR5cGV9XG4gICAgICAgICAgY3JvcD17Y3JvcH1cbiAgICAgICAgICBzaXplcz17aW1hZ2VTaXplcyA/PyBzaXplc31cbiAgICAgICAgICBhbHQ9e2FsdFRleHR9XG4gICAgICAgICAgc3JjPXtkYXRhLmltYWdlVXJsfVxuICAgICAgICAgIGV4cGFuZEJ1dHRvbj17XG4gICAgICAgICAgICA8RXhwYW5kQnV0dG9uXG4gICAgICAgICAgICAgIHNpemU9e2VtYmVkRGF0YS5zaXplfVxuICAgICAgICAgICAgICBleHBhbmRlZD17ISFpbWFnZVNpemVzfVxuICAgICAgICAgICAgICBieWxpbmVIaWRkZW49e2lzQnlsaW5lSGlkZGVufVxuICAgICAgICAgICAgICBvbkV4cGFuZD17KCkgPT4gc2V0SW1hZ2VTaXplcygocCkgPT4gKHAgPyB1bmRlZmluZWQgOiBleHBhbmRlZFNpemVzKSl9XG4gICAgICAgICAgICAgIG9uSGlkZUJ5bGluZT17KCkgPT4gc2V0SXNCeWxpbmVIaWRkZW4oKHApID0+ICFwKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICB7cHJldmlld0FsdCA/IDxTdHlsZWRTcGFuPntgQWx0OiAke2VtYmVkRGF0YS5hbHR9YH08L1N0eWxlZFNwYW4+IDogbnVsbH1cbiAgICAgIDxGaWd1cmVDYXB0aW9uXG4gICAgICAgIGhpZGVGaWdjYXB0aW9uPXtpc1NtYWxsKGVtYmVkRGF0YS5zaXplKSB8fCBpc0J5bGluZUhpZGRlbn1cbiAgICAgICAgZmlndXJlSWQ9e2ZpZ3VyZUlkfVxuICAgICAgICBpZD17ZmlndXJlSWR9XG4gICAgICAgIGNhcHRpb249e2NhcHRpb259XG4gICAgICAgIHJldXNlTGFiZWw9e3QoJ2ltYWdlLnJldXNlJyl9XG4gICAgICAgIG1vZGFsQnV0dG9uPXtcbiAgICAgICAgICA8QnV0dG9uVjIgc2hhcGU9XCJwaWxsXCIgdmFyaWFudD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXsoKSA9PiBzZXRJc09wZW4odHJ1ZSl9PlxuICAgICAgICAgICAge3QoJ2ltYWdlLnJldXNlJyl9XG4gICAgICAgICAgPC9CdXR0b25WMj5cbiAgICAgICAgfVxuICAgICAgICBsaWNlbnNlUmlnaHRzPXtsaWNlbnNlLnJpZ2h0c31cbiAgICAgICAgYXV0aG9ycz17Y2FwdGlvbkF1dGhvcnN9XG4gICAgICAgIGxvY2FsZT17aTE4bi5sYW5ndWFnZX0+XG4gICAgICAgIDxNb2RhbFYyIGNvbnRyb2xsZWQgaXNPcGVuPXtpc09wZW59IG9uQ2xvc2U9eygpID0+IHNldElzT3BlbihmYWxzZSl9IGxhYmVsbGVkQnk9XCJsaWNlbnNlLWRpYWxvZy1ydWxlcy1oZWFkaW5nXCI+XG4gICAgICAgICAgeyhjbG9zZSkgPT4gKFxuICAgICAgICAgICAgPEZpZ3VyZUxpY2Vuc2VEaWFsb2dDb250ZW50XG4gICAgICAgICAgICAgIHRpdGxlPXtkYXRhLnRpdGxlLnRpdGxlfVxuICAgICAgICAgICAgICBsaWNlbnNlPXtsaWNlbnNlfVxuICAgICAgICAgICAgICBvbkNsb3NlPXtjbG9zZX1cbiAgICAgICAgICAgICAgYXV0aG9ycz17Y29udHJpYnV0b3JzfVxuICAgICAgICAgICAgICBvcmlnaW49e2RhdGEuY29weXJpZ2h0Lm9yaWdpbn1cbiAgICAgICAgICAgICAgbG9jYWxlPXtpMThuLmxhbmd1YWdlfVxuICAgICAgICAgICAgICB0eXBlPVwiaW1hZ2VcIj5cbiAgICAgICAgICAgICAgPEltYWdlTGljZW5zZUJ1dHRvbnNcbiAgICAgICAgICAgICAgICBhcnRpY2xlUGF0aD17YXJ0aWNsZVBhdGh9XG4gICAgICAgICAgICAgICAgdGl0bGU9e2RhdGEudGl0bGUudGl0bGV9XG4gICAgICAgICAgICAgICAgaW1hZ2VVcmw9e2RhdGEuaW1hZ2VVcmx9XG4gICAgICAgICAgICAgICAgY29weXJpZ2h0PXtkYXRhLmNvcHlyaWdodH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvRmlndXJlTGljZW5zZURpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Nb2RhbFYyPlxuICAgICAgPC9GaWd1cmVDYXB0aW9uPlxuICAgIDwvRmlndXJlPlxuICApO1xufTtcblxuaW50ZXJmYWNlIEltYWdlV3JhcHBlclByb3BzIHtcbiAgc3JjOiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gIGNyb3A/OiB7XG4gICAgc3RhcnRYOiBudW1iZXI7XG4gICAgc3RhcnRZOiBudW1iZXI7XG4gICAgZW5kWDogbnVtYmVyO1xuICAgIGVuZFk6IG51bWJlcjtcbiAgfTtcbiAgc2l6ZT86IHN0cmluZztcbn1cbmNvbnN0IGhpZGVCeWxpbmUgPSAoc2l6ZT86IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gISFzaXplICYmIHNpemUuZW5kc1dpdGgoJy1oaWRlLWJ5bGluZScpO1xufTtcblxuaW50ZXJmYWNlIEltYWdlTGljZW5zZUJ1dHRvbnNQcm9wcyB7XG4gIGltYWdlVXJsOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBhcnRpY2xlUGF0aD86IHN0cmluZztcbiAgY29weXJpZ2h0PzogUGFydGlhbDxDb3B5cmlnaHQ+O1xufVxuXG5leHBvcnQgY29uc3QgSW1hZ2VMaWNlbnNlQnV0dG9ucyA9ICh7IGltYWdlVXJsLCB0aXRsZSwgYXJ0aWNsZVBhdGgsIGNvcHlyaWdodCB9OiBJbWFnZUxpY2Vuc2VCdXR0b25zUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoIWNvcHlyaWdodD8ubGljZW5zZT8ubGljZW5zZSB8fCBjb3B5cmlnaHQ/LmxpY2Vuc2U/LmxpY2Vuc2UgPT09ICdDT1BZUklHSFRFRCcpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IGNvcHlTdHJpbmcgPSBmaWd1cmVBcGE3Q29weVN0cmluZyhcbiAgICB0aXRsZSxcbiAgICB1bmRlZmluZWQsXG4gICAgaW1hZ2VVcmwsXG4gICAgYXJ0aWNsZVBhdGgsXG4gICAgY29weXJpZ2h0LFxuICAgIGNvcHlyaWdodD8ubGljZW5zZT8ubGljZW5zZSxcbiAgICAnJyxcbiAgICB0LFxuICAgIGkxOG4ubGFuZ3VhZ2UsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPENvcHlCdXR0b25cbiAgICAgICAgdmFyaWFudD1cIm91dGxpbmVcIlxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjb3B5U3RyaW5nKX1cbiAgICAgICAgY29weU5vZGU9e3QoJ2xpY2Vuc2UuaGFzQ29waWVkVGl0bGUnKX1cbiAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCI+XG4gICAgICAgIHt0KCdsaWNlbnNlLmNvcHlUaXRsZScpfVxuICAgICAgPC9Db3B5QnV0dG9uPlxuICAgICAgPFNhZmVMaW5rQnV0dG9uIHRvPXtgJHtpbWFnZVVybH0/ZG93bmxvYWQ9dHJ1ZWB9IGRvd25sb2FkIHZhcmlhbnQ9XCJvdXRsaW5lXCI+XG4gICAgICAgIHt0KCdpbWFnZS5kb3dubG9hZCcpfVxuICAgICAgPC9TYWZlTGlua0J1dHRvbj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmNvbnN0IEltYWdlV3JhcHBlciA9ICh7IHNyYywgY3JvcCwgc2l6ZSwgY2hpbGRyZW4gfTogSW1hZ2VXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoaXNTbWFsbChzaXplKSB8fCBoaWRlQnlsaW5lKHNpemUpKSB7XG4gICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEltYWdlTGluayBzcmM9e3NyY30gY3JvcD17Y3JvcH0gYXJpYS1sYWJlbD17dCgnbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLmFyaWFMYWJlbCcpfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0ltYWdlTGluaz5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBFeHBhbmRCdXR0b25Qcm9wcyB7XG4gIHNpemU/OiBzdHJpbmc7XG4gIGV4cGFuZGVkOiBib29sZWFuO1xuICBieWxpbmVIaWRkZW46IGJvb2xlYW47XG4gIG9uRXhwYW5kOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIG9uSGlkZUJ5bGluZTogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xufVxuXG5jb25zdCBFeHBhbmRCdXR0b24gPSAoeyBzaXplLCBleHBhbmRlZCwgYnlsaW5lSGlkZGVuLCBvbkV4cGFuZCwgb25IaWRlQnlsaW5lIH06IEV4cGFuZEJ1dHRvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgaWYgKGlzU21hbGwoc2l6ZSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3NOYW1lPVwiYy1maWd1cmVfX2Z1bGxzY3JlZW4tYnRuXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLnpvb20ke2V4cGFuZGVkID8gJ091dCcgOiAnJ31JbWFnZUJ1dHRvbkxhYmVsYCl9XG4gICAgICAgIG9uQ2xpY2s9e29uRXhwYW5kfT5cbiAgICAgICAge2V4cGFuZGVkID8gPEFycm93Q29sbGFwc2UgLz4gOiA8RXhwYW5kVHdvQXJyb3dzIC8+fVxuICAgICAgPC9idXR0b24+XG4gICAgKTtcbiAgfSBlbHNlIGlmIChoaWRlQnlsaW5lKHNpemUpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzTmFtZT1cImMtZmlndXJlX19zaG93LWJ5bGluZS1idG5cIlxuICAgICAgICBhcmlhLWxhYmVsPXt0KGBsaWNlbnNlLmltYWdlcy5pdGVtSW1hZ2UuJHtieWxpbmVIaWRkZW4gPyAnZXhwYW5kQnlsaW5lJyA6ICdtaW5pbWl6ZUJ5bGluZSd9YCl9XG4gICAgICAgIG9uQ2xpY2s9e29uSGlkZUJ5bGluZX0+XG4gICAgICAgIHtieWxpbmVIaWRkZW4gPyA8Q2hldnJvbkRvd24gLz4gOiA8Q2hldnJvblVwIC8+fVxuICAgICAgPC9idXR0b24+XG4gICAgKTtcbiAgfSBlbHNlIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VFbWJlZDtcbiJdfQ== */",
|
|
107
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
108
|
+
});
|
|
109
|
+
var expandedSizes = '(min-width: 1024px) 1024px, 100vw';
|
|
110
|
+
var ImageEmbed = function ImageEmbed(_ref) {
|
|
111
|
+
var embed = _ref.embed,
|
|
112
|
+
articlePath = _ref.articlePath,
|
|
113
|
+
previewAlt = _ref.previewAlt;
|
|
114
|
+
var _useState = (0, _react.useState)(false),
|
|
115
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
116
|
+
isOpen = _useState2[0],
|
|
117
|
+
setIsOpen = _useState2[1];
|
|
118
|
+
var _useState3 = (0, _react.useState)(hideByline(embed.embedData.size)),
|
|
119
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
120
|
+
isBylineHidden = _useState4[0],
|
|
121
|
+
setIsBylineHidden = _useState4[1];
|
|
122
|
+
var _useState5 = (0, _react.useState)(undefined),
|
|
123
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
124
|
+
imageSizes = _useState6[0],
|
|
125
|
+
setImageSizes = _useState6[1];
|
|
126
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
127
|
+
t = _useTranslation.t,
|
|
128
|
+
i18n = _useTranslation.i18n;
|
|
129
|
+
if (embed.status === 'error') {
|
|
130
|
+
var _embed$embedData = embed.embedData,
|
|
131
|
+
align = _embed$embedData.align,
|
|
132
|
+
size = _embed$embedData.size;
|
|
133
|
+
var _figureType = getFigureType(size, align);
|
|
134
|
+
return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
|
|
135
|
+
type: _figureType,
|
|
136
|
+
children: [(0, _jsxRuntime.jsx)("div", {
|
|
137
|
+
className: "c-figure__img",
|
|
138
|
+
children: (0, _jsxRuntime.jsx)("img", {
|
|
139
|
+
alt: t('image.error.url'),
|
|
140
|
+
src: errorSvgSrc
|
|
141
|
+
})
|
|
142
|
+
}), (0, _jsxRuntime.jsx)("figcaption", {
|
|
143
|
+
children: t('image.error.caption')
|
|
144
|
+
})]
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
var data = embed.data,
|
|
148
|
+
embedData = embed.embedData,
|
|
149
|
+
seq = embed.seq;
|
|
150
|
+
var authors = getLicenseCredits(data.copyright);
|
|
151
|
+
var altText = embedData.alt || '';
|
|
152
|
+
var caption = embedData.caption || '';
|
|
153
|
+
var license = (0, _licenses.getLicenseByAbbreviation)(data.copyright.license.license, i18n.language);
|
|
154
|
+
var figureType = getFigureType(embedData.size, embedData.align);
|
|
155
|
+
var sizes = getSizes(embedData.size, embedData.align);
|
|
156
|
+
var focalPoint = getFocalPoint(embedData);
|
|
157
|
+
var crop = getCrop(embedData);
|
|
158
|
+
var contributors = (0, _licenses.getGroupedContributorDescriptionList)(data.copyright, i18n.language).map(function (item) {
|
|
159
|
+
return {
|
|
160
|
+
name: item.description,
|
|
161
|
+
type: item.label
|
|
162
|
+
};
|
|
163
|
+
});
|
|
164
|
+
var figureId = "figure-".concat(seq, "-").concat(data.id);
|
|
165
|
+
var creators = authors.creators,
|
|
166
|
+
rightsholders = authors.rightsholders,
|
|
167
|
+
processors = authors.processors;
|
|
168
|
+
var captionAuthors = creators.length || rightsholders.length ? [].concat(_toConsumableArray(creators), _toConsumableArray(rightsholders)) : processors;
|
|
169
|
+
return (0, _jsxRuntime.jsxs)(_Figure.Figure, {
|
|
170
|
+
id: figureId,
|
|
171
|
+
type: imageSizes ? undefined : figureType,
|
|
172
|
+
className: imageSizes ? 'c-figure--right expanded' : '',
|
|
173
|
+
children: [(0, _jsxRuntime.jsx)(ImageWrapper, {
|
|
174
|
+
src: data.imageUrl,
|
|
175
|
+
crop: crop,
|
|
176
|
+
size: embedData.size,
|
|
177
|
+
children: (0, _jsxRuntime.jsx)(_Image["default"], {
|
|
178
|
+
focalPoint: focalPoint,
|
|
179
|
+
contentType: data.contentType,
|
|
180
|
+
crop: crop,
|
|
181
|
+
sizes: imageSizes !== null && imageSizes !== void 0 ? imageSizes : sizes,
|
|
182
|
+
alt: altText,
|
|
183
|
+
src: data.imageUrl,
|
|
184
|
+
expandButton: (0, _jsxRuntime.jsx)(ExpandButton, {
|
|
185
|
+
size: embedData.size,
|
|
186
|
+
expanded: !!imageSizes,
|
|
187
|
+
bylineHidden: isBylineHidden,
|
|
188
|
+
onExpand: function onExpand() {
|
|
189
|
+
return setImageSizes(function (p) {
|
|
190
|
+
return p ? undefined : expandedSizes;
|
|
191
|
+
});
|
|
192
|
+
},
|
|
193
|
+
onHideByline: function onHideByline() {
|
|
194
|
+
return setIsBylineHidden(function (p) {
|
|
195
|
+
return !p;
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
})
|
|
199
|
+
})
|
|
200
|
+
}), previewAlt ? (0, _jsxRuntime.jsx)(StyledSpan, {
|
|
201
|
+
children: "Alt: ".concat(embedData.alt)
|
|
202
|
+
}) : null, (0, _jsxRuntime.jsx)(_Figure.FigureCaption, {
|
|
203
|
+
hideFigcaption: isSmall(embedData.size) || isBylineHidden,
|
|
204
|
+
figureId: figureId,
|
|
205
|
+
id: figureId,
|
|
206
|
+
caption: caption,
|
|
207
|
+
reuseLabel: t('image.reuse'),
|
|
208
|
+
modalButton: (0, _jsxRuntime.jsx)(_button.ButtonV2, {
|
|
209
|
+
shape: "pill",
|
|
210
|
+
variant: "outline",
|
|
211
|
+
size: "small",
|
|
212
|
+
onClick: function onClick() {
|
|
213
|
+
return setIsOpen(true);
|
|
214
|
+
},
|
|
215
|
+
children: t('image.reuse')
|
|
216
|
+
}),
|
|
217
|
+
licenseRights: license.rights,
|
|
218
|
+
authors: captionAuthors,
|
|
219
|
+
locale: i18n.language,
|
|
220
|
+
children: (0, _jsxRuntime.jsx)(_modal.ModalV2, {
|
|
221
|
+
controlled: true,
|
|
222
|
+
isOpen: isOpen,
|
|
223
|
+
onClose: function onClose() {
|
|
224
|
+
return setIsOpen(false);
|
|
225
|
+
},
|
|
226
|
+
labelledBy: "license-dialog-rules-heading",
|
|
227
|
+
children: function children(close) {
|
|
228
|
+
return (0, _jsxRuntime.jsx)(_FigureLicenseDialogContent.FigureLicenseDialogContent, {
|
|
229
|
+
title: data.title.title,
|
|
230
|
+
license: license,
|
|
231
|
+
onClose: close,
|
|
232
|
+
authors: contributors,
|
|
233
|
+
origin: data.copyright.origin,
|
|
234
|
+
locale: i18n.language,
|
|
235
|
+
type: "image",
|
|
236
|
+
children: (0, _jsxRuntime.jsx)(ImageLicenseButtons, {
|
|
237
|
+
articlePath: articlePath,
|
|
238
|
+
title: data.title.title,
|
|
239
|
+
imageUrl: data.imageUrl,
|
|
240
|
+
copyright: data.copyright
|
|
241
|
+
})
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
})
|
|
245
|
+
})]
|
|
246
|
+
});
|
|
247
|
+
};
|
|
248
|
+
var hideByline = function hideByline(size) {
|
|
249
|
+
return !!size && size.endsWith('-hide-byline');
|
|
250
|
+
};
|
|
251
|
+
var ImageLicenseButtons = function ImageLicenseButtons(_ref2) {
|
|
252
|
+
var _copyright$license, _copyright$license2, _copyright$license3;
|
|
253
|
+
var imageUrl = _ref2.imageUrl,
|
|
254
|
+
title = _ref2.title,
|
|
255
|
+
articlePath = _ref2.articlePath,
|
|
256
|
+
copyright = _ref2.copyright;
|
|
257
|
+
var _useTranslation2 = (0, _reactI18next.useTranslation)(),
|
|
258
|
+
t = _useTranslation2.t,
|
|
259
|
+
i18n = _useTranslation2.i18n;
|
|
260
|
+
if (!(copyright !== null && copyright !== void 0 && (_copyright$license = copyright.license) !== null && _copyright$license !== void 0 && _copyright$license.license) || (copyright === null || copyright === void 0 ? void 0 : (_copyright$license2 = copyright.license) === null || _copyright$license2 === void 0 ? void 0 : _copyright$license2.license) === 'COPYRIGHTED') return null;
|
|
261
|
+
var copyString = (0, _licenses.figureApa7CopyString)(title, undefined, imageUrl, articlePath, copyright, copyright === null || copyright === void 0 ? void 0 : (_copyright$license3 = copyright.license) === null || _copyright$license3 === void 0 ? void 0 : _copyright$license3.license, '', t, i18n.language);
|
|
262
|
+
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
263
|
+
children: [(0, _jsxRuntime.jsx)(_button.CopyButton, {
|
|
264
|
+
variant: "outline",
|
|
265
|
+
onClick: function onClick() {
|
|
266
|
+
return navigator.clipboard.writeText(copyString);
|
|
267
|
+
},
|
|
268
|
+
copyNode: t('license.hasCopiedTitle'),
|
|
269
|
+
"aria-live": "assertive",
|
|
270
|
+
children: t('license.copyTitle')
|
|
271
|
+
}), (0, _jsxRuntime.jsx)(_safelink.SafeLinkButton, {
|
|
272
|
+
to: "".concat(imageUrl, "?download=true"),
|
|
273
|
+
download: true,
|
|
274
|
+
variant: "outline",
|
|
275
|
+
children: t('image.download')
|
|
276
|
+
})]
|
|
277
|
+
});
|
|
278
|
+
};
|
|
279
|
+
exports.ImageLicenseButtons = ImageLicenseButtons;
|
|
280
|
+
var ImageWrapper = function ImageWrapper(_ref3) {
|
|
281
|
+
var src = _ref3.src,
|
|
282
|
+
crop = _ref3.crop,
|
|
283
|
+
size = _ref3.size,
|
|
284
|
+
children = _ref3.children;
|
|
285
|
+
var _useTranslation3 = (0, _reactI18next.useTranslation)(),
|
|
286
|
+
t = _useTranslation3.t;
|
|
287
|
+
if (isSmall(size) || hideByline(size)) {
|
|
288
|
+
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
289
|
+
children: children
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
return (0, _jsxRuntime.jsx)(_Image.ImageLink, {
|
|
293
|
+
src: src,
|
|
294
|
+
crop: crop,
|
|
295
|
+
"aria-label": t('license.images.itemImage.ariaLabel'),
|
|
296
|
+
children: children
|
|
297
|
+
});
|
|
298
|
+
};
|
|
299
|
+
var ExpandButton = function ExpandButton(_ref4) {
|
|
300
|
+
var size = _ref4.size,
|
|
301
|
+
expanded = _ref4.expanded,
|
|
302
|
+
bylineHidden = _ref4.bylineHidden,
|
|
303
|
+
onExpand = _ref4.onExpand,
|
|
304
|
+
onHideByline = _ref4.onHideByline;
|
|
305
|
+
var _useTranslation4 = (0, _reactI18next.useTranslation)(),
|
|
306
|
+
t = _useTranslation4.t;
|
|
307
|
+
if (isSmall(size)) {
|
|
308
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
309
|
+
type: "button",
|
|
310
|
+
className: "c-figure__fullscreen-btn",
|
|
311
|
+
"aria-label": t("license.images.itemImage.zoom".concat(expanded ? 'Out' : '', "ImageButtonLabel")),
|
|
312
|
+
onClick: onExpand,
|
|
313
|
+
children: expanded ? (0, _jsxRuntime.jsx)(_common.ArrowCollapse, {}) : (0, _jsxRuntime.jsx)(_action.ExpandTwoArrows, {})
|
|
314
|
+
});
|
|
315
|
+
} else if (hideByline(size)) {
|
|
316
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
317
|
+
type: "button",
|
|
318
|
+
className: "c-figure__show-byline-btn",
|
|
319
|
+
"aria-label": t("license.images.itemImage.".concat(bylineHidden ? 'expandByline' : 'minimizeByline')),
|
|
320
|
+
onClick: onHideByline,
|
|
321
|
+
children: bylineHidden ? (0, _jsxRuntime.jsx)(_common.ChevronDown, {}) : (0, _jsxRuntime.jsx)(_common.ChevronUp, {})
|
|
322
|
+
});
|
|
323
|
+
} else return null;
|
|
324
|
+
};
|
|
325
|
+
var _default = ImageEmbed;
|
|
326
|
+
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 { RelatedContentMetaData } from '@ndla/types-embed';
|
|
9
|
+
interface Props {
|
|
10
|
+
embed: RelatedContentMetaData;
|
|
11
|
+
isOembed?: boolean;
|
|
12
|
+
subject?: string;
|
|
13
|
+
ndlaFrontendDomain?: string;
|
|
14
|
+
}
|
|
15
|
+
declare const RelatedContentEmbed: ({ embed, isOembed, subject, ndlaFrontendDomain }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
16
|
+
export default RelatedContentEmbed;
|
|
@@ -0,0 +1,64 @@
|
|
|
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 _ContentType = require("../model/ContentType");
|
|
9
|
+
var _RelatedArticleV = require("../RelatedArticleList/RelatedArticleV2");
|
|
10
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
11
|
+
/**
|
|
12
|
+
* Copyright (c) 2023-present, NDLA.
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
15
|
+
* LICENSE file in the root directory of this source tree.
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
var RelatedContentEmbed = function RelatedContentEmbed(_ref) {
|
|
20
|
+
var embed = _ref.embed,
|
|
21
|
+
isOembed = _ref.isOembed,
|
|
22
|
+
subject = _ref.subject,
|
|
23
|
+
ndlaFrontendDomain = _ref.ndlaFrontendDomain;
|
|
24
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
25
|
+
t = _useTranslation.t;
|
|
26
|
+
if (embed.status === 'error') {
|
|
27
|
+
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
|
|
28
|
+
}
|
|
29
|
+
var data = embed.data,
|
|
30
|
+
embedData = embed.embedData;
|
|
31
|
+
if (embedData.articleId && data) {
|
|
32
|
+
var _data$resource, _data$resource$resour, _data$resource$paths$, _data$resource2, _data$resource3, _data$article$title$t, _data$article$metaDes, _data$article$metaDes2;
|
|
33
|
+
var typeId = (_data$resource = data.resource) === null || _data$resource === void 0 ? void 0 : (_data$resource$resour = _data$resource.resourceTypes.find(function (rt) {
|
|
34
|
+
return _ContentType.contentTypeMapping[rt.id];
|
|
35
|
+
})) === null || _data$resource$resour === void 0 ? void 0 : _data$resource$resour.id;
|
|
36
|
+
var type = typeId ? _ContentType.contentTypeMapping[typeId] : undefined;
|
|
37
|
+
var path = (_data$resource$paths$ = (_data$resource2 = data.resource) === null || _data$resource2 === void 0 ? void 0 : _data$resource2.paths.find(function (p) {
|
|
38
|
+
return p.split('/')[1] === (subject === null || subject === void 0 ? void 0 : subject.replace('urn:', ''));
|
|
39
|
+
})) !== null && _data$resource$paths$ !== void 0 ? _data$resource$paths$ : (_data$resource3 = data.resource) === null || _data$resource3 === void 0 ? void 0 : _data$resource3.path;
|
|
40
|
+
return (0, _jsxRuntime.jsx)(_RelatedArticleV.RelatedArticleV2, {
|
|
41
|
+
title: (_data$article$title$t = data.article.title.title) !== null && _data$article$title$t !== void 0 ? _data$article$title$t : '',
|
|
42
|
+
introduction: (_data$article$metaDes = (_data$article$metaDes2 = data.article.metaDescription) === null || _data$article$metaDes2 === void 0 ? void 0 : _data$article$metaDes2.metaDescription) !== null && _data$article$metaDes !== void 0 ? _data$article$metaDes : '',
|
|
43
|
+
target: isOembed ? '_blank' : undefined,
|
|
44
|
+
to: "".concat(ndlaFrontendDomain !== null && ndlaFrontendDomain !== void 0 ? ndlaFrontendDomain : '').concat(path !== null && path !== void 0 ? path : ''),
|
|
45
|
+
type: type
|
|
46
|
+
});
|
|
47
|
+
} else if (typeof embedData.url === 'string') {
|
|
48
|
+
var _embedData$title, _embedData$url$match;
|
|
49
|
+
return (0, _jsxRuntime.jsx)(_RelatedArticleV.RelatedArticleV2, {
|
|
50
|
+
title: (_embedData$title = embedData.title) !== null && _embedData$title !== void 0 ? _embedData$title : '',
|
|
51
|
+
introduction: "",
|
|
52
|
+
to: embedData.url,
|
|
53
|
+
target: "_blank",
|
|
54
|
+
type: 'external-learning-resources',
|
|
55
|
+
linkInfo: "".concat(t('related.linkInfo'), " ").concat(
|
|
56
|
+
// Get domain name only from url
|
|
57
|
+
((_embedData$url$match = embedData.url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:/\n]+)/im)) === null || _embedData$url$match === void 0 ? void 0 : _embedData$url$match[1]) || embedData.url)
|
|
58
|
+
});
|
|
59
|
+
} else {
|
|
60
|
+
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
var _default = RelatedContentEmbed;
|
|
64
|
+
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 { MetaData } from '@ndla/types-embed';
|
|
9
|
+
interface Props {
|
|
10
|
+
embed: MetaData<any, any>;
|
|
11
|
+
}
|
|
12
|
+
declare const UnknownEmbed: ({ embed }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default UnknownEmbed;
|
|
@@ -0,0 +1,35 @@
|
|
|
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: "e1rt6jrv0",
|
|
22
|
+
label: "StyledSpan"
|
|
23
|
+
})("color:", _core.colors.support.red, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVua25vd25FbWJlZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUI4QiIsImZpbGUiOiJVbmtub3duRW1iZWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gJ0BuZGxhL3R5cGVzLWVtYmVkJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZW1iZWQ6IE1ldGFEYXRhPGFueSwgYW55Pjtcbn1cblxuY29uc3QgU3R5bGVkU3BhbiA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogJHtjb2xvcnMuc3VwcG9ydC5yZWR9O1xuYDtcblxuY29uc3QgVW5rbm93bkVtYmVkID0gKHsgZW1iZWQgfTogUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICByZXR1cm4gPFN0eWxlZFNwYW4+e3QoJ2VtYmVkLnVuc3VwcG9ydGVkJywgeyB0eXBlOiBlbWJlZC5yZXNvdXJjZSB9KX08L1N0eWxlZFNwYW4+O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVW5rbm93bkVtYmVkO1xuIl19 */"));
|
|
24
|
+
var UnknownEmbed = function UnknownEmbed(_ref) {
|
|
25
|
+
var embed = _ref.embed;
|
|
26
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
27
|
+
t = _useTranslation.t;
|
|
28
|
+
return (0, _jsxRuntime.jsx)(StyledSpan, {
|
|
29
|
+
children: t('embed.unsupported', {
|
|
30
|
+
type: embed.resource
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var _default = UnknownEmbed;
|
|
35
|
+
exports["default"] = _default;
|
|
@@ -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
|
+
import { ReactNode, RefAttributes } from 'react';
|
|
9
|
+
import { ConceptVisualElementMeta } from '@ndla/types-embed';
|
|
10
|
+
import { Copyright } from '../types';
|
|
11
|
+
export interface ConceptNotionData {
|
|
12
|
+
title: string;
|
|
13
|
+
content?: string;
|
|
14
|
+
articlePath?: string;
|
|
15
|
+
metaImage?: {
|
|
16
|
+
url?: string;
|
|
17
|
+
alt?: string;
|
|
18
|
+
};
|
|
19
|
+
copyright?: Copyright;
|
|
20
|
+
source?: string;
|
|
21
|
+
visualElement?: ConceptVisualElementMeta;
|
|
22
|
+
}
|
|
23
|
+
interface ConceptNotionProps extends RefAttributes<HTMLDivElement>, ConceptNotionData {
|
|
24
|
+
className?: string;
|
|
25
|
+
closeButton?: ReactNode;
|
|
26
|
+
previewAlt?: boolean;
|
|
27
|
+
inPopover?: boolean;
|
|
28
|
+
tags?: string[];
|
|
29
|
+
subjects?: string[];
|
|
30
|
+
}
|
|
31
|
+
export declare const ConceptNotionV2: import("react").ForwardRefExoticComponent<Pick<ConceptNotionProps, "key" | "source" | "content" | "title" | "className" | "tags" | "articlePath" | "previewAlt" | "copyright" | "visualElement" | "closeButton" | "inPopover" | "subjects" | "metaImage"> & RefAttributes<HTMLDivElement>>;
|
|
32
|
+
export {};
|