@ndla/ui 55.0.12-alpha.0 → 55.0.13-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/all-aout.js +0 -0
  2. package/dist/all.css +1 -0
  3. package/dist/panda.buildinfo.json +170 -0
  4. package/dist/styles.css +686 -0
  5. package/es/Article/Article.js +3 -4
  6. package/es/Article/ArticleByline.js +9 -9
  7. package/es/Article/ArticleFootNotes.js +4 -4
  8. package/es/AudioPlayer/AudioPlayer.js +142 -163
  9. package/es/AudioPlayer/Controls.js +187 -203
  10. package/es/AudioPlayer/SpeechControl.js +13 -11
  11. package/es/BlogPost/BlogPost.js +85 -23
  12. package/es/CampaignBlock/CampaignBlock.js +3 -4
  13. package/es/CodeBlock/CodeBlock.js +88 -96
  14. package/es/ContactBlock/ContactBlock.js +54 -40
  15. package/es/ContentLoader/index.js +7 -7
  16. package/es/CopyParagraphButton/CopyParagraphButton.js +4 -4
  17. package/es/Embed/AudioEmbed.js +5 -9
  18. package/es/Embed/BrightcoveEmbed.js +12 -15
  19. package/es/Embed/CodeEmbed.js +58 -10
  20. package/es/Embed/ConceptEmbed.js +15 -20
  21. package/es/Embed/ContentLinkEmbed.js +1 -1
  22. package/es/Embed/EmbedErrorPlaceholder.js +32 -17
  23. package/es/Embed/ExternalEmbed.js +7 -10
  24. package/es/Embed/FootnoteEmbed.js +3 -3
  25. package/es/Embed/H5pEmbed.js +1 -2
  26. package/es/Embed/IframeEmbed.js +8 -9
  27. package/es/Embed/ImageEmbed.js +167 -122
  28. package/es/Embed/RelatedContentEmbed.js +8 -10
  29. package/es/Embed/UuDisclaimerEmbed.js +2 -2
  30. package/es/Embed/conceptComponents.js +9 -9
  31. package/es/ErrorMessage/ErrorMessage.js +1 -1
  32. package/es/FactBox/FactBox.js +2 -2
  33. package/es/FileList/File.js +1 -1
  34. package/es/FileList/Format.js +3 -3
  35. package/es/FrontpageArticle/FrontpageArticle.js +1 -1
  36. package/es/Gloss/Gloss.js +9 -11
  37. package/es/Gloss/GlossExample.js +3 -4
  38. package/es/Grid/Grid.js +1 -1
  39. package/es/Image/Image.js +7 -8
  40. package/es/Image/ImageLink.js +1 -1
  41. package/es/KeyFigure/KeyFigure.js +2 -2
  42. package/es/LanguageSelector/LanguageSelector.js +2 -2
  43. package/es/LetterFilter/LetterFilter.js +1 -1
  44. package/es/LicenseByline/EmbedByline.js +5 -6
  45. package/es/LicenseByline/LicenseDescription.js +1 -1
  46. package/es/LicenseByline/LicenseLink.js +1 -2
  47. package/es/Messages/MessageBox.js +1 -1
  48. package/es/Notion/Notion.js +2 -2
  49. package/es/Notion/NotionImage.js +12 -57
  50. package/es/RelatedArticleList/RelatedArticleList.js +3 -3
  51. package/es/ResourceBox/ResourceBox.js +12 -17
  52. package/es/Search/ActiveFilters.js +1 -1
  53. package/es/Search/ContentTypeResult.js +9 -6
  54. package/es/Search/ContentTypeResultStyles.js +1 -1
  55. package/es/Search/IsPathToHighlight.js +1 -1
  56. package/es/Search/SearchField.js +6 -8
  57. package/es/Search/SearchResult.js +14 -19
  58. package/es/Search/SearchResultSleeve.js +14 -16
  59. package/es/SnackBar/SnackbarProvider.js +8 -11
  60. package/es/TagSelector/TagSelector.js +1 -1
  61. package/es/TagSelector/ariaMessages.js +6 -6
  62. package/es/TreeStructure/AddFolderButton.js +4 -6
  63. package/es/TreeStructure/ComboboxButton.js +4 -7
  64. package/es/TreeStructure/FolderItem.js +12 -15
  65. package/es/TreeStructure/FolderItems.js +3 -3
  66. package/es/TreeStructure/TreeStructure.js +9 -12
  67. package/es/TreeStructure/helperFunctions.js +1 -1
  68. package/es/ZendeskButton/ZendeskButton.js +55 -0
  69. package/es/i18n/formatNestedMessages.js +1 -1
  70. package/es/index.js +2 -1
  71. package/es/locale/messages-en.js +9 -8
  72. package/es/locale/messages-nb.js +9 -8
  73. package/es/locale/messages-nn.js +9 -8
  74. package/es/locale/messages-se.js +9 -8
  75. package/es/locale/messages-sma.js +9 -8
  76. package/es/styles.css +686 -0
  77. package/es/utils/relativeUrl.js +3 -3
  78. package/lib/Article/Article.js +3 -4
  79. package/lib/Article/ArticleByline.js +9 -9
  80. package/lib/Article/ArticleFootNotes.js +4 -4
  81. package/lib/AudioPlayer/AudioPlayer.d.ts +1 -2
  82. package/lib/AudioPlayer/AudioPlayer.js +142 -162
  83. package/lib/AudioPlayer/Controls.js +190 -205
  84. package/lib/AudioPlayer/SpeechControl.js +13 -11
  85. package/lib/BlogPost/BlogPost.d.ts +2 -2
  86. package/lib/BlogPost/BlogPost.js +85 -24
  87. package/lib/CampaignBlock/CampaignBlock.js +3 -4
  88. package/lib/CodeBlock/CodeBlock.d.ts +5 -8
  89. package/lib/CodeBlock/CodeBlock.js +88 -96
  90. package/lib/ContactBlock/ContactBlock.js +55 -43
  91. package/lib/ContentLoader/index.js +7 -7
  92. package/lib/CopyParagraphButton/CopyParagraphButton.js +4 -4
  93. package/lib/Embed/AudioEmbed.js +5 -9
  94. package/lib/Embed/BrightcoveEmbed.js +12 -15
  95. package/lib/Embed/CodeEmbed.js +56 -8
  96. package/lib/Embed/ConceptEmbed.js +15 -20
  97. package/lib/Embed/ContentLinkEmbed.js +1 -1
  98. package/lib/Embed/EmbedErrorPlaceholder.d.ts +4 -3
  99. package/lib/Embed/EmbedErrorPlaceholder.js +32 -18
  100. package/lib/Embed/ExternalEmbed.js +7 -10
  101. package/lib/Embed/FootnoteEmbed.js +3 -3
  102. package/lib/Embed/H5pEmbed.js +1 -2
  103. package/lib/Embed/IframeEmbed.js +8 -9
  104. package/lib/Embed/ImageEmbed.d.ts +1 -2
  105. package/lib/Embed/ImageEmbed.js +167 -123
  106. package/lib/Embed/RelatedContentEmbed.js +8 -10
  107. package/lib/Embed/UuDisclaimerEmbed.js +2 -2
  108. package/lib/Embed/conceptComponents.js +9 -9
  109. package/lib/ErrorMessage/ErrorMessage.js +1 -1
  110. package/lib/FactBox/FactBox.js +2 -2
  111. package/lib/FileList/File.js +1 -1
  112. package/lib/FileList/Format.js +3 -3
  113. package/lib/FrontpageArticle/FrontpageArticle.js +1 -1
  114. package/lib/Gloss/Gloss.js +9 -11
  115. package/lib/Gloss/GlossExample.js +3 -4
  116. package/lib/Grid/Grid.js +1 -1
  117. package/lib/Image/Image.js +7 -8
  118. package/lib/Image/ImageLink.js +1 -1
  119. package/lib/KeyFigure/KeyFigure.js +2 -2
  120. package/lib/LanguageSelector/LanguageSelector.js +2 -2
  121. package/lib/LetterFilter/LetterFilter.js +1 -1
  122. package/lib/LicenseByline/EmbedByline.js +5 -6
  123. package/lib/LicenseByline/LicenseDescription.js +1 -1
  124. package/lib/LicenseByline/LicenseLink.js +1 -2
  125. package/lib/Messages/MessageBox.js +1 -1
  126. package/lib/Notion/Notion.js +2 -2
  127. package/lib/Notion/NotionImage.d.ts +1 -11
  128. package/lib/Notion/NotionImage.js +12 -59
  129. package/lib/RelatedArticleList/RelatedArticleList.js +3 -3
  130. package/lib/ResourceBox/ResourceBox.js +13 -18
  131. package/lib/Search/ActiveFilters.js +1 -1
  132. package/lib/Search/ContentTypeResult.js +9 -6
  133. package/lib/Search/ContentTypeResultStyles.js +1 -1
  134. package/lib/Search/IsPathToHighlight.js +1 -1
  135. package/lib/Search/SearchField.js +6 -8
  136. package/lib/Search/SearchResult.js +14 -19
  137. package/lib/Search/SearchResultSleeve.js +14 -16
  138. package/lib/SnackBar/SnackbarProvider.js +8 -11
  139. package/lib/TagSelector/TagSelector.js +1 -1
  140. package/lib/TagSelector/ariaMessages.js +6 -6
  141. package/lib/TreeStructure/AddFolderButton.js +4 -6
  142. package/lib/TreeStructure/ComboboxButton.js +4 -7
  143. package/lib/TreeStructure/FolderItem.js +12 -15
  144. package/lib/TreeStructure/FolderItems.js +3 -3
  145. package/lib/TreeStructure/TreeStructure.js +9 -12
  146. package/lib/TreeStructure/helperFunctions.js +1 -1
  147. package/lib/ZendeskButton/ZendeskButton.d.ts +19 -0
  148. package/lib/ZendeskButton/ZendeskButton.js +61 -0
  149. package/lib/i18n/formatNestedMessages.js +1 -1
  150. package/lib/index.d.ts +2 -0
  151. package/lib/index.js +7 -0
  152. package/lib/locale/messages-en.d.ts +1 -0
  153. package/lib/locale/messages-en.js +9 -8
  154. package/lib/locale/messages-nb.d.ts +1 -0
  155. package/lib/locale/messages-nb.js +9 -8
  156. package/lib/locale/messages-nn.d.ts +1 -0
  157. package/lib/locale/messages-nn.js +9 -8
  158. package/lib/locale/messages-se.d.ts +1 -0
  159. package/lib/locale/messages-se.js +9 -8
  160. package/lib/locale/messages-sma.d.ts +1 -0
  161. package/lib/locale/messages-sma.js +9 -8
  162. package/lib/styles.css +686 -0
  163. package/lib/types.d.ts +1 -0
  164. package/lib/utils/relativeUrl.js +3 -3
  165. package/package.json +17 -12
  166. package/src/AudioPlayer/AudioPlayer.tsx +139 -176
  167. package/src/AudioPlayer/Controls.tsx +210 -250
  168. package/src/AudioPlayer/SpeechControl.tsx +9 -7
  169. package/src/BlogPost/BlogPost.tsx +82 -58
  170. package/src/CodeBlock/CodeBlock.stories.tsx +0 -43
  171. package/src/CodeBlock/CodeBlock.tsx +91 -202
  172. package/src/ContactBlock/ContactBlock.tsx +10 -2
  173. package/src/Embed/CodeEmbed.stories.tsx +95 -0
  174. package/src/Embed/CodeEmbed.tsx +62 -7
  175. package/src/Embed/ConceptEmbed.tsx +1 -9
  176. package/src/Embed/EmbedErrorPlaceholder.tsx +31 -28
  177. package/src/Embed/ImageEmbed.stories.tsx +53 -11
  178. package/src/Embed/ImageEmbed.tsx +162 -166
  179. package/src/Notion/NotionImage.tsx +4 -54
  180. package/src/ResourceBox/ResourceBox.tsx +3 -15
  181. package/src/Search/ContentTypeResult.tsx +9 -3
  182. package/src/Search/SearchResultSleeve.tsx +5 -2
  183. package/src/ZendeskButton/ZendeskButton.tsx +58 -0
  184. package/src/index.ts +4 -0
  185. package/src/locale/messages-en.ts +1 -0
  186. package/src/locale/messages-nb.ts +1 -0
  187. package/src/locale/messages-nn.ts +1 -0
  188. package/src/locale/messages-se.ts +1 -0
  189. package/src/locale/messages-sma.ts +1 -0
  190. package/src/types.ts +2 -0
  191. package/src/Image/__tests__/Image-test.tsx +0 -66
  192. package/src/Image/__tests__/__snapshots__/Image-test.tsx.snap +0 -194
@@ -4,17 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getLicenseCredits = exports.getFocalPoint = exports.getCrop = exports.errorSvgSrc = exports.default = void 0;
7
- var _base = _interopRequireDefault(require("@emotion/styled/base"));
8
7
  var _htmlReactParser = _interopRequireDefault(require("html-react-parser"));
