@docusaurus/theme-classic 2.0.0-beta.12faed89d → 2.0.0-beta.14
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 +1 -1
- package/lib/admonitions.css +35 -0
- package/lib/deps.d.ts +13 -0
- package/lib/index.js +16 -15
- package/lib/prism-include-languages.js +9 -5
- package/{lib-next/types.d.ts → lib/theme-classic.d.ts} +338 -156
- package/lib/translations.js +16 -7
- package/lib/types.d.ts +0 -629
- package/lib/validateThemeConfig.js +232 -248
- package/lib-next/theme/Admonition/index.js +101 -0
- package/lib-next/theme/AnnouncementBar/index.js +7 -12
- package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
- package/lib-next/theme/BackToTopButton/index.js +131 -0
- package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
- package/lib-next/theme/BlogArchivePage/index.js +80 -0
- package/lib-next/theme/BlogLayout/index.js +40 -0
- package/lib-next/theme/BlogListPage/index.js +17 -25
- package/lib-next/theme/BlogPostAuthor/index.js +46 -0
- package/{lib/theme/MDXPage → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -2
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/{lib/theme/IconExternalLink → lib-next/theme/BlogPostAuthors}/styles.module.css +3 -4
- package/lib-next/theme/BlogPostItem/index.js +79 -86
- package/lib-next/theme/BlogPostPage/index.js +70 -35
- package/lib-next/theme/BlogSidebar/index.js +11 -13
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +14 -55
- package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
- package/lib-next/theme/CodeBlock/index.js +23 -149
- package/lib-next/theme/CodeBlock/styles.module.css +12 -9
- package/lib-next/theme/Details/index.js +20 -0
- package/lib-next/theme/Details/styles.module.css +13 -0
- package/lib-next/theme/DocCard/index.js +80 -0
- package/lib-next/theme/DocCard/styles.module.css +43 -0
- package/lib-next/theme/DocCardList/index.js +19 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/lib-next/theme/DocItem/index.js +30 -59
- package/lib-next/theme/DocItem/styles.module.css +2 -11
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/{lib/theme/DocSidebarItem → lib-next/theme/DocItemFooter}/styles.module.css +8 -5
- package/lib-next/theme/DocPage/index.js +46 -23
- package/lib-next/theme/DocPaginator/index.js +5 -33
- package/lib-next/theme/DocPaginatorNavLink/index.js +36 -0
- package/lib-next/theme/DocSidebar/index.js +37 -43
- package/lib-next/theme/DocSidebarItem/index.js +115 -65
- package/lib-next/theme/DocSidebarItem/styles.module.css +4 -0
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/DocVersionBadge/index.js +27 -0
- package/lib-next/theme/DocVersionBanner/index.js +28 -14
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/ErrorPageContent.js +35 -0
- package/lib-next/theme/Footer/index.js +90 -39
- package/lib-next/theme/Heading/index.js +24 -29
- package/lib-next/theme/Heading/styles.css +5 -6
- package/lib-next/theme/Heading/styles.module.css +9 -5
- package/lib-next/theme/IconArrow/index.js +2 -2
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/IconEdit/index.js +2 -2
- package/lib-next/theme/IconExternalLink/index.js +2 -2
- package/lib-next/theme/IconLanguage/index.js +2 -2
- package/lib-next/theme/IconMenu/index.js +2 -2
- package/lib-next/theme/LastUpdated/index.js +3 -2
- package/lib-next/theme/Layout/index.js +3 -1
- package/lib-next/theme/LayoutHead/index.js +18 -23
- package/lib-next/theme/LayoutProviders/index.js +8 -5
- package/lib-next/theme/Logo/index.js +25 -21
- package/lib-next/theme/MDXComponents/index.js +34 -7
- package/{lib/theme/hooks → lib-next/theme/MDXComponents}/styles.css +3 -2
- package/lib-next/theme/MDXPage/index.js +10 -2
- package/lib-next/theme/Navbar/index.js +62 -34
- package/lib-next/theme/Navbar/styles.module.css +3 -39
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -143
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +158 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +25 -12
- package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
- package/lib-next/theme/Seo/index.js +11 -7
- package/lib-next/theme/TOC/index.js +12 -36
- package/lib-next/theme/TOC/styles.module.css +1 -1
- package/lib-next/theme/TOCCollapsible/index.js +13 -4
- package/lib-next/theme/TOCCollapsible/styles.module.css +1 -0
- package/lib-next/theme/TOCInline/index.js +10 -28
- package/lib-next/theme/TOCItems/index.js +85 -0
- package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
- package/lib-next/theme/Tabs/index.js +103 -48
- package/lib-next/theme/Tabs/styles.module.css +0 -13
- package/lib-next/theme/Tag/index.js +27 -0
- package/lib-next/theme/Tag/styles.module.css +70 -0
- package/lib-next/theme/TagsListByLetter/index.js +42 -0
- package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib-next/theme/TagsListInline/index.js +31 -0
- package/lib-next/theme/TagsListInline/styles.module.css +15 -0
- package/lib-next/theme/ThemeProvider/index.js +10 -7
- package/lib-next/theme/ThemedImage/index.js +5 -5
- package/lib-next/theme/Toggle/index.js +34 -37
- package/lib-next/theme/Toggle/styles.module.css +91 -3
- package/lib-next/theme/UserPreferencesProvider/index.js +9 -6
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
- package/lib-next/theme/hooks/useTheme.js +4 -5
- package/lib-next/theme/hooks/useWindowSize.js +2 -6
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/package.json +26 -24
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/index.ts +23 -20
- package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
- package/src/theme/Admonition/index.tsx +106 -0
- package/src/theme/AnnouncementBar/index.tsx +8 -12
- package/src/theme/AnnouncementBar/styles.module.css +23 -32
- package/src/theme/BackToTopButton/index.tsx +142 -0
- package/src/theme/BackToTopButton/styles.module.css +42 -0
- package/src/theme/BlogArchivePage/index.tsx +91 -0
- package/src/theme/BlogLayout/index.tsx +44 -0
- package/src/theme/BlogListPage/index.tsx +18 -25
- package/src/theme/BlogPostAuthor/index.tsx +49 -0
- package/{lib/theme/IconEdit → src/theme/BlogPostAuthor}/styles.module.css +4 -3
- package/src/theme/BlogPostAuthors/index.tsx +39 -0
- package/src/theme/BlogPostAuthors/styles.module.css +11 -0
- package/src/theme/BlogPostItem/index.tsx +70 -80
- package/src/theme/BlogPostPage/index.tsx +72 -35
- package/src/theme/BlogSidebar/index.tsx +11 -13
- package/src/theme/BlogSidebar/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +14 -57
- package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
- package/src/theme/CodeBlock/index.tsx +27 -151
- package/src/theme/CodeBlock/styles.module.css +12 -9
- package/src/theme/Details/index.tsx +24 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocCard/index.tsx +100 -0
- package/src/theme/DocCard/styles.module.css +43 -0
- package/src/theme/DocCardList/index.tsx +27 -0
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/src/theme/DocItem/index.tsx +30 -60
- package/src/theme/DocItem/styles.module.css +2 -11
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/{lib/theme/BlogPostItem → src/theme/DocItemFooter}/styles.module.css +8 -8
- package/src/theme/DocPage/index.tsx +44 -22
- package/src/theme/DocPaginator/index.tsx +5 -33
- package/src/theme/DocPaginatorNavLink/index.tsx +38 -0
- package/src/theme/DocSidebar/index.tsx +38 -39
- package/src/theme/DocSidebarItem/index.tsx +108 -49
- package/src/theme/DocSidebarItem/styles.module.css +4 -0
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/DocVersionBadge/index.tsx +30 -0
- package/src/theme/DocVersionBanner/index.tsx +48 -21
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- package/src/theme/Footer/index.tsx +103 -42
- package/src/theme/Heading/index.tsx +24 -31
- package/src/theme/Heading/styles.css +5 -6
- package/src/theme/Heading/styles.module.css +9 -5
- package/src/theme/IconArrow/index.tsx +2 -2
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/IconEdit/index.tsx +2 -2
- package/src/theme/IconExternalLink/index.tsx +2 -5
- package/src/theme/IconLanguage/index.tsx +2 -6
- package/src/theme/IconMenu/index.tsx +3 -3
- package/src/theme/LastUpdated/index.tsx +3 -2
- package/src/theme/Layout/index.tsx +3 -1
- package/src/theme/LayoutHead/index.tsx +18 -17
- package/src/theme/LayoutProviders/index.tsx +8 -5
- package/src/theme/Logo/index.tsx +21 -17
- package/src/theme/MDXComponents/index.tsx +39 -5
- package/src/theme/MDXComponents/styles.css +11 -0
- package/src/theme/MDXPage/index.tsx +10 -2
- package/src/theme/Navbar/index.tsx +62 -35
- package/src/theme/Navbar/styles.module.css +3 -39
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -149
- package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +180 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +41 -16
- package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/TOC/index.tsx +13 -35
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +13 -4
- package/src/theme/TOCCollapsible/styles.module.css +1 -0
- package/src/theme/TOCInline/index.tsx +13 -32
- package/src/theme/TOCItems/index.tsx +96 -0
- package/src/theme/Tabs/index.tsx +110 -54
- package/src/theme/Tabs/styles.module.css +0 -13
- package/src/theme/Tag/index.tsx +31 -0
- package/src/theme/Tag/styles.module.css +70 -0
- package/src/theme/TagsListByLetter/index.tsx +45 -0
- package/src/theme/TagsListByLetter/styles.module.css +11 -0
- package/src/theme/TagsListInline/index.tsx +35 -0
- package/src/theme/TagsListInline/styles.module.css +15 -0
- package/src/theme/ThemeProvider/index.tsx +6 -2
- package/src/theme/ThemedImage/index.tsx +5 -5
- package/src/theme/Toggle/index.tsx +36 -43
- package/src/theme/Toggle/styles.module.css +91 -3
- package/src/theme/UserPreferencesProvider/index.tsx +9 -6
- package/src/theme/hooks/useHideableNavbar.ts +32 -45
- package/src/theme/hooks/useTabGroupChoice.ts +2 -2
- package/src/theme/hooks/useTheme.ts +4 -5
- package/src/theme/hooks/useWindowSize.ts +2 -7
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/theme-classic.d.ts +822 -0
- package/src/translations.ts +41 -23
- package/src/types.d.ts +0 -629
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +160 -100
- package/babel.config.js +0 -35
- package/codeTranslations/README.md +0 -20
- package/codeTranslations/ar.json +0 -56
- package/codeTranslations/base.json +0 -110
- package/codeTranslations/bn.json +0 -56
- package/codeTranslations/da.json +0 -56
- package/codeTranslations/de.json +0 -56
- package/codeTranslations/es.json +0 -56
- package/codeTranslations/fa.json +0 -56
- package/codeTranslations/fil.json +0 -56
- package/codeTranslations/fr.json +0 -56
- package/codeTranslations/he.json +0 -56
- package/codeTranslations/hi.json +0 -56
- package/codeTranslations/ja.json +0 -56
- package/codeTranslations/ko.json +0 -56
- package/codeTranslations/pl.json +0 -56
- package/codeTranslations/pt-BR.json +0 -56
- package/codeTranslations/pt-PT.json +0 -56
- package/codeTranslations/ru.json +0 -56
- package/codeTranslations/tr.json +0 -56
- package/codeTranslations/vi.json +0 -56
- package/codeTranslations/zh-Hans.json +0 -56
- package/codeTranslations/zh-Hant.json +0 -56
- package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib/__tests__/translations.test.js +0 -112
- package/lib/__tests__/validateThemeConfig.test.js +0 -333
- package/lib/theme/AnnouncementBar/index.js +0 -72
- package/lib/theme/AnnouncementBar/styles.module.css +0 -72
- package/lib/theme/BlogListPage/index.js +0 -71
- package/lib/theme/BlogListPaginator/index.js +0 -63
- package/lib/theme/BlogPostItem/index.js +0 -161
- package/lib/theme/BlogPostPage/index.js +0 -69
- package/lib/theme/BlogPostPaginator/index.js +0 -64
- package/lib/theme/BlogSidebar/index.js +0 -51
- package/lib/theme/BlogSidebar/styles.module.css +0 -44
- package/lib/theme/BlogTagsListPage/index.js +0 -76
- package/lib/theme/BlogTagsPostsPage/index.js +0 -100
- package/lib/theme/CodeBlock/index.js +0 -253
- package/lib/theme/CodeBlock/styles.module.css +0 -68
- package/lib/theme/DocItem/index.js +0 -138
- package/lib/theme/DocItem/styles.module.css +0 -31
- package/lib/theme/DocPage/index.js +0 -139
- package/lib/theme/DocPage/styles.module.css +0 -85
- package/lib/theme/DocPaginator/index.js +0 -63
- package/lib/theme/DocSidebar/index.js +0 -133
- package/lib/theme/DocSidebar/styles.module.css +0 -106
- package/lib/theme/DocSidebarItem/index.js +0 -175
- package/lib/theme/DocVersionBanner/index.js +0 -128
- package/lib/theme/EditThisPage/index.js +0 -31
- package/lib/theme/Footer/index.js +0 -115
- package/lib/theme/Footer/styles.module.css +0 -15
- package/lib/theme/Heading/index.js +0 -76
- package/lib/theme/Heading/styles.css +0 -23
- package/lib/theme/Heading/styles.module.css +0 -15
- package/lib/theme/IconArrow/index.js +0 -28
- package/lib/theme/IconEdit/index.js +0 -34
- package/lib/theme/IconExternalLink/index.js +0 -30
- package/lib/theme/IconLanguage/index.js +0 -29
- package/lib/theme/IconMenu/index.js +0 -30
- package/lib/theme/LastUpdated/index.js +0 -61
- package/lib/theme/Layout/index.js +0 -64
- package/lib/theme/Layout/styles.css +0 -27
- package/lib/theme/LayoutHead/index.js +0 -144
- package/lib/theme/LayoutProviders/index.js +0 -38
- package/lib/theme/Logo/index.js +0 -60
- package/lib/theme/MDXComponents/index.js +0 -65
- package/lib/theme/MDXPage/index.js +0 -66
- package/lib/theme/Navbar/index.js +0 -248
- package/lib/theme/Navbar/styles.module.css +0 -63
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -210
- package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
- package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
- package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
- package/lib/theme/NavbarItem/index.js +0 -54
- package/lib/theme/NotFound.js +0 -57
- package/lib/theme/SearchBar.js +0 -15
- package/lib/theme/SearchMetadatas/index.js +0 -33
- package/lib/theme/Seo/index.js +0 -49
- package/lib/theme/SkipToContent/index.js +0 -71
- package/lib/theme/SkipToContent/styles.module.css +0 -14
- package/lib/theme/TOC/index.js +0 -60
- package/lib/theme/TOC/styles.module.css +0 -23
- package/lib/theme/TOCCollapsible/index.js +0 -51
- package/lib/theme/TOCCollapsible/styles.module.css +0 -49
- package/lib/theme/TOCInline/index.js +0 -53
- package/lib/theme/TOCInline/styles.module.css +0 -12
- package/lib/theme/TabItem/index.js +0 -32
- package/lib/theme/Tabs/index.js +0 -150
- package/lib/theme/Tabs/styles.module.css +0 -23
- package/lib/theme/ThemeContext.js +0 -21
- package/lib/theme/ThemeProvider/index.js +0 -38
- package/lib/theme/ThemedImage/index.js +0 -49
- package/lib/theme/ThemedImage/styles.module.css +0 -18
- package/lib/theme/Toggle/index.js +0 -94
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/Toggle/styles.module.css +0 -17
- package/lib/theme/UserPreferencesContext.js +0 -18
- package/lib/theme/UserPreferencesProvider/index.js +0 -36
- package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
- package/lib/theme/hooks/useDocs.js +0 -18
- package/lib/theme/hooks/useHideableNavbar.js +0 -92
- package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
- package/lib/theme/hooks/useLocationHash.js +0 -28
- package/lib/theme/hooks/useLockBodyScroll.js +0 -26
- package/lib/theme/hooks/usePrismTheme.js +0 -36
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib/theme/hooks/useTabGroupChoice.js +0 -51
- package/lib/theme/hooks/useTheme.js +0 -99
- package/lib/theme/hooks/useThemeContext.js +0 -31
- package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
- package/lib/theme/hooks/useWindowSize.js +0 -73
- package/lib/theme/prism-include-languages.js +0 -39
- package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib-next/__tests__/translations.test.js +0 -128
- package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
- package/lib-next/index.js +0 -221
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
- package/lib-next/theme/hooks/useLocationHash.js +0 -20
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/lib-next/translations.js +0 -145
- package/lib-next/validateThemeConfig.js +0 -319
- package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/src/__tests__/translations.test.ts +0 -116
- package/src/__tests__/validateThemeConfig.test.js +0 -333
- package/src/prism-include-languages.js +0 -11
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
- package/src/theme/hooks/useLocationHash.ts +0 -25
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
- package/tsconfig.json +0 -12
- package/update-code-translations.js +0 -242
- package/update-code-translations.test.js +0 -33
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
12
|
-
*
|
|
13
|
-
* This source code is licensed under the MIT license found in the
|
|
14
|
-
* LICENSE file in the root directory of this source tree.
|
|
15
|
-
*/
|
|
16
|
-
function useTOCHighlight(linkClassName, linkActiveClassName, topOffset) {
|
|
17
|
-
const [lastActiveLink, setLastActiveLink] = (0, _react.useState)(undefined);
|
|
18
|
-
(0, _react.useEffect)(() => {
|
|
19
|
-
function setActiveLink() {
|
|
20
|
-
function getActiveHeaderAnchor() {
|
|
21
|
-
const headersAnchors = Array.from(document.getElementsByClassName('anchor'));
|
|
22
|
-
const firstAnchorUnderViewportTop = headersAnchors.find(anchor => {
|
|
23
|
-
const {
|
|
24
|
-
top
|
|
25
|
-
} = anchor.getBoundingClientRect();
|
|
26
|
-
return top >= topOffset;
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
if (firstAnchorUnderViewportTop) {
|
|
30
|
-
// If first anchor in viewport is under a certain threshold, we consider it's not the active anchor.
|
|
31
|
-
// In such case, the active anchor is the previous one (if it exists), that may be above the viewport
|
|
32
|
-
if (firstAnchorUnderViewportTop.getBoundingClientRect().top >= topOffset) {
|
|
33
|
-
const previousAnchor = headersAnchors[headersAnchors.indexOf(firstAnchorUnderViewportTop) - 1];
|
|
34
|
-
return previousAnchor !== null && previousAnchor !== void 0 ? previousAnchor : firstAnchorUnderViewportTop;
|
|
35
|
-
} // If the anchor is at the top of the viewport, we consider it's the first anchor
|
|
36
|
-
else {
|
|
37
|
-
return firstAnchorUnderViewportTop;
|
|
38
|
-
}
|
|
39
|
-
} // no anchor under viewport top? (ie we are at the bottom of the page)
|
|
40
|
-
else {
|
|
41
|
-
// highlight the last anchor found
|
|
42
|
-
return headersAnchors[headersAnchors.length - 1];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const activeHeaderAnchor = getActiveHeaderAnchor();
|
|
47
|
-
|
|
48
|
-
if (activeHeaderAnchor) {
|
|
49
|
-
let index = 0;
|
|
50
|
-
let itemHighlighted = false; // @ts-expect-error: Must be <a> tags.
|
|
51
|
-
|
|
52
|
-
const links = document.getElementsByClassName(linkClassName);
|
|
53
|
-
|
|
54
|
-
while (index < links.length && !itemHighlighted) {
|
|
55
|
-
const link = links[index];
|
|
56
|
-
const {
|
|
57
|
-
href
|
|
58
|
-
} = link;
|
|
59
|
-
const anchorValue = decodeURIComponent(href.substring(href.indexOf('#') + 1));
|
|
60
|
-
|
|
61
|
-
if (activeHeaderAnchor.id === anchorValue) {
|
|
62
|
-
if (lastActiveLink) {
|
|
63
|
-
lastActiveLink.classList.remove(linkActiveClassName);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
link.classList.add(linkActiveClassName);
|
|
67
|
-
setLastActiveLink(link);
|
|
68
|
-
itemHighlighted = true;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
index += 1;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
document.addEventListener('scroll', setActiveLink);
|
|
77
|
-
document.addEventListener('resize', setActiveLink);
|
|
78
|
-
setActiveLink();
|
|
79
|
-
return () => {
|
|
80
|
-
document.removeEventListener('scroll', setActiveLink);
|
|
81
|
-
document.removeEventListener('resize', setActiveLink);
|
|
82
|
-
};
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
var _default = useTOCHighlight;
|
|
87
|
-
exports.default = _default;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _themeCommon = require("@docusaurus/theme-common");
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the MIT license found in the
|
|
16
|
-
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/
|
|
18
|
-
const TAB_CHOICE_PREFIX = 'docusaurus.tab.';
|
|
19
|
-
|
|
20
|
-
const useTabGroupChoice = () => {
|
|
21
|
-
const [tabGroupChoices, setChoices] = (0, _react.useState)({});
|
|
22
|
-
const setChoiceSyncWithLocalStorage = (0, _react.useCallback)((groupId, newChoice) => {
|
|
23
|
-
(0, _themeCommon.createStorageSlot)(`${TAB_CHOICE_PREFIX}${groupId}`).set(newChoice);
|
|
24
|
-
}, []);
|
|
25
|
-
(0, _react.useEffect)(() => {
|
|
26
|
-
try {
|
|
27
|
-
const localStorageChoices = {};
|
|
28
|
-
(0, _themeCommon.listStorageKeys)().forEach(storageKey => {
|
|
29
|
-
if (storageKey.startsWith(TAB_CHOICE_PREFIX)) {
|
|
30
|
-
const groupId = storageKey.substring(TAB_CHOICE_PREFIX.length);
|
|
31
|
-
localStorageChoices[groupId] = (0, _themeCommon.createStorageSlot)(storageKey).get();
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
setChoices(localStorageChoices);
|
|
35
|
-
} catch (err) {
|
|
36
|
-
console.error(err);
|
|
37
|
-
}
|
|
38
|
-
}, []);
|
|
39
|
-
return {
|
|
40
|
-
tabGroupChoices,
|
|
41
|
-
setTabGroupChoices: (groupId, newChoice) => {
|
|
42
|
-
setChoices(oldChoices => ({ ...oldChoices,
|
|
43
|
-
[groupId]: newChoice
|
|
44
|
-
}));
|
|
45
|
-
setChoiceSyncWithLocalStorage(groupId, newChoice);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
var _default = useTabGroupChoice;
|
|
51
|
-
exports.default = _default;
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _ExecutionEnvironment = _interopRequireDefault(require("@docusaurus/ExecutionEnvironment"));
|
|
11
|
-
|
|
12
|
-
var _themeCommon = require("@docusaurus/theme-common");
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
18
|
-
*
|
|
19
|
-
* This source code is licensed under the MIT license found in the
|
|
20
|
-
* LICENSE file in the root directory of this source tree.
|
|
21
|
-
*/
|
|
22
|
-
const ThemeStorage = (0, _themeCommon.createStorageSlot)('theme');
|
|
23
|
-
const themes = {
|
|
24
|
-
light: 'light',
|
|
25
|
-
dark: 'dark'
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
// Ensure to always return a valid theme even if input is invalid
|
|
29
|
-
const coerceToTheme = theme => {
|
|
30
|
-
return theme === themes.dark ? themes.dark : themes.light;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
const getInitialTheme = defaultMode => {
|
|
34
|
-
if (!_ExecutionEnvironment.default.canUseDOM) {
|
|
35
|
-
return coerceToTheme(defaultMode);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return coerceToTheme(document.documentElement.getAttribute('data-theme'));
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const storeTheme = newTheme => {
|
|
42
|
-
(0, _themeCommon.createStorageSlot)('theme').set(coerceToTheme(newTheme));
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
const useTheme = () => {
|
|
46
|
-
const {
|
|
47
|
-
colorMode: {
|
|
48
|
-
defaultMode,
|
|
49
|
-
disableSwitch,
|
|
50
|
-
respectPrefersColorScheme
|
|
51
|
-
}
|
|
52
|
-
} = (0, _themeCommon.useThemeConfig)();
|
|
53
|
-
const [theme, setTheme] = (0, _react.useState)(getInitialTheme(defaultMode));
|
|
54
|
-
const setLightTheme = (0, _react.useCallback)(() => {
|
|
55
|
-
setTheme(themes.light);
|
|
56
|
-
storeTheme(themes.light);
|
|
57
|
-
}, []);
|
|
58
|
-
const setDarkTheme = (0, _react.useCallback)(() => {
|
|
59
|
-
setTheme(themes.dark);
|
|
60
|
-
storeTheme(themes.dark);
|
|
61
|
-
}, []);
|
|
62
|
-
(0, _react.useEffect)(() => {
|
|
63
|
-
document.documentElement.setAttribute('data-theme', coerceToTheme(theme));
|
|
64
|
-
}, [theme]);
|
|
65
|
-
(0, _react.useEffect)(() => {
|
|
66
|
-
if (disableSwitch) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
try {
|
|
71
|
-
const storedTheme = ThemeStorage.get();
|
|
72
|
-
|
|
73
|
-
if (storedTheme !== null) {
|
|
74
|
-
setTheme(coerceToTheme(storedTheme));
|
|
75
|
-
}
|
|
76
|
-
} catch (err) {
|
|
77
|
-
console.error(err);
|
|
78
|
-
}
|
|
79
|
-
}, [setTheme]);
|
|
80
|
-
(0, _react.useEffect)(() => {
|
|
81
|
-
if (disableSwitch && !respectPrefersColorScheme) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
window.matchMedia('(prefers-color-scheme: dark)').addListener(({
|
|
86
|
-
matches
|
|
87
|
-
}) => {
|
|
88
|
-
setTheme(matches ? themes.dark : themes.light);
|
|
89
|
-
});
|
|
90
|
-
}, []);
|
|
91
|
-
return {
|
|
92
|
-
isDarkTheme: theme === themes.dark,
|
|
93
|
-
setLightTheme,
|
|
94
|
-
setDarkTheme
|
|
95
|
-
};
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
var _default = useTheme;
|
|
99
|
-
exports.default = _default;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _ThemeContext = _interopRequireDefault(require("@theme/ThemeContext"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
16
|
-
*
|
|
17
|
-
* This source code is licensed under the MIT license found in the
|
|
18
|
-
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/
|
|
20
|
-
function useThemeContext() {
|
|
21
|
-
const context = (0, _react.useContext)(_ThemeContext.default);
|
|
22
|
-
|
|
23
|
-
if (context == null) {
|
|
24
|
-
throw new Error('"useThemeContext" is used outside of "Layout" component. Please see https://docusaurus.io/docs/api/themes/configuration#usethemecontext.');
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return context;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
var _default = useThemeContext;
|
|
31
|
-
exports.default = _default;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _UserPreferencesContext = _interopRequireDefault(require("@theme/UserPreferencesContext"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
16
|
-
*
|
|
17
|
-
* This source code is licensed under the MIT license found in the
|
|
18
|
-
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/
|
|
20
|
-
function useUserPreferencesContext() {
|
|
21
|
-
const context = (0, _react.useContext)(_UserPreferencesContext.default);
|
|
22
|
-
|
|
23
|
-
if (context == null) {
|
|
24
|
-
throw new Error('"useUserPreferencesContext" is used outside of "Layout" component.');
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return context;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
var _default = useUserPreferencesContext;
|
|
31
|
-
exports.default = _default;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _ExecutionEnvironment = _interopRequireDefault(require("@docusaurus/ExecutionEnvironment"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
16
|
-
*
|
|
17
|
-
* This source code is licensed under the MIT license found in the
|
|
18
|
-
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/
|
|
20
|
-
const windowSizes = {
|
|
21
|
-
desktop: 'desktop',
|
|
22
|
-
mobile: 'mobile',
|
|
23
|
-
// This "ssr" value is very important to handle hydration FOUC / layout shifts
|
|
24
|
-
// You have to handle server-rendering explicitly on the call-site
|
|
25
|
-
// On the server, you may need to render BOTH the mobile/desktop elements (and hide one of them with mediaquery)
|
|
26
|
-
// We don't return "undefined" on purpose, to make it more explicit
|
|
27
|
-
ssr: 'ssr'
|
|
28
|
-
};
|
|
29
|
-
const DesktopThresholdWidth = 996;
|
|
30
|
-
|
|
31
|
-
function getWindowSize() {
|
|
32
|
-
if (!_ExecutionEnvironment.default.canUseDOM) {
|
|
33
|
-
return windowSizes.ssr;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return window.innerWidth > DesktopThresholdWidth ? windowSizes.desktop : windowSizes.mobile;
|
|
37
|
-
} // Simulate the SSR window size in dev, so that potential hydration FOUC/layout shift problems can be seen in dev too!
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const DevSimulateSSR = process.env.NODE_ENV === 'development' && true; // This hook returns an enum value on purpose!
|
|
41
|
-
// We don't want it to return the actual width value, for resize perf reasons
|
|
42
|
-
// We only want to re-render once a breakpoint is crossed
|
|
43
|
-
|
|
44
|
-
function useWindowSize() {
|
|
45
|
-
const [windowSize, setWindowSize] = (0, _react.useState)(() => {
|
|
46
|
-
if (DevSimulateSSR) {
|
|
47
|
-
return 'ssr';
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return getWindowSize();
|
|
51
|
-
});
|
|
52
|
-
(0, _react.useEffect)(() => {
|
|
53
|
-
if (!_ExecutionEnvironment.default.canUseDOM) {
|
|
54
|
-
return undefined;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function updateWindowSize() {
|
|
58
|
-
setWindowSize(getWindowSize());
|
|
59
|
-
} // @ts-expect-error: annoying TS setTimeout typing...
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const timeout = DevSimulateSSR ? setTimeout(updateWindowSize, 1000) : undefined;
|
|
63
|
-
window.addEventListener('resize', updateWindowSize);
|
|
64
|
-
return () => {
|
|
65
|
-
window.removeEventListener('resize', updateWindowSize);
|
|
66
|
-
clearTimeout(timeout);
|
|
67
|
-
};
|
|
68
|
-
}, []);
|
|
69
|
-
return windowSize;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
var _default = useWindowSize;
|
|
73
|
-
exports.default = _default;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _ExecutionEnvironment = _interopRequireDefault(require("@docusaurus/ExecutionEnvironment"));
|
|
9
|
-
|
|
10
|
-
var _docusaurus = _interopRequireDefault(require("@generated/docusaurus.config"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
16
|
-
*
|
|
17
|
-
* This source code is licensed under the MIT license found in the
|
|
18
|
-
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/
|
|
20
|
-
const prismIncludeLanguages = PrismObject => {
|
|
21
|
-
if (_ExecutionEnvironment.default.canUseDOM) {
|
|
22
|
-
const {
|
|
23
|
-
themeConfig: {
|
|
24
|
-
prism: {
|
|
25
|
-
additionalLanguages = []
|
|
26
|
-
} = {}
|
|
27
|
-
}
|
|
28
|
-
} = _docusaurus.default;
|
|
29
|
-
window.Prism = PrismObject;
|
|
30
|
-
additionalLanguages.forEach(lang => {
|
|
31
|
-
require(`prismjs/components/prism-${lang}`); // eslint-disable-line
|
|
32
|
-
|
|
33
|
-
});
|
|
34
|
-
delete window.Prism;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
var _default = prismIncludeLanguages;
|
|
39
|
-
exports.default = _default;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`getTranslationFiles should return translation files matching snapshot 1`] = `
|
|
4
|
-
Array [
|
|
5
|
-
Object {
|
|
6
|
-
"content": Object {
|
|
7
|
-
"item.label.Dropdown": Object {
|
|
8
|
-
"description": "Navbar item with label Dropdown",
|
|
9
|
-
"message": "Dropdown",
|
|
10
|
-
},
|
|
11
|
-
"item.label.Dropdown item 1": Object {
|
|
12
|
-
"description": "Navbar item with label Dropdown item 1",
|
|
13
|
-
"message": "Dropdown item 1",
|
|
14
|
-
},
|
|
15
|
-
"item.label.Dropdown item 2": Object {
|
|
16
|
-
"description": "Navbar item with label Dropdown item 2",
|
|
17
|
-
"message": "Dropdown item 2",
|
|
18
|
-
},
|
|
19
|
-
"title": Object {
|
|
20
|
-
"description": "The title in the navbar",
|
|
21
|
-
"message": "navbar title",
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
"path": "navbar",
|
|
25
|
-
},
|
|
26
|
-
Object {
|
|
27
|
-
"content": Object {
|
|
28
|
-
"copyright": Object {
|
|
29
|
-
"description": "The footer copyright",
|
|
30
|
-
"message": "Copyright FB",
|
|
31
|
-
},
|
|
32
|
-
"link.item.label.Link 1": Object {
|
|
33
|
-
"description": "The label of footer link with label=Link 1 linking to https://facebook.com",
|
|
34
|
-
"message": "Link 1",
|
|
35
|
-
},
|
|
36
|
-
"link.item.label.Link 2": Object {
|
|
37
|
-
"description": "The label of footer link with label=Link 2 linking to https://facebook.com",
|
|
38
|
-
"message": "Link 2",
|
|
39
|
-
},
|
|
40
|
-
"link.item.label.Link 3": Object {
|
|
41
|
-
"description": "The label of footer link with label=Link 3 linking to https://facebook.com",
|
|
42
|
-
"message": "Link 3",
|
|
43
|
-
},
|
|
44
|
-
"link.title.Footer link column 1": Object {
|
|
45
|
-
"description": "The title of the footer links column with title=Footer link column 1 in the footer",
|
|
46
|
-
"message": "Footer link column 1",
|
|
47
|
-
},
|
|
48
|
-
"link.title.Footer link column 2": Object {
|
|
49
|
-
"description": "The title of the footer links column with title=Footer link column 2 in the footer",
|
|
50
|
-
"message": "Footer link column 2",
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
"path": "footer",
|
|
54
|
-
},
|
|
55
|
-
]
|
|
56
|
-
`;
|
|
57
|
-
|
|
58
|
-
exports[`translateThemeConfig should return translated themeConfig matching snapshot 1`] = `
|
|
59
|
-
Object {
|
|
60
|
-
"announcementBar": Object {},
|
|
61
|
-
"colorMode": Object {},
|
|
62
|
-
"docs": Object {
|
|
63
|
-
"versionPersistence": "none",
|
|
64
|
-
},
|
|
65
|
-
"footer": Object {
|
|
66
|
-
"copyright": "Copyright FB (translated)",
|
|
67
|
-
"links": Array [
|
|
68
|
-
Object {
|
|
69
|
-
"items": Array [
|
|
70
|
-
Object {
|
|
71
|
-
"label": "Link 1 (translated)",
|
|
72
|
-
"to": "https://facebook.com",
|
|
73
|
-
},
|
|
74
|
-
Object {
|
|
75
|
-
"label": "Link 2 (translated)",
|
|
76
|
-
"to": "https://facebook.com",
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
"title": "Footer link column 1 (translated)",
|
|
80
|
-
},
|
|
81
|
-
Object {
|
|
82
|
-
"items": Array [
|
|
83
|
-
Object {
|
|
84
|
-
"label": "Link 3 (translated)",
|
|
85
|
-
"to": "https://facebook.com",
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
"title": "Footer link column 2 (translated)",
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
"style": "light",
|
|
92
|
-
},
|
|
93
|
-
"hideableSidebar": true,
|
|
94
|
-
"navbar": Object {
|
|
95
|
-
"hideOnScroll": false,
|
|
96
|
-
"items": Array [
|
|
97
|
-
Object {
|
|
98
|
-
"items": Array [
|
|
99
|
-
Object {
|
|
100
|
-
"items": Array [],
|
|
101
|
-
"label": "Dropdown item 1 (translated)",
|
|
102
|
-
},
|
|
103
|
-
Object {
|
|
104
|
-
"items": Array [],
|
|
105
|
-
"label": "Dropdown item 2 (translated)",
|
|
106
|
-
},
|
|
107
|
-
],
|
|
108
|
-
"label": "Dropdown (translated)",
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
"style": "dark",
|
|
112
|
-
"title": "navbar title (translated)",
|
|
113
|
-
},
|
|
114
|
-
"prism": Object {},
|
|
115
|
-
}
|
|
116
|
-
`;
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
import {getTranslationFiles, translateThemeConfig} from '../translations';
|
|
8
|
-
import {updateTranslationFileMessages} from '@docusaurus/utils';
|
|
9
|
-
const ThemeConfigSample = {
|
|
10
|
-
colorMode: {},
|
|
11
|
-
announcementBar: {},
|
|
12
|
-
prism: {},
|
|
13
|
-
docs: {
|
|
14
|
-
versionPersistence: 'none',
|
|
15
|
-
},
|
|
16
|
-
hideableSidebar: true,
|
|
17
|
-
navbar: {
|
|
18
|
-
title: 'navbar title',
|
|
19
|
-
style: 'dark',
|
|
20
|
-
hideOnScroll: false,
|
|
21
|
-
items: [
|
|
22
|
-
{
|
|
23
|
-
label: 'Dropdown',
|
|
24
|
-
items: [
|
|
25
|
-
{
|
|
26
|
-
label: 'Dropdown item 1',
|
|
27
|
-
items: [],
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
label: 'Dropdown item 2',
|
|
31
|
-
items: [],
|
|
32
|
-
},
|
|
33
|
-
],
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
},
|
|
37
|
-
footer: {
|
|
38
|
-
copyright: 'Copyright FB',
|
|
39
|
-
style: 'light',
|
|
40
|
-
links: [
|
|
41
|
-
{
|
|
42
|
-
title: 'Footer link column 1',
|
|
43
|
-
items: [
|
|
44
|
-
{
|
|
45
|
-
label: 'Link 1',
|
|
46
|
-
to: 'https://facebook.com',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
label: 'Link 2',
|
|
50
|
-
to: 'https://facebook.com',
|
|
51
|
-
},
|
|
52
|
-
],
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
title: 'Footer link column 2',
|
|
56
|
-
items: [
|
|
57
|
-
{
|
|
58
|
-
label: 'Link 3',
|
|
59
|
-
to: 'https://facebook.com',
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
},
|
|
63
|
-
],
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
function getSampleTranslationFiles() {
|
|
68
|
-
return getTranslationFiles({
|
|
69
|
-
themeConfig: ThemeConfigSample,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
function getSampleTranslationFilesTranslated() {
|
|
74
|
-
const translationFiles = getSampleTranslationFiles();
|
|
75
|
-
return translationFiles.map((translationFile) =>
|
|
76
|
-
updateTranslationFileMessages(
|
|
77
|
-
translationFile,
|
|
78
|
-
(message) => `${message} (translated)`,
|
|
79
|
-
),
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
describe('getTranslationFiles', () => {
|
|
84
|
-
test('should return translation files matching snapshot', () => {
|
|
85
|
-
expect(getSampleTranslationFiles()).toMatchSnapshot();
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
describe('translateThemeConfig', () => {
|
|
89
|
-
test('should not translate anything if translation files are untranslated', () => {
|
|
90
|
-
const translationFiles = getSampleTranslationFiles();
|
|
91
|
-
expect(
|
|
92
|
-
translateThemeConfig({
|
|
93
|
-
themeConfig: ThemeConfigSample,
|
|
94
|
-
translationFiles,
|
|
95
|
-
}),
|
|
96
|
-
).toEqual(ThemeConfigSample);
|
|
97
|
-
});
|
|
98
|
-
test('should return translated themeConfig matching snapshot', () => {
|
|
99
|
-
const translationFiles = getSampleTranslationFilesTranslated();
|
|
100
|
-
expect(
|
|
101
|
-
translateThemeConfig({
|
|
102
|
-
themeConfig: ThemeConfigSample,
|
|
103
|
-
translationFiles,
|
|
104
|
-
}),
|
|
105
|
-
).toMatchSnapshot();
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
describe('getTranslationFiles and translateThemeConfig isomorphism', () => {
|
|
109
|
-
function verifyIsomorphism(themeConfig) {
|
|
110
|
-
const translationFiles = getTranslationFiles({
|
|
111
|
-
themeConfig,
|
|
112
|
-
});
|
|
113
|
-
const translatedThemeConfig = translateThemeConfig({
|
|
114
|
-
themeConfig,
|
|
115
|
-
translationFiles,
|
|
116
|
-
});
|
|
117
|
-
expect(translatedThemeConfig).toEqual(themeConfig);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
test('should be verified for main sample', () => {
|
|
121
|
-
verifyIsomorphism(ThemeConfigSample);
|
|
122
|
-
}); // undefined footer should not make the translation code crash
|
|
123
|
-
// See https://github.com/facebook/docusaurus/issues/3936
|
|
124
|
-
|
|
125
|
-
test('should be verified for sample without footer', () => {
|
|
126
|
-
verifyIsomorphism({...ThemeConfigSample, footer: undefined});
|
|
127
|
-
});
|
|
128
|
-
});
|