@ndla/ui 4.3.2 → 5.0.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 (162) hide show
  1. package/README.md +11 -11
  2. package/es/Article/Article.js +3 -7
  3. package/es/Article/ArticleByline.js +4 -4
  4. package/es/Article/ArticleNotions.js +37 -92
  5. package/es/ContentTypeBadge/ContentTypeBadge.js +10 -1
  6. package/es/FactBox/FactBox.js +36 -11
  7. package/es/Filter/FilterButtons.js +18 -17
  8. package/es/Filter/FilterCarousel.js +198 -0
  9. package/es/Masthead/Masthead.js +24 -2
  10. package/es/Notion/ConceptNotion.js +57 -0
  11. package/es/Notion/FigureNotion.js +82 -0
  12. package/es/Notion/Notion.js +122 -48
  13. package/es/Notion/NotionImage.js +47 -0
  14. package/es/Notion/NotionVisualElement.js +38 -0
  15. package/es/Notion/index.js +2 -1
  16. package/es/SearchTypeResult/ActiveFilterContent.js +17 -2
  17. package/es/SearchTypeResult/ActiveFilters.js +64 -50
  18. package/es/SearchTypeResult/PopupFilter.js +28 -125
  19. package/es/SearchTypeResult/ResultNavigation.js +41 -14
  20. package/es/SearchTypeResult/SearchFieldHeader.js +20 -41
  21. package/es/SearchTypeResult/SearchFilterContent.js +61 -0
  22. package/es/SearchTypeResult/SearchHeader.js +51 -28
  23. package/es/SearchTypeResult/SearchItem.js +64 -190
  24. package/es/SearchTypeResult/SearchItemList.js +132 -0
  25. package/es/SearchTypeResult/SearchItems.js +17 -13
  26. package/es/SearchTypeResult/SearchNotionItem.js +13 -13
  27. package/es/SearchTypeResult/SearchNotionsResult.js +16 -21
  28. package/es/SearchTypeResult/SearchTypeHeader.js +43 -26
  29. package/es/SearchTypeResult/SearchTypeResult.js +7 -5
  30. package/es/SearchTypeResult/SearchViewType.js +93 -0
  31. package/es/SearchTypeResult/components/ItemContexts.js +125 -0
  32. package/es/SearchTypeResult/components/ItemResourceHeader.js +87 -0
  33. package/es/SearchTypeResult/components/ItemTopicHeader.js +56 -0
  34. package/es/SearchTypeResult/components/SubjectFilters.js +177 -0
  35. package/es/SearchTypeResult/index.js +2 -1
  36. package/es/all.css +1 -1
  37. package/es/index.js +3 -2
  38. package/es/locale/messages-en.js +20 -5
  39. package/es/locale/messages-nb.js +21 -6
  40. package/es/locale/messages-nn.js +21 -6
  41. package/es/model/ContentType.js +2 -1
  42. package/es/shapes.js +1 -1
  43. package/lib/Article/Article.d.ts +4 -5
  44. package/lib/Article/Article.js +3 -7
  45. package/lib/Article/ArticleByline.js +4 -4
  46. package/lib/Article/ArticleNotions.d.ts +3 -8
  47. package/lib/Article/ArticleNotions.js +41 -90
  48. package/lib/ContentTypeBadge/ContentTypeBadge.d.ts +1 -0
  49. package/lib/ContentTypeBadge/ContentTypeBadge.js +14 -2
  50. package/lib/FactBox/FactBox.js +41 -8
  51. package/lib/Filter/FilterButtons.d.ts +3 -10
  52. package/lib/Filter/FilterButtons.js +19 -17
  53. package/lib/Filter/FilterCarousel.d.ts +13 -0
  54. package/lib/Filter/FilterCarousel.js +207 -0
  55. package/lib/Masthead/Masthead.js +30 -2
  56. package/lib/Notion/ConceptNotion.d.ts +25 -0
  57. package/lib/Notion/ConceptNotion.js +79 -0
  58. package/lib/Notion/FigureNotion.d.ts +23 -0
  59. package/lib/Notion/FigureNotion.js +97 -0
  60. package/lib/Notion/Notion.d.ts +24 -11
  61. package/lib/Notion/Notion.js +120 -48
  62. package/lib/Notion/NotionImage.d.ts +15 -0
  63. package/lib/Notion/NotionImage.js +63 -0
  64. package/lib/Notion/NotionVisualElement.d.ts +22 -0
  65. package/lib/Notion/NotionVisualElement.js +51 -0
  66. package/lib/Notion/index.d.ts +1 -0
  67. package/lib/Notion/index.js +8 -0
  68. package/lib/SearchTypeResult/ActiveFilterContent.js +16 -9
  69. package/lib/SearchTypeResult/ActiveFilters.d.ts +2 -1
  70. package/lib/SearchTypeResult/ActiveFilters.js +65 -50
  71. package/lib/SearchTypeResult/PopupFilter.d.ts +13 -19
  72. package/lib/SearchTypeResult/PopupFilter.js +27 -123
  73. package/lib/SearchTypeResult/ResultNavigation.d.ts +2 -2
  74. package/lib/SearchTypeResult/ResultNavigation.js +38 -14
  75. package/lib/SearchTypeResult/SearchFieldHeader.d.ts +3 -8
  76. package/lib/SearchTypeResult/SearchFieldHeader.js +18 -39
  77. package/lib/SearchTypeResult/SearchFilterContent.d.ts +16 -0
  78. package/lib/SearchTypeResult/SearchFilterContent.js +67 -0
  79. package/lib/SearchTypeResult/SearchHeader.d.ts +3 -7
  80. package/lib/SearchTypeResult/SearchHeader.js +59 -30
  81. package/lib/SearchTypeResult/SearchItem.d.ts +8 -12
  82. package/lib/SearchTypeResult/SearchItem.js +64 -187
  83. package/lib/SearchTypeResult/SearchItemList.d.ts +10 -0
  84. package/lib/SearchTypeResult/SearchItemList.js +139 -0
  85. package/lib/SearchTypeResult/SearchItems.d.ts +4 -3
  86. package/lib/SearchTypeResult/SearchItems.js +18 -13
  87. package/lib/SearchTypeResult/SearchNotionItem.js +13 -13
  88. package/lib/SearchTypeResult/SearchNotionsResult.d.ts +2 -4
  89. package/lib/SearchTypeResult/SearchNotionsResult.js +23 -23
  90. package/lib/SearchTypeResult/SearchTypeHeader.d.ts +2 -2
  91. package/lib/SearchTypeResult/SearchTypeHeader.js +40 -25
  92. package/lib/SearchTypeResult/SearchTypeResult.d.ts +7 -6
  93. package/lib/SearchTypeResult/SearchTypeResult.js +7 -5
  94. package/lib/SearchTypeResult/SearchViewType.d.ts +13 -0
  95. package/lib/SearchTypeResult/SearchViewType.js +99 -0
  96. package/lib/SearchTypeResult/components/ItemContexts.d.ts +19 -0
  97. package/lib/SearchTypeResult/components/ItemContexts.js +134 -0
  98. package/lib/SearchTypeResult/components/ItemResourceHeader.d.ts +16 -0
  99. package/lib/SearchTypeResult/components/ItemResourceHeader.js +98 -0
  100. package/lib/SearchTypeResult/components/ItemTopicHeader.d.ts +17 -0
  101. package/lib/SearchTypeResult/components/ItemTopicHeader.js +67 -0
  102. package/lib/SearchTypeResult/components/SubjectFilters.d.ts +32 -0
  103. package/lib/SearchTypeResult/components/SubjectFilters.js +192 -0
  104. package/lib/SearchTypeResult/index.d.ts +2 -1
  105. package/lib/SearchTypeResult/index.js +8 -0
  106. package/lib/all.css +1 -1
  107. package/lib/index.d.ts +2 -1
  108. package/lib/index.js +24 -1
  109. package/lib/locale/messages-en.d.ts +16 -1
  110. package/lib/locale/messages-en.js +20 -5
  111. package/lib/locale/messages-nb.d.ts +15 -0
  112. package/lib/locale/messages-nb.js +21 -6
  113. package/lib/locale/messages-nn.d.ts +16 -1
  114. package/lib/locale/messages-nn.js +21 -6
  115. package/lib/model/ContentType.d.ts +1 -0
  116. package/lib/model/ContentType.js +4 -2
  117. package/lib/shapes.js +1 -1
  118. package/lib/types.d.ts +1 -0
  119. package/package.json +14 -14
  120. package/src/Article/Article.tsx +8 -15
  121. package/src/Article/ArticleByline.tsx +1 -1
  122. package/src/Article/ArticleNotions.tsx +13 -33
  123. package/src/ContentTypeBadge/ContentTypeBadge.tsx +8 -0
  124. package/src/ContentTypeBadge/component.content-type-badge.scss +5 -0
  125. package/src/FactBox/FactBox.tsx +22 -15
  126. package/src/Figure/component.figure.scss +1 -1
  127. package/src/Filter/FilterButtons.tsx +14 -15
  128. package/src/Filter/FilterCarousel.tsx +166 -0
  129. package/src/Masthead/Masthead.tsx +42 -18
  130. package/src/Notion/ConceptNotion.tsx +80 -0
  131. package/src/Notion/FigureNotion.tsx +86 -0
  132. package/src/Notion/Notion.tsx +205 -75
  133. package/src/Notion/NotionImage.tsx +51 -0
  134. package/src/Notion/NotionVisualElement.tsx +50 -0
  135. package/src/Notion/index.ts +1 -0
  136. package/src/SearchTypeResult/ActiveFilterContent.tsx +7 -2
  137. package/src/SearchTypeResult/ActiveFilters.tsx +72 -38
  138. package/src/SearchTypeResult/PopupFilter.tsx +73 -146
  139. package/src/SearchTypeResult/ResultNavigation.tsx +54 -16
  140. package/src/SearchTypeResult/SearchFieldHeader.tsx +15 -40
  141. package/src/SearchTypeResult/SearchFilterContent.tsx +63 -0
  142. package/src/SearchTypeResult/SearchHeader.tsx +31 -31
  143. package/src/SearchTypeResult/SearchItem.tsx +145 -233
  144. package/src/SearchTypeResult/SearchItemList.tsx +167 -0
  145. package/src/SearchTypeResult/SearchItems.tsx +26 -19
  146. package/src/SearchTypeResult/SearchNotionItem.tsx +5 -12
  147. package/src/SearchTypeResult/SearchNotionsResult.tsx +29 -22
  148. package/src/SearchTypeResult/SearchTypeHeader.tsx +51 -33
  149. package/src/SearchTypeResult/SearchTypeResult.tsx +13 -12
  150. package/src/SearchTypeResult/SearchViewType.tsx +109 -0
  151. package/src/SearchTypeResult/components/ItemContexts.tsx +138 -0
  152. package/src/SearchTypeResult/components/ItemResourceHeader.tsx +133 -0
  153. package/src/SearchTypeResult/components/ItemTopicHeader.tsx +95 -0
  154. package/src/SearchTypeResult/components/SubjectFilters.tsx +152 -0
  155. package/src/SearchTypeResult/index.ts +9 -1
  156. package/src/index.ts +3 -0
  157. package/src/locale/messages-en.ts +18 -3
  158. package/src/locale/messages-nb.ts +19 -4
  159. package/src/locale/messages-nn.ts +19 -4
  160. package/src/model/ContentType.ts +1 -0
  161. package/src/shapes.js +1 -0
  162. package/src/types.ts +1 -0