9
8
  var _react = require("react");
10
9
  var _reactI18next = require("react-i18next");
11
- var _core = require("@ndla/core");
12
10
  var _action = require("@ndla/icons/action");
13
11
  var _common = require("@ndla/icons/common");
14
- var _licenses = require("@ndla/licenses");
12
+ var _primitives = require("@ndla/primitives");
13
+ var _jsx2 = require("@ndla/styled-system/jsx");
15
14
  var _EmbedErrorPlaceholder = _interopRequireDefault(require("./EmbedErrorPlaceholder"));
16
- var _Figure = require("../Figure");
17
- var _Image = _interopRequireDefault(require("../Image"));
18
15
  var _LicenseByline = require("../LicenseByline");
19
16
  var _jsxRuntime = require("@emotion/react/jsx-runtime");
20
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -26,31 +23,23 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
26
23
  *
27
24
  */
28
25
 
29
- /** @jsxImportSource @emotion/react */
30
-
31
26
  const getLicenseCredits = copyright => {
32
- var _copyright$creators, _copyright$rightshold, _copyright$processors;
33
27
  return {
34
- creators: (_copyright$creators = copyright === null || copyright === void 0 ? void 0 : copyright.creators) !== null && _copyright$creators !== void 0 ? _copyright$creators : [],
35
- rightsholders: (_copyright$rightshold = copyright === null || copyright === void 0 ? void 0 : copyright.rightsholders) !== null && _copyright$rightshold !== void 0 ? _copyright$rightshold : [],
36
- processors: (_copyright$processors = copyright === null || copyright === void 0 ? void 0 : copyright.processors) !== null && _copyright$processors !== void 0 ? _copyright$processors : []
28
+ creators: copyright?.creators ?? [],
29
+ rightsholders: copyright?.rightsholders ?? [],
30
+ processors: copyright?.processors ?? []
37
31
  };
38
32
  };
39
33
  exports.getLicenseCredits = getLicenseCredits;
