@ndla/ui 4.3.2 → 4.3.3-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/es/Article/Article.js +3 -7
- package/es/Article/ArticleByline.js +4 -4
- package/es/Article/ArticleNotions.js +37 -92
- package/es/ContentPlaceholder/ContentPlaceholder.js +51 -0
- package/es/ContentPlaceholder/index.js +9 -0
- package/es/ContentTypeBadge/ContentTypeBadge.js +10 -1
- package/es/FactBox/FactBox.js +36 -11
- package/es/Filter/FilterButtons.js +18 -17
- package/es/Filter/FilterCarousel.js +198 -0
- package/es/Masthead/Masthead.js +30 -7
- package/es/Masthead/index.js +2 -1
- package/es/Masthead/utils.js +11 -0
- package/es/MessageBox/MessageBox.js +12 -7
- package/es/Notion/ConceptNotion.js +57 -0
- package/es/Notion/FigureNotion.js +84 -0
- package/es/Notion/Notion.js +122 -48
- package/es/Notion/NotionImage.js +47 -0
- package/es/Notion/NotionVisualElement.js +38 -0
- package/es/Notion/index.js +2 -1
- package/es/SearchTypeResult/ActiveFilterContent.js +17 -2
- package/es/SearchTypeResult/ActiveFilters.js +64 -50
- package/es/SearchTypeResult/PopupFilter.js +28 -125
- package/es/SearchTypeResult/ResultNavigation.js +41 -14
- package/es/SearchTypeResult/SearchFieldHeader.js +20 -41
- package/es/SearchTypeResult/SearchFilterContent.js +61 -0
- package/es/SearchTypeResult/SearchHeader.js +51 -28
- package/es/SearchTypeResult/SearchItem.js +64 -190
- package/es/SearchTypeResult/SearchItemList.js +132 -0
- package/es/SearchTypeResult/SearchItems.js +17 -13
- package/es/SearchTypeResult/SearchNotionItem.js +13 -13
- package/es/SearchTypeResult/SearchNotionsResult.js +16 -21
- package/es/SearchTypeResult/SearchTypeHeader.js +43 -26
- package/es/SearchTypeResult/SearchTypeResult.js +7 -5
- package/es/SearchTypeResult/SearchViewType.js +93 -0
- package/es/SearchTypeResult/components/ItemContexts.js +125 -0
- package/es/SearchTypeResult/components/ItemResourceHeader.js +87 -0
- package/es/SearchTypeResult/components/ItemTopicHeader.js +56 -0
- package/es/SearchTypeResult/components/SubjectFilters.js +177 -0
- package/es/SearchTypeResult/index.js +2 -1
- package/es/all.css +1 -1
- package/es/index.js +5 -3
- package/es/locale/messages-en.js +20 -5
- package/es/locale/messages-nb.js +21 -6
- package/es/locale/messages-nn.js +21 -6
- package/es/model/ContentType.js +2 -1
- package/es/shapes.js +1 -1
- package/lib/Article/Article.d.ts +4 -5
- package/lib/Article/Article.js +3 -7
- package/lib/Article/ArticleByline.js +4 -4
- package/lib/Article/ArticleNotions.d.ts +3 -8
- package/lib/Article/ArticleNotions.js +41 -90
- package/lib/ContentPlaceholder/ContentPlaceholder.d.ts +9 -0
- package/lib/ContentPlaceholder/ContentPlaceholder.js +54 -0
- package/lib/ContentPlaceholder/index.d.ts +9 -0
- package/lib/ContentPlaceholder/index.js +20 -0
- package/lib/ContentTypeBadge/ContentTypeBadge.d.ts +1 -0
- package/lib/ContentTypeBadge/ContentTypeBadge.js +14 -2
- package/lib/FactBox/FactBox.js +41 -8
- package/lib/Filter/FilterButtons.d.ts +3 -10
- package/lib/Filter/FilterButtons.js +19 -17
- package/lib/Filter/FilterCarousel.d.ts +13 -0
- package/lib/Filter/FilterCarousel.js +207 -0
- package/lib/Masthead/Masthead.d.ts +3 -3
- package/lib/Masthead/Masthead.js +37 -7
- package/lib/Masthead/index.d.ts +2 -1
- package/lib/Masthead/index.js +8 -0
- package/lib/Masthead/utils.d.ts +8 -0
- package/lib/Masthead/utils.js +20 -0
- package/lib/MessageBox/MessageBox.d.ts +2 -1
- package/lib/MessageBox/MessageBox.js +12 -7
- package/lib/Notion/ConceptNotion.d.ts +25 -0
- package/lib/Notion/ConceptNotion.js +79 -0
- package/lib/Notion/FigureNotion.d.ts +23 -0
- package/lib/Notion/FigureNotion.js +99 -0
- package/lib/Notion/Notion.d.ts +24 -11
- package/lib/Notion/Notion.js +120 -48
- package/lib/Notion/NotionImage.d.ts +15 -0
- package/lib/Notion/NotionImage.js +63 -0
- package/lib/Notion/NotionVisualElement.d.ts +22 -0
- package/lib/Notion/NotionVisualElement.js +51 -0
- package/lib/Notion/index.d.ts +1 -0
- package/lib/Notion/index.js +8 -0
- package/lib/SearchTypeResult/ActiveFilterContent.js +16 -9
- package/lib/SearchTypeResult/ActiveFilters.d.ts +2 -1
- package/lib/SearchTypeResult/ActiveFilters.js +65 -50
- package/lib/SearchTypeResult/PopupFilter.d.ts +13 -19
- package/lib/SearchTypeResult/PopupFilter.js +27 -123
- package/lib/SearchTypeResult/ResultNavigation.d.ts +2 -2
- package/lib/SearchTypeResult/ResultNavigation.js +38 -14
- package/lib/SearchTypeResult/SearchFieldHeader.d.ts +3 -8
- package/lib/SearchTypeResult/SearchFieldHeader.js +18 -39
- package/lib/SearchTypeResult/SearchFilterContent.d.ts +16 -0
- package/lib/SearchTypeResult/SearchFilterContent.js +67 -0
- package/lib/SearchTypeResult/SearchHeader.d.ts +3 -7
- package/lib/SearchTypeResult/SearchHeader.js +59 -30
- package/lib/SearchTypeResult/SearchItem.d.ts +8 -12
- package/lib/SearchTypeResult/SearchItem.js +64 -187
- package/lib/SearchTypeResult/SearchItemList.d.ts +10 -0
- package/lib/SearchTypeResult/SearchItemList.js +139 -0
- package/lib/SearchTypeResult/SearchItems.d.ts +4 -3
- package/lib/SearchTypeResult/SearchItems.js +18 -13
- package/lib/SearchTypeResult/SearchNotionItem.js +13 -13
- package/lib/SearchTypeResult/SearchNotionsResult.d.ts +2 -4
- package/lib/SearchTypeResult/SearchNotionsResult.js +23 -23
- package/lib/SearchTypeResult/SearchTypeHeader.d.ts +2 -2
- package/lib/SearchTypeResult/SearchTypeHeader.js +40 -25
- package/lib/SearchTypeResult/SearchTypeResult.d.ts +7 -6
- package/lib/SearchTypeResult/SearchTypeResult.js +7 -5
- package/lib/SearchTypeResult/SearchViewType.d.ts +13 -0
- package/lib/SearchTypeResult/SearchViewType.js +99 -0
- package/lib/SearchTypeResult/components/ItemContexts.d.ts +19 -0
- package/lib/SearchTypeResult/components/ItemContexts.js +134 -0
- package/lib/SearchTypeResult/components/ItemResourceHeader.d.ts +16 -0
- package/lib/SearchTypeResult/components/ItemResourceHeader.js +98 -0
- package/lib/SearchTypeResult/components/ItemTopicHeader.d.ts +17 -0
- package/lib/SearchTypeResult/components/ItemTopicHeader.js +67 -0
- package/lib/SearchTypeResult/components/SubjectFilters.d.ts +32 -0
- package/lib/SearchTypeResult/components/SubjectFilters.js +192 -0
- package/lib/SearchTypeResult/index.d.ts +2 -1
- package/lib/SearchTypeResult/index.js +8 -0
- package/lib/all.css +1 -1
- package/lib/index.d.ts +4 -2
- package/lib/index.js +40 -1
- package/lib/locale/messages-en.d.ts +16 -1
- package/lib/locale/messages-en.js +20 -5
- package/lib/locale/messages-nb.d.ts +15 -0
- package/lib/locale/messages-nb.js +21 -6
- package/lib/locale/messages-nn.d.ts +16 -1
- package/lib/locale/messages-nn.js +21 -6
- package/lib/model/ContentType.d.ts +1 -0
- package/lib/model/ContentType.js +4 -2
- package/lib/shapes.js +1 -1
- package/lib/types.d.ts +1 -0
- package/package.json +14 -14
- package/src/Article/Article.tsx +8 -15
- package/src/Article/ArticleByline.tsx +1 -1
- package/src/Article/ArticleNotions.tsx +13 -33
- package/src/ContentPlaceholder/ContentPlaceholder.tsx +68 -0
- package/src/ContentPlaceholder/index.ts +11 -0
- package/src/ContentTypeBadge/ContentTypeBadge.tsx +8 -0
- package/src/ContentTypeBadge/component.content-type-badge.scss +5 -0
- package/src/FactBox/FactBox.tsx +22 -15
- package/src/Figure/component.figure.scss +1 -1
- package/src/Filter/FilterButtons.tsx +14 -15
- package/src/Filter/FilterCarousel.tsx +166 -0
- package/src/Masthead/Masthead.tsx +45 -20
- package/src/Masthead/component.masthead.scss +3 -62
- package/src/Masthead/index.ts +3 -1
- package/src/Masthead/utils.ts +12 -0
- package/src/MessageBox/MessageBox.tsx +4 -1
- package/src/Notion/ConceptNotion.tsx +80 -0
- package/src/Notion/FigureNotion.tsx +88 -0
- package/src/Notion/Notion.tsx +205 -75
- package/src/Notion/NotionImage.tsx +51 -0
- package/src/Notion/NotionVisualElement.tsx +50 -0
- package/src/Notion/index.ts +1 -0
- package/src/SearchTypeResult/ActiveFilterContent.tsx +7 -2
- package/src/SearchTypeResult/ActiveFilters.tsx +72 -38
- package/src/SearchTypeResult/PopupFilter.tsx +73 -146
- package/src/SearchTypeResult/ResultNavigation.tsx +54 -16
- package/src/SearchTypeResult/SearchFieldHeader.tsx +15 -40
- package/src/SearchTypeResult/SearchFilterContent.tsx +63 -0
- package/src/SearchTypeResult/SearchHeader.tsx +31 -31
- package/src/SearchTypeResult/SearchItem.tsx +145 -233
- package/src/SearchTypeResult/SearchItemList.tsx +167 -0
- package/src/SearchTypeResult/SearchItems.tsx +26 -19
- package/src/SearchTypeResult/SearchNotionItem.tsx +5 -12
- package/src/SearchTypeResult/SearchNotionsResult.tsx +29 -22
- package/src/SearchTypeResult/SearchTypeHeader.tsx +51 -33
- package/src/SearchTypeResult/SearchTypeResult.tsx +13 -12
- package/src/SearchTypeResult/SearchViewType.tsx +109 -0
- package/src/SearchTypeResult/components/ItemContexts.tsx +138 -0
- package/src/SearchTypeResult/components/ItemResourceHeader.tsx +133 -0
- package/src/SearchTypeResult/components/ItemTopicHeader.tsx +95 -0
- package/src/SearchTypeResult/components/SubjectFilters.tsx +152 -0
- package/src/SearchTypeResult/index.ts +9 -1
- package/src/index.ts +5 -1
- package/src/locale/messages-en.ts +18 -3
- package/src/locale/messages-nb.ts +19 -4
- package/src/locale/messages-nn.ts +19 -4
- package/src/model/ContentType.ts +1 -0
- package/src/shapes.js +1 -0
- 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
|
-
|
|
13
|
+
import SearchFilterContent from './SearchFilterContent';
|
|
14
|
+
export { SearchTypeResult, SearchHeader, SearchFieldHeader, SearchNotionsResult, SearchSubjectResult, SearchFilterContent };
|