@@ -0,0 +1,177 @@
1
+ import _styled from "@emotion/styled-base";
2
+
3
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
+
5
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6
+
7
+ 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."); }
8
+
9
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
10
+
11
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
12
+
13
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
+
15
+ 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."); }
16
+
17
+ 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); }
18
+
19
+ 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; }
20
+
21
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }
22
+
23
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
24
+
25
+ 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)."; }
26
+
27
+ /**
28
+ * Copyright (c) 2021-present, NDLA.
29
+ *
30
+ * This source code is licensed under the GPLv3 license found in the
31
+ * LICENSE file in the root directory of this source tree.
32
+ *
33
+ */
34
+ import React, { useEffect, useRef, useState } from 'react';
35
+ import { useTranslation } from 'react-i18next';
36
+ import Button from '@ndla/button';
37
+ import { Plus as PlusIcon } from '@ndla/icons/action';
38
+ import PopupFilter from '../PopupFilter';
39
+ import ActiveFilters from '../ActiveFilters';
40
+ import { jsx as ___EmotionJSX } from "@emotion/core";
41
+
42
+ var FilterButtonText = _styled("span", {
43
+ target: "eruebyz0",
44
+ label: "FilterButtonText"
45
+ })(process.env.NODE_ENV === "production" ? {
46
+ name: "1ft8vle",
47
+ styles: "display:inline-block;font-weight:600;margin-right:10px;"
48
+ } : {
49
+ name: "1ft8vle",
50
+ styles: "display:inline-block;font-weight:600;margin-right:10px;",
51
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlN1YmplY3RGaWx0ZXJzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQm9DIiwiZmlsZSI6IlN1YmplY3RGaWx0ZXJzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIxLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BuZGxhL2J1dHRvbic7XG5pbXBvcnQgeyBQbHVzIGFzIFBsdXNJY29uIH0gZnJvbSAnQG5kbGEvaWNvbnMvYWN0aW9uJztcblxuaW1wb3J0IFBvcHVwRmlsdGVyLCB7IFBvcHVwRmlsdGVyUHJvcHMgfSBmcm9tICcuLi9Qb3B1cEZpbHRlcic7XG5pbXBvcnQgQWN0aXZlRmlsdGVycyBmcm9tICcuLi9BY3RpdmVGaWx0ZXJzJztcbmltcG9ydCB7IEZpbHRlclByb3BzIH0gZnJvbSAnLi4vQWN0aXZlRmlsdGVyQ29udGVudCc7XG5cbmNvbnN0IEZpbHRlckJ1dHRvblRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG5gO1xuXG50eXBlIFByb2dyYW1tZVByb3BzID0gUG9wdXBGaWx0ZXJQcm9wc1sncHJvZ3JhbW1lcyddICYge1xuICB2YWx1ZXM6IHN0cmluZ1tdO1xuICBvblByb2dyYW1tZVZhbHVlc0NoYW5nZTogKHZhbHVlczogc3RyaW5nW10pID0+IHZvaWQ7XG59O1xuXG50eXBlIFN1YmplY3RDYXRlZ29yaWVzUHJvcHMgPSBQb3B1cEZpbHRlclByb3BzWydzdWJqZWN0Q2F0ZWdvcmllcyddICYge1xuICB2YWx1ZXM6IHN0cmluZ1tdO1xuICBvblN1YmplY3RWYWx1ZXNDaGFuZ2U6ICh2YWx1ZXM6IHN0cmluZ1tdKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgU3ViamVjdEZpbHRlclByb3BzID0ge1xuICBmaWx0ZXJzOiB7XG4gICAgcHJvZ3JhbW1lcz86IFByb2dyYW1tZVByb3BzO1xuICAgIHN1YmplY3RDYXRlZ29yaWVzPzogU3ViamVjdENhdGVnb3JpZXNQcm9wcztcbiAgfTtcbiAgYWN0aXZlRmlsdGVycz86IHtcbiAgICBmaWx0ZXJzOiBGaWx0ZXJQcm9wc1tdO1xuICAgIG9uRmlsdGVyUmVtb3ZlOiAodmFsdWU6IHN0cmluZywgbmFtZTogc3RyaW5nKSA9PiB2b2lkO1xuICB9O1xufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgaXNOYXJyb3dTY3JlZW4/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3ViamVjdEZpbHRlcnMgPSAoeyBmaWx0ZXJzLCBhY3RpdmVGaWx0ZXJzLCBpc05hcnJvd1NjcmVlbiB9OiBTdWJqZWN0RmlsdGVyUHJvcHMgJiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IHsgc3ViamVjdENhdGVnb3JpZXMsIHByb2dyYW1tZXMgfSA9IGZpbHRlcnM7XG4gIGNvbnN0IFtzdWJqZWN0VmFsdWVzLCBzZXRTdWJqZWN0VmFsdWVzXSA9IHVzZVN0YXRlPEFycmF5PHN0cmluZz4+KFtdKTtcbiAgY29uc3QgW3Byb2dyYW1tZXNWYWx1ZXMsIHNldFByb2dyYW1tZXNWYWx1ZXNdID0gdXNlU3RhdGU8QXJyYXk8c3RyaW5nPj4oW10pO1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IHByZXZJc09wZW5SZWYgPSB1c2VSZWY8Ym9vbGVhbj4oKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBwcmV2SXNPcGVuUmVmLmN1cnJlbnQgPSBpc09wZW47XG4gIH0pO1xuICBjb25zdCBwcmV2SXNPcGVuID0gcHJldklzT3BlblJlZi5jdXJyZW50O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzT3BlbiAmJiBpc09wZW4gIT09IHByZXZJc09wZW4pIHtcbiAgICAgIGlmIChzdWJqZWN0Q2F0ZWdvcmllcykge1xuICAgICAgICBzZXRTdWJqZWN0VmFsdWVzKFsuLi5zdWJqZWN0Q2F0ZWdvcmllcy52YWx1ZXNdKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9ncmFtbWVzKSB7XG4gICAgICAgIHNldFByb2dyYW1tZXNWYWx1ZXMoWy4uLnByb2dyYW1tZXMudmFsdWVzXSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbaXNPcGVuLCBwcmV2SXNPcGVuLCBzdWJqZWN0Q2F0ZWdvcmllcywgcHJvZ3JhbW1lc10pO1xuXG4gIGNvbnN0IG9uVG9nZ2xlU3ViamVjdCA9IChzdWJqZWN0SWQ6IHN0cmluZykgPT4ge1xuICAgIGxldCB1cGRhdGVkRmlsdGVyID0gWy4uLnN1YmplY3RWYWx1ZXNdO1xuICAgIGlmICh1cGRhdGVkRmlsdGVyLmluY2x1ZGVzKHN1YmplY3RJZCkpIHtcbiAgICAgIHVwZGF0ZWRGaWx0ZXIgPSBzdWJqZWN0VmFsdWVzLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24gIT09IHN1YmplY3RJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVwZGF0ZWRGaWx0ZXIucHVzaChzdWJqZWN0SWQpO1xuICAgIH1cbiAgICBzZXRTdWJqZWN0VmFsdWVzKHVwZGF0ZWRGaWx0ZXIpO1xuICAgIGlmIChzdWJqZWN0Q2F0ZWdvcmllcykge1xuICAgICAgc3ViamVjdENhdGVnb3JpZXMub25TdWJqZWN0VmFsdWVzQ2hhbmdlKHVwZGF0ZWRGaWx0ZXIpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvblRvZ2dsZVByb2dyYW1tZSA9IChwcm9ncmFtbWVJZDogc3RyaW5nKSA9PiB7XG4gICAgbGV0IHVwZGF0ZWRGaWx0ZXIgPSBbLi4ucHJvZ3JhbW1lc1ZhbHVlc107XG4gICAgaWYgKHVwZGF0ZWRGaWx0ZXIuaW5jbHVkZXMocHJvZ3JhbW1lSWQpKSB7XG4gICAgICB1cGRhdGVkRmlsdGVyID0gcHJvZ3JhbW1lc1ZhbHVlcy5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uICE9PSBwcm9ncmFtbWVJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVwZGF0ZWRGaWx0ZXIucHVzaChwcm9ncmFtbWVJZCk7XG4gICAgfVxuICAgIHNldFByb2dyYW1tZXNWYWx1ZXModXBkYXRlZEZpbHRlcik7XG4gICAgaWYgKHByb2dyYW1tZXMpIHtcbiAgICAgIHByb2dyYW1tZXMub25Qcm9ncmFtbWVWYWx1ZXNDaGFuZ2UodXBkYXRlZEZpbHRlcik7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVBvcHVwT3BlbiA9ICgpID0+IHtcbiAgICBzZXRJc09wZW4odHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlTW9kYWxDbG9zZSA9ICgpID0+IHtcbiAgICBzZXRJc09wZW4oZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IE9wZW5Nb2RhbEJ1dHRvbiA9ICgpID0+IChcbiAgICA8QnV0dG9uIHR5cGU9XCJidXR0b25cIiBzaXplPVwibm9ybWFsXCIgZ3JleUxpZ2h0ZXIgYm9yZGVyU2hhcGU9XCJyb3VuZGVkXCIgb25DbGljaz17aGFuZGxlUG9wdXBPcGVufT5cbiAgICAgIDxGaWx0ZXJCdXR0b25UZXh0Pnt0KCdzZWFyY2hQYWdlLnNlYXJjaEZpbHRlck1lc3NhZ2VzLm5vVmFsdWVzQnV0dG9uVGV4dCcpfTwvRmlsdGVyQnV0dG9uVGV4dD5cbiAgICAgIDxQbHVzSWNvbiAvPlxuICAgIDwvQnV0dG9uPlxuICApO1xuXG4gIGNvbnN0IEFjdGl2ZUZpbHRlcnNFbGVtZW50ID0gKHsgc2hvd01vZGFsQnV0dG9uIH06IHsgc2hvd01vZGFsQnV0dG9uPzogYm9vbGVhbiB9KSA9PiB7XG4gICAgY29uc3QgY3VzdG9tRWxlbWVudHMgPSBzaG93TW9kYWxCdXR0b24gPyBbT3Blbk1vZGFsQnV0dG9uKCldIDogW107XG4gICAgaWYgKCFhY3RpdmVGaWx0ZXJzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKFxuICAgICAgPEFjdGl2ZUZpbHRlcnNcbiAgICAgICAgey4uLmFjdGl2ZUZpbHRlcnN9XG4gICAgICAgIHNob3dPblNtYWxsU2NyZWVuPXtpc05hcnJvd1NjcmVlbn1cbiAgICAgICAgb25DbGlja1Nob3dIaWRkZW5TdWJqZWN0cz17aGFuZGxlUG9wdXBPcGVufVxuICAgICAgICBjdXN0b21FbGVtZW50cz17Y3VzdG9tRWxlbWVudHN9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2lzTmFycm93U2NyZWVuID8gKFxuICAgICAgICA8QWN0aXZlRmlsdGVyc0VsZW1lbnQgc2hvd01vZGFsQnV0dG9uIC8+XG4gICAgICApIDogaXNOYXJyb3dTY3JlZW4gPT09IGZhbHNlID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxPcGVuTW9kYWxCdXR0b24gLz5cbiAgICAgICAgICA8QWN0aXZlRmlsdGVyc0VsZW1lbnQgLz5cbiAgICAgICAgPC8+XG4gICAgICApIDogdW5kZWZpbmVkfVxuICAgICAgPFBvcHVwRmlsdGVyXG4gICAgICAgIHByb2dyYW1tZXM9e3Byb2dyYW1tZXN9XG4gICAgICAgIHN1YmplY3RDYXRlZ29yaWVzPXtzdWJqZWN0Q2F0ZWdvcmllc31cbiAgICAgICAgc3ViamVjdFZhbHVlcz17c3ViamVjdFZhbHVlc31cbiAgICAgICAgcHJvZ3JhbW1lc1ZhbHVlcz17cHJvZ3JhbW1lc1ZhbHVlc31cbiAgICAgICAgb25DbG9zZT17aGFuZGxlTW9kYWxDbG9zZX1cbiAgICAgICAgb25Ub2dnbGVTdWJqZWN0PXtvblRvZ2dsZVN1YmplY3R9XG4gICAgICAgIG9uVG9nZ2xlUHJvZ3JhbW1lPXtvblRvZ2dsZVByb2dyYW1tZX1cbiAgICAgICAgaXNPcGVuPXtpc09wZW59XG4gICAgICAvPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU3ViamVjdEZpbHRlcnM7XG4iXX0= */",
52
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
53
+ });
54
+
55
+ var SubjectFilters = function SubjectFilters(_ref) {
56
+ var filters = _ref.filters,
57
+ activeFilters = _ref.activeFilters,
58
+ isNarrowScreen = _ref.isNarrowScreen;
59
+
60
+ var _useTranslation = useTranslation(),
61
+ t = _useTranslation.t;
62
+
63
+ var subjectCategories = filters.subjectCategories,
64
+ programmes = filters.programmes;
65
+
66
+ var _useState = useState([]),
67
+ _useState2 = _slicedToArray(_useState, 2),
68
+ subjectValues = _useState2[0],
69
+ setSubjectValues = _useState2[1];
70
+
71
+ var _useState3 = useState([]),
72
+ _useState4 = _slicedToArray(_useState3, 2),
73
+ programmesValues = _useState4[0],
74
+ setProgrammesValues = _useState4[1];
75
+
76
+ var _useState5 = useState(false),
77
+ _useState6 = _slicedToArray(_useState5, 2),
78
+ isOpen = _useState6[0],
79
+ setIsOpen = _useState6[1];
80
+
81
+ var prevIsOpenRef = useRef();
82
+ useEffect(function () {
83
+ prevIsOpenRef.current = isOpen;
84
+ });
85
+ var prevIsOpen = prevIsOpenRef.current;
86
+ useEffect(function () {
87
+ if (isOpen && isOpen !== prevIsOpen) {
88
+ if (subjectCategories) {
89
+ setSubjectValues(_toConsumableArray(subjectCategories.values));
90
+ }
91
+
92
+ if (programmes) {
93
+ setProgrammesValues(_toConsumableArray(programmes.values));
94
+ }
95
+ }
96
+ }, [isOpen, prevIsOpen, subjectCategories, programmes]);
97
+
98
+ var onToggleSubject = function onToggleSubject(subjectId) {
99
+ var updatedFilter = _toConsumableArray(subjectValues);
100
+
101
+ if (updatedFilter.includes(subjectId)) {
102
+ updatedFilter = subjectValues.filter(function (option) {
103
+ return option !== subjectId;
104
+ });
105
+ } else {
106
+ updatedFilter.push(subjectId);
107
+ }
108
+
109
+ setSubjectValues(updatedFilter);
110
+
111
+ if (subjectCategories) {
112
+ subjectCategories.onSubjectValuesChange(updatedFilter);
113
+ }
114
+ };
115
+
116
+ var onToggleProgramme = function onToggleProgramme(programmeId) {
117
+ var updatedFilter = _toConsumableArray(programmesValues);
118
+
119
+ if (updatedFilter.includes(programmeId)) {
120
+ updatedFilter = programmesValues.filter(function (option) {
121
+ return option !== programmeId;
122
+ });
123
+ } else {
124
+ updatedFilter.push(programmeId);
125
+ }
126
+
127
+ setProgrammesValues(updatedFilter);
128
+
129
+ if (programmes) {
130
+ programmes.onProgrammeValuesChange(updatedFilter);
131
+ }
132
+ };
133
+
134
+ var handlePopupOpen = function handlePopupOpen() {
135
+ setIsOpen(true);
136
+ };
137
+
138
+ var handleModalClose = function handleModalClose() {
139
+ setIsOpen(false);
140
+ };
141
+
142
+ var OpenModalButton = function OpenModalButton() {
143
+ return ___EmotionJSX(Button, {
144
+ type: "button",
145
+ size: "normal",
146
+ greyLighter: true,
147
+ borderShape: "rounded",
148
+ onClick: handlePopupOpen
149
+ }, ___EmotionJSX(FilterButtonText, null, t('searchPage.searchFilterMessages.noValuesButtonText')), ___EmotionJSX(PlusIcon, null));
150
+ };
151
+
152
+ var ActiveFiltersElement = function ActiveFiltersElement(_ref2) {
153
+ var showModalButton = _ref2.showModalButton;
154
+ var customElements = showModalButton ? [OpenModalButton()] : [];
155
+ if (!activeFilters) return null;
156
+ return ___EmotionJSX(ActiveFilters, _extends({}, activeFilters, {
157
+ showOnSmallScreen: isNarrowScreen,
158
+ onClickShowHiddenSubjects: handlePopupOpen,
159
+ customElements: customElements
160
+ }));
161
+ };
162
+
163
+ return ___EmotionJSX(React.Fragment, null, isNarrowScreen ? ___EmotionJSX(ActiveFiltersElement, {
164
+ showModalButton: true
165
+ }) : isNarrowScreen === false ? ___EmotionJSX(React.Fragment, null, ___EmotionJSX(OpenModalButton, null), ___EmotionJSX(ActiveFiltersElement, null)) : undefined, ___EmotionJSX(PopupFilter, {
166
+ programmes: programmes,
167
+ subjectCategories: subjectCategories,
168
+ subjectValues: subjectValues,
169
+ programmesValues: programmesValues,
170
+ onClose: handleModalClose,
171
+ onToggleSubject: onToggleSubject,
172
+ onToggleProgramme: onToggleProgramme,
173
+ isOpen: isOpen
174
+ }));
175
+ };
176
+
177
+ export default SubjectFilters;
@@ -10,4 +10,5 @@ import SearchHeader from './SearchHeader';
10
10
  import SearchFieldHeader from './SearchFieldHeader';
11
11
  import SearchNotionsResult from './SearchNotionsResult';
12
12
  import SearchSubjectResult from './SearchSubjectResult';
13
- export { SearchTypeResult, SearchHeader, SearchFieldHeader, SearchNotionsResult, SearchSubjectResult };
13
+ import SearchFilterContent from './SearchFilterContent';
14
+ export { SearchTypeResult, SearchHeader, SearchFieldHeader, SearchNotionsResult, SearchSubjectResult, SearchFilterContent };