40
- const errorSvgSrc = exports.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";
41
- const isSmall = size => size === "xsmall" || size === "small";
42
- const isAlign = align => align === "left" || align === "right";
43
- const getFigureType = (size, align) => {
44
- if (size && isSmall(size) && align && isAlign(align)) {
45
- return "".concat(size, "-").concat(align);
46
- }
47
- if (size && isSmall(size) && !align) {
48
- return size;
49
- }
50
- if (align && isAlign(align)) {
51
- return align;
52
- }
53
- return "full";
34
+ const errorSvgSrc = exports.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`;
35
+ const getFigureProps = (size, float) => {
36
+ const actualFloat = float === "left" ? "left" : float === "right" ? "right" : undefined;
37
+ const replacedSize = size?.replace("-hide-byline", "") ?? "full";
38
+ return {
39
+ float: actualFloat,
40
+ // Figure expects you to set a size when floating. If you don't, the figure will simply take up the available width. Fallback to medium in those cases.
41
+ size: replacedSize === "full" && float ? "medium" : replacedSize
42
+ };
54
43
  };
55
44
  const getSizes = (size, align) => {
56
45
  if (align && size === "full") {
@@ -65,9 +54,8 @@ const getSizes = (size, align) => {
65
54
  return "(min-width: 1024px) 1024px, 100vw";
66
55
  };
67
56
  const getFocalPoint = data => {
68
- var _data$focalX, _data$focalY;
69
- const focalX = Number.parseFloat((_data$focalX = data.focalX) !== null && _data$focalX !== void 0 ? _data$focalX : "");
70
- const focalY = Number.parseFloat((_data$focalY = data.focalY) !== null && _data$focalY !== void 0 ? _data$focalY : "");
57
+ const focalX = Number.parseFloat(data.focalX ?? "");
58
+ const focalY = Number.parseFloat(data.focalY ?? "");
71
59
  if (!Number.isNaN(focalX) && !Number.isNaN(focalY)) {
72
60
  return {
73
61
  x: focalX,
@@ -78,11 +66,10 @@ const getFocalPoint = data => {
78
66
  };
79
67
  exports.getFocalPoint = getFocalPoint;
80
68
  const getCrop = data => {
81
- var _data$lowerRightX, _data$lowerRightY, _data$upperLeftX, _data$upperLeftY;
82
- const lowerRightX = Number.parseFloat((_data$lowerRightX = data.lowerRightX) !== null && _data$lowerRightX !== void 0 ? _data$lowerRightX : "");
83
- const lowerRightY = Number.parseFloat((_data$lowerRightY = data.lowerRightY) !== null && _data$lowerRightY !== void 0 ? _data$lowerRightY : "");
84
- const upperLeftX = Number.parseFloat((_data$upperLeftX = data.upperLeftX) !== null && _data$upperLeftX !== void 0 ? _data$upperLeftX : "");
85
- const upperLeftY = Number.parseFloat((_data$upperLeftY = data.upperLeftY) !== null && _data$upperLeftY !== void 0 ? _data$upperLeftY : "");
69
+ const lowerRightX = Number.parseFloat(data.lowerRightX ?? "");
70
+ const lowerRightY = Number.parseFloat(data.lowerRightY ?? "");
71
+ const upperLeftX = Number.parseFloat(data.upperLeftX ?? "");
72
+ const upperLeftY = Number.parseFloat(data.upperLeftY ?? "");
86
73
  if (!Number.isNaN(lowerRightX) && !Number.isNaN(lowerRightY) && !Number.isNaN(upperLeftX) && !Number.isNaN(upperLeftY)) {
87
74
  return {
88
75
  startX: lowerRightX,
@@ -95,26 +82,133 @@ const getCrop = data => {
95
82
  };
96
83
  exports.getCrop = getCrop;
97
84
  const expandedSizes = "(min-width: 1024px) 1024px, 100vw";
98
- const StyledFigure = /*#__PURE__*/(0, _base.default)(_Figure.Figure, {
99
- target: "ened8ka2",
100
- label: "StyledFigure"
101
- })("&:hover{[data-byline-button]{background:", _core.colors.white, ";}button[data-expanded]{transform:scale(1.2);}}button[data-expanded=\"true\"]{svg{transform:rotate(-45deg);}}&[data-float=\"right\"]{float:right;}&[data-float=\"left\"]{float:left;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkltYWdlRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlIbUMiLCJmaWxlIjoiSW1hZ2VFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbi8qKiBAanN4SW1wb3J0U291cmNlIEBlbW90aW9uL3JlYWN0ICovXG5pbXBvcnQgcGFyc2UgZnJvbSBcImh0bWwtcmVhY3QtcGFyc2VyXCI7XG5pbXBvcnQgeyBNb3VzZUV2ZW50SGFuZGxlciwgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjb2xvcnMsIG1pc2MsIHNwYWNpbmcgfSBmcm9tIFwiQG5kbGEvY29yZVwiO1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gXCJAbmRsYS9pY29ucy9hY3Rpb25cIjtcbmltcG9ydCB7IENoZXZyb25Eb3duLCBDaGV2cm9uVXAgfSBmcm9tIFwiQG5kbGEvaWNvbnMvY29tbW9uXCI7XG5pbXBvcnQgeyBDT1BZUklHSFRFRCB9IGZyb20gXCJAbmRsYS9saWNlbnNlc1wiO1xuaW1wb3J0IHsgSW1hZ2VFbWJlZERhdGEsIEltYWdlTWV0YURhdGEgfSBmcm9tIFwiQG5kbGEvdHlwZXMtZW1iZWRcIjtcbmltcG9ydCBFbWJlZEVycm9yUGxhY2Vob2xkZXIgZnJvbSBcIi4vRW1iZWRFcnJvclBsYWNlaG9sZGVyXCI7XG5pbXBvcnQgeyBSZW5kZXJDb250ZXh0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlVHlwZSB9IGZyb20gXCIuLi9GaWd1cmVcIjtcbmltcG9ydCBJbWFnZSBmcm9tIFwiLi4vSW1hZ2VcIjtcbmltcG9ydCB7IEVtYmVkQnlsaW5lIH0gZnJvbSBcIi4uL0xpY2Vuc2VCeWxpbmVcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZW1iZWQ6IEltYWdlTWV0YURhdGE7XG4gIHByZXZpZXdBbHQ/OiBib29sZWFuO1xuICBpbkdyaWQ/OiBib29sZWFuO1xuICBsYW5nPzogc3RyaW5nO1xuICByZW5kZXJDb250ZXh0PzogUmVuZGVyQ29udGV4dDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRMaWNlbnNlQ3JlZGl0cyA9IChjb3B5cmlnaHQ/OiB7XG4gIGNyZWF0b3JzPzogQXV0aG9yW107XG4gIHJpZ2h0c2hvbGRlcnM/OiBBdXRob3JbXTtcbiAgcHJvY2Vzc29ycz86IEF1dGhvcltdO1xufSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0b3JzOiBjb3B5cmlnaHQ/LmNyZWF0b3JzID8/IFtdLFxuICAgIHJpZ2h0c2hvbGRlcnM6IGNvcHlyaWdodD8ucmlnaHRzaG9sZGVycyA/PyBbXSxcbiAgICBwcm9jZXNzb3JzOiBjb3B5cmlnaHQ/LnByb2Nlc3NvcnMgPz8gW10sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JTdmdTcmMgPSBgZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnIGZpbGw9JyUyMzhBODg4OCcgaGVpZ2h0PSc0MDAnIHZpZXdCb3g9JzAgMCAyNCAxMicgd2lkdGg9JzEwMCUyNScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogJTIzRUZGMEYyJyUzRSUzQ3BhdGggZD0nTTAgMGgyNHYyNEgwVjB6JyBmaWxsPSdub25lJy8lM0UlM0NwYXRoIHRyYW5zZm9ybT0nc2NhbGUoMC4zKSB0cmFuc2xhdGUoMjgsIDguNSknIGQ9J00xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Jy8lM0UlM0Mvc3ZnJTNFYDtcbmNvbnN0IGlzU21hbGwgPSAoc2l6ZT86IHN0cmluZyk6IHNpemUgaXMgXCJ4c21hbGxcIiB8IFwic21hbGxcIiA9PiBzaXplID09PSBcInhzbWFsbFwiIHx8IHNpemUgPT09IFwic21hbGxcIjtcblxuY29uc3QgaXNBbGlnbiA9IChhbGlnbj86IHN0cmluZyk6IGFsaWduIGlzIFwibGVmdFwiIHwgXCJyaWdodFwiID0+IGFsaWduID09PSBcImxlZnRcIiB8fCBhbGlnbiA9PT0gXCJyaWdodFwiO1xuXG5jb25zdCBnZXRGaWd1cmVUeXBlID0gKHNpemU/OiBzdHJpbmcsIGFsaWduPzogc3RyaW5nKTogRmlndXJlVHlwZSA9PiB7XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYCR7c2l6ZX0tJHthbGlnbn1gO1xuICB9XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgIWFsaWduKSB7XG4gICAgcmV0dXJuIHNpemUgYXMgRmlndXJlVHlwZTtcbiAgfVxuICBpZiAoYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYWxpZ247XG4gIH1cbiAgcmV0dXJuIFwiZnVsbFwiO1xufTtcblxuY29uc3QgZ2V0U2l6ZXMgPSAoc2l6ZT86IHN0cmluZywgYWxpZ24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwiZnVsbFwiKSB7XG4gICAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSA1MTJweCwgKG1pbi13aWR0aDogNzY4cHgpIDM1MHB4LCAxMDB2d1wiO1xuICB9XG4gIGlmIChhbGlnbiAmJiBzaXplID09PSBcInNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDM1MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwieHNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDE4MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9jYWxQb2ludCA9IChkYXRhOiBJbWFnZUVtYmVkRGF0YSkgPT4ge1xuICBjb25zdCBmb2NhbFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmZvY2FsWCA/PyBcIlwiKTtcbiAgY29uc3QgZm9jYWxZID0gTnVtYmVyLnBhcnNlRmxvYXQoZGF0YS5mb2NhbFkgPz8gXCJcIik7XG4gIGlmICghTnVtYmVyLmlzTmFOKGZvY2FsWCkgJiYgIU51bWJlci5pc05hTihmb2NhbFkpKSB7XG4gICAgcmV0dXJuIHsgeDogZm9jYWxYLCB5OiBmb2NhbFkgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENyb3AgPSAoZGF0YTogSW1hZ2VFbWJlZERhdGEpID0+IHtcbiAgY29uc3QgbG93ZXJSaWdodFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmxvd2VyUmlnaHRYID8/IFwiXCIpO1xuICBjb25zdCBsb3dlclJpZ2h0WSA9IE51bWJlci5wYXJzZUZsb2F0KGRhdGEubG93ZXJSaWdodFkgPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFggPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFkgPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFkgPz8gXCJcIik7XG4gIGlmIChcbiAgICAhTnVtYmVyLmlzTmFOKGxvd2VyUmlnaHRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4obG93ZXJSaWdodFkpICYmXG4gICAgIU51bWJlci5pc05hTih1cHBlckxlZnRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4odXBwZXJMZWZ0WSlcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0WDogbG93ZXJSaWdodFgsXG4gICAgICBzdGFydFk6IGxvd2VyUmlnaHRZLFxuICAgICAgZW5kWDogdXBwZXJMZWZ0WCxcbiAgICAgIGVuZFk6IHVwcGVyTGVmdFksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZXhwYW5kZWRTaXplcyA9IFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG5cbmNvbnN0IFN0eWxlZEZpZ3VyZSA9IHN0eWxlZChGaWd1cmUpYFxuICAmOmhvdmVyIHtcbiAgICBbZGF0YS1ieWxpbmUtYnV0dG9uXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZX07XG4gICAgfVxuICAgIGJ1dHRvbltkYXRhLWV4cGFuZGVkXSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgfVxuICB9XG4gIGJ1dHRvbltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG4gICZbZGF0YS1mbG9hdD1cInJpZ2h0XCJdIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgJltkYXRhLWZsb2F0PVwibGVmdFwiXSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbmA7XG5cbmNvbnN0IEltYWdlRW1iZWQgPSAoeyBlbWJlZCwgcHJldmlld0FsdCwgaW5HcmlkLCBsYW5nLCByZW5kZXJDb250ZXh0ID0gXCJhcnRpY2xlXCIsIGNoaWxkcmVuIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc0J5bGluZUhpZGRlbiwgc2V0SXNCeWxpbmVIaWRkZW5dID0gdXNlU3RhdGUoaGlkZUJ5bGluZShlbWJlZC5lbWJlZERhdGEpKTtcbiAgY29uc3QgW2ltYWdlU2l6ZXMsIHNldEltYWdlU2l6ZXNdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvLyBGdWxsLXNpemUgZmlndXJlcyBhdXRvbWF0aWNhbGx5IGdldCBhIG1hcmdpbiBvZiB7c3BhY2luZy5ub3JtYWx9IG9uIGl0cyB5LWF4aXMgaWYgYSBmbG9hdCBpcyBub3Qgc2V0IChvciBpZiBmbG9hdCBpcyBhbiBlbXB0eSBzdHJpbmcpLlxuICAvLyBUaGlzIGFkZHMgc29tZSBtYXJnaW4gdG8gbm9ybWFsIGZpZ3VyZXMgd2l0aGluIGFuIGFydGljbGUsIGJ1dCBzaG91bGQgbm90IGhhcHBlbiBmb3IgZmlndXJlcyBpbiBhIGdyaWQuXG4gIGNvbnN0IFtmbG9hdEF0dHIsIHNldEZsb2F0QXR0cl0gPSB1c2VTdGF0ZTx7IFwiZGF0YS1mbG9hdFwiPzogc3RyaW5nIH0+KCgpID0+XG4gICAgaW5HcmlkICYmICFlbWJlZC5lbWJlZERhdGEuYWxpZ24gPyB7fSA6IHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkLmVtYmVkRGF0YS5hbGlnbiB9LFxuICApO1xuXG4gIGNvbnN0IHBhcnNlZERlc2NyaXB0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGVtYmVkLmVtYmVkRGF0YS5jYXB0aW9uIHx8IHJlbmRlckNvbnRleHQgPT09IFwiYXJ0aWNsZVwiKSB7XG4gICAgICByZXR1cm4gZW1iZWQuZW1iZWREYXRhLmNhcHRpb24gPyBwYXJzZShlbWJlZC5lbWJlZERhdGEuY2FwdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChlbWJlZC5zdGF0dXMgPT09IFwic3VjY2Vzc1wiICYmIGVtYmVkLmRhdGEuY2FwdGlvbi5jYXB0aW9uKSB7XG4gICAgICByZXR1cm4gcGFyc2UoZW1iZWQuZGF0YS5jYXB0aW9uLmNhcHRpb24pO1xuICAgIH1cbiAgfSwgW2VtYmVkLCByZW5kZXJDb250ZXh0XSk7XG5cbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gXCJlcnJvclwiKSB7XG4gICAgY29uc3QgeyBhbGlnbiwgc2l6ZSB9ID0gZW1iZWQuZW1iZWREYXRhO1xuICAgIGNvbnN0IGZpZ3VyZVR5cGUgPSBnZXRGaWd1cmVUeXBlKHNpemUsIGFsaWduKTtcbiAgICByZXR1cm4gPEVtYmVkRXJyb3JQbGFjZWhvbGRlciB0eXBlPXtcImltYWdlXCJ9IGZpZ3VyZVR5cGU9e2ZpZ3VyZVR5cGV9IC8+O1xuICB9XG5cbiAgY29uc3QgeyBkYXRhLCBlbWJlZERhdGEgfSA9IGVtYmVkO1xuXG4gIGNvbnN0IGFsdFRleHQgPSBlbWJlZERhdGEuYWx0IHx8IFwiXCI7XG5cbiAgY29uc3QgZmlndXJlVHlwZSA9IGdldEZpZ3VyZVR5cGUoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG4gIGNvbnN0IHNpemVzID0gZ2V0U2l6ZXMoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG5cbiAgY29uc3QgZm9jYWxQb2ludCA9IGdldEZvY2FsUG9pbnQoZW1iZWREYXRhKTtcbiAgY29uc3QgY3JvcCA9IGdldENyb3AoZW1iZWREYXRhKTtcblxuICBjb25zdCBpc0NvcHlyaWdodGVkID0gZGF0YS5jb3B5cmlnaHQubGljZW5zZS5saWNlbnNlLnRvTG93ZXJDYXNlKCkgPT09IENPUFlSSUdIVEVEO1xuXG4gIGNvbnN0IHRvZ2dsZUltYWdlU2l6ZSA9ICgpID0+IHtcbiAgICBpZiAoIWltYWdlU2l6ZXMpIHtcbiAgICAgIHNldEltYWdlU2l6ZXMoZXhwYW5kZWRTaXplcyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0RmxvYXRBdHRyKHt9KTtcbiAgICAgIH0sIDQwMCk7IC8vUmVtb3ZpbmcgdGhlIGZsb2F0IHBhcmFtZXRlciB0b28gcXVpY2tseSBjYXVzZXMgdGhlIGltYWdlIHRvIGJlIHJlc2l6ZWQgZnJvbSBsZWZ0IHJlZ2FyZGxlc3NcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SW1hZ2VTaXplcyh1bmRlZmluZWQpO1xuICAgICAgc2V0RmxvYXRBdHRyKHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkRGF0YS5hbGlnbiB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkRmlndXJlIHR5cGU9e2ltYWdlU2l6ZXMgPyB1bmRlZmluZWQgOiBmaWd1cmVUeXBlfSB7Li4uZmxvYXRBdHRyfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxJbWFnZVxuICAgICAgICBmb2NhbFBvaW50PXtmb2NhbFBvaW50fVxuICAgICAgICBjb250ZW50VHlwZT17ZGF0YS5pbWFnZS5jb250ZW50VHlwZX1cbiAgICAgICAgY3JvcD17Y3JvcH1cbiAgICAgICAgc2l6ZXM9e2ltYWdlU2l6ZXMgPz8gc2l6ZXN9XG4gICAgICAgIGFsdD17YWx0VGV4dH1cbiAgICAgICAgc3JjPXtkYXRhLmltYWdlLmltYWdlVXJsfVxuICAgICAgICBib3JkZXI9e2VtYmVkRGF0YS5ib3JkZXJ9XG4gICAgICAgIG9uRXhwYW5kPXtpc0FsaWduKGVtYmVkRGF0YS5hbGlnbikgPyB0b2dnbGVJbWFnZVNpemUgOiB1bmRlZmluZWR9XG4gICAgICAgIGV4cGFuZGVkPXshIWltYWdlU2l6ZXN9XG4gICAgICAgIGV4cGFuZEJ1dHRvbj17XG4gICAgICAgICAgPEV4cGFuZEJ1dHRvblxuICAgICAgICAgICAgZW1iZWREYXRhPXtlbWJlZERhdGF9XG4gICAgICAgICAgICBleHBhbmRlZD17ISFpbWFnZVNpemVzfVxuICAgICAgICAgICAgYWxpZ249e2VtYmVkRGF0YS5hbGlnbn1cbiAgICAgICAgICAgIGJ5bGluZUhpZGRlbj17aXNCeWxpbmVIaWRkZW59XG4gICAgICAgICAgICBvbkV4cGFuZD17dG9nZ2xlSW1hZ2VTaXplfVxuICAgICAgICAgICAgb25IaWRlQnlsaW5lPXsoKSA9PiBzZXRJc0J5bGluZUhpZGRlbigocCkgPT4gIXApfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgIC8+XG4gICAgICB7aXNCeWxpbmVIaWRkZW4gPyBudWxsIDogKFxuICAgICAgICA8RW1iZWRCeWxpbmVcbiAgICAgICAgICB0eXBlPVwiaW1hZ2VcIlxuICAgICAgICAgIGNvcHlyaWdodD17ZGF0YS5jb3B5cmlnaHR9XG4gICAgICAgICAgZGVzY3JpcHRpb249e3BhcnNlZERlc2NyaXB0aW9ufVxuICAgICAgICAgIHZpc2libGVBbHQ9e3ByZXZpZXdBbHQgPyBlbWJlZC5lbWJlZERhdGEuYWx0IDogXCJcIn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRGaWd1cmU+XG4gICk7XG59O1xuXG5jb25zdCBoaWRlQnlsaW5lID0gKGVtYmVkOiBJbWFnZUVtYmVkRGF0YSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKCEhZW1iZWQuc2l6ZSAmJiBlbWJlZC5zaXplLmVuZHNXaXRoKFwiLWhpZGUtYnlsaW5lXCIpKSB8fCBlbWJlZC5oaWRlQnlsaW5lID09PSBcInRydWVcIjtcbn07XG5cbmludGVyZmFjZSBFeHBhbmRCdXR0b25Qcm9wcyB7XG4gIGVtYmVkRGF0YTogSW1hZ2VFbWJlZERhdGE7XG4gIGFsaWduPzogc3RyaW5nO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgYnlsaW5lSGlkZGVuOiBib29sZWFuO1xuICBvbkV4cGFuZDogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBvbkhpZGVCeWxpbmU6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxCdXR0b25FbGVtZW50Pjtcbn1cblxuY29uc3QgQnlsaW5lQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6ICR7c3BhY2luZy5zbWFsbH07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLmRlZmF1bHR9MjA7XG4gIGJvcmRlcjogMDtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2Utb3V0O1xuICAgIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgICBoZWlnaHQ6ICR7c3BhY2luZy5ub3JtYWx9O1xuICAgIGZpbGw6ICR7Y29sb3JzLmJyYW5kLnByaW1hcnl9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDA7XG4gIHRvcDogJHtzcGFjaW5nLnNtYWxsfTtcbiAgcmlnaHQ6ICR7c3BhY2luZy5zbWFsbH07XG4gIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgaGVpZ2h0OiAke3NwYWNpbmcubm9ybWFsfTtcbiAgYm9yZGVyOiAycHggc29saWQgJHtjb2xvcnMud2hpdGV9O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbiAgY29sb3I6ICR7Y29sb3JzLndoaXRlfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMuYnJhbmQucHJpbWFyeX07XG4gIGJvcmRlci1yYWRpdXM6ICR7bWlzYy5ib3JkZXJSYWRpdXNMYXJnZX07XG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1vdXQ7XG4gICAgaGVpZ2h0OiAke3NwYWNpbmcubnNtYWxsfTtcbiAgICB3aWR0aDogJHtzcGFjaW5nLm5zbWFsbH07XG4gIH1cbmA7XG5cbmNvbnN0IEV4cGFuZEJ1dHRvbiA9ICh7IGFsaWduLCBlbWJlZERhdGEsIGV4cGFuZGVkLCBieWxpbmVIaWRkZW4sIG9uRXhwYW5kLCBvbkhpZGVCeWxpbmUgfTogRXhwYW5kQnV0dG9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLnpvb20ke2V4cGFuZGVkID8gXCJPdXRcIiA6IFwiXCJ9SW1hZ2VCdXR0b25MYWJlbGApfVxuICAgICAgICBvbkNsaWNrPXtvbkV4cGFuZH1cbiAgICAgICAgZGF0YS1leHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICA+XG4gICAgICAgIDxQbHVzIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICApO1xuICB9XG4gIGlmIChoaWRlQnlsaW5lKGVtYmVkRGF0YSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJ5bGluZUJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgZGF0YS1ieWxpbmUtYnV0dG9uPVwiXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLiR7YnlsaW5lSGlkZGVuID8gXCJleHBhbmRCeWxpbmVcIiA6IFwibWluaW1pemVCeWxpbmVcIn1gKX1cbiAgICAgICAgb25DbGljaz17b25IaWRlQnlsaW5lfVxuICAgICAgPlxuICAgICAgICB7YnlsaW5lSGlkZGVuID8gPENoZXZyb25Eb3duIC8+IDogPENoZXZyb25VcCAvPn1cbiAgICAgIDwvQnlsaW5lQnV0dG9uPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUVtYmVkO1xuIl19 */"));
85
+ const ImageWrapper = (0, _jsx2.styled)("div", {
86
+ base: {
87
+ overflow: "hidden",
88
+ position: "relative",
89
+ width: "100%",
90
+ "& img": {
91
+ width: "100%"
92
+ }
93
+ },
94
+ variants: {
95
+ svg: {
96
+ true: {
97
+ display: "flex",
98
+ justifyContent: "center"
99
+ },
100
+ false: {}
101
+ },
102
+ border: {
103
+ true: {
104
+ border: "1px solid",
105
+ // TODO: Not sure if we want this color.
106
+ borderColor: "surface.brand.1.strong",
107
+ borderBottom: "0",
108
+ borderRadius: "xsmall",
109
+ borderBottomLeftRadius: "0",
110
+ borderBottomRightRadius: "0"
111
+ },
112
+ false: {}
113
+ },
114
+ expandable: {
115
+ true: {
116
+ cursor: "pointer"
117
+ },
118
+ false: {}
119
+ }
120
+ }
121
+ });
122
+ const StyledFigure = (0, _jsx2.styled)(_primitives.Figure, {
123
+ base: {
124
+ _hover: {
125
+ "& [data-byline-button]": {
126
+ background: "background.default"
127
+ },
128
+ "& button[data-expanded]": {
129
+ transform: "scale(1.2)"
130
+ }
131
+ },
132
+ "& button[data-expanded='true']": {
133
+ "& svg": {
134
+ transform: "rotate(-45deg)"
135
+ }
136
+ }
137
+ }
138
+ });
139
+
140
+ // TODO: Ask about BylineButton styling. Not included in design
141
+ const BylineButton = (0, _jsx2.styled)("button", {
142
+ base: {
143
+ cursor: "pointer",
144
+ position: "absolute",
145
+ zIndex: "base",
146
+ bottom: "0",
147
+ right: "0",
148
+ paddingBlock: "xsmall",
149
+ paddingInline: "xsmall",
150
+ transitionProperty: "transform, background-color, color",
151
+ transitionDuration: "normal",
152
+ transitionTimingFunction: "ease-out",
153
+ background: "background.default/20",
154
+ border: "0",
155
+ "& svg": {
156
+ transitionProperty: "transform",
157
+ transitionDuration: "normal",
158
+ transitionTimingFunction: "ease-out",
159
+ fill: "primary"
160
+ }
161
+ }
162
+ }, {
163
+ defaultProps: {
164
+ type: "button"
165
+ }
166
+ });
167
+ const ExpandButton = (0, _jsx2.styled)("button", {
168
+ base: {
169
+ display: "flex",
170
+ alignItems: "center",
171
+ justifyContent: "center",
172
+ cursor: "pointer",
173
+ position: "absolute",
174
+ padding: "0",
175
+ top: "xsmall",
176
+ right: "xsmall",
177
+ width: "medium",
178
+ height: "medium",
179
+ border: "2px solid",
180
+ borderColor: "background.default",
181
+ transitionProperty: "transform, background-color, color",
182
+ transitionDuration: "normal",
183
+ transitionTimingFunction: "ease-out",
184
+ color: "background.default",
185
+ backgroundColor: "surface.action",
186
+ borderRadius: "large",
187
+ "& svg": {
188
+ transitionProperty: "transform",
189
+ transitionDuration: "normal",
190
+ transitionTimingFunction: "ease-out"
191
+ }
192
+ }
193
+ }, {
194
+ defaultProps: {
195
+ type: "button"
196
+ }
197
+ });
102
198
  const ImageEmbed = _ref => {
103
199
  let {
104
200
  embed,
105
201
  previewAlt,
106
- inGrid,
107
202
  lang,
108
203
  renderContext = "article",
109
204
  children
110
205
  } = _ref;
111
206
  const [isBylineHidden, setIsBylineHidden] = (0, _react.useState)(hideByline(embed.embedData));
112
207
  const [imageSizes, setImageSizes] = (0, _react.useState)(undefined);
113
- // Full-size figures automatically get a margin of {spacing.normal} on its y-axis if a float is not set (or if float is an empty string).
114
- // This adds some margin to normal figures within an article, but should not happen for figures in a grid.
115
- const [floatAttr, setFloatAttr] = (0, _react.useState)(() => inGrid && !embed.embedData.align ? {} : {
116
- "data-float": embed.embedData.align
117
- });
208
+ const figureProps = getFigureProps(embed.embedData.size, embed.embedData.align);
209
+ const {
210
+ t
211
+ } = (0, _reactI18next.useTranslation)();
118
212
  const parsedDescription = (0, _react.useMemo)(() => {
119
213
  if (embed.embedData.caption || renderContext === "article") {
120
214
  return embed.embedData.caption ? (0, _htmlReactParser.default)(embed.embedData.caption) : undefined;
@@ -124,14 +218,10 @@ const ImageEmbed = _ref => {
124
218
  }
125
219
  }, [embed, renderContext]);
126
220
  if (embed.status === "error") {
127
- const {
128
- align,
129
- size
130
- } = embed.embedData;
131
- const figureType = getFigureType(size, align);
132
221
  return (0, _jsxRuntime.jsx)(_EmbedErrorPlaceholder.default, {
133
222
  type: "image",
134
- figureType: figureType
223
+ figureType: figureProps?.size,
224
+ float: figureProps?.float
135
225
  });
136
226
  }
137
227
  const {
@@ -139,46 +229,40 @@ const ImageEmbed = _ref => {
139
229
  embedData
140
230
  } = embed;
141
231
  const altText = embedData.alt || "";
142
- const figureType = getFigureType(embedData.size, embedData.align);
143
232
  const sizes = getSizes(embedData.size, embedData.align);
144
233
  const focalPoint = getFocalPoint(embedData);
145
234
  const crop = getCrop(embedData);
146
- const isCopyrighted = data.copyright.license.license.toLowerCase() === _licenses.COPYRIGHTED;
147
235
  const toggleImageSize = () => {
148
- if (!imageSizes) {
149
- setImageSizes(expandedSizes);
150
- setTimeout(() => {
151
- setFloatAttr({});
152
- }, 400); //Removing the float parameter too quickly causes the image to be resized from left regardless
153
- } else {
154
- setImageSizes(undefined);
155
- setFloatAttr({
156
- "data-float": embedData.align
157
- });
158
- }
236
+ setImageSizes(sizes => !sizes ? expandedSizes : undefined);
159
237
  };
238
+
239
+ // TODO: Check how this works with `children`. Will only be important for ED
160
240
  return (0, _jsxRuntime.jsxs)(StyledFigure, {
161
- type: imageSizes ? undefined : figureType,
162
- ...floatAttr,
163
- children: [children, (0, _jsxRuntime.jsx)(_Image.default, {
164
- focalPoint: focalPoint,
165
- contentType: data.image.contentType,
166
- crop: crop,
167
- sizes: imageSizes !== null && imageSizes !== void 0 ? imageSizes : sizes,
168
- alt: altText,
169
- src: data.image.imageUrl,
170
- border: embedData.border,
171
- onExpand: isAlign(embedData.align) ? toggleImageSize : undefined,
172
- expanded: !!imageSizes,
173
- expandButton: (0, _jsxRuntime.jsx)(ExpandButton, {
174
- embedData: embedData,
175
- expanded: !!imageSizes,
176
- align: embedData.align,
177
- bylineHidden: isBylineHidden,
178
- onExpand: toggleImageSize,
179
- onHideByline: () => setIsBylineHidden(p => !p)
180
- }),
181
- lang: lang
241
+ float: figureProps?.float,
242
+ size: imageSizes ? "full" : figureProps?.size ?? "medium",
243
+ children: [children, (0, _jsxRuntime.jsxs)(ImageWrapper, {
244
+ border: embedData.border === "true",
245
+ expandable: !!figureProps?.float,
246
+ children: [(0, _jsxRuntime.jsx)(_primitives.Image, {
247
+ focalPoint: focalPoint,
248
+ contentType: data.image.contentType,
249
+ crop: crop,
250
+ sizes: imageSizes ?? sizes,
251
+ alt: altText,
252
+ src: data.image.imageUrl,
253
+ lang: lang,
254
+ onClick: figureProps?.float ? toggleImageSize : undefined
255
+ }), !!embedData.align && (0, _jsxRuntime.jsx)(ExpandButton, {
256
+ "aria-label": t(`license.images.itemImage.zoom${imageSizes ? "Out" : ""}ImageButtonLabel`),
257
+ onClick: toggleImageSize,
258
+ "data-expanded": !!imageSizes,
259
+ children: (0, _jsxRuntime.jsx)(_action.Plus, {})
260
+ }), (embedData.size?.endsWith("-hide-byline") || embedData.hideByline === "true") && (0, _jsxRuntime.jsx)(BylineButton, {
261
+ "data-byline-button": "",
262
+ "aria-label": t(`license.images.itemImage.${isBylineHidden ? "expandByline" : "minimizeByline"}`),
263
+ onClick: () => setIsBylineHidden(p => !p),
264
+ children: isBylineHidden ? (0, _jsxRuntime.jsx)(_common.ChevronDown, {}) : (0, _jsxRuntime.jsx)(_common.ChevronUp, {})
265
+ })]
182
266
  }), isBylineHidden ? null : (0, _jsxRuntime.jsx)(_LicenseByline.EmbedByline, {
183
267
  type: "image",
184
268
  copyright: data.copyright,
@@ -190,44 +274,4 @@ const ImageEmbed = _ref => {
190
274
  const hideByline = embed => {
191
275
  return !!embed.size && embed.size.endsWith("-hide-byline") || embed.hideByline === "true";
192
276
  };
193
- const BylineButton = /*#__PURE__*/(0, _base.default)("button", {
194
- target: "ened8ka1",
195
- label: "BylineButton"
196
- })("cursor:pointer;position:absolute;z-index:1;bottom:0;right:0;padding:", _core.spacing.small, ";transition:all 0.3s ease-out;background:", _core.colors.background.default, "20;border:0;svg{transition:transform 0.4s ease-out;width:", _core.spacing.normal, ";height:", _core.spacing.normal, ";fill:", _core.colors.brand.primary, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkltYWdlRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlPa0MiLCJmaWxlIjoiSW1hZ2VFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbi8qKiBAanN4SW1wb3J0U291cmNlIEBlbW90aW9uL3JlYWN0ICovXG5pbXBvcnQgcGFyc2UgZnJvbSBcImh0bWwtcmVhY3QtcGFyc2VyXCI7XG5pbXBvcnQgeyBNb3VzZUV2ZW50SGFuZGxlciwgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjb2xvcnMsIG1pc2MsIHNwYWNpbmcgfSBmcm9tIFwiQG5kbGEvY29yZVwiO1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gXCJAbmRsYS9pY29ucy9hY3Rpb25cIjtcbmltcG9ydCB7IENoZXZyb25Eb3duLCBDaGV2cm9uVXAgfSBmcm9tIFwiQG5kbGEvaWNvbnMvY29tbW9uXCI7XG5pbXBvcnQgeyBDT1BZUklHSFRFRCB9IGZyb20gXCJAbmRsYS9saWNlbnNlc1wiO1xuaW1wb3J0IHsgSW1hZ2VFbWJlZERhdGEsIEltYWdlTWV0YURhdGEgfSBmcm9tIFwiQG5kbGEvdHlwZXMtZW1iZWRcIjtcbmltcG9ydCBFbWJlZEVycm9yUGxhY2Vob2xkZXIgZnJvbSBcIi4vRW1iZWRFcnJvclBsYWNlaG9sZGVyXCI7XG5pbXBvcnQgeyBSZW5kZXJDb250ZXh0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlVHlwZSB9IGZyb20gXCIuLi9GaWd1cmVcIjtcbmltcG9ydCBJbWFnZSBmcm9tIFwiLi4vSW1hZ2VcIjtcbmltcG9ydCB7IEVtYmVkQnlsaW5lIH0gZnJvbSBcIi4uL0xpY2Vuc2VCeWxpbmVcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZW1iZWQ6IEltYWdlTWV0YURhdGE7XG4gIHByZXZpZXdBbHQ/OiBib29sZWFuO1xuICBpbkdyaWQ/OiBib29sZWFuO1xuICBsYW5nPzogc3RyaW5nO1xuICByZW5kZXJDb250ZXh0PzogUmVuZGVyQ29udGV4dDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRMaWNlbnNlQ3JlZGl0cyA9IChjb3B5cmlnaHQ/OiB7XG4gIGNyZWF0b3JzPzogQXV0aG9yW107XG4gIHJpZ2h0c2hvbGRlcnM/OiBBdXRob3JbXTtcbiAgcHJvY2Vzc29ycz86IEF1dGhvcltdO1xufSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0b3JzOiBjb3B5cmlnaHQ/LmNyZWF0b3JzID8/IFtdLFxuICAgIHJpZ2h0c2hvbGRlcnM6IGNvcHlyaWdodD8ucmlnaHRzaG9sZGVycyA/PyBbXSxcbiAgICBwcm9jZXNzb3JzOiBjb3B5cmlnaHQ/LnByb2Nlc3NvcnMgPz8gW10sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JTdmdTcmMgPSBgZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnIGZpbGw9JyUyMzhBODg4OCcgaGVpZ2h0PSc0MDAnIHZpZXdCb3g9JzAgMCAyNCAxMicgd2lkdGg9JzEwMCUyNScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogJTIzRUZGMEYyJyUzRSUzQ3BhdGggZD0nTTAgMGgyNHYyNEgwVjB6JyBmaWxsPSdub25lJy8lM0UlM0NwYXRoIHRyYW5zZm9ybT0nc2NhbGUoMC4zKSB0cmFuc2xhdGUoMjgsIDguNSknIGQ9J00xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Jy8lM0UlM0Mvc3ZnJTNFYDtcbmNvbnN0IGlzU21hbGwgPSAoc2l6ZT86IHN0cmluZyk6IHNpemUgaXMgXCJ4c21hbGxcIiB8IFwic21hbGxcIiA9PiBzaXplID09PSBcInhzbWFsbFwiIHx8IHNpemUgPT09IFwic21hbGxcIjtcblxuY29uc3QgaXNBbGlnbiA9IChhbGlnbj86IHN0cmluZyk6IGFsaWduIGlzIFwibGVmdFwiIHwgXCJyaWdodFwiID0+IGFsaWduID09PSBcImxlZnRcIiB8fCBhbGlnbiA9PT0gXCJyaWdodFwiO1xuXG5jb25zdCBnZXRGaWd1cmVUeXBlID0gKHNpemU/OiBzdHJpbmcsIGFsaWduPzogc3RyaW5nKTogRmlndXJlVHlwZSA9PiB7XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYCR7c2l6ZX0tJHthbGlnbn1gO1xuICB9XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgIWFsaWduKSB7XG4gICAgcmV0dXJuIHNpemUgYXMgRmlndXJlVHlwZTtcbiAgfVxuICBpZiAoYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYWxpZ247XG4gIH1cbiAgcmV0dXJuIFwiZnVsbFwiO1xufTtcblxuY29uc3QgZ2V0U2l6ZXMgPSAoc2l6ZT86IHN0cmluZywgYWxpZ24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwiZnVsbFwiKSB7XG4gICAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSA1MTJweCwgKG1pbi13aWR0aDogNzY4cHgpIDM1MHB4LCAxMDB2d1wiO1xuICB9XG4gIGlmIChhbGlnbiAmJiBzaXplID09PSBcInNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDM1MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwieHNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDE4MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9jYWxQb2ludCA9IChkYXRhOiBJbWFnZUVtYmVkRGF0YSkgPT4ge1xuICBjb25zdCBmb2NhbFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmZvY2FsWCA/PyBcIlwiKTtcbiAgY29uc3QgZm9jYWxZID0gTnVtYmVyLnBhcnNlRmxvYXQoZGF0YS5mb2NhbFkgPz8gXCJcIik7XG4gIGlmICghTnVtYmVyLmlzTmFOKGZvY2FsWCkgJiYgIU51bWJlci5pc05hTihmb2NhbFkpKSB7XG4gICAgcmV0dXJuIHsgeDogZm9jYWxYLCB5OiBmb2NhbFkgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENyb3AgPSAoZGF0YTogSW1hZ2VFbWJlZERhdGEpID0+IHtcbiAgY29uc3QgbG93ZXJSaWdodFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmxvd2VyUmlnaHRYID8/IFwiXCIpO1xuICBjb25zdCBsb3dlclJpZ2h0WSA9IE51bWJlci5wYXJzZUZsb2F0KGRhdGEubG93ZXJSaWdodFkgPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFggPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFkgPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFkgPz8gXCJcIik7XG4gIGlmIChcbiAgICAhTnVtYmVyLmlzTmFOKGxvd2VyUmlnaHRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4obG93ZXJSaWdodFkpICYmXG4gICAgIU51bWJlci5pc05hTih1cHBlckxlZnRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4odXBwZXJMZWZ0WSlcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0WDogbG93ZXJSaWdodFgsXG4gICAgICBzdGFydFk6IGxvd2VyUmlnaHRZLFxuICAgICAgZW5kWDogdXBwZXJMZWZ0WCxcbiAgICAgIGVuZFk6IHVwcGVyTGVmdFksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZXhwYW5kZWRTaXplcyA9IFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG5cbmNvbnN0IFN0eWxlZEZpZ3VyZSA9IHN0eWxlZChGaWd1cmUpYFxuICAmOmhvdmVyIHtcbiAgICBbZGF0YS1ieWxpbmUtYnV0dG9uXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZX07XG4gICAgfVxuICAgIGJ1dHRvbltkYXRhLWV4cGFuZGVkXSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgfVxuICB9XG4gIGJ1dHRvbltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG4gICZbZGF0YS1mbG9hdD1cInJpZ2h0XCJdIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgJltkYXRhLWZsb2F0PVwibGVmdFwiXSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbmA7XG5cbmNvbnN0IEltYWdlRW1iZWQgPSAoeyBlbWJlZCwgcHJldmlld0FsdCwgaW5HcmlkLCBsYW5nLCByZW5kZXJDb250ZXh0ID0gXCJhcnRpY2xlXCIsIGNoaWxkcmVuIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc0J5bGluZUhpZGRlbiwgc2V0SXNCeWxpbmVIaWRkZW5dID0gdXNlU3RhdGUoaGlkZUJ5bGluZShlbWJlZC5lbWJlZERhdGEpKTtcbiAgY29uc3QgW2ltYWdlU2l6ZXMsIHNldEltYWdlU2l6ZXNdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvLyBGdWxsLXNpemUgZmlndXJlcyBhdXRvbWF0aWNhbGx5IGdldCBhIG1hcmdpbiBvZiB7c3BhY2luZy5ub3JtYWx9IG9uIGl0cyB5LWF4aXMgaWYgYSBmbG9hdCBpcyBub3Qgc2V0IChvciBpZiBmbG9hdCBpcyBhbiBlbXB0eSBzdHJpbmcpLlxuICAvLyBUaGlzIGFkZHMgc29tZSBtYXJnaW4gdG8gbm9ybWFsIGZpZ3VyZXMgd2l0aGluIGFuIGFydGljbGUsIGJ1dCBzaG91bGQgbm90IGhhcHBlbiBmb3IgZmlndXJlcyBpbiBhIGdyaWQuXG4gIGNvbnN0IFtmbG9hdEF0dHIsIHNldEZsb2F0QXR0cl0gPSB1c2VTdGF0ZTx7IFwiZGF0YS1mbG9hdFwiPzogc3RyaW5nIH0+KCgpID0+XG4gICAgaW5HcmlkICYmICFlbWJlZC5lbWJlZERhdGEuYWxpZ24gPyB7fSA6IHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkLmVtYmVkRGF0YS5hbGlnbiB9LFxuICApO1xuXG4gIGNvbnN0IHBhcnNlZERlc2NyaXB0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGVtYmVkLmVtYmVkRGF0YS5jYXB0aW9uIHx8IHJlbmRlckNvbnRleHQgPT09IFwiYXJ0aWNsZVwiKSB7XG4gICAgICByZXR1cm4gZW1iZWQuZW1iZWREYXRhLmNhcHRpb24gPyBwYXJzZShlbWJlZC5lbWJlZERhdGEuY2FwdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChlbWJlZC5zdGF0dXMgPT09IFwic3VjY2Vzc1wiICYmIGVtYmVkLmRhdGEuY2FwdGlvbi5jYXB0aW9uKSB7XG4gICAgICByZXR1cm4gcGFyc2UoZW1iZWQuZGF0YS5jYXB0aW9uLmNhcHRpb24pO1xuICAgIH1cbiAgfSwgW2VtYmVkLCByZW5kZXJDb250ZXh0XSk7XG5cbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gXCJlcnJvclwiKSB7XG4gICAgY29uc3QgeyBhbGlnbiwgc2l6ZSB9ID0gZW1iZWQuZW1iZWREYXRhO1xuICAgIGNvbnN0IGZpZ3VyZVR5cGUgPSBnZXRGaWd1cmVUeXBlKHNpemUsIGFsaWduKTtcbiAgICByZXR1cm4gPEVtYmVkRXJyb3JQbGFjZWhvbGRlciB0eXBlPXtcImltYWdlXCJ9IGZpZ3VyZVR5cGU9e2ZpZ3VyZVR5cGV9IC8+O1xuICB9XG5cbiAgY29uc3QgeyBkYXRhLCBlbWJlZERhdGEgfSA9IGVtYmVkO1xuXG4gIGNvbnN0IGFsdFRleHQgPSBlbWJlZERhdGEuYWx0IHx8IFwiXCI7XG5cbiAgY29uc3QgZmlndXJlVHlwZSA9IGdldEZpZ3VyZVR5cGUoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG4gIGNvbnN0IHNpemVzID0gZ2V0U2l6ZXMoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG5cbiAgY29uc3QgZm9jYWxQb2ludCA9IGdldEZvY2FsUG9pbnQoZW1iZWREYXRhKTtcbiAgY29uc3QgY3JvcCA9IGdldENyb3AoZW1iZWREYXRhKTtcblxuICBjb25zdCBpc0NvcHlyaWdodGVkID0gZGF0YS5jb3B5cmlnaHQubGljZW5zZS5saWNlbnNlLnRvTG93ZXJDYXNlKCkgPT09IENPUFlSSUdIVEVEO1xuXG4gIGNvbnN0IHRvZ2dsZUltYWdlU2l6ZSA9ICgpID0+IHtcbiAgICBpZiAoIWltYWdlU2l6ZXMpIHtcbiAgICAgIHNldEltYWdlU2l6ZXMoZXhwYW5kZWRTaXplcyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0RmxvYXRBdHRyKHt9KTtcbiAgICAgIH0sIDQwMCk7IC8vUmVtb3ZpbmcgdGhlIGZsb2F0IHBhcmFtZXRlciB0b28gcXVpY2tseSBjYXVzZXMgdGhlIGltYWdlIHRvIGJlIHJlc2l6ZWQgZnJvbSBsZWZ0IHJlZ2FyZGxlc3NcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SW1hZ2VTaXplcyh1bmRlZmluZWQpO1xuICAgICAgc2V0RmxvYXRBdHRyKHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkRGF0YS5hbGlnbiB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkRmlndXJlIHR5cGU9e2ltYWdlU2l6ZXMgPyB1bmRlZmluZWQgOiBmaWd1cmVUeXBlfSB7Li4uZmxvYXRBdHRyfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxJbWFnZVxuICAgICAgICBmb2NhbFBvaW50PXtmb2NhbFBvaW50fVxuICAgICAgICBjb250ZW50VHlwZT17ZGF0YS5pbWFnZS5jb250ZW50VHlwZX1cbiAgICAgICAgY3JvcD17Y3JvcH1cbiAgICAgICAgc2l6ZXM9e2ltYWdlU2l6ZXMgPz8gc2l6ZXN9XG4gICAgICAgIGFsdD17YWx0VGV4dH1cbiAgICAgICAgc3JjPXtkYXRhLmltYWdlLmltYWdlVXJsfVxuICAgICAgICBib3JkZXI9e2VtYmVkRGF0YS5ib3JkZXJ9XG4gICAgICAgIG9uRXhwYW5kPXtpc0FsaWduKGVtYmVkRGF0YS5hbGlnbikgPyB0b2dnbGVJbWFnZVNpemUgOiB1bmRlZmluZWR9XG4gICAgICAgIGV4cGFuZGVkPXshIWltYWdlU2l6ZXN9XG4gICAgICAgIGV4cGFuZEJ1dHRvbj17XG4gICAgICAgICAgPEV4cGFuZEJ1dHRvblxuICAgICAgICAgICAgZW1iZWREYXRhPXtlbWJlZERhdGF9XG4gICAgICAgICAgICBleHBhbmRlZD17ISFpbWFnZVNpemVzfVxuICAgICAgICAgICAgYWxpZ249e2VtYmVkRGF0YS5hbGlnbn1cbiAgICAgICAgICAgIGJ5bGluZUhpZGRlbj17aXNCeWxpbmVIaWRkZW59XG4gICAgICAgICAgICBvbkV4cGFuZD17dG9nZ2xlSW1hZ2VTaXplfVxuICAgICAgICAgICAgb25IaWRlQnlsaW5lPXsoKSA9PiBzZXRJc0J5bGluZUhpZGRlbigocCkgPT4gIXApfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgIC8+XG4gICAgICB7aXNCeWxpbmVIaWRkZW4gPyBudWxsIDogKFxuICAgICAgICA8RW1iZWRCeWxpbmVcbiAgICAgICAgICB0eXBlPVwiaW1hZ2VcIlxuICAgICAgICAgIGNvcHlyaWdodD17ZGF0YS5jb3B5cmlnaHR9XG4gICAgICAgICAgZGVzY3JpcHRpb249e3BhcnNlZERlc2NyaXB0aW9ufVxuICAgICAgICAgIHZpc2libGVBbHQ9e3ByZXZpZXdBbHQgPyBlbWJlZC5lbWJlZERhdGEuYWx0IDogXCJcIn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRGaWd1cmU+XG4gICk7XG59O1xuXG5jb25zdCBoaWRlQnlsaW5lID0gKGVtYmVkOiBJbWFnZUVtYmVkRGF0YSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKCEhZW1iZWQuc2l6ZSAmJiBlbWJlZC5zaXplLmVuZHNXaXRoKFwiLWhpZGUtYnlsaW5lXCIpKSB8fCBlbWJlZC5oaWRlQnlsaW5lID09PSBcInRydWVcIjtcbn07XG5cbmludGVyZmFjZSBFeHBhbmRCdXR0b25Qcm9wcyB7XG4gIGVtYmVkRGF0YTogSW1hZ2VFbWJlZERhdGE7XG4gIGFsaWduPzogc3RyaW5nO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgYnlsaW5lSGlkZGVuOiBib29sZWFuO1xuICBvbkV4cGFuZDogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBvbkhpZGVCeWxpbmU6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxCdXR0b25FbGVtZW50Pjtcbn1cblxuY29uc3QgQnlsaW5lQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6ICR7c3BhY2luZy5zbWFsbH07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLmRlZmF1bHR9MjA7XG4gIGJvcmRlcjogMDtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2Utb3V0O1xuICAgIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgICBoZWlnaHQ6ICR7c3BhY2luZy5ub3JtYWx9O1xuICAgIGZpbGw6ICR7Y29sb3JzLmJyYW5kLnByaW1hcnl9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDA7XG4gIHRvcDogJHtzcGFjaW5nLnNtYWxsfTtcbiAgcmlnaHQ6ICR7c3BhY2luZy5zbWFsbH07XG4gIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgaGVpZ2h0OiAke3NwYWNpbmcubm9ybWFsfTtcbiAgYm9yZGVyOiAycHggc29saWQgJHtjb2xvcnMud2hpdGV9O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbiAgY29sb3I6ICR7Y29sb3JzLndoaXRlfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMuYnJhbmQucHJpbWFyeX07XG4gIGJvcmRlci1yYWRpdXM6ICR7bWlzYy5ib3JkZXJSYWRpdXNMYXJnZX07XG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1vdXQ7XG4gICAgaGVpZ2h0OiAke3NwYWNpbmcubnNtYWxsfTtcbiAgICB3aWR0aDogJHtzcGFjaW5nLm5zbWFsbH07XG4gIH1cbmA7XG5cbmNvbnN0IEV4cGFuZEJ1dHRvbiA9ICh7IGFsaWduLCBlbWJlZERhdGEsIGV4cGFuZGVkLCBieWxpbmVIaWRkZW4sIG9uRXhwYW5kLCBvbkhpZGVCeWxpbmUgfTogRXhwYW5kQnV0dG9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLnpvb20ke2V4cGFuZGVkID8gXCJPdXRcIiA6IFwiXCJ9SW1hZ2VCdXR0b25MYWJlbGApfVxuICAgICAgICBvbkNsaWNrPXtvbkV4cGFuZH1cbiAgICAgICAgZGF0YS1leHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICA+XG4gICAgICAgIDxQbHVzIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICApO1xuICB9XG4gIGlmIChoaWRlQnlsaW5lKGVtYmVkRGF0YSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJ5bGluZUJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgZGF0YS1ieWxpbmUtYnV0dG9uPVwiXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLiR7YnlsaW5lSGlkZGVuID8gXCJleHBhbmRCeWxpbmVcIiA6IFwibWluaW1pemVCeWxpbmVcIn1gKX1cbiAgICAgICAgb25DbGljaz17b25IaWRlQnlsaW5lfVxuICAgICAgPlxuICAgICAgICB7YnlsaW5lSGlkZGVuID8gPENoZXZyb25Eb3duIC8+IDogPENoZXZyb25VcCAvPn1cbiAgICAgIDwvQnlsaW5lQnV0dG9uPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUVtYmVkO1xuIl19 */"));
197
- const StyledButton = /*#__PURE__*/(0, _base.default)("button", {
198
- target: "ened8ka0",
199
- label: "StyledButton"
200
- })("display:flex;align-items:center;justify-content:center;cursor:pointer;position:absolute;padding:0;top:", _core.spacing.small, ";right:", _core.spacing.small, ";width:", _core.spacing.normal, ";height:", _core.spacing.normal, ";border:2px solid ", _core.colors.white, ";transition:all 0.3s ease-out;color:", _core.colors.white, ";background-color:", _core.colors.brand.primary, ";border-radius:", _core.misc.borderRadiusLarge, ";svg{transition:transform 0.4s ease-out;height:", _core.spacing.nsmall, ";width:", _core.spacing.nsmall, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkltYWdlRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRQa0MiLCJmaWxlIjoiSW1hZ2VFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbi8qKiBAanN4SW1wb3J0U291cmNlIEBlbW90aW9uL3JlYWN0ICovXG5pbXBvcnQgcGFyc2UgZnJvbSBcImh0bWwtcmVhY3QtcGFyc2VyXCI7XG5pbXBvcnQgeyBNb3VzZUV2ZW50SGFuZGxlciwgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjb2xvcnMsIG1pc2MsIHNwYWNpbmcgfSBmcm9tIFwiQG5kbGEvY29yZVwiO1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gXCJAbmRsYS9pY29ucy9hY3Rpb25cIjtcbmltcG9ydCB7IENoZXZyb25Eb3duLCBDaGV2cm9uVXAgfSBmcm9tIFwiQG5kbGEvaWNvbnMvY29tbW9uXCI7XG5pbXBvcnQgeyBDT1BZUklHSFRFRCB9IGZyb20gXCJAbmRsYS9saWNlbnNlc1wiO1xuaW1wb3J0IHsgSW1hZ2VFbWJlZERhdGEsIEltYWdlTWV0YURhdGEgfSBmcm9tIFwiQG5kbGEvdHlwZXMtZW1iZWRcIjtcbmltcG9ydCBFbWJlZEVycm9yUGxhY2Vob2xkZXIgZnJvbSBcIi4vRW1iZWRFcnJvclBsYWNlaG9sZGVyXCI7XG5pbXBvcnQgeyBSZW5kZXJDb250ZXh0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlVHlwZSB9IGZyb20gXCIuLi9GaWd1cmVcIjtcbmltcG9ydCBJbWFnZSBmcm9tIFwiLi4vSW1hZ2VcIjtcbmltcG9ydCB7IEVtYmVkQnlsaW5lIH0gZnJvbSBcIi4uL0xpY2Vuc2VCeWxpbmVcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZW1iZWQ6IEltYWdlTWV0YURhdGE7XG4gIHByZXZpZXdBbHQ/OiBib29sZWFuO1xuICBpbkdyaWQ/OiBib29sZWFuO1xuICBsYW5nPzogc3RyaW5nO1xuICByZW5kZXJDb250ZXh0PzogUmVuZGVyQ29udGV4dDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRMaWNlbnNlQ3JlZGl0cyA9IChjb3B5cmlnaHQ/OiB7XG4gIGNyZWF0b3JzPzogQXV0aG9yW107XG4gIHJpZ2h0c2hvbGRlcnM/OiBBdXRob3JbXTtcbiAgcHJvY2Vzc29ycz86IEF1dGhvcltdO1xufSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0b3JzOiBjb3B5cmlnaHQ/LmNyZWF0b3JzID8/IFtdLFxuICAgIHJpZ2h0c2hvbGRlcnM6IGNvcHlyaWdodD8ucmlnaHRzaG9sZGVycyA/PyBbXSxcbiAgICBwcm9jZXNzb3JzOiBjb3B5cmlnaHQ/LnByb2Nlc3NvcnMgPz8gW10sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JTdmdTcmMgPSBgZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnIGZpbGw9JyUyMzhBODg4OCcgaGVpZ2h0PSc0MDAnIHZpZXdCb3g9JzAgMCAyNCAxMicgd2lkdGg9JzEwMCUyNScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogJTIzRUZGMEYyJyUzRSUzQ3BhdGggZD0nTTAgMGgyNHYyNEgwVjB6JyBmaWxsPSdub25lJy8lM0UlM0NwYXRoIHRyYW5zZm9ybT0nc2NhbGUoMC4zKSB0cmFuc2xhdGUoMjgsIDguNSknIGQ9J00xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Jy8lM0UlM0Mvc3ZnJTNFYDtcbmNvbnN0IGlzU21hbGwgPSAoc2l6ZT86IHN0cmluZyk6IHNpemUgaXMgXCJ4c21hbGxcIiB8IFwic21hbGxcIiA9PiBzaXplID09PSBcInhzbWFsbFwiIHx8IHNpemUgPT09IFwic21hbGxcIjtcblxuY29uc3QgaXNBbGlnbiA9IChhbGlnbj86IHN0cmluZyk6IGFsaWduIGlzIFwibGVmdFwiIHwgXCJyaWdodFwiID0+IGFsaWduID09PSBcImxlZnRcIiB8fCBhbGlnbiA9PT0gXCJyaWdodFwiO1xuXG5jb25zdCBnZXRGaWd1cmVUeXBlID0gKHNpemU/OiBzdHJpbmcsIGFsaWduPzogc3RyaW5nKTogRmlndXJlVHlwZSA9PiB7XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYCR7c2l6ZX0tJHthbGlnbn1gO1xuICB9XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgIWFsaWduKSB7XG4gICAgcmV0dXJuIHNpemUgYXMgRmlndXJlVHlwZTtcbiAgfVxuICBpZiAoYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYWxpZ247XG4gIH1cbiAgcmV0dXJuIFwiZnVsbFwiO1xufTtcblxuY29uc3QgZ2V0U2l6ZXMgPSAoc2l6ZT86IHN0cmluZywgYWxpZ24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwiZnVsbFwiKSB7XG4gICAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSA1MTJweCwgKG1pbi13aWR0aDogNzY4cHgpIDM1MHB4LCAxMDB2d1wiO1xuICB9XG4gIGlmIChhbGlnbiAmJiBzaXplID09PSBcInNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDM1MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwieHNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDE4MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9jYWxQb2ludCA9IChkYXRhOiBJbWFnZUVtYmVkRGF0YSkgPT4ge1xuICBjb25zdCBmb2NhbFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmZvY2FsWCA/PyBcIlwiKTtcbiAgY29uc3QgZm9jYWxZID0gTnVtYmVyLnBhcnNlRmxvYXQoZGF0YS5mb2NhbFkgPz8gXCJcIik7XG4gIGlmICghTnVtYmVyLmlzTmFOKGZvY2FsWCkgJiYgIU51bWJlci5pc05hTihmb2NhbFkpKSB7XG4gICAgcmV0dXJuIHsgeDogZm9jYWxYLCB5OiBmb2NhbFkgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENyb3AgPSAoZGF0YTogSW1hZ2VFbWJlZERhdGEpID0+IHtcbiAgY29uc3QgbG93ZXJSaWdodFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmxvd2VyUmlnaHRYID8/IFwiXCIpO1xuICBjb25zdCBsb3dlclJpZ2h0WSA9IE51bWJlci5wYXJzZUZsb2F0KGRhdGEubG93ZXJSaWdodFkgPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFggPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFkgPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFkgPz8gXCJcIik7XG4gIGlmIChcbiAgICAhTnVtYmVyLmlzTmFOKGxvd2VyUmlnaHRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4obG93ZXJSaWdodFkpICYmXG4gICAgIU51bWJlci5pc05hTih1cHBlckxlZnRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4odXBwZXJMZWZ0WSlcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0WDogbG93ZXJSaWdodFgsXG4gICAgICBzdGFydFk6IGxvd2VyUmlnaHRZLFxuICAgICAgZW5kWDogdXBwZXJMZWZ0WCxcbiAgICAgIGVuZFk6IHVwcGVyTGVmdFksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZXhwYW5kZWRTaXplcyA9IFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG5cbmNvbnN0IFN0eWxlZEZpZ3VyZSA9IHN0eWxlZChGaWd1cmUpYFxuICAmOmhvdmVyIHtcbiAgICBbZGF0YS1ieWxpbmUtYnV0dG9uXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZX07XG4gICAgfVxuICAgIGJ1dHRvbltkYXRhLWV4cGFuZGVkXSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgfVxuICB9XG4gIGJ1dHRvbltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG4gICZbZGF0YS1mbG9hdD1cInJpZ2h0XCJdIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgJltkYXRhLWZsb2F0PVwibGVmdFwiXSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbmA7XG5cbmNvbnN0IEltYWdlRW1iZWQgPSAoeyBlbWJlZCwgcHJldmlld0FsdCwgaW5HcmlkLCBsYW5nLCByZW5kZXJDb250ZXh0ID0gXCJhcnRpY2xlXCIsIGNoaWxkcmVuIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc0J5bGluZUhpZGRlbiwgc2V0SXNCeWxpbmVIaWRkZW5dID0gdXNlU3RhdGUoaGlkZUJ5bGluZShlbWJlZC5lbWJlZERhdGEpKTtcbiAgY29uc3QgW2ltYWdlU2l6ZXMsIHNldEltYWdlU2l6ZXNdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvLyBGdWxsLXNpemUgZmlndXJlcyBhdXRvbWF0aWNhbGx5IGdldCBhIG1hcmdpbiBvZiB7c3BhY2luZy5ub3JtYWx9IG9uIGl0cyB5LWF4aXMgaWYgYSBmbG9hdCBpcyBub3Qgc2V0IChvciBpZiBmbG9hdCBpcyBhbiBlbXB0eSBzdHJpbmcpLlxuICAvLyBUaGlzIGFkZHMgc29tZSBtYXJnaW4gdG8gbm9ybWFsIGZpZ3VyZXMgd2l0aGluIGFuIGFydGljbGUsIGJ1dCBzaG91bGQgbm90IGhhcHBlbiBmb3IgZmlndXJlcyBpbiBhIGdyaWQuXG4gIGNvbnN0IFtmbG9hdEF0dHIsIHNldEZsb2F0QXR0cl0gPSB1c2VTdGF0ZTx7IFwiZGF0YS1mbG9hdFwiPzogc3RyaW5nIH0+KCgpID0+XG4gICAgaW5HcmlkICYmICFlbWJlZC5lbWJlZERhdGEuYWxpZ24gPyB7fSA6IHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkLmVtYmVkRGF0YS5hbGlnbiB9LFxuICApO1xuXG4gIGNvbnN0IHBhcnNlZERlc2NyaXB0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGVtYmVkLmVtYmVkRGF0YS5jYXB0aW9uIHx8IHJlbmRlckNvbnRleHQgPT09IFwiYXJ0aWNsZVwiKSB7XG4gICAgICByZXR1cm4gZW1iZWQuZW1iZWREYXRhLmNhcHRpb24gPyBwYXJzZShlbWJlZC5lbWJlZERhdGEuY2FwdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChlbWJlZC5zdGF0dXMgPT09IFwic3VjY2Vzc1wiICYmIGVtYmVkLmRhdGEuY2FwdGlvbi5jYXB0aW9uKSB7XG4gICAgICByZXR1cm4gcGFyc2UoZW1iZWQuZGF0YS5jYXB0aW9uLmNhcHRpb24pO1xuICAgIH1cbiAgfSwgW2VtYmVkLCByZW5kZXJDb250ZXh0XSk7XG5cbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gXCJlcnJvclwiKSB7XG4gICAgY29uc3QgeyBhbGlnbiwgc2l6ZSB9ID0gZW1iZWQuZW1iZWREYXRhO1xuICAgIGNvbnN0IGZpZ3VyZVR5cGUgPSBnZXRGaWd1cmVUeXBlKHNpemUsIGFsaWduKTtcbiAgICByZXR1cm4gPEVtYmVkRXJyb3JQbGFjZWhvbGRlciB0eXBlPXtcImltYWdlXCJ9IGZpZ3VyZVR5cGU9e2ZpZ3VyZVR5cGV9IC8+O1xuICB9XG5cbiAgY29uc3QgeyBkYXRhLCBlbWJlZERhdGEgfSA9IGVtYmVkO1xuXG4gIGNvbnN0IGFsdFRleHQgPSBlbWJlZERhdGEuYWx0IHx8IFwiXCI7XG5cbiAgY29uc3QgZmlndXJlVHlwZSA9IGdldEZpZ3VyZVR5cGUoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG4gIGNvbnN0IHNpemVzID0gZ2V0U2l6ZXMoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG5cbiAgY29uc3QgZm9jYWxQb2ludCA9IGdldEZvY2FsUG9pbnQoZW1iZWREYXRhKTtcbiAgY29uc3QgY3JvcCA9IGdldENyb3AoZW1iZWREYXRhKTtcblxuICBjb25zdCBpc0NvcHlyaWdodGVkID0gZGF0YS5jb3B5cmlnaHQubGljZW5zZS5saWNlbnNlLnRvTG93ZXJDYXNlKCkgPT09IENPUFlSSUdIVEVEO1xuXG4gIGNvbnN0IHRvZ2dsZUltYWdlU2l6ZSA9ICgpID0+IHtcbiAgICBpZiAoIWltYWdlU2l6ZXMpIHtcbiAgICAgIHNldEltYWdlU2l6ZXMoZXhwYW5kZWRTaXplcyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0RmxvYXRBdHRyKHt9KTtcbiAgICAgIH0sIDQwMCk7IC8vUmVtb3ZpbmcgdGhlIGZsb2F0IHBhcmFtZXRlciB0b28gcXVpY2tseSBjYXVzZXMgdGhlIGltYWdlIHRvIGJlIHJlc2l6ZWQgZnJvbSBsZWZ0IHJlZ2FyZGxlc3NcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SW1hZ2VTaXplcyh1bmRlZmluZWQpO1xuICAgICAgc2V0RmxvYXRBdHRyKHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkRGF0YS5hbGlnbiB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkRmlndXJlIHR5cGU9e2ltYWdlU2l6ZXMgPyB1bmRlZmluZWQgOiBmaWd1cmVUeXBlfSB7Li4uZmxvYXRBdHRyfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxJbWFnZVxuICAgICAgICBmb2NhbFBvaW50PXtmb2NhbFBvaW50fVxuICAgICAgICBjb250ZW50VHlwZT17ZGF0YS5pbWFnZS5jb250ZW50VHlwZX1cbiAgICAgICAgY3JvcD17Y3JvcH1cbiAgICAgICAgc2l6ZXM9e2ltYWdlU2l6ZXMgPz8gc2l6ZXN9XG4gICAgICAgIGFsdD17YWx0VGV4dH1cbiAgICAgICAgc3JjPXtkYXRhLmltYWdlLmltYWdlVXJsfVxuICAgICAgICBib3JkZXI9e2VtYmVkRGF0YS5ib3JkZXJ9XG4gICAgICAgIG9uRXhwYW5kPXtpc0FsaWduKGVtYmVkRGF0YS5hbGlnbikgPyB0b2dnbGVJbWFnZVNpemUgOiB1bmRlZmluZWR9XG4gICAgICAgIGV4cGFuZGVkPXshIWltYWdlU2l6ZXN9XG4gICAgICAgIGV4cGFuZEJ1dHRvbj17XG4gICAgICAgICAgPEV4cGFuZEJ1dHRvblxuICAgICAgICAgICAgZW1iZWREYXRhPXtlbWJlZERhdGF9XG4gICAgICAgICAgICBleHBhbmRlZD17ISFpbWFnZVNpemVzfVxuICAgICAgICAgICAgYWxpZ249e2VtYmVkRGF0YS5hbGlnbn1cbiAgICAgICAgICAgIGJ5bGluZUhpZGRlbj17aXNCeWxpbmVIaWRkZW59XG4gICAgICAgICAgICBvbkV4cGFuZD17dG9nZ2xlSW1hZ2VTaXplfVxuICAgICAgICAgICAgb25IaWRlQnlsaW5lPXsoKSA9PiBzZXRJc0J5bGluZUhpZGRlbigocCkgPT4gIXApfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgIC8+XG4gICAgICB7aXNCeWxpbmVIaWRkZW4gPyBudWxsIDogKFxuICAgICAgICA8RW1iZWRCeWxpbmVcbiAgICAgICAgICB0eXBlPVwiaW1hZ2VcIlxuICAgICAgICAgIGNvcHlyaWdodD17ZGF0YS5jb3B5cmlnaHR9XG4gICAgICAgICAgZGVzY3JpcHRpb249e3BhcnNlZERlc2NyaXB0aW9ufVxuICAgICAgICAgIHZpc2libGVBbHQ9e3ByZXZpZXdBbHQgPyBlbWJlZC5lbWJlZERhdGEuYWx0IDogXCJcIn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRGaWd1cmU+XG4gICk7XG59O1xuXG5jb25zdCBoaWRlQnlsaW5lID0gKGVtYmVkOiBJbWFnZUVtYmVkRGF0YSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKCEhZW1iZWQuc2l6ZSAmJiBlbWJlZC5zaXplLmVuZHNXaXRoKFwiLWhpZGUtYnlsaW5lXCIpKSB8fCBlbWJlZC5oaWRlQnlsaW5lID09PSBcInRydWVcIjtcbn07XG5cbmludGVyZmFjZSBFeHBhbmRCdXR0b25Qcm9wcyB7XG4gIGVtYmVkRGF0YTogSW1hZ2VFbWJlZERhdGE7XG4gIGFsaWduPzogc3RyaW5nO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgYnlsaW5lSGlkZGVuOiBib29sZWFuO1xuICBvbkV4cGFuZDogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBvbkhpZGVCeWxpbmU6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxCdXR0b25FbGVtZW50Pjtcbn1cblxuY29uc3QgQnlsaW5lQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6ICR7c3BhY2luZy5zbWFsbH07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLmRlZmF1bHR9MjA7XG4gIGJvcmRlcjogMDtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2Utb3V0O1xuICAgIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgICBoZWlnaHQ6ICR7c3BhY2luZy5ub3JtYWx9O1xuICAgIGZpbGw6ICR7Y29sb3JzLmJyYW5kLnByaW1hcnl9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDA7XG4gIHRvcDogJHtzcGFjaW5nLnNtYWxsfTtcbiAgcmlnaHQ6ICR7c3BhY2luZy5zbWFsbH07XG4gIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgaGVpZ2h0OiAke3NwYWNpbmcubm9ybWFsfTtcbiAgYm9yZGVyOiAycHggc29saWQgJHtjb2xvcnMud2hpdGV9O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbiAgY29sb3I6ICR7Y29sb3JzLndoaXRlfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMuYnJhbmQucHJpbWFyeX07XG4gIGJvcmRlci1yYWRpdXM6ICR7bWlzYy5ib3JkZXJSYWRpdXNMYXJnZX07XG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1vdXQ7XG4gICAgaGVpZ2h0OiAke3NwYWNpbmcubnNtYWxsfTtcbiAgICB3aWR0aDogJHtzcGFjaW5nLm5zbWFsbH07XG4gIH1cbmA7XG5cbmNvbnN0IEV4cGFuZEJ1dHRvbiA9ICh7IGFsaWduLCBlbWJlZERhdGEsIGV4cGFuZGVkLCBieWxpbmVIaWRkZW4sIG9uRXhwYW5kLCBvbkhpZGVCeWxpbmUgfTogRXhwYW5kQnV0dG9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLnpvb20ke2V4cGFuZGVkID8gXCJPdXRcIiA6IFwiXCJ9SW1hZ2VCdXR0b25MYWJlbGApfVxuICAgICAgICBvbkNsaWNrPXtvbkV4cGFuZH1cbiAgICAgICAgZGF0YS1leHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICA+XG4gICAgICAgIDxQbHVzIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICApO1xuICB9XG4gIGlmIChoaWRlQnlsaW5lKGVtYmVkRGF0YSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJ5bGluZUJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgZGF0YS1ieWxpbmUtYnV0dG9uPVwiXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLiR7YnlsaW5lSGlkZGVuID8gXCJleHBhbmRCeWxpbmVcIiA6IFwibWluaW1pemVCeWxpbmVcIn1gKX1cbiAgICAgICAgb25DbGljaz17b25IaWRlQnlsaW5lfVxuICAgICAgPlxuICAgICAgICB7YnlsaW5lSGlkZGVuID8gPENoZXZyb25Eb3duIC8+IDogPENoZXZyb25VcCAvPn1cbiAgICAgIDwvQnlsaW5lQnV0dG9uPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUVtYmVkO1xuIl19 */"));
201
- const ExpandButton = _ref2 => {
202
- let {
203
- align,
204
- embedData,
205
- expanded,
206
- bylineHidden,
207
- onExpand,
208
- onHideByline
209
- } = _ref2;
210
- const {
211
- t
212
- } = (0, _reactI18next.useTranslation)();
213
- if (isAlign(align)) {
214
- return (0, _jsxRuntime.jsx)(StyledButton, {
215
- type: "button",
216
- "aria-label": t("license.images.itemImage.zoom".concat(expanded ? "Out" : "", "ImageButtonLabel")),
217
- onClick: onExpand,
218
- "data-expanded": expanded,
219
- children: (0, _jsxRuntime.jsx)(_action.Plus, {})
220
- });
221
- }
222
- if (hideByline(embedData)) {
223
- return (0, _jsxRuntime.jsx)(BylineButton, {
224
- type: "button",
225
- "data-byline-button": "",
226
- "aria-label": t("license.images.itemImage.".concat(bylineHidden ? "expandByline" : "minimizeByline")),
227
- onClick: onHideByline,
228
- children: bylineHidden ? (0, _jsxRuntime.jsx)(_common.ChevronDown, {}) : (0, _jsxRuntime.jsx)(_common.ChevronUp, {})
229
- });
230
- }
231
- return null;
232
- };
233
277
  var _default = exports.default = ImageEmbed;
@@ -36,29 +36,27 @@ const RelatedContentEmbed = _ref => {
36
36
  embedData
37
37
  } = embed;
38
38
  if (embedData.articleId && data) {
39
- var _data$resource, _ref2, _data$resource$paths$, _data$resource2, _data$resource3, _data$article$title$t, _data$article$title, _data$article$metaDes, _data$article$metaDes2;
40
- const typeId = (_data$resource = data.resource) === null || _data$resource === void 0 || (_data$resource = _data$resource.resourceTypes.find(rt => _ContentType.contentTypeMapping[rt.id])) === null || _data$resource === void 0 ? void 0 : _data$resource.id;
39
+ const typeId = data.resource?.resourceTypes.find(rt => _ContentType.contentTypeMapping[rt.id])?.id;
41
40
  const type = typeId ? _ContentType.contentTypeMapping[typeId] : undefined;
42
- const path = (_ref2 = (_data$resource$paths$ = (_data$resource2 = data.resource) === null || _data$resource2 === void 0 ? void 0 : _data$resource2.paths.find(p => p.split("/")[1] === (subject === null || subject === void 0 ? void 0 : subject.replace("urn:", "")))) !== null && _data$resource$paths$ !== void 0 ? _data$resource$paths$ : (_data$resource3 = data.resource) === null || _data$resource3 === void 0 ? void 0 : _data$resource3.path) !== null && _ref2 !== void 0 ? _ref2 : "/article/".concat(embedData.articleId);
41
+ const path = data.resource?.paths.find(p => p.split("/")[1] === subject?.replace("urn:", "")) ?? data.resource?.path ?? `/article/${embedData.articleId}`;
43
42
  return (0, _jsxRuntime.jsx)(_RelatedArticleList.RelatedArticle, {
44
- title: (_data$article$title$t = (_data$article$title = data.article.title) === null || _data$article$title === void 0 ? void 0 : _data$article$title.title) !== null && _data$article$title$t !== void 0 ? _data$article$title$t : "",
45
- 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
+ title: data.article.title?.title ?? "",
44
+ introduction: data.article.metaDescription?.metaDescription ?? "",
46
45
  target: isOembed ? "_blank" : undefined,
47
- to: "".concat(ndlaFrontendDomain !== null && ndlaFrontendDomain !== void 0 ? ndlaFrontendDomain : "").concat(path !== null && path !== void 0 ? path : ""),
46
+ to: `${ndlaFrontendDomain ?? ""}${path ?? ""}`,
48
47
  type: type
49
48
  });
50
49
  }
51
50
  if (typeof embedData.url === "string") {
52
- var _embedData$title, _embedData$url$match;
53
51
  return (0, _jsxRuntime.jsx)(_RelatedArticleList.RelatedArticle, {
54
- title: (_embedData$title = embedData.title) !== null && _embedData$title !== void 0 ? _embedData$title : "",
52
+ title: embedData.title ?? "",
55
53
  introduction: "",
56
54
  to: embedData.url,
57
55
  target: "_blank",
58
56
  type: "external",
59
- linkInfo: "".concat(t("related.linkInfo"), " ").concat(
57
+ linkInfo: `${t("related.linkInfo")} ${
60
58
  // Get domain name only from url
61
- _punycode.default.toUnicode(((_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))
59
+ _punycode.default.toUnicode(embedData.url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:/\n]+)/im)?.[1] || embedData.url)}`
62
60
  });
63
61
  }
64
62
  return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
@@ -54,8 +54,8 @@ const UuDisclaimerEmbed = _ref => {
54
54
  embedData,
55
55
  data
56
56
  } = embed;
57
- const disclaimerLink = data !== null && data !== void 0 && data.disclaimerLink ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
58
- children: [" ".concat(t("uuDisclaimer.alternative"), " "), (0, _jsxRuntime.jsx)(_safelink.SafeLink, {
57
+ const disclaimerLink = data?.disclaimerLink ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
58
+ children: [` ${t("uuDisclaimer.alternative")} `, (0, _jsxRuntime.jsx)(_safelink.SafeLink, {
59
59
  to: data.disclaimerLink.href,
60
60
  target: "_blank",
61
61
  rel: "noopener noreferrer",
@@ -108,36 +108,36 @@ const ConceptNotionV2 = exports.ConceptNotionV2 = /*#__PURE__*/(0, _react.forwar
108
108
  children: [showTitle && (0, _jsxRuntime.jsxs)("h1", {
109
109
  children: [isConcept && title.title, (0, _jsxRuntime.jsx)("small", {
110
110
  "data-is-concept": isConcept,
111
- children: t("searchPage.resultType.".concat(conceptType))
111
+ children: t(`searchPage.resultType.${conceptType}`)
112
112
  })]
113
113
  }), (0, _jsxRuntime.jsxs)(ButtonWrapper, {
114
114
  children: [headerButtons, closeButton]
115
115
  })]
116
116
  }), isConcept ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
117
117
  children: [(0, _jsxRuntime.jsxs)(StyledNotionDialogContent, {
118
- children: [(visualElement === null || visualElement === void 0 ? void 0 : visualElement.resource) === "image" ? (0, _jsxRuntime.jsx)(_ImageEmbed.default, {
118
+ children: [visualElement?.resource === "image" ? (0, _jsxRuntime.jsx)(_ImageEmbed.default, {
119
119
  embed: visualElement,
120
120
  lang: lang
121
- }) : (visualElement === null || visualElement === void 0 ? void 0 : visualElement.resource) === "brightcove" ? (0, _jsxRuntime.jsx)(_BrightcoveEmbed.default, {
121
+ }) : visualElement?.resource === "brightcove" ? (0, _jsxRuntime.jsx)(_BrightcoveEmbed.default, {
122
122
  embed: visualElement
123
- }) : (visualElement === null || visualElement === void 0 ? void 0 : visualElement.resource) === "h5p" ? (0, _jsxRuntime.jsx)(_H5pEmbed.default, {
123
+ }) : visualElement?.resource === "h5p" ? (0, _jsxRuntime.jsx)(_H5pEmbed.default, {
124
124
  embed: visualElement
125
- }) : (visualElement === null || visualElement === void 0 ? void 0 : visualElement.resource) === "iframe" ? (0, _jsxRuntime.jsx)(_.IframeEmbed, {
125
+ }) : visualElement?.resource === "iframe" ? (0, _jsxRuntime.jsx)(_.IframeEmbed, {
126
126
  embed: visualElement
127
- }) : (visualElement === null || visualElement === void 0 ? void 0 : visualElement.resource) === "external" ? (0, _jsxRuntime.jsx)(_.ExternalEmbed, {
127
+ }) : visualElement?.resource === "external" ? (0, _jsxRuntime.jsx)(_.ExternalEmbed, {
128
128
  embed: visualElement
129
129
  }) : null, content && (0, _jsxRuntime.jsx)(NotionDialogText, {
130
130
  lang: lang,
131
131
  children: content
132
132
  })]
133
133
  }), tags && (0, _jsxRuntime.jsxs)(ListWrapper, {
134
- children: ["".concat(t("notions.tags"), ":"), (0, _jsxRuntime.jsx)(StyledList, {
134
+ children: [`${t("notions.tags")}:`, (0, _jsxRuntime.jsx)(StyledList, {
135
135
  children: tags.map((tag, index) => (0, _jsxRuntime.jsx)("li", {
136
136
  children: tag
137
137
  }, index))
138
138
  })]
139
139
  }), subjects && (0, _jsxRuntime.jsxs)(ListWrapper, {
140
- children: ["".concat(t("notions.usedIn"), ":"), (0, _jsxRuntime.jsx)(StyledList, {
140
+ children: [`${t("notions.usedIn")}:`, (0, _jsxRuntime.jsx)(StyledList, {
141
141
  children: subjects.map((subject, index) => (0, _jsxRuntime.jsx)("li", {
142
142
  children: subject
143
143
  }, index))
@@ -146,7 +146,7 @@ const ConceptNotionV2 = exports.ConceptNotionV2 = /*#__PURE__*/(0, _react.forwar
146
146
  }) : (0, _jsxRuntime.jsx)(_Gloss.Gloss, {
147
147
  title: title,
148
148
  glossData: glossData,
149
- audio: (visualElement === null || visualElement === void 0 ? void 0 : visualElement.status) === "success" && visualElement.resource === "audio" ? {
149
+ audio: visualElement?.status === "success" && visualElement.resource === "audio" ? {
150
150
  src: visualElement.data.audioFile.url,
151
151
  title: visualElement.data.title.title
152
152
  } : undefined,
@@ -62,7 +62,7 @@ const ErrorMessage = _ref => {
62
62
  }), messages.linksTitle && (0, _jsxRuntime.jsx)("h2", {
63
63
  children: messages.linksTitle
64
64
  }), messages.back && (0, _jsxRuntime.jsx)(_safelink.SafeLink, {
65
- to: "/#".concat(encodeURI(messages.back)),
65
+ to: `/#${encodeURI(messages.back)}`,
66
66
  onClick: () => window.history.back(),
