@ndla/ui 30.9.0 → 32.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.
- package/README.md +4 -0
- package/es/Animation/DisplayOnPageYOffset.js +1 -1
- package/es/Article/Article.js +3 -3
- package/es/Filter/FilterListPhone.js +1 -1
- package/es/NDLAFilm/AllMoviesAlphabetically.js +12 -12
- package/es/ResourceBox/ResourceBox.js +9 -11
- package/es/TopicMenu/TopicMenu.js +2 -2
- package/es/TreeStructure/AddFolderButton.js +2 -2
- package/es/TreeStructure/ComboboxButton.js +2 -2
- package/es/TreeStructure/FolderItem.js +11 -10
- package/es/TreeStructure/FolderItems.js +28 -37
- package/es/TreeStructure/TreeStructure.js +8 -8
- package/es/User/parseUserObject.js +1 -1
- package/lib/Animation/DisplayOnPageYOffset.js +2 -2
- package/lib/Article/Article.d.ts +5 -5
- package/lib/Article/Article.js +4 -4
- package/lib/Article/ArticleAccessMessage.d.ts +1 -1
- package/lib/Article/ArticleByline.d.ts +3 -3
- package/lib/Article/ArticleContent.d.ts +1 -1
- package/lib/Article/ArticleFootNotes.d.ts +1 -1
- package/lib/Article/ArticleHeaderWrapper.d.ts +2 -2
- package/lib/Article/ArticleNotions.d.ts +2 -2
- package/lib/Article/ArticleSideBar.d.ts +1 -1
- package/lib/AudioPlayer/AudioPlayer.d.ts +1 -1
- package/lib/AudioPlayer/Controls.d.ts +1 -1
- package/lib/AudioPlayer/SpeechControl.d.ts +1 -1
- package/lib/BannerCard/BannerCard.d.ts +2 -2
- package/lib/BlogPosts/BlogPost.d.ts +1 -1
- package/lib/Breadcrumblist/Breadcrumblist.d.ts +2 -2
- package/lib/CompetenceGoalTab/CompetenceGoalTab.d.ts +1 -1
- package/lib/CompetenceGoalTab/CompetenceItem.d.ts +5 -5
- package/lib/CompetenceGoalTab/SearchButton.d.ts +1 -1
- package/lib/ComponentCursor/ComponentCursor.d.ts +1 -1
- package/lib/CreatedBy/CreatedBy.d.ts +1 -1
- package/lib/ErrorMessage/ErrorResourceAccessDenied.d.ts +1 -1
- package/lib/Figure/Figure.d.ts +1 -1
- package/lib/Filter/FilterButtons.d.ts +2 -2
- package/lib/Filter/FilterListPhone.js +2 -2
- package/lib/Footer/EditorName.d.ts +1 -1
- package/lib/Footer/Footer.d.ts +1 -1
- package/lib/Footer/FooterLinks.d.ts +1 -1
- package/lib/Footer/FooterPrivacy.d.ts +1 -1
- package/lib/Footer/FooterText.d.ts +1 -1
- package/lib/Frontpage/FrontpageAllSubjects.d.ts +3 -3
- package/lib/Frontpage/FrontpageFilm.d.ts +1 -1
- package/lib/Frontpage/FrontpageInfo.d.ts +1 -1
- package/lib/Frontpage/FrontpageMultidisciplinarySubject.d.ts +1 -1
- package/lib/Frontpage/FrontpageProgramMenu.d.ts +1 -1
- package/lib/Frontpage/FrontpageSearch.d.ts +1 -1
- package/lib/Frontpage/FrontpageToolbox.d.ts +1 -1
- package/lib/Hero/Hero.d.ts +1 -1
- package/lib/LanguageSelector/LanguageSelector.d.ts +1 -1
- package/lib/LanguageSelector/LanguageSelectorContent.d.ts +1 -1
- package/lib/LearningPaths/LearningPathMenu.d.ts +1 -1
- package/lib/LearningPaths/LearningPathMenuAside.d.ts +1 -1
- package/lib/LearningPaths/LearningPathMenuAsideCopyright.d.ts +1 -1
- package/lib/LearningPaths/LearningPathMenuContent.d.ts +1 -1
- package/lib/LearningPaths/LearningPathMenuModalWrapper.d.ts +1 -1
- package/lib/LearningPaths/LearningPathMobileStepInfo.d.ts +1 -1
- package/lib/LearningPaths/LearningPathSticky.d.ts +1 -1
- package/lib/Messages/MessageBox.d.ts +1 -1
- package/lib/Messages/MessageBoxTag.d.ts +1 -1
- package/lib/MultidisciplinarySubject/List.d.ts +1 -1
- package/lib/MultidisciplinarySubject/ListItem.d.ts +1 -1
- package/lib/MultidisciplinarySubject/MultidisciplinarySubject.d.ts +1 -1
- package/lib/MultidisciplinarySubject/MultidisciplinarySubjectHeader.d.ts +3 -3
- package/lib/MyNdla/Resource/Folder.d.ts +1 -1
- package/lib/MyNdla/Resource/FolderInput.d.ts +1 -1
- package/lib/NDLAFilm/AllMoviesAlphabetically.js +13 -13
- package/lib/Navigation/NavigationBox.d.ts +3 -3
- package/lib/Navigation/NavigationHeading.d.ts +1 -1
- package/lib/Navigation/NavigationTopicAbout.d.ts +1 -1
- package/lib/Notion/Notion.d.ts +1 -1
- package/lib/Notion/NotionVisualElement.d.ts +1 -1
- package/lib/Programme/Programme.d.ts +1 -1
- package/lib/Programme/ProgrammeSubjects.d.ts +2 -2
- package/lib/Resource/resourceComponents.d.ts +1 -1
- package/lib/ResourceBox/ResourceBox.d.ts +2 -1
- package/lib/ResourceBox/ResourceBox.js +9 -11
- package/lib/ResourceGroup/ResourceGroup.d.ts +1 -1
- package/lib/ResourceGroup/ResourceItem.d.ts +1 -1
- package/lib/ResourceGroup/ResourceList.d.ts +1 -1
- package/lib/Search/ContentTypeResult.d.ts +1 -1
- package/lib/Search/ContentTypeResultStyles.d.ts +2 -2
- package/lib/Search/LoadingWrapper.d.ts +1 -1
- package/lib/Search/SearchResultSleeve.d.ts +1 -1
- package/lib/SearchTypeResult/ActiveFilterContent.d.ts +2 -2
- package/lib/SearchTypeResult/ActiveFilters.d.ts +1 -1
- package/lib/SearchTypeResult/PopupFilter.d.ts +2 -2
- package/lib/SearchTypeResult/ResultNavigation.d.ts +1 -1
- package/lib/SearchTypeResult/SearchFieldHeader.d.ts +1 -1
- package/lib/SearchTypeResult/SearchFilterContent.d.ts +1 -1
- package/lib/SearchTypeResult/SearchHeader.d.ts +1 -1
- package/lib/SearchTypeResult/SearchItem.d.ts +2 -2
- package/lib/SearchTypeResult/SearchItems.d.ts +1 -1
- package/lib/SearchTypeResult/SearchNotionItem.d.ts +1 -1
- package/lib/SearchTypeResult/SearchNotionsResult.d.ts +1 -1
- package/lib/SearchTypeResult/SearchSubjectItem.d.ts +2 -2
- package/lib/SearchTypeResult/SearchSubjectResult.d.ts +1 -1
- package/lib/SearchTypeResult/SearchTypeHeader.d.ts +2 -2
- package/lib/SearchTypeResult/SearchTypeResult.d.ts +2 -2
- package/lib/SearchTypeResult/SearchViewType.d.ts +1 -1
- package/lib/SearchTypeResult/components/ItemContexts.d.ts +2 -2
- package/lib/SearchTypeResult/components/ItemResourceHeader.d.ts +1 -1
- package/lib/SearchTypeResult/components/ItemTopicHeader.d.ts +1 -1
- package/lib/SearchTypeResult/components/SubjectFilters.d.ts +4 -4
- package/lib/Subject/SubjectBanner.d.ts +2 -2
- package/lib/Subject/SubjectHeader.d.ts +1 -1
- package/lib/Topic/Topic.d.ts +2 -2
- package/lib/TopicMenu/TopicMenu.js +3 -3
- package/lib/TreeStructure/AddFolderButton.d.ts +2 -2
- package/lib/TreeStructure/AddFolderButton.js +2 -2
- package/lib/TreeStructure/ComboboxButton.d.ts +7 -6
- package/lib/TreeStructure/ComboboxButton.js +2 -2
- package/lib/TreeStructure/FolderItem.d.ts +5 -3
- package/lib/TreeStructure/FolderItem.js +11 -10
- package/lib/TreeStructure/FolderItems.d.ts +4 -3
- package/lib/TreeStructure/FolderItems.js +28 -36
- package/lib/TreeStructure/TreeStructure.d.ts +3 -2
- package/lib/TreeStructure/TreeStructure.js +11 -11
- package/lib/TreeStructure/arrowNavigation.d.ts +2 -2
- package/lib/TreeStructure/helperFunctions.d.ts +3 -2
- package/lib/TreeStructure/index.d.ts +0 -1
- package/lib/TreeStructure/types.d.ts +8 -12
- package/lib/User/AuthModal.d.ts +1 -1
- package/lib/User/apiTypes.d.ts +3 -3
- package/lib/User/parseUserObject.d.ts +1 -1
- package/lib/User/parseUserObject.js +3 -2
- package/lib/index.d.ts +1 -1
- package/lib/locale/LocaleProvider.d.ts +1 -1
- package/lib/types.d.ts +11 -11
- package/package.json +10 -10
- package/src/Animation/DisplayOnPageYOffset.tsx +1 -1
- package/src/Article/Article.tsx +1 -1
- package/src/Filter/FilterListPhone.tsx +1 -1
- package/src/NDLAFilm/AllMoviesAlphabetically.tsx +1 -1
- package/src/ResourceBox/ResourceBox.tsx +3 -4
- package/src/TopicMenu/TopicMenu.jsx +1 -1
- package/src/TreeStructure/AddFolderButton.tsx +2 -2
- package/src/TreeStructure/ComboboxButton.tsx +7 -6
- package/src/TreeStructure/FolderItem.tsx +10 -7
- package/src/TreeStructure/FolderItems.tsx +31 -36
- package/src/TreeStructure/TreeStructure.tsx +7 -7
- package/src/TreeStructure/arrowNavigation.ts +5 -5
- package/src/TreeStructure/helperFunctions.ts +4 -3
- package/src/TreeStructure/index.ts +0 -1
- package/src/TreeStructure/types.ts +5 -10
- package/src/User/parseUserObject.ts +1 -1
- package/src/index.ts +1 -1
- package/es/LetterFilter/LetterFilter.stories.js +0 -44
- package/es/TreeStructure/NavigationLink.js +0 -91
- package/lib/LetterFilter/LetterFilter.stories.js +0 -45
- package/lib/TreeStructure/NavigationLink.d.ts +0 -14
- package/lib/TreeStructure/NavigationLink.js +0 -93
- package/src/TreeStructure/NavigationLink.tsx +0 -107
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import _styled from "@emotion/styled/base";
|
|
2
|
-
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)."; }
|
|
3
|
-
/**
|
|
4
|
-
* Copyright (c) 2022-present, NDLA.
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the GPLv3 license found in the
|
|
7
|
-
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { colors, fonts, spacing } from '@ndla/core';
|
|
12
|
-
import React, { useEffect, useRef } from 'react';
|
|
13
|
-
import SafeLink from '@ndla/safelink';
|
|
14
|
-
import { arrowNavigation } from './arrowNavigation';
|
|
15
|
-
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
16
|
-
import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
17
|
-
var StyledSafeLink = /*#__PURE__*/_styled(SafeLink, {
|
|
18
|
-
target: "et3arba1",
|
|
19
|
-
label: "StyledSafeLink"
|
|
20
|
-
})("display:grid;grid-template-columns:", spacing.medium, " 1fr;align-items:center;padding:", spacing.xxsmall, ";margin:", spacing.xsmall, " 0;gap:", spacing.xxsmall, ";box-shadow:none;color:", function (_ref) {
|
|
21
|
-
var selected = _ref.selected;
|
|
22
|
-
return selected ? colors.brand.primary : colors.text.primary;
|
|
23
|
-
}, ";font-weight:", function (_ref2) {
|
|
24
|
-
var selected = _ref2.selected;
|
|
25
|
-
return selected ? fonts.weight.semibold : fonts.weight.normal;
|
|
26
|
-
}, ";", fonts.sizes('16px'), ";:hover,:focus{color:", colors.brand.primary, ";}svg{height:26px;width:26px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5hdmlnYXRpb25MaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQm9EIiwiZmlsZSI6Ik5hdmlnYXRpb25MaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzLCBmb250cywgc3BhY2luZyB9IGZyb20gJ0BuZGxhL2NvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEtleWJvYXJkRXZlbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNhZmVMaW5rIGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IGFycm93TmF2aWdhdGlvbiB9IGZyb20gJy4vYXJyb3dOYXZpZ2F0aW9uJztcbmltcG9ydCB7IENvbW1vbkZvbGRlckl0ZW1zUHJvcHMsIEZvbGRlclR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIFN0eWxlZFByb3BzIHtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTYWZlTGluayA9IHN0eWxlZChTYWZlTGluayk8U3R5bGVkUHJvcHM+YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICR7c3BhY2luZy5tZWRpdW19IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBtYXJnaW46ICR7c3BhY2luZy54c21hbGx9IDA7XG4gIGdhcDogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiAkeyh7IHNlbGVjdGVkIH0pID0+IChzZWxlY3RlZCA/IGNvbG9ycy5icmFuZC5wcmltYXJ5IDogY29sb3JzLnRleHQucHJpbWFyeSl9O1xuICBmb250LXdlaWdodDogJHsoeyBzZWxlY3RlZCB9KSA9PiAoc2VsZWN0ZWQgPyBmb250cy53ZWlnaHQuc2VtaWJvbGQgOiBmb250cy53ZWlnaHQubm9ybWFsKX07XG4gICR7Zm9udHMuc2l6ZXMoJzE2cHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMge1xuICAgIGNvbG9yOiAke2NvbG9ycy5icmFuZC5wcmltYXJ5fTtcbiAgfVxuICBzdmcge1xuICAgIGhlaWdodDogMjZweDtcbiAgICB3aWR0aDogMjZweDtcbiAgfVxuYDtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBDb21tb25Gb2xkZXJJdGVtc1Byb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBmb2xkZXI6IEZvbGRlclR5cGU7XG59XG5cbmNvbnN0IE5hdmlnYXRpb25MaW5rID0gKHtcbiAgbG9hZGluZyxcbiAgZm9sZGVyLFxuICBzZWxlY3RlZEZvbGRlcixcbiAgZm9jdXNlZEZvbGRlcixcbiAgc2V0U2VsZWN0ZWRGb2xkZXIsXG4gIHNldEZvY3VzZWRGb2xkZXIsXG4gIHZpc2libGVGb2xkZXJzLFxuICBvbk9wZW5Gb2xkZXIsXG4gIG9uQ2xvc2VGb2xkZXIsXG59OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBpY29uLCBuYW1lIH0gPSBmb2xkZXI7XG4gIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRGb2xkZXIgJiYgc2VsZWN0ZWRGb2xkZXIuaWQgPT09IGlkO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgJiBIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWQgPSBmb2N1c2VkRm9sZGVyPy5pZCA9PT0gaWQ7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIoZm9sZGVyKTtcbiAgICAgIHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEZvbGRlcj8uaWQgPT09IGlkKSB7XG4gICAgICByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRm9sZGVyLCByZWYsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2FmZUxpbmtcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17KGU6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHNldFNlbGVjdGVkRm9sZGVyKGZvbGRlcik7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcihmb2xkZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhcnJvd05hdmlnYXRpb24oZSwgaWQsIHZpc2libGVGb2xkZXJzLCBzZXRGb2N1c2VkRm9sZGVyLCBvbk9wZW5Gb2xkZXIsIG9uQ2xvc2VGb2xkZXIpO1xuICAgICAgfX1cbiAgICAgIGFyaWEtY3VycmVudD17c2VsZWN0ZWQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17c2VsZWN0ZWQgfHwgZm9jdXNlZCA/IDAgOiAtMX1cbiAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgdG89e2xvYWRpbmcgPyAnJyA6IGAvbWlubmRsYS8ke2lkfWB9PlxuICAgICAgPEljb25XcmFwcGVyPntpY29ufTwvSWNvbldyYXBwZXI+XG4gICAgICB7bmFtZX1cbiAgICA8L1N0eWxlZFNhZmVMaW5rPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbkxpbms7XG4iXX0= */"));
|
|
27
|
-
var IconWrapper = /*#__PURE__*/_styled("span", {
|
|
28
|
-
target: "et3arba0",
|
|
29
|
-
label: "IconWrapper"
|
|
30
|
-
})(process.env.NODE_ENV === "production" ? {
|
|
31
|
-
name: "1wnowod",
|
|
32
|
-
styles: "display:flex;align-items:center;justify-content:center"
|
|
33
|
-
} : {
|
|
34
|
-
name: "1wnowod",
|
|
35
|
-
styles: "display:flex;align-items:center;justify-content:center",
|
|
36
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5hdmlnYXRpb25MaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQytCIiwiZmlsZSI6Ik5hdmlnYXRpb25MaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzLCBmb250cywgc3BhY2luZyB9IGZyb20gJ0BuZGxhL2NvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEtleWJvYXJkRXZlbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNhZmVMaW5rIGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IGFycm93TmF2aWdhdGlvbiB9IGZyb20gJy4vYXJyb3dOYXZpZ2F0aW9uJztcbmltcG9ydCB7IENvbW1vbkZvbGRlckl0ZW1zUHJvcHMsIEZvbGRlclR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIFN0eWxlZFByb3BzIHtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTYWZlTGluayA9IHN0eWxlZChTYWZlTGluayk8U3R5bGVkUHJvcHM+YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICR7c3BhY2luZy5tZWRpdW19IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBtYXJnaW46ICR7c3BhY2luZy54c21hbGx9IDA7XG4gIGdhcDogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiAkeyh7IHNlbGVjdGVkIH0pID0+IChzZWxlY3RlZCA/IGNvbG9ycy5icmFuZC5wcmltYXJ5IDogY29sb3JzLnRleHQucHJpbWFyeSl9O1xuICBmb250LXdlaWdodDogJHsoeyBzZWxlY3RlZCB9KSA9PiAoc2VsZWN0ZWQgPyBmb250cy53ZWlnaHQuc2VtaWJvbGQgOiBmb250cy53ZWlnaHQubm9ybWFsKX07XG4gICR7Zm9udHMuc2l6ZXMoJzE2cHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMge1xuICAgIGNvbG9yOiAke2NvbG9ycy5icmFuZC5wcmltYXJ5fTtcbiAgfVxuICBzdmcge1xuICAgIGhlaWdodDogMjZweDtcbiAgICB3aWR0aDogMjZweDtcbiAgfVxuYDtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBDb21tb25Gb2xkZXJJdGVtc1Byb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBmb2xkZXI6IEZvbGRlclR5cGU7XG59XG5cbmNvbnN0IE5hdmlnYXRpb25MaW5rID0gKHtcbiAgbG9hZGluZyxcbiAgZm9sZGVyLFxuICBzZWxlY3RlZEZvbGRlcixcbiAgZm9jdXNlZEZvbGRlcixcbiAgc2V0U2VsZWN0ZWRGb2xkZXIsXG4gIHNldEZvY3VzZWRGb2xkZXIsXG4gIHZpc2libGVGb2xkZXJzLFxuICBvbk9wZW5Gb2xkZXIsXG4gIG9uQ2xvc2VGb2xkZXIsXG59OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBpY29uLCBuYW1lIH0gPSBmb2xkZXI7XG4gIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRGb2xkZXIgJiYgc2VsZWN0ZWRGb2xkZXIuaWQgPT09IGlkO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgJiBIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWQgPSBmb2N1c2VkRm9sZGVyPy5pZCA9PT0gaWQ7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIoZm9sZGVyKTtcbiAgICAgIHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEZvbGRlcj8uaWQgPT09IGlkKSB7XG4gICAgICByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRm9sZGVyLCByZWYsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2FmZUxpbmtcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17KGU6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHNldFNlbGVjdGVkRm9sZGVyKGZvbGRlcik7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcihmb2xkZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhcnJvd05hdmlnYXRpb24oZSwgaWQsIHZpc2libGVGb2xkZXJzLCBzZXRGb2N1c2VkRm9sZGVyLCBvbk9wZW5Gb2xkZXIsIG9uQ2xvc2VGb2xkZXIpO1xuICAgICAgfX1cbiAgICAgIGFyaWEtY3VycmVudD17c2VsZWN0ZWQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17c2VsZWN0ZWQgfHwgZm9jdXNlZCA/IDAgOiAtMX1cbiAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgdG89e2xvYWRpbmcgPyAnJyA6IGAvbWlubmRsYS8ke2lkfWB9PlxuICAgICAgPEljb25XcmFwcGVyPntpY29ufTwvSWNvbldyYXBwZXI+XG4gICAgICB7bmFtZX1cbiAgICA8L1N0eWxlZFNhZmVMaW5rPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbkxpbms7XG4iXX0= */",
|
|
37
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
38
|
-
});
|
|
39
|
-
var NavigationLink = function NavigationLink(_ref3) {
|
|
40
|
-
var loading = _ref3.loading,
|
|
41
|
-
folder = _ref3.folder,
|
|
42
|
-
selectedFolder = _ref3.selectedFolder,
|
|
43
|
-
focusedFolder = _ref3.focusedFolder,
|
|
44
|
-
setSelectedFolder = _ref3.setSelectedFolder,
|
|
45
|
-
setFocusedFolder = _ref3.setFocusedFolder,
|
|
46
|
-
visibleFolders = _ref3.visibleFolders,
|
|
47
|
-
onOpenFolder = _ref3.onOpenFolder,
|
|
48
|
-
onCloseFolder = _ref3.onCloseFolder;
|
|
49
|
-
var id = folder.id,
|
|
50
|
-
icon = folder.icon,
|
|
51
|
-
name = folder.name;
|
|
52
|
-
var selected = selectedFolder && selectedFolder.id === id;
|
|
53
|
-
var ref = useRef(null);
|
|
54
|
-
var focused = (focusedFolder === null || focusedFolder === void 0 ? void 0 : focusedFolder.id) === id;
|
|
55
|
-
var handleClick = function handleClick() {
|
|
56
|
-
if (!selected) {
|
|
57
|
-
setSelectedFolder(folder);
|
|
58
|
-
setFocusedFolder(folder);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
useEffect(function () {
|
|
62
|
-
if ((focusedFolder === null || focusedFolder === void 0 ? void 0 : focusedFolder.id) === id) {
|
|
63
|
-
var _ref$current;
|
|
64
|
-
(_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
|
|
65
|
-
}
|
|
66
|
-
}, [focusedFolder, ref, id]);
|
|
67
|
-
return _jsxs(StyledSafeLink, {
|
|
68
|
-
role: "treeitem",
|
|
69
|
-
ref: ref,
|
|
70
|
-
onKeyDown: function onKeyDown(e) {
|
|
71
|
-
if (e.key === 'Enter') {
|
|
72
|
-
setSelectedFolder(folder);
|
|
73
|
-
setFocusedFolder(folder);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
arrowNavigation(e, id, visibleFolders, setFocusedFolder, onOpenFolder, onCloseFolder);
|
|
77
|
-
},
|
|
78
|
-
"aria-current": selected ? 'page' : undefined,
|
|
79
|
-
tabIndex: selected || focused ? 0 : -1,
|
|
80
|
-
selected: selected,
|
|
81
|
-
onFocus: function onFocus() {
|
|
82
|
-
return setFocusedFolder(folder);
|
|
83
|
-
},
|
|
84
|
-
onClick: handleClick,
|
|
85
|
-
to: loading ? '' : "/minndla/".concat(id),
|
|
86
|
-
children: [_jsx(IconWrapper, {
|
|
87
|
-
children: icon
|
|
88
|
-
}), name]
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
|
-
export default NavigationLink;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = exports.LetterFilterStory = void 0;
|
|
7
|
-
var _clientApi = require("@storybook/client-api");
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _defaults = require("../../../designmanual/stories/defaults");
|
|
10
|
-
var _LetterFilter = _interopRequireDefault(require("./LetterFilter"));
|
|
11
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
14
|
-
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."); }
|
|
15
|
-
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); }
|
|
16
|
-
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; }
|
|
17
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
18
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
22
|
-
var _default = {
|
|
23
|
-
title: 'Enkle komponenter/LetterFilter',
|
|
24
|
-
component: _LetterFilter["default"],
|
|
25
|
-
parameters: _objectSpread({}, _defaults.defaultParameters),
|
|
26
|
-
args: {
|
|
27
|
-
enabledLetters: ['a', 'c'],
|
|
28
|
-
onChange: function onChange(value) {}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
exports["default"] = _default;
|
|
32
|
-
var LetterFilterStory = function LetterFilterStory(args) {
|
|
33
|
-
var _useArgs = (0, _clientApi.useArgs)(),
|
|
34
|
-
_useArgs2 = _slicedToArray(_useArgs, 2),
|
|
35
|
-
updateArgs = _useArgs2[1];
|
|
36
|
-
return (0, _jsxRuntime.jsx)(_LetterFilter["default"], _objectSpread(_objectSpread({}, args), {}, {
|
|
37
|
-
onChange: function onChange(val) {
|
|
38
|
-
return updateArgs({
|
|
39
|
-
value: val
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}));
|
|
43
|
-
};
|
|
44
|
-
exports.LetterFilterStory = LetterFilterStory;
|
|
45
|
-
LetterFilterStory.storyName = 'LetterFilter';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2022-present, NDLA.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the GPLv3 license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
import { CommonFolderItemsProps, FolderType } from './types';
|
|
9
|
-
interface Props extends CommonFolderItemsProps {
|
|
10
|
-
isOpen: boolean;
|
|
11
|
-
folder: FolderType;
|
|
12
|
-
}
|
|
13
|
-
declare const NavigationLink: ({ loading, folder, selectedFolder, focusedFolder, setSelectedFolder, setFocusedFolder, visibleFolders, onOpenFolder, onCloseFolder, }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
14
|
-
export default NavigationLink;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
|
9
|
-
var _core = require("@ndla/core");
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _safelink = _interopRequireDefault(require("@ndla/safelink"));
|
|
12
|
-
var _arrowNavigation = require("./arrowNavigation");
|
|
13
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
14
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
|
-
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)."; }
|
|
18
|
-
var StyledSafeLink = /*#__PURE__*/(0, _base["default"])(_safelink["default"], {
|
|
19
|
-
target: "et3arba1",
|
|
20
|
-
label: "StyledSafeLink"
|
|
21
|
-
})("display:grid;grid-template-columns:", _core.spacing.medium, " 1fr;align-items:center;padding:", _core.spacing.xxsmall, ";margin:", _core.spacing.xsmall, " 0;gap:", _core.spacing.xxsmall, ";box-shadow:none;color:", function (_ref) {
|
|
22
|
-
var selected = _ref.selected;
|
|
23
|
-
return selected ? _core.colors.brand.primary : _core.colors.text.primary;
|
|
24
|
-
}, ";font-weight:", function (_ref2) {
|
|
25
|
-
var selected = _ref2.selected;
|
|
26
|
-
return selected ? _core.fonts.weight.semibold : _core.fonts.weight.normal;
|
|
27
|
-
}, ";", _core.fonts.sizes('16px'), ";:hover,:focus{color:", _core.colors.brand.primary, ";}svg{height:26px;width:26px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5hdmlnYXRpb25MaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQm9EIiwiZmlsZSI6Ik5hdmlnYXRpb25MaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzLCBmb250cywgc3BhY2luZyB9IGZyb20gJ0BuZGxhL2NvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEtleWJvYXJkRXZlbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNhZmVMaW5rIGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IGFycm93TmF2aWdhdGlvbiB9IGZyb20gJy4vYXJyb3dOYXZpZ2F0aW9uJztcbmltcG9ydCB7IENvbW1vbkZvbGRlckl0ZW1zUHJvcHMsIEZvbGRlclR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIFN0eWxlZFByb3BzIHtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTYWZlTGluayA9IHN0eWxlZChTYWZlTGluayk8U3R5bGVkUHJvcHM+YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICR7c3BhY2luZy5tZWRpdW19IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBtYXJnaW46ICR7c3BhY2luZy54c21hbGx9IDA7XG4gIGdhcDogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiAkeyh7IHNlbGVjdGVkIH0pID0+IChzZWxlY3RlZCA/IGNvbG9ycy5icmFuZC5wcmltYXJ5IDogY29sb3JzLnRleHQucHJpbWFyeSl9O1xuICBmb250LXdlaWdodDogJHsoeyBzZWxlY3RlZCB9KSA9PiAoc2VsZWN0ZWQgPyBmb250cy53ZWlnaHQuc2VtaWJvbGQgOiBmb250cy53ZWlnaHQubm9ybWFsKX07XG4gICR7Zm9udHMuc2l6ZXMoJzE2cHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMge1xuICAgIGNvbG9yOiAke2NvbG9ycy5icmFuZC5wcmltYXJ5fTtcbiAgfVxuICBzdmcge1xuICAgIGhlaWdodDogMjZweDtcbiAgICB3aWR0aDogMjZweDtcbiAgfVxuYDtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBDb21tb25Gb2xkZXJJdGVtc1Byb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBmb2xkZXI6IEZvbGRlclR5cGU7XG59XG5cbmNvbnN0IE5hdmlnYXRpb25MaW5rID0gKHtcbiAgbG9hZGluZyxcbiAgZm9sZGVyLFxuICBzZWxlY3RlZEZvbGRlcixcbiAgZm9jdXNlZEZvbGRlcixcbiAgc2V0U2VsZWN0ZWRGb2xkZXIsXG4gIHNldEZvY3VzZWRGb2xkZXIsXG4gIHZpc2libGVGb2xkZXJzLFxuICBvbk9wZW5Gb2xkZXIsXG4gIG9uQ2xvc2VGb2xkZXIsXG59OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBpY29uLCBuYW1lIH0gPSBmb2xkZXI7XG4gIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRGb2xkZXIgJiYgc2VsZWN0ZWRGb2xkZXIuaWQgPT09IGlkO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgJiBIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWQgPSBmb2N1c2VkRm9sZGVyPy5pZCA9PT0gaWQ7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIoZm9sZGVyKTtcbiAgICAgIHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEZvbGRlcj8uaWQgPT09IGlkKSB7XG4gICAgICByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRm9sZGVyLCByZWYsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2FmZUxpbmtcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17KGU6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHNldFNlbGVjdGVkRm9sZGVyKGZvbGRlcik7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcihmb2xkZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhcnJvd05hdmlnYXRpb24oZSwgaWQsIHZpc2libGVGb2xkZXJzLCBzZXRGb2N1c2VkRm9sZGVyLCBvbk9wZW5Gb2xkZXIsIG9uQ2xvc2VGb2xkZXIpO1xuICAgICAgfX1cbiAgICAgIGFyaWEtY3VycmVudD17c2VsZWN0ZWQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17c2VsZWN0ZWQgfHwgZm9jdXNlZCA/IDAgOiAtMX1cbiAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgdG89e2xvYWRpbmcgPyAnJyA6IGAvbWlubmRsYS8ke2lkfWB9PlxuICAgICAgPEljb25XcmFwcGVyPntpY29ufTwvSWNvbldyYXBwZXI+XG4gICAgICB7bmFtZX1cbiAgICA8L1N0eWxlZFNhZmVMaW5rPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbkxpbms7XG4iXX0= */"));
|
|
28
|
-
var IconWrapper = /*#__PURE__*/(0, _base["default"])("span", {
|
|
29
|
-
target: "et3arba0",
|
|
30
|
-
label: "IconWrapper"
|
|
31
|
-
})(process.env.NODE_ENV === "production" ? {
|
|
32
|
-
name: "1wnowod",
|
|
33
|
-
styles: "display:flex;align-items:center;justify-content:center"
|
|
34
|
-
} : {
|
|
35
|
-
name: "1wnowod",
|
|
36
|
-
styles: "display:flex;align-items:center;justify-content:center",
|
|
37
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5hdmlnYXRpb25MaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQytCIiwiZmlsZSI6Ik5hdmlnYXRpb25MaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzLCBmb250cywgc3BhY2luZyB9IGZyb20gJ0BuZGxhL2NvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEtleWJvYXJkRXZlbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNhZmVMaW5rIGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IGFycm93TmF2aWdhdGlvbiB9IGZyb20gJy4vYXJyb3dOYXZpZ2F0aW9uJztcbmltcG9ydCB7IENvbW1vbkZvbGRlckl0ZW1zUHJvcHMsIEZvbGRlclR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIFN0eWxlZFByb3BzIHtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTYWZlTGluayA9IHN0eWxlZChTYWZlTGluayk8U3R5bGVkUHJvcHM+YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICR7c3BhY2luZy5tZWRpdW19IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBtYXJnaW46ICR7c3BhY2luZy54c21hbGx9IDA7XG4gIGdhcDogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiAkeyh7IHNlbGVjdGVkIH0pID0+IChzZWxlY3RlZCA/IGNvbG9ycy5icmFuZC5wcmltYXJ5IDogY29sb3JzLnRleHQucHJpbWFyeSl9O1xuICBmb250LXdlaWdodDogJHsoeyBzZWxlY3RlZCB9KSA9PiAoc2VsZWN0ZWQgPyBmb250cy53ZWlnaHQuc2VtaWJvbGQgOiBmb250cy53ZWlnaHQubm9ybWFsKX07XG4gICR7Zm9udHMuc2l6ZXMoJzE2cHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMge1xuICAgIGNvbG9yOiAke2NvbG9ycy5icmFuZC5wcmltYXJ5fTtcbiAgfVxuICBzdmcge1xuICAgIGhlaWdodDogMjZweDtcbiAgICB3aWR0aDogMjZweDtcbiAgfVxuYDtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBDb21tb25Gb2xkZXJJdGVtc1Byb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBmb2xkZXI6IEZvbGRlclR5cGU7XG59XG5cbmNvbnN0IE5hdmlnYXRpb25MaW5rID0gKHtcbiAgbG9hZGluZyxcbiAgZm9sZGVyLFxuICBzZWxlY3RlZEZvbGRlcixcbiAgZm9jdXNlZEZvbGRlcixcbiAgc2V0U2VsZWN0ZWRGb2xkZXIsXG4gIHNldEZvY3VzZWRGb2xkZXIsXG4gIHZpc2libGVGb2xkZXJzLFxuICBvbk9wZW5Gb2xkZXIsXG4gIG9uQ2xvc2VGb2xkZXIsXG59OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBpY29uLCBuYW1lIH0gPSBmb2xkZXI7XG4gIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRGb2xkZXIgJiYgc2VsZWN0ZWRGb2xkZXIuaWQgPT09IGlkO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgJiBIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWQgPSBmb2N1c2VkRm9sZGVyPy5pZCA9PT0gaWQ7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIoZm9sZGVyKTtcbiAgICAgIHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEZvbGRlcj8uaWQgPT09IGlkKSB7XG4gICAgICByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRm9sZGVyLCByZWYsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2FmZUxpbmtcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17KGU6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHNldFNlbGVjdGVkRm9sZGVyKGZvbGRlcik7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcihmb2xkZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhcnJvd05hdmlnYXRpb24oZSwgaWQsIHZpc2libGVGb2xkZXJzLCBzZXRGb2N1c2VkRm9sZGVyLCBvbk9wZW5Gb2xkZXIsIG9uQ2xvc2VGb2xkZXIpO1xuICAgICAgfX1cbiAgICAgIGFyaWEtY3VycmVudD17c2VsZWN0ZWQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17c2VsZWN0ZWQgfHwgZm9jdXNlZCA/IDAgOiAtMX1cbiAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgdG89e2xvYWRpbmcgPyAnJyA6IGAvbWlubmRsYS8ke2lkfWB9PlxuICAgICAgPEljb25XcmFwcGVyPntpY29ufTwvSWNvbldyYXBwZXI+XG4gICAgICB7bmFtZX1cbiAgICA8L1N0eWxlZFNhZmVMaW5rPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbkxpbms7XG4iXX0= */",
|
|
38
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
39
|
-
});
|
|
40
|
-
var NavigationLink = function NavigationLink(_ref3) {
|
|
41
|
-
var loading = _ref3.loading,
|
|
42
|
-
folder = _ref3.folder,
|
|
43
|
-
selectedFolder = _ref3.selectedFolder,
|
|
44
|
-
focusedFolder = _ref3.focusedFolder,
|
|
45
|
-
setSelectedFolder = _ref3.setSelectedFolder,
|
|
46
|
-
setFocusedFolder = _ref3.setFocusedFolder,
|
|
47
|
-
visibleFolders = _ref3.visibleFolders,
|
|
48
|
-
onOpenFolder = _ref3.onOpenFolder,
|
|
49
|
-
onCloseFolder = _ref3.onCloseFolder;
|
|
50
|
-
var id = folder.id,
|
|
51
|
-
icon = folder.icon,
|
|
52
|
-
name = folder.name;
|
|
53
|
-
var selected = selectedFolder && selectedFolder.id === id;
|
|
54
|
-
var ref = (0, _react.useRef)(null);
|
|
55
|
-
var focused = (focusedFolder === null || focusedFolder === void 0 ? void 0 : focusedFolder.id) === id;
|
|
56
|
-
var handleClick = function handleClick() {
|
|
57
|
-
if (!selected) {
|
|
58
|
-
setSelectedFolder(folder);
|
|
59
|
-
setFocusedFolder(folder);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
(0, _react.useEffect)(function () {
|
|
63
|
-
if ((focusedFolder === null || focusedFolder === void 0 ? void 0 : focusedFolder.id) === id) {
|
|
64
|
-
var _ref$current;
|
|
65
|
-
(_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
|
|
66
|
-
}
|
|
67
|
-
}, [focusedFolder, ref, id]);
|
|
68
|
-
return (0, _jsxRuntime.jsxs)(StyledSafeLink, {
|
|
69
|
-
role: "treeitem",
|
|
70
|
-
ref: ref,
|
|
71
|
-
onKeyDown: function onKeyDown(e) {
|
|
72
|
-
if (e.key === 'Enter') {
|
|
73
|
-
setSelectedFolder(folder);
|
|
74
|
-
setFocusedFolder(folder);
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
(0, _arrowNavigation.arrowNavigation)(e, id, visibleFolders, setFocusedFolder, onOpenFolder, onCloseFolder);
|
|
78
|
-
},
|
|
79
|
-
"aria-current": selected ? 'page' : undefined,
|
|
80
|
-
tabIndex: selected || focused ? 0 : -1,
|
|
81
|
-
selected: selected,
|
|
82
|
-
onFocus: function onFocus() {
|
|
83
|
-
return setFocusedFolder(folder);
|
|
84
|
-
},
|
|
85
|
-
onClick: handleClick,
|
|
86
|
-
to: loading ? '' : "/minndla/".concat(id),
|
|
87
|
-
children: [(0, _jsxRuntime.jsx)(IconWrapper, {
|
|
88
|
-
children: icon
|
|
89
|
-
}), name]
|
|
90
|
-
});
|
|
91
|
-
};
|
|
92
|
-
var _default = NavigationLink;
|
|
93
|
-
exports["default"] = _default;
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2022-present, NDLA.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the GPLv3 license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import styled from '@emotion/styled';
|
|
10
|
-
import { colors, fonts, spacing } from '@ndla/core';
|
|
11
|
-
import React, { KeyboardEvent, useEffect, useRef } from 'react';
|
|
12
|
-
import SafeLink from '@ndla/safelink';
|
|
13
|
-
import { arrowNavigation } from './arrowNavigation';
|
|
14
|
-
import { CommonFolderItemsProps, FolderType } from './types';
|
|
15
|
-
|
|
16
|
-
interface StyledProps {
|
|
17
|
-
selected?: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const StyledSafeLink = styled(SafeLink)<StyledProps>`
|
|
21
|
-
display: grid;
|
|
22
|
-
grid-template-columns: ${spacing.medium} 1fr;
|
|
23
|
-
align-items: center;
|
|
24
|
-
padding: ${spacing.xxsmall};
|
|
25
|
-
margin: ${spacing.xsmall} 0;
|
|
26
|
-
gap: ${spacing.xxsmall};
|
|
27
|
-
box-shadow: none;
|
|
28
|
-
|
|
29
|
-
color: ${({ selected }) => (selected ? colors.brand.primary : colors.text.primary)};
|
|
30
|
-
font-weight: ${({ selected }) => (selected ? fonts.weight.semibold : fonts.weight.normal)};
|
|
31
|
-
${fonts.sizes('16px')};
|
|
32
|
-
|
|
33
|
-
:hover,
|
|
34
|
-
:focus {
|
|
35
|
-
color: ${colors.brand.primary};
|
|
36
|
-
}
|
|
37
|
-
svg {
|
|
38
|
-
height: 26px;
|
|
39
|
-
width: 26px;
|
|
40
|
-
}
|
|
41
|
-
`;
|
|
42
|
-
|
|
43
|
-
const IconWrapper = styled.span`
|
|
44
|
-
display: flex;
|
|
45
|
-
align-items: center;
|
|
46
|
-
justify-content: center;
|
|
47
|
-
`;
|
|
48
|
-
|
|
49
|
-
interface Props extends CommonFolderItemsProps {
|
|
50
|
-
isOpen: boolean;
|
|
51
|
-
folder: FolderType;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const NavigationLink = ({
|
|
55
|
-
loading,
|
|
56
|
-
folder,
|
|
57
|
-
selectedFolder,
|
|
58
|
-
focusedFolder,
|
|
59
|
-
setSelectedFolder,
|
|
60
|
-
setFocusedFolder,
|
|
61
|
-
visibleFolders,
|
|
62
|
-
onOpenFolder,
|
|
63
|
-
onCloseFolder,
|
|
64
|
-
}: Props) => {
|
|
65
|
-
const { id, icon, name } = folder;
|
|
66
|
-
const selected = selectedFolder && selectedFolder.id === id;
|
|
67
|
-
const ref = useRef<HTMLButtonElement & HTMLAnchorElement>(null);
|
|
68
|
-
const focused = focusedFolder?.id === id;
|
|
69
|
-
|
|
70
|
-
const handleClick = () => {
|
|
71
|
-
if (!selected) {
|
|
72
|
-
setSelectedFolder(folder);
|
|
73
|
-
setFocusedFolder(folder);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
useEffect(() => {
|
|
78
|
-
if (focusedFolder?.id === id) {
|
|
79
|
-
ref.current?.focus();
|
|
80
|
-
}
|
|
81
|
-
}, [focusedFolder, ref, id]);
|
|
82
|
-
|
|
83
|
-
return (
|
|
84
|
-
<StyledSafeLink
|
|
85
|
-
role="treeitem"
|
|
86
|
-
ref={ref}
|
|
87
|
-
onKeyDown={(e: KeyboardEvent<HTMLElement>) => {
|
|
88
|
-
if (e.key === 'Enter') {
|
|
89
|
-
setSelectedFolder(folder);
|
|
90
|
-
setFocusedFolder(folder);
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
arrowNavigation(e, id, visibleFolders, setFocusedFolder, onOpenFolder, onCloseFolder);
|
|
94
|
-
}}
|
|
95
|
-
aria-current={selected ? 'page' : undefined}
|
|
96
|
-
tabIndex={selected || focused ? 0 : -1}
|
|
97
|
-
selected={selected}
|
|
98
|
-
onFocus={() => setFocusedFolder(folder)}
|
|
99
|
-
onClick={handleClick}
|
|
100
|
-
to={loading ? '' : `/minndla/${id}`}>
|
|
101
|
-
<IconWrapper>{icon}</IconWrapper>
|
|
102
|
-
{name}
|
|
103
|
-
</StyledSafeLink>
|
|
104
|
-
);
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
export default NavigationLink;
|