67
67
  children: messages.back
68
68
  }), messages.goToFrontPage && (0, _jsxRuntime.jsx)(MessageWrapper, {
@@ -66,7 +66,7 @@ const FactBox = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
66
66
  const onClick = (0, _react.useCallback)(() => {
67
67
  const newOpen = !isOpen;
68
68
  setIsOpen(newOpen);
69
- onOpenChange === null || onOpenChange === void 0 || onOpenChange(newOpen);
69
+ onOpenChange?.(newOpen);
70
70
  }, [isOpen, onOpenChange]);
71
71
  return (0, _jsxRuntime.jsxs)(StyledAside, {
72
72
  ...rest,
@@ -77,7 +77,7 @@ const FactBox = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
77
77
  children: children
78
78
  }), (0, _jsxRuntime.jsx)(StyledIconButton, {
79
79
  onClick: onClick,
80
- "aria-label": t("factbox.".concat(isOpen ? "close" : "open")),
80
+ "aria-label": t(`factbox.${isOpen ? "close" : "open"}`),
81
81
  children: isOpen ? (0, _jsxRuntime.jsx)(_common.ChevronUp, {}) : (0, _jsxRuntime.jsx)(_common.ChevronDown, {})
82
82
  })]
83
83
  });
@@ -34,7 +34,7 @@ const File = _ref => {
34
34
  const {
35
35
  t
36
36
  } = (0, _reactI18next.useTranslation)();
37
- const tooltip = "".concat(t("download"), " ").concat(url.split("/").pop());
37
+ const tooltip = `${t("download")} ${url.split("/").pop()}`;
38
38
  return (0, _jsxRuntime.jsx)(StyledFileItem, {
39
39
  children: (0, _jsxRuntime.jsx)(_Format.default, {
40
40
  format: {
@@ -69,14 +69,14 @@ const Format = _ref => {
69
69
  isPrimary,
70
70
  isDeadLink
71
71
  } = _ref;
72
- const titleWithFormat = "".concat(title, " (").concat(format.fileType.toUpperCase(), ")");
72
+ const titleWithFormat = `${title} (${format.fileType.toUpperCase()})`;
73
73
  if (isDeadLink) {
74
74
  return (0, _jsxRuntime.jsxs)(StyledDeadLinkWrapper, {
75
75
  children: [(0, _jsxRuntime.jsx)(StyledDownload, {}), (0, _jsxRuntime.jsx)(StyledDeadLinkText, {
76
76
  element: "span",
77
77
  textStyle: "label-small",
78
78
  margin: "none",
79
- children: isPrimary ? titleWithFormat : "(".concat(format.fileType.toUpperCase(), ")")
79
+ children: isPrimary ? titleWithFormat : `(${format.fileType.toUpperCase()})`
80
80
  })]
81
81
  }, format.url);
82
82
  }
@@ -90,7 +90,7 @@ const Format = _ref => {
90
90
  element: "span",
91
91
  textStyle: "label-small",
92
92
  margin: "none",
93
- children: isPrimary ? titleWithFormat : "(".concat(format.fileType.toUpperCase(), ")")
93
+ children: isPrimary ? titleWithFormat : `(${format.fileType.toUpperCase()})`
94
94
  })
95
95
  })]
96
96
  }, format.url);