@verdaccio/ui-components 5.0.0-next-9.22 → 5.0.0-next-9.23
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/build/Theme/ResetStyles.js.map +1 -1
- package/build/Theme/ResetStyles.mjs.map +1 -1
- package/build/Theme/StyleBaseline.js.map +1 -1
- package/build/Theme/StyleBaseline.mjs.map +1 -1
- package/build/Theme/ThemeProvider.js.map +1 -1
- package/build/Theme/ThemeProvider.mjs.map +1 -1
- package/build/Theme/colors.js.map +1 -1
- package/build/Theme/modes.js.map +1 -1
- package/build/Theme/theme.js.map +1 -1
- package/build/api/use-data-mutation.js.map +1 -1
- package/build/api/use-data-mutation.mjs.map +1 -1
- package/build/api/use-data.js.map +1 -1
- package/build/api/use-data.mjs.map +1 -1
- package/build/components/ActionBar/ActionBar.js.map +1 -1
- package/build/components/ActionBar/ActionBar.mjs.map +1 -1
- package/build/components/ActionBar/ActionBarAction.js.map +1 -1
- package/build/components/ActionBar/index.mjs +1 -2
- package/build/components/AppRoute/AppRoute.js.map +1 -1
- package/build/components/AppRoute/AppRoute.mjs.map +1 -1
- package/build/components/Author/Author.js.map +1 -1
- package/build/components/Author/index.mjs +1 -2
- package/build/components/Author/styles.js.map +1 -1
- package/build/components/CopyClipboard/CopyToClipBoard.js.map +1 -1
- package/build/components/Dependencies/Dependencies.js.map +1 -1
- package/build/components/Dependencies/DependencyBlock.js.map +1 -1
- package/build/components/Dependencies/DependencyBlock.mjs.map +1 -1
- package/build/components/Dependencies/index.mjs +1 -2
- package/build/components/Deprecated/Deprecated.js.map +1 -1
- package/build/components/Deprecated/index.mjs +1 -2
- package/build/components/Developers/Developers.js.map +1 -1
- package/build/components/Developers/Developers.mjs.map +1 -1
- package/build/components/Developers/Title.js.map +1 -1
- package/build/components/Distribution/Dist.js.map +1 -1
- package/build/components/Distribution/Dist.mjs.map +1 -1
- package/build/components/Distribution/index.mjs +1 -2
- package/build/components/Distribution/styles.js.map +1 -1
- package/build/components/Engines/Engines.js.map +1 -1
- package/build/components/Engines/index.mjs +1 -2
- package/build/components/Engines/styles.js.map +1 -1
- package/build/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/build/components/ErrorBoundary/index.mjs +1 -2
- package/build/components/Forbidden/Forbidden.js.map +1 -1
- package/build/components/Forbidden/index.mjs +1 -2
- package/build/components/FundButton/FundButton.js.map +1 -1
- package/build/components/FundButton/FundButton.mjs.map +1 -1
- package/build/components/FundButton/index.mjs +1 -2
- package/build/components/GenericError/GenericError.js.map +1 -1
- package/build/components/GenericError/index.mjs +1 -2
- package/build/components/HeaderInfoDialog/HeaderInfoDialog.js.map +1 -1
- package/build/components/HeaderInfoDialog/index.mjs +1 -2
- package/build/components/Heading/Heading.js.map +1 -1
- package/build/components/Heading/Heading.mjs.map +1 -1
- package/build/components/Heading/index.mjs +1 -2
- package/build/components/Help/Help.js.map +1 -1
- package/build/components/Help/Help.mjs.map +1 -1
- package/build/components/Help/index.mjs +1 -2
- package/build/components/Help/styles.js.map +1 -1
- package/build/components/Icons/DevsIcons/CommonJS2.js.map +1 -1
- package/build/components/Icons/DevsIcons/CommonJS2.mjs.map +1 -1
- package/build/components/Icons/DevsIcons/ES6Module2.js.map +1 -1
- package/build/components/Icons/DevsIcons/ES6Module2.mjs.map +1 -1
- package/build/components/Icons/DevsIcons/Git2.js.map +1 -1
- package/build/components/Icons/DevsIcons/Git2.mjs.map +1 -1
- package/build/components/Icons/DevsIcons/NodeJS2.js.map +1 -1
- package/build/components/Icons/DevsIcons/NodeJS2.mjs.map +1 -1
- package/build/components/Icons/DevsIcons/TypeScript2.js.map +1 -1
- package/build/components/Icons/DevsIcons/TypeScript2.mjs.map +1 -1
- package/build/components/Icons/Earth.js.map +1 -1
- package/build/components/Icons/FileBinary.js.map +1 -1
- package/build/components/Icons/Law.js.map +1 -1
- package/build/components/Icons/License.js.map +1 -1
- package/build/components/Icons/Managers/Npm2.js.map +1 -1
- package/build/components/Icons/Managers/Npm2.mjs.map +1 -1
- package/build/components/Icons/Managers/Pnpm2.js.map +1 -1
- package/build/components/Icons/Managers/Pnpm2.mjs.map +1 -1
- package/build/components/Icons/Managers/Yarn2.js.map +1 -1
- package/build/components/Icons/Managers/Yarn2.mjs.map +1 -1
- package/build/components/Icons/SvgIcon.js.map +1 -1
- package/build/components/Icons/Time.js.map +1 -1
- package/build/components/Icons/Version.js.map +1 -1
- package/build/components/Install/Install.js.map +1 -1
- package/build/components/Install/Install.mjs.map +1 -1
- package/build/components/Install/InstallListItem.js.map +1 -1
- package/build/components/Install/index.mjs +1 -2
- package/build/components/Keywords/KeywordListItems.js.map +1 -1
- package/build/components/Keywords/Keywords.js.map +1 -1
- package/build/components/Keywords/index.mjs +1 -2
- package/build/components/Label/Label.js.map +1 -1
- package/build/components/Label/index.mjs +1 -2
- package/build/components/Link/Link.js.map +1 -1
- package/build/components/Link/Link.mjs.map +1 -1
- package/build/components/Link/index.mjs +1 -2
- package/build/components/LinkExternal/LinkExternal.js.map +1 -1
- package/build/components/LinkExternal/index.mjs +1 -2
- package/build/components/Loading/Loading.js.map +1 -1
- package/build/components/Loading/Spinner/Spinner.js.map +1 -1
- package/build/components/Loading/Spinner/index.mjs +1 -2
- package/build/components/Loading/index.mjs +1 -2
- package/build/components/Loading/styles.js.map +1 -1
- package/build/components/LoginDialog/LoginDialog.d.ts +1 -0
- package/build/components/LoginDialog/LoginDialog.js +11 -2
- package/build/components/LoginDialog/LoginDialog.js.map +1 -1
- package/build/components/LoginDialog/LoginDialog.mjs +10 -2
- package/build/components/LoginDialog/LoginDialog.mjs.map +1 -1
- package/build/components/LoginDialog/LoginDialogCloseButton.js.map +1 -1
- package/build/components/LoginDialog/LoginDialogForm.js.map +1 -1
- package/build/components/LoginDialog/LoginDialogFormError.js.map +1 -1
- package/build/components/LoginDialog/index.mjs +1 -2
- package/build/components/LoginForm/Login.js +0 -23
- package/build/components/LoginForm/Login.js.map +1 -1
- package/build/components/LoginForm/Login.mjs +0 -21
- package/build/components/LoginForm/Login.mjs.map +1 -1
- package/build/components/LoginForm/PasswordField.js.map +1 -1
- package/build/components/LoginForm/UsernameField.js.map +1 -1
- package/build/components/LoginForm/styles.js.map +1 -1
- package/build/components/LoginForm/useLoginForm.js.map +1 -1
- package/build/components/Logo/Logo.js.map +1 -1
- package/build/components/Logo/Logo.mjs.map +1 -1
- package/build/components/Logo/index.mjs +1 -2
- package/build/components/MenuItem/MenuItem.js.map +1 -1
- package/build/components/MenuItem/MenuItem.mjs.map +1 -1
- package/build/components/MenuItem/index.mjs +1 -2
- package/build/components/NoItems/NoItems.js.map +1 -1
- package/build/components/NoItems/index.mjs +1 -2
- package/build/components/NotFound/NotFound.js.map +1 -1
- package/build/components/NotFound/index.mjs +1 -2
- package/build/components/Package/Package.js.map +1 -1
- package/build/components/Package/Package.mjs.map +1 -1
- package/build/components/Package/index.mjs +1 -2
- package/build/components/Package/styles.js.map +1 -1
- package/build/components/Package/styles.mjs.map +1 -1
- package/build/components/PackageList/PackageList.js.map +1 -1
- package/build/components/PackageList/PackageList.mjs.map +1 -1
- package/build/components/PackageList/index.mjs +1 -2
- package/build/components/Person/Person.js.map +1 -1
- package/build/components/Person/Person.mjs.map +1 -1
- package/build/components/Person/PersonTooltip.js.map +1 -1
- package/build/components/Person/PersonTooltip.mjs.map +1 -1
- package/build/components/Person/index.mjs +1 -2
- package/build/components/Person/utils.mjs.map +1 -1
- package/build/components/RawViewer/RawViewer.js.map +1 -1
- package/build/components/RawViewer/index.mjs +1 -2
- package/build/components/Readme/Readme.js.map +1 -1
- package/build/components/Readme/index.mjs +1 -2
- package/build/components/Readme/utils.js.map +1 -1
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.js.map +1 -1
- package/build/components/RegistryInfoDialog/index.mjs +1 -2
- package/build/components/RegistryInfoDialog/styles.js.map +1 -1
- package/build/components/Repository/Repository.js.map +1 -1
- package/build/components/Repository/Repository.mjs.map +1 -1
- package/build/components/Repository/index.mjs +1 -2
- package/build/components/Search/AutoComplete/AutoComplete.js.map +1 -1
- package/build/components/Search/AutoComplete/index.mjs +1 -2
- package/build/components/Search/AutoComplete/styles.js.map +1 -1
- package/build/components/Search/Search.js.map +1 -1
- package/build/components/Search/Search.mjs.map +1 -1
- package/build/components/Search/SearchItem.js.map +1 -1
- package/build/components/Search/index.mjs +1 -2
- package/build/components/Search/styles.js.map +1 -1
- package/build/components/SettingsMenu/SettingsMenu.js.map +1 -1
- package/build/components/SettingsMenu/SettingsMenu.mjs.map +1 -1
- package/build/components/SettingsMenu/index.mjs +1 -2
- package/build/components/SideBarTitle/SideBarTitle.js.map +1 -1
- package/build/components/SideBarTitle/SideBarTitle.mjs.map +1 -1
- package/build/components/SideBarTitle/index.mjs +1 -2
- package/build/components/UpLinks/UpLinks.js.map +1 -1
- package/build/components/UpLinks/UpLinks.mjs.map +1 -1
- package/build/components/UpLinks/UplinkLink.js.map +1 -1
- package/build/components/UpLinks/UplinkLink.mjs.map +1 -1
- package/build/components/UpLinks/index.mjs +1 -2
- package/build/components/UpLinks/styles.js.map +1 -1
- package/build/components/UpLinks/styles.mjs.map +1 -1
- package/build/components/Versions/HistoryList.js.map +1 -1
- package/build/components/Versions/HistoryList.mjs.map +1 -1
- package/build/components/Versions/TagList.js.map +1 -1
- package/build/components/Versions/Versions.js.map +1 -1
- package/build/components/Versions/Versions.mjs.map +1 -1
- package/build/components/Versions/index.mjs +1 -2
- package/build/components/Versions/styles.js.map +1 -1
- package/build/components/Versions/styles.mjs.map +1 -1
- package/build/hooks/useLocalStorage.js.map +1 -1
- package/build/layouts/Security/Dialog.js.map +1 -1
- package/build/layouts/Version/Version.js.map +1 -1
- package/build/layouts/Version/Version.mjs.map +1 -1
- package/build/layouts/Version/index.mjs +1 -2
- package/build/pages/Front/Home.js.map +1 -1
- package/build/pages/Front/index.mjs +1 -2
- package/build/pages/Security/AddUser.js.map +1 -1
- package/build/pages/Security/ChangePassword.js.map +1 -1
- package/build/pages/Security/Login.js.map +1 -1
- package/build/pages/Security/Success.js.map +1 -1
- package/build/pages/Stage/StageDetail.js.map +1 -1
- package/build/pages/Stage/StageList.js.map +1 -1
- package/build/pages/Version/Version.js.map +1 -1
- package/build/pages/Version/index.mjs +1 -2
- package/build/providers/AppConfigurationProvider/AppConfigurationProvider.js.map +1 -1
- package/build/providers/AppConfigurationProvider/index.mjs +1 -2
- package/build/providers/AuthProvider/AuthProvider.js.map +1 -1
- package/build/providers/AuthProvider/index.mjs +1 -2
- package/build/providers/AuthProvider/utils.js.map +1 -1
- package/build/providers/DownloadProvider/DownloadProvider.js.map +1 -1
- package/build/providers/DownloadProvider/index.mjs +1 -2
- package/build/providers/ManifestsProvider/ManifestsProvider.js.map +1 -1
- package/build/providers/ManifestsProvider/index.mjs +1 -2
- package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.js.map +1 -1
- package/build/providers/PersistenceSettingProvider/index.mjs +1 -2
- package/build/providers/SearchProvider/SearchProvider.js.map +1 -1
- package/build/providers/SearchProvider/index.mjs +1 -2
- package/build/providers/TranslatorProvider/TranslatorProvider.js.map +1 -1
- package/build/providers/TranslatorProvider/index.mjs +1 -2
- package/build/providers/VersionProvider/VersionProvider.js.map +1 -1
- package/build/providers/VersionProvider/index.mjs +1 -2
- package/build/sections/Detail/ContainerContent.js.map +1 -1
- package/build/sections/Detail/ContainerContent.mjs.map +1 -1
- package/build/sections/Detail/Detail.js.map +1 -1
- package/build/sections/Detail/Detail.mjs.map +1 -1
- package/build/sections/Detail/ReadmeSection.js.map +1 -1
- package/build/sections/Detail/Tabs.js.map +1 -1
- package/build/sections/Detail/Tabs.mjs.map +1 -1
- package/build/sections/Detail/index.mjs +1 -2
- package/build/sections/Footer/Footer.js.map +1 -1
- package/build/sections/Footer/Footer.mjs.map +1 -1
- package/build/sections/Footer/index.mjs +1 -2
- package/build/sections/Footer/styles.js.map +1 -1
- package/build/sections/Header/Header.js.map +1 -1
- package/build/sections/Header/Header.mjs.map +1 -1
- package/build/sections/Header/HeaderGreetings.js.map +1 -1
- package/build/sections/Header/HeaderGreetings.mjs.map +1 -1
- package/build/sections/Header/HeaderLeft.js.map +1 -1
- package/build/sections/Header/HeaderLeft.mjs.map +1 -1
- package/build/sections/Header/HeaderMenu.js +10 -0
- package/build/sections/Header/HeaderMenu.js.map +1 -1
- package/build/sections/Header/HeaderMenu.mjs +10 -0
- package/build/sections/Header/HeaderMenu.mjs.map +1 -1
- package/build/sections/Header/HeaderRight.js.map +1 -1
- package/build/sections/Header/HeaderRight.mjs.map +1 -1
- package/build/sections/Header/HeaderSettingsDialog.js.map +1 -1
- package/build/sections/Header/HeaderToolTip.js.map +1 -1
- package/build/sections/Header/HeaderToolTipIcon.js.map +1 -1
- package/build/sections/Header/HeaderToolTipIcon.mjs.map +1 -1
- package/build/sections/Header/LanguageSwitch.js.map +1 -1
- package/build/sections/Header/LanguageSwitch.mjs.map +1 -1
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js.map +1 -1
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs.map +1 -1
- package/build/sections/Header/RegistryInfoContent/index.mjs +1 -2
- package/build/sections/Header/RegistryInfoContent/styles.js.map +1 -1
- package/build/sections/Header/index.mjs +1 -2
- package/build/sections/Header/styles.js.map +1 -1
- package/build/sections/Home/Home.js.map +1 -1
- package/build/sections/Home/index.mjs +1 -2
- package/build/sections/Security/AddUser.js.map +1 -1
- package/build/sections/Security/AddUser.mjs.map +1 -1
- package/build/sections/Security/ChangePassword.js +41 -16
- package/build/sections/Security/ChangePassword.js.map +1 -1
- package/build/sections/Security/ChangePassword.mjs +41 -16
- package/build/sections/Security/ChangePassword.mjs.map +1 -1
- package/build/sections/Security/Login.js.map +1 -1
- package/build/sections/Security/Login.mjs.map +1 -1
- package/build/sections/Security/Success.js.map +1 -1
- package/build/sections/Security/styles.js.map +1 -1
- package/build/sections/Security/utils.js.map +1 -1
- package/build/sections/SideBar/Sidebar.js.map +1 -1
- package/build/sections/SideBar/Sidebar.mjs.map +1 -1
- package/build/sections/SideBar/index.mjs +1 -2
- package/build/sections/Stage/StageActions.js.map +1 -1
- package/build/sections/Stage/StageActions.mjs.map +1 -1
- package/build/sections/Stage/StageDetail.js.map +1 -1
- package/build/sections/Stage/StageDetail.mjs.map +1 -1
- package/build/sections/Stage/StageList.js.map +1 -1
- package/build/sections/Stage/StageList.mjs.map +1 -1
- package/build/sections/Stage/useRequireSession.js.map +1 -1
- package/build/sections/Stage/useRequireSession.mjs.map +1 -1
- package/build/sections/Stage/useStage.js.map +1 -1
- package/build/sections/Stage/useStage.mjs.map +1 -1
- package/build/store/api.js.map +1 -1
- package/build/store/api.mjs.map +1 -1
- package/build/store/index.mjs +1 -2
- package/build/store/storage.js.map +1 -1
- package/build/utils/loadable.js.map +1 -1
- package/build/utils/schemas.d.ts +0 -2
- package/build/utils/schemas.js +0 -1
- package/build/utils/schemas.js.map +1 -1
- package/build/utils/schemas.mjs +0 -1
- package/build/utils/schemas.mjs.map +1 -1
- package/build/utils/token.js.map +1 -1
- package/build/utils/url.js.map +1 -1
- package/build/utils/url.mjs.map +1 -1
- package/build/utils/utils.js.map +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderLeft.js","names":[],"sources":["../../../src/sections/Header/HeaderLeft.tsx"],"sourcesContent":["import Toolbar from '@mui/material/Toolbar';\nimport React from 'react';\nimport { Link as RouterLink } from 'react-router';\n\nimport { Logo, Search } from '../../';\nimport { SearchWrapper } from './styles';\n\ninterface Props {\n showSearch?: boolean;\n}\n\nconst HeaderLeft: React.FC<Props> = ({ showSearch }) => (\n <Toolbar\n sx={{\n display: 'flex',\n padding: 0,\n marginLeft: 1,\n flex: 1,\n '@media (min-width: 600px)': {\n padding: 0,\n marginLeft: 1,\n marginRight: '20px',\n },\n }}\n >\n <RouterLink to={'/'}>\n <Logo />\n </RouterLink>\n {showSearch && (\n <SearchWrapper data-testid=\"search-container\">\n <Search />\n </SearchWrapper>\n )}\n </Toolbar>\n);\n\nexport default HeaderLeft;\n"],"mappings":";;;;;;;;;;;;AAWA,IAAM,cAA+B,EAAE,iBACrC,iBAAA,GAAA,kBAAA,KAAA,
|
|
1
|
+
{"version":3,"file":"HeaderLeft.js","names":["Toolbar","RouterLink","Logo","SearchWrapper","Search"],"sources":["../../../src/sections/Header/HeaderLeft.tsx"],"sourcesContent":["import Toolbar from '@mui/material/Toolbar';\nimport React from 'react';\nimport { Link as RouterLink } from 'react-router';\n\nimport { Logo, Search } from '../../';\nimport { SearchWrapper } from './styles';\n\ninterface Props {\n showSearch?: boolean;\n}\n\nconst HeaderLeft: React.FC<Props> = ({ showSearch }) => (\n <Toolbar\n sx={{\n display: 'flex',\n padding: 0,\n marginLeft: 1,\n flex: 1,\n '@media (min-width: 600px)': {\n padding: 0,\n marginLeft: 1,\n marginRight: '20px',\n },\n }}\n >\n <RouterLink to={'/'}>\n <Logo />\n </RouterLink>\n {showSearch && (\n <SearchWrapper data-testid=\"search-container\">\n <Search />\n </SearchWrapper>\n )}\n </Toolbar>\n);\n\nexport default HeaderLeft;\n"],"mappings":";;;;;;;;;;;;AAWA,IAAM,cAA+B,EAAE,iBACrC,iBAAA,GAAA,kBAAA,KAAA,CAACA,sBAAAA,SAAD;CACE,IAAI;EACF,SAAS;EACT,SAAS;EACT,YAAY;EACZ,MAAM;EACN,6BAA6B;GAC3B,SAAS;GACT,YAAY;GACZ,aAAa;EACf;CACF;CAXF,UAAA,CAaE,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,MAAD;EAAY,IAAI;EACd,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,SAAD,CAAO,CAAA;CACG,CAAA,GACX,cACC,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,eAAD;EAAe,eAAY;EACzB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,SAAD,CAAS,CAAA;CACI,CAAA,CAEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderLeft.mjs","names":[],"sources":["../../../src/sections/Header/HeaderLeft.tsx"],"sourcesContent":["import Toolbar from '@mui/material/Toolbar';\nimport React from 'react';\nimport { Link as RouterLink } from 'react-router';\n\nimport { Logo, Search } from '../../';\nimport { SearchWrapper } from './styles';\n\ninterface Props {\n showSearch?: boolean;\n}\n\nconst HeaderLeft: React.FC<Props> = ({ showSearch }) => (\n <Toolbar\n sx={{\n display: 'flex',\n padding: 0,\n marginLeft: 1,\n flex: 1,\n '@media (min-width: 600px)': {\n padding: 0,\n marginLeft: 1,\n marginRight: '20px',\n },\n }}\n >\n <RouterLink to={'/'}>\n <Logo />\n </RouterLink>\n {showSearch && (\n <SearchWrapper data-testid=\"search-container\">\n <Search />\n </SearchWrapper>\n )}\n </Toolbar>\n);\n\nexport default HeaderLeft;\n"],"mappings":";;;;;;;;;AAWA,IAAM,cAA+B,EAAE,iBACrC,qBAAC,SAAD;CACE,IAAI;EACF,SAAS;EACT,SAAS;EACT,YAAY;EACZ,MAAM;EACN,6BAA6B;GAC3B,SAAS;GACT,YAAY;GACZ,aAAa;EACf;CACF;CAXF,UAAA,CAaE,
|
|
1
|
+
{"version":3,"file":"HeaderLeft.mjs","names":["RouterLink"],"sources":["../../../src/sections/Header/HeaderLeft.tsx"],"sourcesContent":["import Toolbar from '@mui/material/Toolbar';\nimport React from 'react';\nimport { Link as RouterLink } from 'react-router';\n\nimport { Logo, Search } from '../../';\nimport { SearchWrapper } from './styles';\n\ninterface Props {\n showSearch?: boolean;\n}\n\nconst HeaderLeft: React.FC<Props> = ({ showSearch }) => (\n <Toolbar\n sx={{\n display: 'flex',\n padding: 0,\n marginLeft: 1,\n flex: 1,\n '@media (min-width: 600px)': {\n padding: 0,\n marginLeft: 1,\n marginRight: '20px',\n },\n }}\n >\n <RouterLink to={'/'}>\n <Logo />\n </RouterLink>\n {showSearch && (\n <SearchWrapper data-testid=\"search-container\">\n <Search />\n </SearchWrapper>\n )}\n </Toolbar>\n);\n\nexport default HeaderLeft;\n"],"mappings":";;;;;;;;;AAWA,IAAM,cAA+B,EAAE,iBACrC,qBAAC,SAAD;CACE,IAAI;EACF,SAAS;EACT,SAAS;EACT,YAAY;EACZ,MAAM;EACN,6BAA6B;GAC3B,SAAS;GACT,YAAY;GACZ,aAAa;EACf;CACF;CAXF,UAAA,CAaE,oBAACA,MAAD;EAAY,IAAI;EACd,UAAA,oBAAC,MAAD,CAAO,CAAA;CACG,CAAA,GACX,cACC,oBAAC,eAAD;EAAe,eAAY;EACzB,UAAA,oBAAC,QAAD,CAAS,CAAA;CACI,CAAA,CAEV"}
|
|
@@ -23,6 +23,7 @@ var HeaderMenu = ({ onLogout, username, isMenuOpen = false, anchorEl, onLoggedIn
|
|
|
23
23
|
const navigate = (0, react_router.useNavigate)();
|
|
24
24
|
const { configOptions } = require_AppConfigurationProvider.useConfig();
|
|
25
25
|
const stageEnabled = configOptions?.flags?.stage;
|
|
26
|
+
const changePasswordEnabled = configOptions?.flags?.changePassword;
|
|
26
27
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_IconButton.default, {
|
|
27
28
|
color: "inherit",
|
|
28
29
|
"data-testid": "logInDialogIcon",
|
|
@@ -44,6 +45,15 @@ var HeaderMenu = ({ onLogout, username, isMenuOpen = false, anchorEl, onLoggedIn
|
|
|
44
45
|
},
|
|
45
46
|
children: [
|
|
46
47
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_HeaderGreetings.default, { username }) }),
|
|
48
|
+
changePasswordEnabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.default, {
|
|
49
|
+
"data-testid": "changePasswordMenuItem",
|
|
50
|
+
id: "changePasswordMenuItem",
|
|
51
|
+
onClick: () => {
|
|
52
|
+
onLoggedInMenuClose();
|
|
53
|
+
navigate(require_routes.Route.CHANGE_PASSWORD);
|
|
54
|
+
},
|
|
55
|
+
children: t("security.changePassword.title")
|
|
56
|
+
}),
|
|
47
57
|
stageEnabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.default, {
|
|
48
58
|
"data-testid": "stagedPackagesMenuItem",
|
|
49
59
|
id: "stagedPackagesMenuItem",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderMenu.js","names":[],"sources":["../../../src/sections/Header/HeaderMenu.tsx"],"sourcesContent":["import AccountCircle from '@mui/icons-material/AccountCircle';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport type { MouseEvent } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { MenuItem } from '../../';\nimport { useConfig } from '../../providers/AppConfigurationProvider/AppConfigurationProvider';\nimport { Route } from '../../utils';\nimport HeaderGreetings from './HeaderGreetings';\n\n// Workaround: MUI v7 MenuProps type resolution breaks inherited PopoverProps.\nconst TypedMenu = Menu as React.FC<any>;\n\ninterface Props {\n username: string;\n isMenuOpen: boolean;\n anchorEl?: Element | null | undefined;\n onLogout: () => void;\n onLoggedInMenu: (event: MouseEvent<HTMLButtonElement>) => void;\n onLoggedInMenuClose: () => void;\n}\n\nconst HeaderMenu: React.FC<Props> = ({\n onLogout,\n username,\n isMenuOpen = false,\n anchorEl,\n onLoggedInMenu,\n onLoggedInMenuClose,\n}) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { configOptions } = useConfig();\n const stageEnabled = configOptions?.flags?.stage;\n return (\n <>\n <IconButton\n color=\"inherit\"\n data-testid=\"logInDialogIcon\"\n id=\"header--button-account\"\n onClick={onLoggedInMenu}\n size=\"large\"\n >\n <AccountCircle />\n </IconButton>\n <TypedMenu\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n onClose={onLoggedInMenuClose}\n open={isMenuOpen}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem>\n <HeaderGreetings username={username} />\n </MenuItem>\n {stageEnabled && (\n <MenuItem\n data-testid=\"stagedPackagesMenuItem\"\n id=\"stagedPackagesMenuItem\"\n onClick={() => {\n onLoggedInMenuClose();\n navigate(Route.STAGE);\n }}\n >\n {t('stage.menu')}\n </MenuItem>\n )}\n <MenuItem data-testid=\"logOutDialogIcon\" id=\"logOutDialogIcon\" onClick={onLogout}>\n {t('button.logout')}\n </MenuItem>\n </TypedMenu>\n </>\n );\n};\n\nexport default HeaderMenu;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAcA,IAAM,
|
|
1
|
+
{"version":3,"file":"HeaderMenu.js","names":["Menu","useTranslation","useNavigate","useConfig","_Fragment","IconButton","AccountCircle","MenuItem","HeaderGreetings","Route"],"sources":["../../../src/sections/Header/HeaderMenu.tsx"],"sourcesContent":["import AccountCircle from '@mui/icons-material/AccountCircle';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport type { MouseEvent } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { MenuItem } from '../../';\nimport { useConfig } from '../../providers/AppConfigurationProvider/AppConfigurationProvider';\nimport { Route } from '../../utils';\nimport HeaderGreetings from './HeaderGreetings';\n\n// Workaround: MUI v7 MenuProps type resolution breaks inherited PopoverProps.\nconst TypedMenu = Menu as React.FC<any>;\n\ninterface Props {\n username: string;\n isMenuOpen: boolean;\n anchorEl?: Element | null | undefined;\n onLogout: () => void;\n onLoggedInMenu: (event: MouseEvent<HTMLButtonElement>) => void;\n onLoggedInMenuClose: () => void;\n}\n\nconst HeaderMenu: React.FC<Props> = ({\n onLogout,\n username,\n isMenuOpen = false,\n anchorEl,\n onLoggedInMenu,\n onLoggedInMenuClose,\n}) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { configOptions } = useConfig();\n const stageEnabled = configOptions?.flags?.stage;\n const changePasswordEnabled = configOptions?.flags?.changePassword;\n return (\n <>\n <IconButton\n color=\"inherit\"\n data-testid=\"logInDialogIcon\"\n id=\"header--button-account\"\n onClick={onLoggedInMenu}\n size=\"large\"\n >\n <AccountCircle />\n </IconButton>\n <TypedMenu\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n onClose={onLoggedInMenuClose}\n open={isMenuOpen}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem>\n <HeaderGreetings username={username} />\n </MenuItem>\n {changePasswordEnabled && (\n <MenuItem\n data-testid=\"changePasswordMenuItem\"\n id=\"changePasswordMenuItem\"\n onClick={() => {\n onLoggedInMenuClose();\n navigate(Route.CHANGE_PASSWORD);\n }}\n >\n {t('security.changePassword.title')}\n </MenuItem>\n )}\n {stageEnabled && (\n <MenuItem\n data-testid=\"stagedPackagesMenuItem\"\n id=\"stagedPackagesMenuItem\"\n onClick={() => {\n onLoggedInMenuClose();\n navigate(Route.STAGE);\n }}\n >\n {t('stage.menu')}\n </MenuItem>\n )}\n <MenuItem data-testid=\"logOutDialogIcon\" id=\"logOutDialogIcon\" onClick={onLogout}>\n {t('button.logout')}\n </MenuItem>\n </TypedMenu>\n </>\n );\n};\n\nexport default HeaderMenu;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAcA,IAAM,YAAYA,mBAAAA;AAWlB,IAAM,cAA+B,EACnC,UACA,UACA,aAAa,OACb,UACA,gBACA,0BACI;CACJ,MAAM,EAAE,OAAA,GAAMC,cAAAA,eAAAA,CAAe;CAC7B,MAAM,YAAA,GAAWC,aAAAA,YAAAA,CAAY;CAC7B,MAAM,EAAE,kBAAkBC,iCAAAA,UAAU;CACpC,MAAM,eAAe,eAAe,OAAO;CAC3C,MAAM,wBAAwB,eAAe,OAAO;CACpD,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAAC,kBAAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,SAAD;EACE,OAAM;EACN,eAAY;EACZ,IAAG;EACH,SAAS;EACT,MAAK;EAEL,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,kCAAAA,SAAD,CAAgB,CAAA;CACN,CAAA,GACZ,iBAAA,GAAA,kBAAA,KAAA,CAAC,WAAD;EACY;EACV,cAAc;GACZ,UAAU;GACV,YAAY;EACd;EACA,SAAS;EACT,MAAM;EACN,iBAAiB;GACf,UAAU;GACV,YAAY;EACd;EAXF,UAAA;GAaE,iBAAA,GAAA,kBAAA,IAAA,CAACC,iBAAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,SAAD,EAA2B,SAAW,CAAA,EAC9B,CAAA;GACT,yBACC,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,SAAD;IACE,eAAY;IACZ,IAAG;IACH,eAAe;KACb,oBAAoB;KACpB,SAASE,eAAAA,MAAM,eAAe;IAChC;IAEC,UAAA,EAAE,+BAA+B;GAC1B,CAAA;GAEX,gBACC,iBAAA,GAAA,kBAAA,IAAA,CAACF,iBAAAA,SAAD;IACE,eAAY;IACZ,IAAG;IACH,eAAe;KACb,oBAAoB;KACpB,SAASE,eAAAA,MAAM,KAAK;IACtB;IAEC,UAAA,EAAE,YAAY;GACP,CAAA;GAEZ,iBAAA,GAAA,kBAAA,IAAA,CAACF,iBAAAA,SAAD;IAAU,eAAY;IAAmB,IAAG;IAAmB,SAAS;IACrE,UAAA,EAAE,eAAe;GACV,CAAA;EACD;CACX,CAAA,CAAA,EAAA,CAAA;AAEN"}
|
|
@@ -18,6 +18,7 @@ var HeaderMenu = ({ onLogout, username, isMenuOpen = false, anchorEl, onLoggedIn
|
|
|
18
18
|
const navigate = useNavigate();
|
|
19
19
|
const { configOptions } = useConfig();
|
|
20
20
|
const stageEnabled = configOptions?.flags?.stage;
|
|
21
|
+
const changePasswordEnabled = configOptions?.flags?.changePassword;
|
|
21
22
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(IconButton, {
|
|
22
23
|
color: "inherit",
|
|
23
24
|
"data-testid": "logInDialogIcon",
|
|
@@ -39,6 +40,15 @@ var HeaderMenu = ({ onLogout, username, isMenuOpen = false, anchorEl, onLoggedIn
|
|
|
39
40
|
},
|
|
40
41
|
children: [
|
|
41
42
|
/* @__PURE__ */ jsx(MenuItem, { children: /* @__PURE__ */ jsx(HeaderGreetings, { username }) }),
|
|
43
|
+
changePasswordEnabled && /* @__PURE__ */ jsx(MenuItem, {
|
|
44
|
+
"data-testid": "changePasswordMenuItem",
|
|
45
|
+
id: "changePasswordMenuItem",
|
|
46
|
+
onClick: () => {
|
|
47
|
+
onLoggedInMenuClose();
|
|
48
|
+
navigate(Route$1.CHANGE_PASSWORD);
|
|
49
|
+
},
|
|
50
|
+
children: t("security.changePassword.title")
|
|
51
|
+
}),
|
|
42
52
|
stageEnabled && /* @__PURE__ */ jsx(MenuItem, {
|
|
43
53
|
"data-testid": "stagedPackagesMenuItem",
|
|
44
54
|
id: "stagedPackagesMenuItem",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderMenu.mjs","names":[],"sources":["../../../src/sections/Header/HeaderMenu.tsx"],"sourcesContent":["import AccountCircle from '@mui/icons-material/AccountCircle';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport type { MouseEvent } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { MenuItem } from '../../';\nimport { useConfig } from '../../providers/AppConfigurationProvider/AppConfigurationProvider';\nimport { Route } from '../../utils';\nimport HeaderGreetings from './HeaderGreetings';\n\n// Workaround: MUI v7 MenuProps type resolution breaks inherited PopoverProps.\nconst TypedMenu = Menu as React.FC<any>;\n\ninterface Props {\n username: string;\n isMenuOpen: boolean;\n anchorEl?: Element | null | undefined;\n onLogout: () => void;\n onLoggedInMenu: (event: MouseEvent<HTMLButtonElement>) => void;\n onLoggedInMenuClose: () => void;\n}\n\nconst HeaderMenu: React.FC<Props> = ({\n onLogout,\n username,\n isMenuOpen = false,\n anchorEl,\n onLoggedInMenu,\n onLoggedInMenuClose,\n}) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { configOptions } = useConfig();\n const stageEnabled = configOptions?.flags?.stage;\n return (\n <>\n <IconButton\n color=\"inherit\"\n data-testid=\"logInDialogIcon\"\n id=\"header--button-account\"\n onClick={onLoggedInMenu}\n size=\"large\"\n >\n <AccountCircle />\n </IconButton>\n <TypedMenu\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n onClose={onLoggedInMenuClose}\n open={isMenuOpen}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem>\n <HeaderGreetings username={username} />\n </MenuItem>\n {stageEnabled && (\n <MenuItem\n data-testid=\"stagedPackagesMenuItem\"\n id=\"stagedPackagesMenuItem\"\n onClick={() => {\n onLoggedInMenuClose();\n navigate(Route.STAGE);\n }}\n >\n {t('stage.menu')}\n </MenuItem>\n )}\n <MenuItem data-testid=\"logOutDialogIcon\" id=\"logOutDialogIcon\" onClick={onLogout}>\n {t('button.logout')}\n </MenuItem>\n </TypedMenu>\n </>\n );\n};\n\nexport default HeaderMenu;\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAM,YAAY;AAWlB,IAAM,cAA+B,EACnC,UACA,UACA,aAAa,OACb,UACA,gBACA,0BACI;CACJ,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,WAAW,YAAY;CAC7B,MAAM,EAAE,kBAAkB,UAAU;CACpC,MAAM,eAAe,eAAe,OAAO;CAC3C,OACE,
|
|
1
|
+
{"version":3,"file":"HeaderMenu.mjs","names":["_Fragment","Route"],"sources":["../../../src/sections/Header/HeaderMenu.tsx"],"sourcesContent":["import AccountCircle from '@mui/icons-material/AccountCircle';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport type { MouseEvent } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { MenuItem } from '../../';\nimport { useConfig } from '../../providers/AppConfigurationProvider/AppConfigurationProvider';\nimport { Route } from '../../utils';\nimport HeaderGreetings from './HeaderGreetings';\n\n// Workaround: MUI v7 MenuProps type resolution breaks inherited PopoverProps.\nconst TypedMenu = Menu as React.FC<any>;\n\ninterface Props {\n username: string;\n isMenuOpen: boolean;\n anchorEl?: Element | null | undefined;\n onLogout: () => void;\n onLoggedInMenu: (event: MouseEvent<HTMLButtonElement>) => void;\n onLoggedInMenuClose: () => void;\n}\n\nconst HeaderMenu: React.FC<Props> = ({\n onLogout,\n username,\n isMenuOpen = false,\n anchorEl,\n onLoggedInMenu,\n onLoggedInMenuClose,\n}) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { configOptions } = useConfig();\n const stageEnabled = configOptions?.flags?.stage;\n const changePasswordEnabled = configOptions?.flags?.changePassword;\n return (\n <>\n <IconButton\n color=\"inherit\"\n data-testid=\"logInDialogIcon\"\n id=\"header--button-account\"\n onClick={onLoggedInMenu}\n size=\"large\"\n >\n <AccountCircle />\n </IconButton>\n <TypedMenu\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n onClose={onLoggedInMenuClose}\n open={isMenuOpen}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem>\n <HeaderGreetings username={username} />\n </MenuItem>\n {changePasswordEnabled && (\n <MenuItem\n data-testid=\"changePasswordMenuItem\"\n id=\"changePasswordMenuItem\"\n onClick={() => {\n onLoggedInMenuClose();\n navigate(Route.CHANGE_PASSWORD);\n }}\n >\n {t('security.changePassword.title')}\n </MenuItem>\n )}\n {stageEnabled && (\n <MenuItem\n data-testid=\"stagedPackagesMenuItem\"\n id=\"stagedPackagesMenuItem\"\n onClick={() => {\n onLoggedInMenuClose();\n navigate(Route.STAGE);\n }}\n >\n {t('stage.menu')}\n </MenuItem>\n )}\n <MenuItem data-testid=\"logOutDialogIcon\" id=\"logOutDialogIcon\" onClick={onLogout}>\n {t('button.logout')}\n </MenuItem>\n </TypedMenu>\n </>\n );\n};\n\nexport default HeaderMenu;\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAM,YAAY;AAWlB,IAAM,cAA+B,EACnC,UACA,UACA,aAAa,OACb,UACA,gBACA,0BACI;CACJ,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,WAAW,YAAY;CAC7B,MAAM,EAAE,kBAAkB,UAAU;CACpC,MAAM,eAAe,eAAe,OAAO;CAC3C,MAAM,wBAAwB,eAAe,OAAO;CACpD,OACE,qBAAAA,YAAA,EAAA,UAAA,CACE,oBAAC,YAAD;EACE,OAAM;EACN,eAAY;EACZ,IAAG;EACH,SAAS;EACT,MAAK;EAEL,UAAA,oBAAC,eAAD,CAAgB,CAAA;CACN,CAAA,GACZ,qBAAC,WAAD;EACY;EACV,cAAc;GACZ,UAAU;GACV,YAAY;EACd;EACA,SAAS;EACT,MAAM;EACN,iBAAiB;GACf,UAAU;GACV,YAAY;EACd;EAXF,UAAA;GAaE,oBAAC,UAAD,EAAA,UACE,oBAAC,iBAAD,EAA2B,SAAW,CAAA,EAC9B,CAAA;GACT,yBACC,oBAAC,UAAD;IACE,eAAY;IACZ,IAAG;IACH,eAAe;KACb,oBAAoB;KACpB,SAASC,QAAM,eAAe;IAChC;IAEC,UAAA,EAAE,+BAA+B;GAC1B,CAAA;GAEX,gBACC,oBAAC,UAAD;IACE,eAAY;IACZ,IAAG;IACH,eAAe;KACb,oBAAoB;KACpB,SAASA,QAAM,KAAK;IACtB;IAEC,UAAA,EAAE,YAAY;GACP,CAAA;GAEZ,oBAAC,UAAD;IAAU,eAAY;IAAmB,IAAG;IAAmB,SAAS;IACrE,UAAA,EAAE,eAAe;GACV,CAAA;EACD;CACX,CAAA,CAAA,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderRight.js","names":[],"sources":["../../../src/sections/Header/HeaderRight.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport Toolbar from '@mui/material/Toolbar';\nimport type { MouseEvent } from 'react';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useCustomTheme } from '../../';\nimport HeaderMenu from './HeaderMenu';\nimport HeaderToolTip from './HeaderToolTip';\n\ninterface Props {\n showSearch?: boolean;\n username?: string | null;\n hasLogin?: boolean;\n showInfo?: boolean;\n showSettings?: boolean;\n showThemeSwitch?: boolean;\n onToggleLogin: () => void;\n onOpenRegistryInfoDialog: () => void;\n onOpenSettingsDialog: () => void;\n onToggleMobileNav: () => void;\n onLogout: () => void;\n}\n\nconst HeaderRight: React.FC<Props> = ({\n showSearch,\n username,\n onToggleLogin,\n hasLogin,\n showInfo,\n showSettings,\n showThemeSwitch,\n onLogout,\n onToggleMobileNav,\n onOpenRegistryInfoDialog,\n onOpenSettingsDialog,\n}) => {\n // @ts-ignore\n const { isDarkMode, setIsDarkMode } = useCustomTheme();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [isMenuOpen, setIsMenuOpen] = useState<boolean>(false);\n const hideLoginSection = hasLogin === false;\n\n const { t } = useTranslation();\n\n useEffect(() => {\n setIsMenuOpen(Boolean(anchorEl));\n }, [anchorEl]);\n\n /**\n * opens popover menu for logged in user.\n */\n const handleLoggedInMenu = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n /**\n * closes popover menu for logged in user\n */\n const handleLoggedInMenuClose = () => {\n setAnchorEl(null);\n };\n\n /**\n * close/open popover menu for logged in users.\n */\n const handleToggleLogin = () => {\n setAnchorEl(null);\n onToggleLogin();\n };\n\n const handleToggleDarkLightMode = () => {\n setTimeout(() => {\n setIsDarkMode(!isDarkMode);\n }, 300);\n };\n\n return (\n <Toolbar\n data-testid=\"header-right\"\n sx={{\n display: 'flex',\n padding: 0,\n marginRight: 0,\n '@media (min-width: 600px)': {\n padding: 0,\n marginRight: 0,\n },\n }}\n >\n {showSearch === true && (\n <HeaderToolTip\n onClick={onToggleMobileNav}\n title={t('search.packages')}\n tooltipIconType={'search'}\n />\n )}\n\n {showSettings === true && (\n <HeaderToolTip\n onClick={onOpenSettingsDialog}\n title={t('header.settings')}\n tooltipIconType={'settings'}\n />\n )}\n {showInfo === true && (\n <HeaderToolTip\n onClick={onOpenRegistryInfoDialog}\n title={t('header.registry-info')}\n tooltipIconType={'info'}\n />\n )}\n {showThemeSwitch === true && (\n <HeaderToolTip\n onClick={handleToggleDarkLightMode}\n title={t('header.documentation')}\n tooltipIconType={isDarkMode ? 'dark-mode' : 'light-mode'}\n />\n )}\n\n {!hideLoginSection && (\n <>\n {username ? (\n <HeaderMenu\n anchorEl={anchorEl}\n isMenuOpen={isMenuOpen}\n onLoggedInMenu={handleLoggedInMenu}\n onLoggedInMenuClose={handleLoggedInMenuClose}\n onLogout={onLogout}\n username={username}\n />\n ) : (\n <Button color=\"inherit\" data-testid=\"header--button-login\" onClick={handleToggleLogin}>\n {t('button.login')}\n </Button>\n )}\n </>\n )}\n </Toolbar>\n );\n};\n\nexport default HeaderRight;\n"],"mappings":";;;;;;;;;;;;;;AAwBA,IAAM,eAAgC,EACpC,YACA,UACA,eACA,UACA,UACA,cACA,iBACA,UACA,mBACA,0BACA,2BACI;CAEJ,MAAM,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"HeaderRight.js","names":["useCustomTheme","useState","useTranslation","Toolbar","HeaderToolTip","_Fragment","HeaderMenu","Button"],"sources":["../../../src/sections/Header/HeaderRight.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport Toolbar from '@mui/material/Toolbar';\nimport type { MouseEvent } from 'react';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useCustomTheme } from '../../';\nimport HeaderMenu from './HeaderMenu';\nimport HeaderToolTip from './HeaderToolTip';\n\ninterface Props {\n showSearch?: boolean;\n username?: string | null;\n hasLogin?: boolean;\n showInfo?: boolean;\n showSettings?: boolean;\n showThemeSwitch?: boolean;\n onToggleLogin: () => void;\n onOpenRegistryInfoDialog: () => void;\n onOpenSettingsDialog: () => void;\n onToggleMobileNav: () => void;\n onLogout: () => void;\n}\n\nconst HeaderRight: React.FC<Props> = ({\n showSearch,\n username,\n onToggleLogin,\n hasLogin,\n showInfo,\n showSettings,\n showThemeSwitch,\n onLogout,\n onToggleMobileNav,\n onOpenRegistryInfoDialog,\n onOpenSettingsDialog,\n}) => {\n // @ts-ignore\n const { isDarkMode, setIsDarkMode } = useCustomTheme();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [isMenuOpen, setIsMenuOpen] = useState<boolean>(false);\n const hideLoginSection = hasLogin === false;\n\n const { t } = useTranslation();\n\n useEffect(() => {\n setIsMenuOpen(Boolean(anchorEl));\n }, [anchorEl]);\n\n /**\n * opens popover menu for logged in user.\n */\n const handleLoggedInMenu = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n /**\n * closes popover menu for logged in user\n */\n const handleLoggedInMenuClose = () => {\n setAnchorEl(null);\n };\n\n /**\n * close/open popover menu for logged in users.\n */\n const handleToggleLogin = () => {\n setAnchorEl(null);\n onToggleLogin();\n };\n\n const handleToggleDarkLightMode = () => {\n setTimeout(() => {\n setIsDarkMode(!isDarkMode);\n }, 300);\n };\n\n return (\n <Toolbar\n data-testid=\"header-right\"\n sx={{\n display: 'flex',\n padding: 0,\n marginRight: 0,\n '@media (min-width: 600px)': {\n padding: 0,\n marginRight: 0,\n },\n }}\n >\n {showSearch === true && (\n <HeaderToolTip\n onClick={onToggleMobileNav}\n title={t('search.packages')}\n tooltipIconType={'search'}\n />\n )}\n\n {showSettings === true && (\n <HeaderToolTip\n onClick={onOpenSettingsDialog}\n title={t('header.settings')}\n tooltipIconType={'settings'}\n />\n )}\n {showInfo === true && (\n <HeaderToolTip\n onClick={onOpenRegistryInfoDialog}\n title={t('header.registry-info')}\n tooltipIconType={'info'}\n />\n )}\n {showThemeSwitch === true && (\n <HeaderToolTip\n onClick={handleToggleDarkLightMode}\n title={t('header.documentation')}\n tooltipIconType={isDarkMode ? 'dark-mode' : 'light-mode'}\n />\n )}\n\n {!hideLoginSection && (\n <>\n {username ? (\n <HeaderMenu\n anchorEl={anchorEl}\n isMenuOpen={isMenuOpen}\n onLoggedInMenu={handleLoggedInMenu}\n onLoggedInMenuClose={handleLoggedInMenuClose}\n onLogout={onLogout}\n username={username}\n />\n ) : (\n <Button color=\"inherit\" data-testid=\"header--button-login\" onClick={handleToggleLogin}>\n {t('button.login')}\n </Button>\n )}\n </>\n )}\n </Toolbar>\n );\n};\n\nexport default HeaderRight;\n"],"mappings":";;;;;;;;;;;;;;AAwBA,IAAM,eAAgC,EACpC,YACA,UACA,eACA,UACA,UACA,cACA,iBACA,UACA,mBACA,0BACA,2BACI;CAEJ,MAAM,EAAE,YAAY,kBAAkBA,sBAAAA,eAAe;CACrD,MAAM,CAAC,UAAU,gBAAA,GAAeC,MAAAA,SAAAA,CAA6B,IAAI;CACjE,MAAM,CAAC,YAAY,kBAAA,GAAiBA,MAAAA,SAAAA,CAAkB,KAAK;CAC3D,MAAM,mBAAmB,aAAa;CAEtC,MAAM,EAAE,OAAA,GAAMC,cAAAA,eAAAA,CAAe;CAE7B,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,cAAc,QAAQ,QAAQ,CAAC;CACjC,GAAG,CAAC,QAAQ,CAAC;;;;CAKb,MAAM,sBAAsB,UAAyC;EACnE,YAAY,MAAM,aAAa;CACjC;;;;CAKA,MAAM,gCAAgC;EACpC,YAAY,IAAI;CAClB;;;;CAKA,MAAM,0BAA0B;EAC9B,YAAY,IAAI;EAChB,cAAc;CAChB;CAEA,MAAM,kCAAkC;EACtC,iBAAiB;GACf,cAAc,CAAC,UAAU;EAC3B,GAAG,GAAG;CACR;CAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,sBAAAA,SAAD;EACE,eAAY;EACZ,IAAI;GACF,SAAS;GACT,SAAS;GACT,aAAa;GACb,6BAA6B;IAC3B,SAAS;IACT,aAAa;GACf;EACF;EAVF,UAAA;GAYG,eAAe,QACd,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,SAAD;IACE,SAAS;IACT,OAAO,EAAE,iBAAiB;IAC1B,iBAAiB;GAClB,CAAA;GAGF,iBAAiB,QAChB,iBAAA,GAAA,kBAAA,IAAA,CAACA,sBAAAA,SAAD;IACE,SAAS;IACT,OAAO,EAAE,iBAAiB;IAC1B,iBAAiB;GAClB,CAAA;GAEF,aAAa,QACZ,iBAAA,GAAA,kBAAA,IAAA,CAACA,sBAAAA,SAAD;IACE,SAAS;IACT,OAAO,EAAE,sBAAsB;IAC/B,iBAAiB;GAClB,CAAA;GAEF,oBAAoB,QACnB,iBAAA,GAAA,kBAAA,IAAA,CAACA,sBAAAA,SAAD;IACE,SAAS;IACT,OAAO,EAAE,sBAAsB;IAC/B,iBAAiB,aAAa,cAAc;GAC7C,CAAA;GAGF,CAAC,oBACA,iBAAA,GAAA,kBAAA,IAAA,CAAAC,kBAAAA,UAAA,EAAA,UACG,WACC,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,SAAD;IACY;IACE;IACZ,gBAAgB;IAChB,qBAAqB;IACX;IACA;GACX,CAAA,IAED,iBAAA,GAAA,kBAAA,IAAA,CAACC,qBAAAA,SAAD;IAAQ,OAAM;IAAU,eAAY;IAAuB,SAAS;IACjE,UAAA,EAAE,cAAc;GACX,CAAA,EAEV,CAAA;EAEG;;AAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderRight.mjs","names":[],"sources":["../../../src/sections/Header/HeaderRight.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport Toolbar from '@mui/material/Toolbar';\nimport type { MouseEvent } from 'react';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useCustomTheme } from '../../';\nimport HeaderMenu from './HeaderMenu';\nimport HeaderToolTip from './HeaderToolTip';\n\ninterface Props {\n showSearch?: boolean;\n username?: string | null;\n hasLogin?: boolean;\n showInfo?: boolean;\n showSettings?: boolean;\n showThemeSwitch?: boolean;\n onToggleLogin: () => void;\n onOpenRegistryInfoDialog: () => void;\n onOpenSettingsDialog: () => void;\n onToggleMobileNav: () => void;\n onLogout: () => void;\n}\n\nconst HeaderRight: React.FC<Props> = ({\n showSearch,\n username,\n onToggleLogin,\n hasLogin,\n showInfo,\n showSettings,\n showThemeSwitch,\n onLogout,\n onToggleMobileNav,\n onOpenRegistryInfoDialog,\n onOpenSettingsDialog,\n}) => {\n // @ts-ignore\n const { isDarkMode, setIsDarkMode } = useCustomTheme();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [isMenuOpen, setIsMenuOpen] = useState<boolean>(false);\n const hideLoginSection = hasLogin === false;\n\n const { t } = useTranslation();\n\n useEffect(() => {\n setIsMenuOpen(Boolean(anchorEl));\n }, [anchorEl]);\n\n /**\n * opens popover menu for logged in user.\n */\n const handleLoggedInMenu = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n /**\n * closes popover menu for logged in user\n */\n const handleLoggedInMenuClose = () => {\n setAnchorEl(null);\n };\n\n /**\n * close/open popover menu for logged in users.\n */\n const handleToggleLogin = () => {\n setAnchorEl(null);\n onToggleLogin();\n };\n\n const handleToggleDarkLightMode = () => {\n setTimeout(() => {\n setIsDarkMode(!isDarkMode);\n }, 300);\n };\n\n return (\n <Toolbar\n data-testid=\"header-right\"\n sx={{\n display: 'flex',\n padding: 0,\n marginRight: 0,\n '@media (min-width: 600px)': {\n padding: 0,\n marginRight: 0,\n },\n }}\n >\n {showSearch === true && (\n <HeaderToolTip\n onClick={onToggleMobileNav}\n title={t('search.packages')}\n tooltipIconType={'search'}\n />\n )}\n\n {showSettings === true && (\n <HeaderToolTip\n onClick={onOpenSettingsDialog}\n title={t('header.settings')}\n tooltipIconType={'settings'}\n />\n )}\n {showInfo === true && (\n <HeaderToolTip\n onClick={onOpenRegistryInfoDialog}\n title={t('header.registry-info')}\n tooltipIconType={'info'}\n />\n )}\n {showThemeSwitch === true && (\n <HeaderToolTip\n onClick={handleToggleDarkLightMode}\n title={t('header.documentation')}\n tooltipIconType={isDarkMode ? 'dark-mode' : 'light-mode'}\n />\n )}\n\n {!hideLoginSection && (\n <>\n {username ? (\n <HeaderMenu\n anchorEl={anchorEl}\n isMenuOpen={isMenuOpen}\n onLoggedInMenu={handleLoggedInMenu}\n onLoggedInMenuClose={handleLoggedInMenuClose}\n onLogout={onLogout}\n username={username}\n />\n ) : (\n <Button color=\"inherit\" data-testid=\"header--button-login\" onClick={handleToggleLogin}>\n {t('button.login')}\n </Button>\n )}\n </>\n )}\n </Toolbar>\n );\n};\n\nexport default HeaderRight;\n"],"mappings":";;;;;;;;;;AAwBA,IAAM,eAAgC,EACpC,YACA,UACA,eACA,UACA,UACA,cACA,iBACA,UACA,mBACA,0BACA,2BACI;CAEJ,MAAM,EAAE,YAAY,kBAAkB,eAAe;CACrD,MAAM,CAAC,UAAU,eAAe,SAA6B,IAAI;CACjE,MAAM,CAAC,YAAY,iBAAiB,SAAkB,KAAK;CAC3D,MAAM,mBAAmB,aAAa;CAEtC,MAAM,EAAE,MAAM,eAAe;CAE7B,gBAAgB;EACd,cAAc,QAAQ,QAAQ,CAAC;CACjC,GAAG,CAAC,QAAQ,CAAC;;;;CAKb,MAAM,sBAAsB,UAAyC;EACnE,YAAY,MAAM,aAAa;CACjC;;;;CAKA,MAAM,gCAAgC;EACpC,YAAY,IAAI;CAClB;;;;CAKA,MAAM,0BAA0B;EAC9B,YAAY,IAAI;EAChB,cAAc;CAChB;CAEA,MAAM,kCAAkC;EACtC,iBAAiB;GACf,cAAc,CAAC,UAAU;EAC3B,GAAG,GAAG;CACR;CAEA,OACE,qBAAC,SAAD;EACE,eAAY;EACZ,IAAI;GACF,SAAS;GACT,SAAS;GACT,aAAa;GACb,6BAA6B;IAC3B,SAAS;IACT,aAAa;GACf;EACF;EAVF,UAAA;GAYG,eAAe,QACd,oBAAC,eAAD;IACE,SAAS;IACT,OAAO,EAAE,iBAAiB;IAC1B,iBAAiB;GAClB,CAAA;GAGF,iBAAiB,QAChB,oBAAC,eAAD;IACE,SAAS;IACT,OAAO,EAAE,iBAAiB;IAC1B,iBAAiB;GAClB,CAAA;GAEF,aAAa,QACZ,oBAAC,eAAD;IACE,SAAS;IACT,OAAO,EAAE,sBAAsB;IAC/B,iBAAiB;GAClB,CAAA;GAEF,oBAAoB,QACnB,oBAAC,eAAD;IACE,SAAS;IACT,OAAO,EAAE,sBAAsB;IAC/B,iBAAiB,aAAa,cAAc;GAC7C,CAAA;GAGF,CAAC,oBACA,
|
|
1
|
+
{"version":3,"file":"HeaderRight.mjs","names":["_Fragment"],"sources":["../../../src/sections/Header/HeaderRight.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport Toolbar from '@mui/material/Toolbar';\nimport type { MouseEvent } from 'react';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useCustomTheme } from '../../';\nimport HeaderMenu from './HeaderMenu';\nimport HeaderToolTip from './HeaderToolTip';\n\ninterface Props {\n showSearch?: boolean;\n username?: string | null;\n hasLogin?: boolean;\n showInfo?: boolean;\n showSettings?: boolean;\n showThemeSwitch?: boolean;\n onToggleLogin: () => void;\n onOpenRegistryInfoDialog: () => void;\n onOpenSettingsDialog: () => void;\n onToggleMobileNav: () => void;\n onLogout: () => void;\n}\n\nconst HeaderRight: React.FC<Props> = ({\n showSearch,\n username,\n onToggleLogin,\n hasLogin,\n showInfo,\n showSettings,\n showThemeSwitch,\n onLogout,\n onToggleMobileNav,\n onOpenRegistryInfoDialog,\n onOpenSettingsDialog,\n}) => {\n // @ts-ignore\n const { isDarkMode, setIsDarkMode } = useCustomTheme();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [isMenuOpen, setIsMenuOpen] = useState<boolean>(false);\n const hideLoginSection = hasLogin === false;\n\n const { t } = useTranslation();\n\n useEffect(() => {\n setIsMenuOpen(Boolean(anchorEl));\n }, [anchorEl]);\n\n /**\n * opens popover menu for logged in user.\n */\n const handleLoggedInMenu = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n /**\n * closes popover menu for logged in user\n */\n const handleLoggedInMenuClose = () => {\n setAnchorEl(null);\n };\n\n /**\n * close/open popover menu for logged in users.\n */\n const handleToggleLogin = () => {\n setAnchorEl(null);\n onToggleLogin();\n };\n\n const handleToggleDarkLightMode = () => {\n setTimeout(() => {\n setIsDarkMode(!isDarkMode);\n }, 300);\n };\n\n return (\n <Toolbar\n data-testid=\"header-right\"\n sx={{\n display: 'flex',\n padding: 0,\n marginRight: 0,\n '@media (min-width: 600px)': {\n padding: 0,\n marginRight: 0,\n },\n }}\n >\n {showSearch === true && (\n <HeaderToolTip\n onClick={onToggleMobileNav}\n title={t('search.packages')}\n tooltipIconType={'search'}\n />\n )}\n\n {showSettings === true && (\n <HeaderToolTip\n onClick={onOpenSettingsDialog}\n title={t('header.settings')}\n tooltipIconType={'settings'}\n />\n )}\n {showInfo === true && (\n <HeaderToolTip\n onClick={onOpenRegistryInfoDialog}\n title={t('header.registry-info')}\n tooltipIconType={'info'}\n />\n )}\n {showThemeSwitch === true && (\n <HeaderToolTip\n onClick={handleToggleDarkLightMode}\n title={t('header.documentation')}\n tooltipIconType={isDarkMode ? 'dark-mode' : 'light-mode'}\n />\n )}\n\n {!hideLoginSection && (\n <>\n {username ? (\n <HeaderMenu\n anchorEl={anchorEl}\n isMenuOpen={isMenuOpen}\n onLoggedInMenu={handleLoggedInMenu}\n onLoggedInMenuClose={handleLoggedInMenuClose}\n onLogout={onLogout}\n username={username}\n />\n ) : (\n <Button color=\"inherit\" data-testid=\"header--button-login\" onClick={handleToggleLogin}>\n {t('button.login')}\n </Button>\n )}\n </>\n )}\n </Toolbar>\n );\n};\n\nexport default HeaderRight;\n"],"mappings":";;;;;;;;;;AAwBA,IAAM,eAAgC,EACpC,YACA,UACA,eACA,UACA,UACA,cACA,iBACA,UACA,mBACA,0BACA,2BACI;CAEJ,MAAM,EAAE,YAAY,kBAAkB,eAAe;CACrD,MAAM,CAAC,UAAU,eAAe,SAA6B,IAAI;CACjE,MAAM,CAAC,YAAY,iBAAiB,SAAkB,KAAK;CAC3D,MAAM,mBAAmB,aAAa;CAEtC,MAAM,EAAE,MAAM,eAAe;CAE7B,gBAAgB;EACd,cAAc,QAAQ,QAAQ,CAAC;CACjC,GAAG,CAAC,QAAQ,CAAC;;;;CAKb,MAAM,sBAAsB,UAAyC;EACnE,YAAY,MAAM,aAAa;CACjC;;;;CAKA,MAAM,gCAAgC;EACpC,YAAY,IAAI;CAClB;;;;CAKA,MAAM,0BAA0B;EAC9B,YAAY,IAAI;EAChB,cAAc;CAChB;CAEA,MAAM,kCAAkC;EACtC,iBAAiB;GACf,cAAc,CAAC,UAAU;EAC3B,GAAG,GAAG;CACR;CAEA,OACE,qBAAC,SAAD;EACE,eAAY;EACZ,IAAI;GACF,SAAS;GACT,SAAS;GACT,aAAa;GACb,6BAA6B;IAC3B,SAAS;IACT,aAAa;GACf;EACF;EAVF,UAAA;GAYG,eAAe,QACd,oBAAC,eAAD;IACE,SAAS;IACT,OAAO,EAAE,iBAAiB;IAC1B,iBAAiB;GAClB,CAAA;GAGF,iBAAiB,QAChB,oBAAC,eAAD;IACE,SAAS;IACT,OAAO,EAAE,iBAAiB;IAC1B,iBAAiB;GAClB,CAAA;GAEF,aAAa,QACZ,oBAAC,eAAD;IACE,SAAS;IACT,OAAO,EAAE,sBAAsB;IAC/B,iBAAiB;GAClB,CAAA;GAEF,oBAAoB,QACnB,oBAAC,eAAD;IACE,SAAS;IACT,OAAO,EAAE,sBAAsB;IAC/B,iBAAiB,aAAa,cAAc;GAC7C,CAAA;GAGF,CAAC,oBACA,oBAAAA,YAAA,EAAA,UACG,WACC,oBAAC,YAAD;IACY;IACE;IACZ,gBAAgB;IAChB,qBAAqB;IACX;IACA;GACX,CAAA,IAED,oBAAC,QAAD;IAAQ,OAAM;IAAU,eAAY;IAAuB,SAAS;IACjE,UAAA,EAAE,cAAc;GACX,CAAA,EAEV,CAAA;EAEG;;AAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderSettingsDialog.js","names":[],"sources":["../../../src/sections/Header/HeaderSettingsDialog.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Box from '@mui/material/Box';\nimport Tab from '@mui/material/Tab';\nimport Tabs from '@mui/material/Tabs';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport type { Theme } from '../../';\nimport RegistryInfoDialog from '../../components/RegistryInfoDialog';\nimport { getConfiguration } from '../../configuration';\nimport LanguageSwitch from './LanguageSwitch';\nimport RegistryInfoContent from './RegistryInfoContent';\n\ninterface Props {\n isOpen: boolean;\n onCloseDialog: () => void;\n}\n\nfunction a11yProps(index) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n}\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n <div\n aria-labelledby={`simple-tab-${index}`}\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n role=\"tabpanel\"\n {...other}\n >\n {value === index && <Box sx={{ paddingTop: 3 }}>{children}</Box>}\n </div>\n );\n}\n\nconst TextContent = styled('div')<{ theme?: Theme }>(({ theme }) => ({\n padding: '10px 0',\n backgroundColor: theme.palette.background.default,\n}));\n\nconst HeaderSettingsDialog: React.FC<Props> = ({ onCloseDialog, isOpen }) => {\n const [value, setValue] = React.useState(0);\n\n const handleChange = (_event, newValue) => {\n setValue(newValue);\n };\n const configStore = getConfiguration();\n const { scope, base } = configStore;\n const { t } = useTranslation();\n return (\n <RegistryInfoDialog onClose={onCloseDialog} open={isOpen} title={t('dialog.settings.title')}>\n <Box sx={{ width: '100%' }}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <Tabs aria-label=\"basic tabs example\" onChange={handleChange} value={value}>\n <Tab label={t('packageManagers.title')} {...a11yProps(0)} />\n <Tab label={t('language.title')} {...a11yProps(1)} />\n </Tabs>\n </Box>\n <TabPanel index={0} value={value}>\n <RegistryInfoContent registryUrl={base} scope={scope} />\n </TabPanel>\n <TabPanel index={1} value={value}>\n <TextContent>{t('language.description')}</TextContent>\n <LanguageSwitch />\n <ReactMarkdown>{t('language.contribute')}</ReactMarkdown>\n </TabPanel>\n </Box>\n </RegistryInfoDialog>\n );\n};\n\nexport default HeaderSettingsDialog;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBA,SAAS,UAAU,OAAO;CACxB,OAAO;EACL,IAAI,cAAc;EAClB,iBAAiB,mBAAmB;CACtC;AACF;AAEA,SAAS,SAAS,OAAO;CACvB,MAAM,EAAE,UAAU,OAAO,OAAO,GAAG,UAAU;CAE7C,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,mBAAiB,cAAc;EAC/B,QAAQ,UAAU;EAClB,IAAI,mBAAmB;EACvB,MAAK;EACL,GAAI;EAEH,UAAA,UAAU,SAAS,iBAAA,GAAA,kBAAA,IAAA,
|
|
1
|
+
{"version":3,"file":"HeaderSettingsDialog.js","names":["Box","styled","React","getConfiguration","useTranslation","RegistryInfoDialog","Tabs","Tab","RegistryInfoContent","LanguageSwitch","ReactMarkdown"],"sources":["../../../src/sections/Header/HeaderSettingsDialog.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Box from '@mui/material/Box';\nimport Tab from '@mui/material/Tab';\nimport Tabs from '@mui/material/Tabs';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport type { Theme } from '../../';\nimport RegistryInfoDialog from '../../components/RegistryInfoDialog';\nimport { getConfiguration } from '../../configuration';\nimport LanguageSwitch from './LanguageSwitch';\nimport RegistryInfoContent from './RegistryInfoContent';\n\ninterface Props {\n isOpen: boolean;\n onCloseDialog: () => void;\n}\n\nfunction a11yProps(index) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n}\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n <div\n aria-labelledby={`simple-tab-${index}`}\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n role=\"tabpanel\"\n {...other}\n >\n {value === index && <Box sx={{ paddingTop: 3 }}>{children}</Box>}\n </div>\n );\n}\n\nconst TextContent = styled('div')<{ theme?: Theme }>(({ theme }) => ({\n padding: '10px 0',\n backgroundColor: theme.palette.background.default,\n}));\n\nconst HeaderSettingsDialog: React.FC<Props> = ({ onCloseDialog, isOpen }) => {\n const [value, setValue] = React.useState(0);\n\n const handleChange = (_event, newValue) => {\n setValue(newValue);\n };\n const configStore = getConfiguration();\n const { scope, base } = configStore;\n const { t } = useTranslation();\n return (\n <RegistryInfoDialog onClose={onCloseDialog} open={isOpen} title={t('dialog.settings.title')}>\n <Box sx={{ width: '100%' }}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <Tabs aria-label=\"basic tabs example\" onChange={handleChange} value={value}>\n <Tab label={t('packageManagers.title')} {...a11yProps(0)} />\n <Tab label={t('language.title')} {...a11yProps(1)} />\n </Tabs>\n </Box>\n <TabPanel index={0} value={value}>\n <RegistryInfoContent registryUrl={base} scope={scope} />\n </TabPanel>\n <TabPanel index={1} value={value}>\n <TextContent>{t('language.description')}</TextContent>\n <LanguageSwitch />\n <ReactMarkdown>{t('language.contribute')}</ReactMarkdown>\n </TabPanel>\n </Box>\n </RegistryInfoDialog>\n );\n};\n\nexport default HeaderSettingsDialog;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBA,SAAS,UAAU,OAAO;CACxB,OAAO;EACL,IAAI,cAAc;EAClB,iBAAiB,mBAAmB;CACtC;AACF;AAEA,SAAS,SAAS,OAAO;CACvB,MAAM,EAAE,UAAU,OAAO,OAAO,GAAG,UAAU;CAE7C,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,mBAAiB,cAAc;EAC/B,QAAQ,UAAU;EAClB,IAAI,mBAAmB;EACvB,MAAK;EACL,GAAI;EAEH,UAAA,UAAU,SAAS,iBAAA,GAAA,kBAAA,IAAA,CAACA,kBAAAA,SAAD;GAAK,IAAI,EAAE,YAAY,EAAE;GAAI;EAAc,CAAA;CAC5D,CAAA;AAET;AAEA,IAAM,eAAA,GAAcC,gBAAAA,QAAAA,CAAO,KAAK,CAAC,EAAqB,EAAE,aAAa;CACnE,SAAS;CACT,iBAAiB,MAAM,QAAQ,WAAW;AAC5C,EAAE;AAEF,IAAM,wBAAyC,EAAE,eAAe,aAAa;CAC3E,MAAM,CAAC,OAAO,YAAYC,MAAAA,QAAM,SAAS,CAAC;CAE1C,MAAM,gBAAgB,QAAQ,aAAa;EACzC,SAAS,QAAQ;CACnB;CAEA,MAAM,EAAE,OAAO,SADKC,sBAAAA,iBACI;CACxB,MAAM,EAAE,OAAA,GAAMC,cAAAA,eAAAA,CAAe;CAC7B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,2BAAAA,SAAD;EAAoB,SAAS;EAAe,MAAM;EAAQ,OAAO,EAAE,uBAAuB;EACxF,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACL,kBAAAA,SAAD;GAAK,IAAI,EAAE,OAAO,OAAO;GAAzB,UAAA;IACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,kBAAAA,SAAD;KAAK,IAAI;MAAE,cAAc;MAAG,aAAa;KAAU;KACjD,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACM,mBAAAA,SAAD;MAAM,cAAW;MAAqB,UAAU;MAAqB;MAArE,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,SAAD;OAAK,OAAO,EAAE,uBAAuB;OAAG,GAAI,UAAU,CAAC;MAAI,CAAA,GAC3D,iBAAA,GAAA,kBAAA,IAAA,CAACA,kBAAAA,SAAD;OAAK,OAAO,EAAE,gBAAgB;OAAG,GAAI,UAAU,CAAC;MAAI,CAAA,CAChD;;IACH,CAAA;IACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;KAAU,OAAO;KAAU;KACzB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,4BAAAA,SAAD;MAAqB,aAAa;MAAa;KAAQ,CAAA;IAC/C,CAAA;IACV,iBAAA,GAAA,kBAAA,KAAA,CAAC,UAAD;KAAU,OAAO;KAAU;KAA3B,UAAA;MACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAD,EAAA,UAAc,EAAE,sBAAsB,EAAe,CAAA;MACrD,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,SAAD,CAAiB,CAAA;MACjB,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,SAAD,EAAA,UAAgB,EAAE,qBAAqB,EAAiB,CAAA;KAChD;;GACP;;CACa,CAAA;AAExB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderToolTip.js","names":[],"sources":["../../../src/sections/Header/HeaderToolTip.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { TooltipIconType } from './HeaderToolTipIcon';\nimport HeaderToolTipIcon from './HeaderToolTipIcon';\n\ninterface Props {\n title: string;\n tooltipIconType: TooltipIconType;\n onClick?: () => void;\n}\n\nconst HeaderToolTip: React.FC<Props> = ({ tooltipIconType, onClick }) => (\n <HeaderToolTipIcon onClick={onClick} tooltipIconType={tooltipIconType} />\n);\n\nexport default HeaderToolTip;\n"],"mappings":";;;;;;AAWA,IAAM,iBAAkC,EAAE,iBAAiB,cACzD,iBAAA,GAAA,kBAAA,IAAA,
|
|
1
|
+
{"version":3,"file":"HeaderToolTip.js","names":["HeaderToolTipIcon"],"sources":["../../../src/sections/Header/HeaderToolTip.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { TooltipIconType } from './HeaderToolTipIcon';\nimport HeaderToolTipIcon from './HeaderToolTipIcon';\n\ninterface Props {\n title: string;\n tooltipIconType: TooltipIconType;\n onClick?: () => void;\n}\n\nconst HeaderToolTip: React.FC<Props> = ({ tooltipIconType, onClick }) => (\n <HeaderToolTipIcon onClick={onClick} tooltipIconType={tooltipIconType} />\n);\n\nexport default HeaderToolTip;\n"],"mappings":";;;;;;AAWA,IAAM,iBAAkC,EAAE,iBAAiB,cACzD,iBAAA,GAAA,kBAAA,IAAA,CAACA,0BAAAA,SAAD;CAA4B;CAA0B;AAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderToolTipIcon.js","names":[],"sources":["../../../src/sections/Header/HeaderToolTipIcon.tsx"],"sourcesContent":["import Info from '@mui/icons-material/Info';\nimport NightsStay from '@mui/icons-material/NightsStay';\nimport Search from '@mui/icons-material/Search';\nimport Settings from '@mui/icons-material/Settings';\nimport WbSunny from '@mui/icons-material/WbSunny';\nimport React from 'react';\n\nimport { IconSearchButton, InfoButton, SettingsButtom, SwitchThemeButton } from './styles';\n\nexport type TooltipIconType = 'search' | 'info' | 'dark-mode' | 'light-mode' | 'settings';\ninterface Props {\n tooltipIconType: TooltipIconType;\n onClick?: () => void;\n}\n\ntype HeaderToolTipIconRef = HTMLButtonElement;\n\nconst HeaderToolTipIcon = function HeaderToolTipIcon({\n ref,\n tooltipIconType,\n onClick,\n}: Props & { ref?: React.RefObject<HeaderToolTipIconRef | null> }) {\n switch (tooltipIconType) {\n case 'info':\n return (\n <InfoButton\n color=\"inherit\"\n data-testid={'header--tooltip-info'}\n id=\"header--button-registryInfo\"\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <Info />\n </InfoButton>\n );\n case 'settings':\n return (\n <SettingsButtom\n color=\"inherit\"\n data-testid={'header--tooltip-settings'}\n id=\"header--button-settings\"\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <Settings />\n </SettingsButtom>\n );\n case 'search':\n return (\n <IconSearchButton\n data-testid=\"header--tooltip-search\"\n color=\"inherit\"\n onClick={onClick}\n ref={ref}\n >\n <Search />\n </IconSearchButton>\n );\n case 'dark-mode':\n return (\n <SwitchThemeButton\n color=\"inherit\"\n data-testid={'header--button--dark'}\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <NightsStay />\n </SwitchThemeButton>\n );\n\n case 'light-mode':\n return (\n <SwitchThemeButton\n color=\"inherit\"\n data-testid={'header--button--light'}\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <WbSunny />\n </SwitchThemeButton>\n );\n default:\n return null;\n }\n};\n\nexport default HeaderToolTipIcon;\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,IAAM,oBAAoB,SAAS,kBAAkB,EACnD,KACA,iBACA,WACiE;CACjE,QAAQ,iBAAR;EACE,KAAK,QACH,OACE,iBAAA,GAAA,kBAAA,IAAA,
|
|
1
|
+
{"version":3,"file":"HeaderToolTipIcon.js","names":["InfoButton","Info","SettingsButtom","Settings","IconSearchButton","Search","SwitchThemeButton","NightsStay","WbSunny"],"sources":["../../../src/sections/Header/HeaderToolTipIcon.tsx"],"sourcesContent":["import Info from '@mui/icons-material/Info';\nimport NightsStay from '@mui/icons-material/NightsStay';\nimport Search from '@mui/icons-material/Search';\nimport Settings from '@mui/icons-material/Settings';\nimport WbSunny from '@mui/icons-material/WbSunny';\nimport React from 'react';\n\nimport { IconSearchButton, InfoButton, SettingsButtom, SwitchThemeButton } from './styles';\n\nexport type TooltipIconType = 'search' | 'info' | 'dark-mode' | 'light-mode' | 'settings';\ninterface Props {\n tooltipIconType: TooltipIconType;\n onClick?: () => void;\n}\n\ntype HeaderToolTipIconRef = HTMLButtonElement;\n\nconst HeaderToolTipIcon = function HeaderToolTipIcon({\n ref,\n tooltipIconType,\n onClick,\n}: Props & { ref?: React.RefObject<HeaderToolTipIconRef | null> }) {\n switch (tooltipIconType) {\n case 'info':\n return (\n <InfoButton\n color=\"inherit\"\n data-testid={'header--tooltip-info'}\n id=\"header--button-registryInfo\"\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <Info />\n </InfoButton>\n );\n case 'settings':\n return (\n <SettingsButtom\n color=\"inherit\"\n data-testid={'header--tooltip-settings'}\n id=\"header--button-settings\"\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <Settings />\n </SettingsButtom>\n );\n case 'search':\n return (\n <IconSearchButton\n data-testid=\"header--tooltip-search\"\n color=\"inherit\"\n onClick={onClick}\n ref={ref}\n >\n <Search />\n </IconSearchButton>\n );\n case 'dark-mode':\n return (\n <SwitchThemeButton\n color=\"inherit\"\n data-testid={'header--button--dark'}\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <NightsStay />\n </SwitchThemeButton>\n );\n\n case 'light-mode':\n return (\n <SwitchThemeButton\n color=\"inherit\"\n data-testid={'header--button--light'}\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <WbSunny />\n </SwitchThemeButton>\n );\n default:\n return null;\n }\n};\n\nexport default HeaderToolTipIcon;\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,IAAM,oBAAoB,SAAS,kBAAkB,EACnD,KACA,iBACA,WACiE;CACjE,QAAQ,iBAAR;EACE,KAAK,QACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,eAAAA,YAAD;GACE,OAAM;GACN,eAAa;GACb,IAAG;GACM;GACJ;GACL,MAAK;GAEL,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,SAAD,CAAO,CAAA;EACG,CAAA;EAEhB,KAAK,YACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,gBAAD;GACE,OAAM;GACN,eAAa;GACb,IAAG;GACM;GACJ;GACL,MAAK;GAEL,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,SAAD,CAAW,CAAA;EACG,CAAA;EAEpB,KAAK,UACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,kBAAD;GACE,eAAY;GACZ,OAAM;GACG;GACJ;GAEL,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,2BAAAA,SAAD,CAAS,CAAA;EACO,CAAA;EAEtB,KAAK,aACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,mBAAD;GACE,OAAM;GACN,eAAa;GACJ;GACJ;GACL,MAAK;GAEL,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD,CAAa,CAAA;EACI,CAAA;EAGvB,KAAK,cACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACD,eAAAA,mBAAD;GACE,OAAM;GACN,eAAa;GACJ;GACJ;GACL,MAAK;GAEL,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACE,4BAAAA,SAAD,CAAU,CAAA;EACO,CAAA;EAEvB,SACE,OAAO;CACX;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderToolTipIcon.mjs","names":[],"sources":["../../../src/sections/Header/HeaderToolTipIcon.tsx"],"sourcesContent":["import Info from '@mui/icons-material/Info';\nimport NightsStay from '@mui/icons-material/NightsStay';\nimport Search from '@mui/icons-material/Search';\nimport Settings from '@mui/icons-material/Settings';\nimport WbSunny from '@mui/icons-material/WbSunny';\nimport React from 'react';\n\nimport { IconSearchButton, InfoButton, SettingsButtom, SwitchThemeButton } from './styles';\n\nexport type TooltipIconType = 'search' | 'info' | 'dark-mode' | 'light-mode' | 'settings';\ninterface Props {\n tooltipIconType: TooltipIconType;\n onClick?: () => void;\n}\n\ntype HeaderToolTipIconRef = HTMLButtonElement;\n\nconst HeaderToolTipIcon = function HeaderToolTipIcon({\n ref,\n tooltipIconType,\n onClick,\n}: Props & { ref?: React.RefObject<HeaderToolTipIconRef | null> }) {\n switch (tooltipIconType) {\n case 'info':\n return (\n <InfoButton\n color=\"inherit\"\n data-testid={'header--tooltip-info'}\n id=\"header--button-registryInfo\"\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <Info />\n </InfoButton>\n );\n case 'settings':\n return (\n <SettingsButtom\n color=\"inherit\"\n data-testid={'header--tooltip-settings'}\n id=\"header--button-settings\"\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <Settings />\n </SettingsButtom>\n );\n case 'search':\n return (\n <IconSearchButton\n data-testid=\"header--tooltip-search\"\n color=\"inherit\"\n onClick={onClick}\n ref={ref}\n >\n <Search />\n </IconSearchButton>\n );\n case 'dark-mode':\n return (\n <SwitchThemeButton\n color=\"inherit\"\n data-testid={'header--button--dark'}\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <NightsStay />\n </SwitchThemeButton>\n );\n\n case 'light-mode':\n return (\n <SwitchThemeButton\n color=\"inherit\"\n data-testid={'header--button--light'}\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <WbSunny />\n </SwitchThemeButton>\n );\n default:\n return null;\n }\n};\n\nexport default HeaderToolTipIcon;\n"],"mappings":";;;;;;;;;AAiBA,IAAM,oBAAoB,SAAS,kBAAkB,EACnD,KACA,iBACA,WACiE;CACjE,QAAQ,iBAAR;EACE,KAAK,QACH,OACE,oBAAC,YAAD;GACE,OAAM;GACN,eAAa;GACb,IAAG;GACM;GACJ;GACL,MAAK;GAEL,UAAA,oBAAC,MAAD,CAAO,CAAA;EACG,CAAA;EAEhB,KAAK,YACH,OACE,oBAAC,gBAAD;GACE,OAAM;GACN,eAAa;GACb,IAAG;GACM;GACJ;GACL,MAAK;GAEL,UAAA,oBAAC,UAAD,CAAW,CAAA;EACG,CAAA;EAEpB,KAAK,UACH,OACE,oBAAC,kBAAD;GACE,eAAY;GACZ,OAAM;GACG;GACJ;GAEL,UAAA,
|
|
1
|
+
{"version":3,"file":"HeaderToolTipIcon.mjs","names":["Search"],"sources":["../../../src/sections/Header/HeaderToolTipIcon.tsx"],"sourcesContent":["import Info from '@mui/icons-material/Info';\nimport NightsStay from '@mui/icons-material/NightsStay';\nimport Search from '@mui/icons-material/Search';\nimport Settings from '@mui/icons-material/Settings';\nimport WbSunny from '@mui/icons-material/WbSunny';\nimport React from 'react';\n\nimport { IconSearchButton, InfoButton, SettingsButtom, SwitchThemeButton } from './styles';\n\nexport type TooltipIconType = 'search' | 'info' | 'dark-mode' | 'light-mode' | 'settings';\ninterface Props {\n tooltipIconType: TooltipIconType;\n onClick?: () => void;\n}\n\ntype HeaderToolTipIconRef = HTMLButtonElement;\n\nconst HeaderToolTipIcon = function HeaderToolTipIcon({\n ref,\n tooltipIconType,\n onClick,\n}: Props & { ref?: React.RefObject<HeaderToolTipIconRef | null> }) {\n switch (tooltipIconType) {\n case 'info':\n return (\n <InfoButton\n color=\"inherit\"\n data-testid={'header--tooltip-info'}\n id=\"header--button-registryInfo\"\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <Info />\n </InfoButton>\n );\n case 'settings':\n return (\n <SettingsButtom\n color=\"inherit\"\n data-testid={'header--tooltip-settings'}\n id=\"header--button-settings\"\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <Settings />\n </SettingsButtom>\n );\n case 'search':\n return (\n <IconSearchButton\n data-testid=\"header--tooltip-search\"\n color=\"inherit\"\n onClick={onClick}\n ref={ref}\n >\n <Search />\n </IconSearchButton>\n );\n case 'dark-mode':\n return (\n <SwitchThemeButton\n color=\"inherit\"\n data-testid={'header--button--dark'}\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <NightsStay />\n </SwitchThemeButton>\n );\n\n case 'light-mode':\n return (\n <SwitchThemeButton\n color=\"inherit\"\n data-testid={'header--button--light'}\n onClick={onClick}\n ref={ref}\n size=\"large\"\n >\n <WbSunny />\n </SwitchThemeButton>\n );\n default:\n return null;\n }\n};\n\nexport default HeaderToolTipIcon;\n"],"mappings":";;;;;;;;;AAiBA,IAAM,oBAAoB,SAAS,kBAAkB,EACnD,KACA,iBACA,WACiE;CACjE,QAAQ,iBAAR;EACE,KAAK,QACH,OACE,oBAAC,YAAD;GACE,OAAM;GACN,eAAa;GACb,IAAG;GACM;GACJ;GACL,MAAK;GAEL,UAAA,oBAAC,MAAD,CAAO,CAAA;EACG,CAAA;EAEhB,KAAK,YACH,OACE,oBAAC,gBAAD;GACE,OAAM;GACN,eAAa;GACb,IAAG;GACM;GACJ;GACL,MAAK;GAEL,UAAA,oBAAC,UAAD,CAAW,CAAA;EACG,CAAA;EAEpB,KAAK,UACH,OACE,oBAAC,kBAAD;GACE,eAAY;GACZ,OAAM;GACG;GACJ;GAEL,UAAA,oBAACA,WAAD,CAAS,CAAA;EACO,CAAA;EAEtB,KAAK,aACH,OACE,oBAAC,mBAAD;GACE,OAAM;GACN,eAAa;GACJ;GACJ;GACL,MAAK;GAEL,UAAA,oBAAC,YAAD,CAAa,CAAA;EACI,CAAA;EAGvB,KAAK,cACH,OACE,oBAAC,mBAAD;GACE,OAAM;GACN,eAAa;GACJ;GACJ;GACL,MAAK;GAEL,UAAA,oBAAC,SAAD,CAAU,CAAA;EACO,CAAA;EAEvB,SACE,OAAO;CACX;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageSwitch.js","names":[],"sources":["../../../src/sections/Header/LanguageSwitch.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport i18next from 'i18next';\nimport React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { Theme } from '../../';\nimport { useLanguage } from '../../';\n\nexport const CardSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n backgroundColor: theme.palette.grey['600'],\n opacity: '0.9',\n color: theme.palette.error.contrastText,\n fontWeight: 'bold',\n };\n});\n\nexport const CardUnSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n cursor: 'pointer',\n ':hover': {\n backgroundColor: theme.palette.greyGainsboro,\n },\n };\n});\n\nconst LanguageContent = ({ translation, icon }) => (\n <>\n <CardContent>\n <Typography display=\"block\" gutterBottom={true} variant=\"caption\">\n {translation}\n </Typography>\n </CardContent>\n <CardContent>{icon}</CardContent>\n </>\n);\n\nconst LanguageSwitch = () => {\n const { language, setLanguage, listLanguages } = useLanguage();\n const listConverted = listLanguages.reduce(\n (prev, item) => {\n prev[item.lng] = {\n translation: item.menuKey,\n icon: item.icon,\n };\n return prev;\n },\n {} as Record<string, { translation: string; icon: any }>\n );\n\n const [languages] = useState<string[]>(Object.keys(i18next.options?.resources || {}));\n const { t } = useTranslation();\n const currentLanguage = language;\n const getCurrentLngDetails = useCallback(\n (language: string) => {\n const lng = listConverted[language] || listConverted['en-US'];\n return {\n icon: <lng.icon />,\n translation: t(lng.translation),\n };\n },\n [listConverted, t]\n );\n const handleChangeLanguage = useCallback(\n (language: string) => {\n setLanguage(language);\n },\n [setLanguage]\n );\n\n return (\n <div>\n <Grid columns={{ xs: 12, sm: 12, md: 12 }} container={true} spacing={{ xs: 1, md: 1 }}>\n {languages.map((language, index) => {\n const { icon, translation } = getCurrentLngDetails(language);\n return (\n <Grid key={index} size={{ sm: 2, xs: 6 }}>\n {language === currentLanguage ? (\n <CardSelected sx={{ maxWidth: 80 }}>\n <LanguageContent icon={icon} translation={translation} />\n </CardSelected>\n ) : (\n <CardUnSelected onClick={() => handleChangeLanguage(language)}>\n <LanguageContent icon={icon} translation={translation} />\n </CardUnSelected>\n )}\n </Grid>\n );\n })}\n </Grid>\n </div>\n );\n};\n\nexport default LanguageSwitch;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAYA,IAAa,gBAAA,
|
|
1
|
+
{"version":3,"file":"LanguageSwitch.js","names":["styled","Card","_Fragment","CardContent","Typography","useLanguage","useState","useTranslation","useCallback","Grid"],"sources":["../../../src/sections/Header/LanguageSwitch.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport i18next from 'i18next';\nimport React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { Theme } from '../../';\nimport { useLanguage } from '../../';\n\nexport const CardSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n backgroundColor: theme.palette.grey['600'],\n opacity: '0.9',\n color: theme.palette.error.contrastText,\n fontWeight: 'bold',\n };\n});\n\nexport const CardUnSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n cursor: 'pointer',\n ':hover': {\n backgroundColor: theme.palette.greyGainsboro,\n },\n };\n});\n\nconst LanguageContent = ({ translation, icon }) => (\n <>\n <CardContent>\n <Typography display=\"block\" gutterBottom={true} variant=\"caption\">\n {translation}\n </Typography>\n </CardContent>\n <CardContent>{icon}</CardContent>\n </>\n);\n\nconst LanguageSwitch = () => {\n const { language, setLanguage, listLanguages } = useLanguage();\n const listConverted = listLanguages.reduce(\n (prev, item) => {\n prev[item.lng] = {\n translation: item.menuKey,\n icon: item.icon,\n };\n return prev;\n },\n {} as Record<string, { translation: string; icon: any }>\n );\n\n const [languages] = useState<string[]>(Object.keys(i18next.options?.resources || {}));\n const { t } = useTranslation();\n const currentLanguage = language;\n const getCurrentLngDetails = useCallback(\n (language: string) => {\n const lng = listConverted[language] || listConverted['en-US'];\n return {\n icon: <lng.icon />,\n translation: t(lng.translation),\n };\n },\n [listConverted, t]\n );\n const handleChangeLanguage = useCallback(\n (language: string) => {\n setLanguage(language);\n },\n [setLanguage]\n );\n\n return (\n <div>\n <Grid columns={{ xs: 12, sm: 12, md: 12 }} container={true} spacing={{ xs: 1, md: 1 }}>\n {languages.map((language, index) => {\n const { icon, translation } = getCurrentLngDetails(language);\n return (\n <Grid key={index} size={{ sm: 2, xs: 6 }}>\n {language === currentLanguage ? (\n <CardSelected sx={{ maxWidth: 80 }}>\n <LanguageContent icon={icon} translation={translation} />\n </CardSelected>\n ) : (\n <CardUnSelected onClick={() => handleChangeLanguage(language)}>\n <LanguageContent icon={icon} translation={translation} />\n </CardUnSelected>\n )}\n </Grid>\n );\n })}\n </Grid>\n </div>\n );\n};\n\nexport default LanguageSwitch;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAYA,IAAa,gBAAA,GAAeA,gBAAAA,QAAAA,CAAOC,mBAAAA,OAAI,CAAC,EAAqB,EAAE,YAAY;CACzE,OAAO;EACL,iBAAiB,MAAM,QAAQ,KAAK;EACpC,SAAS;EACT,OAAO,MAAM,QAAQ,MAAM;EAC3B,YAAY;CACd;AACF,CAAC;AAED,IAAa,kBAAA,GAAiBD,gBAAAA,QAAAA,CAAOC,mBAAAA,OAAI,CAAC,EAAqB,EAAE,YAAY;CAC3E,OAAO;EACL,QAAQ;EACR,UAAU,EACR,iBAAiB,MAAM,QAAQ,cACjC;CACF;AACF,CAAC;AAED,IAAM,mBAAmB,EAAE,aAAa,WACtC,iBAAA,GAAA,kBAAA,KAAA,CAAAC,kBAAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,0BAAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,SAAD;CAAY,SAAQ;CAAQ,cAAc;CAAM,SAAQ;CACrD,UAAA;AACS,CAAA,EACD,CAAA,GACb,iBAAA,GAAA,kBAAA,IAAA,CAACD,0BAAAA,SAAD,EAAA,UAAc,KAAkB,CAAA,CAChC,EAAA,CAAA;AAGJ,IAAM,uBAAuB;CAC3B,MAAM,EAAE,UAAU,aAAa,kBAAkBE,2BAAAA,YAAY;CAC7D,MAAM,gBAAgB,cAAc,QACjC,MAAM,SAAS;EACd,KAAK,KAAK,OAAO;GACf,aAAa,KAAK;GAClB,MAAM,KAAK;EACb;EACA,OAAO;CACT,GACA,CAAC,CACH;CAEA,MAAM,CAAC,cAAA,GAAaC,MAAAA,SAAAA,CAAmB,OAAO,KAAK,QAAA,QAAQ,SAAS,aAAa,CAAC,CAAC,CAAC;CACpF,MAAM,EAAE,OAAA,GAAMC,cAAAA,eAAAA,CAAe;CAC7B,MAAM,kBAAkB;CACxB,MAAM,wBAAA,GAAuBC,MAAAA,YAAAA,EAC1B,aAAqB;EACpB,MAAM,MAAM,cAAc,aAAa,cAAc;EACrD,OAAO;GACL,MAAM,iBAAA,GAAA,kBAAA,IAAA,CAAC,IAAI,MAAL,CAAW,CAAA;GACjB,aAAa,EAAE,IAAI,WAAW;EAChC;CACF,GACA,CAAC,eAAe,CAAC,CACnB;CACA,MAAM,wBAAA,GAAuBA,MAAAA,YAAAA,EAC1B,aAAqB;EACpB,YAAY,QAAQ;CACtB,GACA,CAAC,WAAW,CACd;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,SAAD;EAAM,SAAS;GAAE,IAAI;GAAI,IAAI;GAAI,IAAI;EAAG;EAAG,WAAW;EAAM,SAAS;GAAE,IAAI;GAAG,IAAI;EAAE;EACjF,UAAA,UAAU,KAAK,UAAU,UAAU;GAClC,MAAM,EAAE,MAAM,gBAAgB,qBAAqB,QAAQ;GAC3D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,SAAD;IAAkB,MAAM;KAAE,IAAI;KAAG,IAAI;IAAE;IACpC,UAAA,aAAa,kBACZ,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAD;KAAc,IAAI,EAAE,UAAU,GAAG;KAC/B,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAD;MAAuB;MAAmB;KAAc,CAAA;IAC5C,CAAA,IAEd,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD;KAAgB,eAAe,qBAAqB,QAAQ;KAC1D,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAD;MAAuB;MAAmB;KAAc,CAAA;IAC1C,CAAA;GAEd,GAVK,KAUL;EAEV,CAAC;CACG,CAAA,EACH,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageSwitch.mjs","names":[],"sources":["../../../src/sections/Header/LanguageSwitch.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport i18next from 'i18next';\nimport React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { Theme } from '../../';\nimport { useLanguage } from '../../';\n\nexport const CardSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n backgroundColor: theme.palette.grey['600'],\n opacity: '0.9',\n color: theme.palette.error.contrastText,\n fontWeight: 'bold',\n };\n});\n\nexport const CardUnSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n cursor: 'pointer',\n ':hover': {\n backgroundColor: theme.palette.greyGainsboro,\n },\n };\n});\n\nconst LanguageContent = ({ translation, icon }) => (\n <>\n <CardContent>\n <Typography display=\"block\" gutterBottom={true} variant=\"caption\">\n {translation}\n </Typography>\n </CardContent>\n <CardContent>{icon}</CardContent>\n </>\n);\n\nconst LanguageSwitch = () => {\n const { language, setLanguage, listLanguages } = useLanguage();\n const listConverted = listLanguages.reduce(\n (prev, item) => {\n prev[item.lng] = {\n translation: item.menuKey,\n icon: item.icon,\n };\n return prev;\n },\n {} as Record<string, { translation: string; icon: any }>\n );\n\n const [languages] = useState<string[]>(Object.keys(i18next.options?.resources || {}));\n const { t } = useTranslation();\n const currentLanguage = language;\n const getCurrentLngDetails = useCallback(\n (language: string) => {\n const lng = listConverted[language] || listConverted['en-US'];\n return {\n icon: <lng.icon />,\n translation: t(lng.translation),\n };\n },\n [listConverted, t]\n );\n const handleChangeLanguage = useCallback(\n (language: string) => {\n setLanguage(language);\n },\n [setLanguage]\n );\n\n return (\n <div>\n <Grid columns={{ xs: 12, sm: 12, md: 12 }} container={true} spacing={{ xs: 1, md: 1 }}>\n {languages.map((language, index) => {\n const { icon, translation } = getCurrentLngDetails(language);\n return (\n <Grid key={index} size={{ sm: 2, xs: 6 }}>\n {language === currentLanguage ? (\n <CardSelected sx={{ maxWidth: 80 }}>\n <LanguageContent icon={icon} translation={translation} />\n </CardSelected>\n ) : (\n <CardUnSelected onClick={() => handleChangeLanguage(language)}>\n <LanguageContent icon={icon} translation={translation} />\n </CardUnSelected>\n )}\n </Grid>\n );\n })}\n </Grid>\n </div>\n );\n};\n\nexport default LanguageSwitch;\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,eAAe,OAAO,IAAI,CAAC,EAAqB,EAAE,YAAY;CACzE,OAAO;EACL,iBAAiB,MAAM,QAAQ,KAAK;EACpC,SAAS;EACT,OAAO,MAAM,QAAQ,MAAM;EAC3B,YAAY;CACd;AACF,CAAC;AAED,IAAa,iBAAiB,OAAO,IAAI,CAAC,EAAqB,EAAE,YAAY;CAC3E,OAAO;EACL,QAAQ;EACR,UAAU,EACR,iBAAiB,MAAM,QAAQ,cACjC;CACF;AACF,CAAC;AAED,IAAM,mBAAmB,EAAE,aAAa,WACtC,
|
|
1
|
+
{"version":3,"file":"LanguageSwitch.mjs","names":["_Fragment"],"sources":["../../../src/sections/Header/LanguageSwitch.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport i18next from 'i18next';\nimport React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { Theme } from '../../';\nimport { useLanguage } from '../../';\n\nexport const CardSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n backgroundColor: theme.palette.grey['600'],\n opacity: '0.9',\n color: theme.palette.error.contrastText,\n fontWeight: 'bold',\n };\n});\n\nexport const CardUnSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n cursor: 'pointer',\n ':hover': {\n backgroundColor: theme.palette.greyGainsboro,\n },\n };\n});\n\nconst LanguageContent = ({ translation, icon }) => (\n <>\n <CardContent>\n <Typography display=\"block\" gutterBottom={true} variant=\"caption\">\n {translation}\n </Typography>\n </CardContent>\n <CardContent>{icon}</CardContent>\n </>\n);\n\nconst LanguageSwitch = () => {\n const { language, setLanguage, listLanguages } = useLanguage();\n const listConverted = listLanguages.reduce(\n (prev, item) => {\n prev[item.lng] = {\n translation: item.menuKey,\n icon: item.icon,\n };\n return prev;\n },\n {} as Record<string, { translation: string; icon: any }>\n );\n\n const [languages] = useState<string[]>(Object.keys(i18next.options?.resources || {}));\n const { t } = useTranslation();\n const currentLanguage = language;\n const getCurrentLngDetails = useCallback(\n (language: string) => {\n const lng = listConverted[language] || listConverted['en-US'];\n return {\n icon: <lng.icon />,\n translation: t(lng.translation),\n };\n },\n [listConverted, t]\n );\n const handleChangeLanguage = useCallback(\n (language: string) => {\n setLanguage(language);\n },\n [setLanguage]\n );\n\n return (\n <div>\n <Grid columns={{ xs: 12, sm: 12, md: 12 }} container={true} spacing={{ xs: 1, md: 1 }}>\n {languages.map((language, index) => {\n const { icon, translation } = getCurrentLngDetails(language);\n return (\n <Grid key={index} size={{ sm: 2, xs: 6 }}>\n {language === currentLanguage ? (\n <CardSelected sx={{ maxWidth: 80 }}>\n <LanguageContent icon={icon} translation={translation} />\n </CardSelected>\n ) : (\n <CardUnSelected onClick={() => handleChangeLanguage(language)}>\n <LanguageContent icon={icon} translation={translation} />\n </CardUnSelected>\n )}\n </Grid>\n );\n })}\n </Grid>\n </div>\n );\n};\n\nexport default LanguageSwitch;\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,eAAe,OAAO,IAAI,CAAC,EAAqB,EAAE,YAAY;CACzE,OAAO;EACL,iBAAiB,MAAM,QAAQ,KAAK;EACpC,SAAS;EACT,OAAO,MAAM,QAAQ,MAAM;EAC3B,YAAY;CACd;AACF,CAAC;AAED,IAAa,iBAAiB,OAAO,IAAI,CAAC,EAAqB,EAAE,YAAY;CAC3E,OAAO;EACL,QAAQ;EACR,UAAU,EACR,iBAAiB,MAAM,QAAQ,cACjC;CACF;AACF,CAAC;AAED,IAAM,mBAAmB,EAAE,aAAa,WACtC,qBAAAA,YAAA,EAAA,UAAA,CACE,oBAAC,aAAD,EAAA,UACE,oBAAC,YAAD;CAAY,SAAQ;CAAQ,cAAc;CAAM,SAAQ;CACrD,UAAA;AACS,CAAA,EACD,CAAA,GACb,oBAAC,aAAD,EAAA,UAAc,KAAkB,CAAA,CAChC,EAAA,CAAA;AAGJ,IAAM,uBAAuB;CAC3B,MAAM,EAAE,UAAU,aAAa,kBAAkB,YAAY;CAC7D,MAAM,gBAAgB,cAAc,QACjC,MAAM,SAAS;EACd,KAAK,KAAK,OAAO;GACf,aAAa,KAAK;GAClB,MAAM,KAAK;EACb;EACA,OAAO;CACT,GACA,CAAC,CACH;CAEA,MAAM,CAAC,aAAa,SAAmB,OAAO,KAAK,QAAQ,SAAS,aAAa,CAAC,CAAC,CAAC;CACpF,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,kBAAkB;CACxB,MAAM,uBAAuB,aAC1B,aAAqB;EACpB,MAAM,MAAM,cAAc,aAAa,cAAc;EACrD,OAAO;GACL,MAAM,oBAAC,IAAI,MAAL,CAAW,CAAA;GACjB,aAAa,EAAE,IAAI,WAAW;EAChC;CACF,GACA,CAAC,eAAe,CAAC,CACnB;CACA,MAAM,uBAAuB,aAC1B,aAAqB;EACpB,YAAY,QAAQ;CACtB,GACA,CAAC,WAAW,CACd;CAEA,OACE,oBAAC,OAAD,EAAA,UACE,oBAAC,MAAD;EAAM,SAAS;GAAE,IAAI;GAAI,IAAI;GAAI,IAAI;EAAG;EAAG,WAAW;EAAM,SAAS;GAAE,IAAI;GAAG,IAAI;EAAE;EACjF,UAAA,UAAU,KAAK,UAAU,UAAU;GAClC,MAAM,EAAE,MAAM,gBAAgB,qBAAqB,QAAQ;GAC3D,OACE,oBAAC,MAAD;IAAkB,MAAM;KAAE,IAAI;KAAG,IAAI;IAAE;IACpC,UAAA,aAAa,kBACZ,oBAAC,cAAD;KAAc,IAAI,EAAE,UAAU,GAAG;KAC/B,UAAA,oBAAC,iBAAD;MAAuB;MAAmB;KAAc,CAAA;IAC5C,CAAA,IAEd,oBAAC,gBAAD;KAAgB,eAAe,qBAAqB,QAAQ;KAC1D,UAAA,oBAAC,iBAAD;MAAuB;MAAmB;KAAc,CAAA;IAC1C,CAAA;GAEd,GAVK,KAUL;EAEV,CAAC;CACG,CAAA,EACH,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryInfoContent.js","names":[],"sources":["../../../../src/sections/Header/RegistryInfoContent/RegistryInfoContent.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport type { FC } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport {\n CopyClipboard,\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n useConfig,\n} from '../../../';\nimport { Description, TextContent } from './styles';\n\nexport const NODE_MANAGER = {\n npm: 'npm',\n yarn: 'yarn',\n pnpm: 'pnpm',\n};\n\nconst renderNpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.npm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.npm} adduser`, registryUrl)}\n />\n <CopyClipboard dataTestId=\"copy\" text={getCLIChangePassword(NODE_MANAGER.npm, registryUrl)} />\n </Box>\n );\n};\n\nconst renderPnpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.pnpm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.pnpm} adduser`, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLIChangePassword(NODE_MANAGER.pnpm, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.yarn} config set`, scope, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnBerryTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard dataTestId=\"copy\" text={getCLISBerryYamlRegistry(scope, registryUrl)} />\n </Box>\n );\n};\n\nexport const AccordionContainer = styled('div')({\n padding: 0,\n paddingLeft: 0,\n paddingRight: 0,\n});\n\nexport const CommandContainer = styled('div')({\n padding: 5,\n});\n\nexport const LinkContainer = styled('div')({\n margin: 10,\n marginLeft: 0,\n});\n\nexport type Props = {\n registryUrl: string;\n scope: string | undefined;\n};\n\nconst RegistryInfoContent: FC<Props> = ({ scope, registryUrl }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n\n const hasNpm = configOptions?.pkgManagers?.includes('npm');\n const hasYarn = configOptions?.pkgManagers?.includes('yarn');\n const hasPnpm = configOptions?.pkgManagers?.includes('pnpm');\n // TODO: we can improve this logic, expanding only one accordion based on which package manager is enabled\n // feel free to contribute here\n return (\n <>\n <TextContent>{t('packageManagers.description')}</TextContent>\n <AccordionContainer>\n <Accordion disabled={!hasNpm}>\n <AccordionSummary\n aria-controls=\"panel1a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel1a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'npm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderNpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n <Accordion disabled={!hasYarn}>\n <AccordionSummary\n aria-controls=\"panel2a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel2a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'yarn'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnclassicDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnTab(scope, registryUrl)}\n </CommandContainer>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnBerryDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnBerryTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <Accordion disabled={!hasPnpm}>\n <AccordionSummary\n aria-controls=\"panel3a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel3a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'pnpm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderPnpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <LinkContainer>\n <Link href=\"https://verdaccio.org/docs/cli-registry\" target=\"_blank\">\n <Typography>{t('header.registry-info-link')}</Typography>\n </Link>\n </LinkContainer>\n </AccordionContainer>\n </>\n );\n};\n\nexport default RegistryInfoContent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RegistryInfoContent.js","names":["Box","CopyClipboard","getCLISetConfigRegistry","getCLISetRegistry","getCLIChangePassword","getCLISBerryYamlRegistry","styled","useTranslation","useConfig","_Fragment","TextContent","Accordion","AccordionSummary","ExpandMoreIcon","Typography","AccordionDetails","Description","ReactMarkdown","Link"],"sources":["../../../../src/sections/Header/RegistryInfoContent/RegistryInfoContent.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport type { FC } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport {\n CopyClipboard,\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n useConfig,\n} from '../../../';\nimport { Description, TextContent } from './styles';\n\nexport const NODE_MANAGER = {\n npm: 'npm',\n yarn: 'yarn',\n pnpm: 'pnpm',\n};\n\nconst renderNpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.npm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.npm} adduser`, registryUrl)}\n />\n <CopyClipboard dataTestId=\"copy\" text={getCLIChangePassword(NODE_MANAGER.npm, registryUrl)} />\n </Box>\n );\n};\n\nconst renderPnpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.pnpm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.pnpm} adduser`, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLIChangePassword(NODE_MANAGER.pnpm, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.yarn} config set`, scope, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnBerryTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard dataTestId=\"copy\" text={getCLISBerryYamlRegistry(scope, registryUrl)} />\n </Box>\n );\n};\n\nexport const AccordionContainer = styled('div')({\n padding: 0,\n paddingLeft: 0,\n paddingRight: 0,\n});\n\nexport const CommandContainer = styled('div')({\n padding: 5,\n});\n\nexport const LinkContainer = styled('div')({\n margin: 10,\n marginLeft: 0,\n});\n\nexport type Props = {\n registryUrl: string;\n scope: string | undefined;\n};\n\nconst RegistryInfoContent: FC<Props> = ({ scope, registryUrl }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n\n const hasNpm = configOptions?.pkgManagers?.includes('npm');\n const hasYarn = configOptions?.pkgManagers?.includes('yarn');\n const hasPnpm = configOptions?.pkgManagers?.includes('pnpm');\n // TODO: we can improve this logic, expanding only one accordion based on which package manager is enabled\n // feel free to contribute here\n return (\n <>\n <TextContent>{t('packageManagers.description')}</TextContent>\n <AccordionContainer>\n <Accordion disabled={!hasNpm}>\n <AccordionSummary\n aria-controls=\"panel1a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel1a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'npm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderNpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n <Accordion disabled={!hasYarn}>\n <AccordionSummary\n aria-controls=\"panel2a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel2a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'yarn'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnclassicDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnTab(scope, registryUrl)}\n </CommandContainer>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnBerryDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnBerryTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <Accordion disabled={!hasPnpm}>\n <AccordionSummary\n aria-controls=\"panel3a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel3a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'pnpm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderPnpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <LinkContainer>\n <Link href=\"https://verdaccio.org/docs/cli-registry\" target=\"_blank\">\n <Typography>{t('header.registry-info-link')}</Typography>\n </Link>\n </LinkContainer>\n </AccordionContainer>\n </>\n );\n};\n\nexport default RegistryInfoContent;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryInfoContent.mjs","names":[],"sources":["../../../../src/sections/Header/RegistryInfoContent/RegistryInfoContent.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport type { FC } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport {\n CopyClipboard,\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n useConfig,\n} from '../../../';\nimport { Description, TextContent } from './styles';\n\nexport const NODE_MANAGER = {\n npm: 'npm',\n yarn: 'yarn',\n pnpm: 'pnpm',\n};\n\nconst renderNpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.npm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.npm} adduser`, registryUrl)}\n />\n <CopyClipboard dataTestId=\"copy\" text={getCLIChangePassword(NODE_MANAGER.npm, registryUrl)} />\n </Box>\n );\n};\n\nconst renderPnpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.pnpm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.pnpm} adduser`, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLIChangePassword(NODE_MANAGER.pnpm, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.yarn} config set`, scope, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnBerryTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard dataTestId=\"copy\" text={getCLISBerryYamlRegistry(scope, registryUrl)} />\n </Box>\n );\n};\n\nexport const AccordionContainer = styled('div')({\n padding: 0,\n paddingLeft: 0,\n paddingRight: 0,\n});\n\nexport const CommandContainer = styled('div')({\n padding: 5,\n});\n\nexport const LinkContainer = styled('div')({\n margin: 10,\n marginLeft: 0,\n});\n\nexport type Props = {\n registryUrl: string;\n scope: string | undefined;\n};\n\nconst RegistryInfoContent: FC<Props> = ({ scope, registryUrl }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n\n const hasNpm = configOptions?.pkgManagers?.includes('npm');\n const hasYarn = configOptions?.pkgManagers?.includes('yarn');\n const hasPnpm = configOptions?.pkgManagers?.includes('pnpm');\n // TODO: we can improve this logic, expanding only one accordion based on which package manager is enabled\n // feel free to contribute here\n return (\n <>\n <TextContent>{t('packageManagers.description')}</TextContent>\n <AccordionContainer>\n <Accordion disabled={!hasNpm}>\n <AccordionSummary\n aria-controls=\"panel1a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel1a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'npm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderNpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n <Accordion disabled={!hasYarn}>\n <AccordionSummary\n aria-controls=\"panel2a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel2a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'yarn'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnclassicDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnTab(scope, registryUrl)}\n </CommandContainer>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnBerryDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnBerryTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <Accordion disabled={!hasPnpm}>\n <AccordionSummary\n aria-controls=\"panel3a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel3a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'pnpm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderPnpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <LinkContainer>\n <Link href=\"https://verdaccio.org/docs/cli-registry\" target=\"_blank\">\n <Typography>{t('header.registry-info-link')}</Typography>\n </Link>\n </LinkContainer>\n </AccordionContainer>\n </>\n );\n};\n\nexport default RegistryInfoContent;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuBA,IAAa,eAAe;CAC1B,KAAK;CACL,MAAM;CACN,MAAM;AACR;AAEA,IAAM,gBAAgB,OAA2B,gBAA2C;CAC1F,OACE,qBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAAlC,UAAA;GACE,
|
|
1
|
+
{"version":3,"file":"RegistryInfoContent.mjs","names":["CopyClipboard","_Fragment"],"sources":["../../../../src/sections/Header/RegistryInfoContent/RegistryInfoContent.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport type { FC } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport {\n CopyClipboard,\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n useConfig,\n} from '../../../';\nimport { Description, TextContent } from './styles';\n\nexport const NODE_MANAGER = {\n npm: 'npm',\n yarn: 'yarn',\n pnpm: 'pnpm',\n};\n\nconst renderNpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.npm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.npm} adduser`, registryUrl)}\n />\n <CopyClipboard dataTestId=\"copy\" text={getCLIChangePassword(NODE_MANAGER.npm, registryUrl)} />\n </Box>\n );\n};\n\nconst renderPnpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.pnpm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.pnpm} adduser`, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLIChangePassword(NODE_MANAGER.pnpm, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.yarn} config set`, scope, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnBerryTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard dataTestId=\"copy\" text={getCLISBerryYamlRegistry(scope, registryUrl)} />\n </Box>\n );\n};\n\nexport const AccordionContainer = styled('div')({\n padding: 0,\n paddingLeft: 0,\n paddingRight: 0,\n});\n\nexport const CommandContainer = styled('div')({\n padding: 5,\n});\n\nexport const LinkContainer = styled('div')({\n margin: 10,\n marginLeft: 0,\n});\n\nexport type Props = {\n registryUrl: string;\n scope: string | undefined;\n};\n\nconst RegistryInfoContent: FC<Props> = ({ scope, registryUrl }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n\n const hasNpm = configOptions?.pkgManagers?.includes('npm');\n const hasYarn = configOptions?.pkgManagers?.includes('yarn');\n const hasPnpm = configOptions?.pkgManagers?.includes('pnpm');\n // TODO: we can improve this logic, expanding only one accordion based on which package manager is enabled\n // feel free to contribute here\n return (\n <>\n <TextContent>{t('packageManagers.description')}</TextContent>\n <AccordionContainer>\n <Accordion disabled={!hasNpm}>\n <AccordionSummary\n aria-controls=\"panel1a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel1a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'npm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderNpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n <Accordion disabled={!hasYarn}>\n <AccordionSummary\n aria-controls=\"panel2a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel2a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'yarn'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnclassicDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnTab(scope, registryUrl)}\n </CommandContainer>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnBerryDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnBerryTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <Accordion disabled={!hasPnpm}>\n <AccordionSummary\n aria-controls=\"panel3a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel3a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'pnpm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderPnpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <LinkContainer>\n <Link href=\"https://verdaccio.org/docs/cli-registry\" target=\"_blank\">\n <Typography>{t('header.registry-info-link')}</Typography>\n </Link>\n </LinkContainer>\n </AccordionContainer>\n </>\n );\n};\n\nexport default RegistryInfoContent;\n"],"mappings":"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"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { RegistryInfoContent as default };
|
|
1
|
+
export { default } from "./RegistryInfoContent.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":[],"sources":["../../../../src/sections/Header/RegistryInfoContent/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\n\nimport type { Theme } from '../../../';\n\nexport const TextContent = styled('div')<{ theme?: Theme }>(({ theme }) => ({\n paddingBottom: '10px',\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const Description = styled('div')<{ theme?: Theme }>(() => ({\n fontSize: '1rem',\n fontStyle: 'italic',\n}));\n"],"mappings":";;;;AAIA,IAAa,eAAA,
|
|
1
|
+
{"version":3,"file":"styles.js","names":["styled"],"sources":["../../../../src/sections/Header/RegistryInfoContent/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\n\nimport type { Theme } from '../../../';\n\nexport const TextContent = styled('div')<{ theme?: Theme }>(({ theme }) => ({\n paddingBottom: '10px',\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const Description = styled('div')<{ theme?: Theme }>(() => ({\n fontSize: '1rem',\n fontStyle: 'italic',\n}));\n"],"mappings":";;;;AAIA,IAAa,eAAA,GAAcA,gBAAAA,QAAAA,CAAO,KAAK,CAAC,EAAqB,EAAE,aAAa;CAC1E,eAAe;CACf,iBAAiB,MAAM,QAAQ,WAAW;AAC5C,EAAE;AAEF,IAAa,eAAA,GAAcA,gBAAAA,QAAAA,CAAO,KAAK,CAAC,QAA2B;CACjE,UAAU;CACV,WAAW;AACb,EAAE"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { Header as default };
|
|
1
|
+
export { default } from "./Header.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":[],"sources":["../../../src/sections/Header/styles.ts"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport AppBar from '@mui/material/AppBar';\nimport IconButton from '@mui/material/IconButton';\nimport Toolbar from '@mui/material/Toolbar';\nimport { common } from '@mui/material/colors';\n\nimport type { Theme } from '../../Theme';\n\nexport const InnerNavBar = styled(Toolbar)({\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 0,\n});\n\nexport const Greetings = styled('span')({\n margin: '0 5px 0 0',\n});\n\nexport const MobileNavBar = styled('div')<{ theme?: Theme }>((props) => ({\n alignItems: 'center',\n display: 'flex',\n borderBottom: `1px solid ${props.theme.palette.greyLight}`,\n padding: '8px',\n position: 'relative',\n}));\n\nexport const InnerMobileNavBar = styled('div')<{ theme?: Theme }>((props) => ({\n borderRadius: '4px',\n backgroundColor: props.theme.palette.greyLight,\n color: common.white,\n width: '100%',\n padding: '0 5px',\n margin: '0 10px 0 0',\n}));\n\nexport const IconSearchButton = styled(IconButton)({});\nexport const InfoButton = styled(IconButton)({});\nexport const SwitchThemeButton = styled(IconButton)({});\nexport const SettingsButtom = styled(IconButton)({});\n\nexport const SearchWrapper = styled('div')({\n display: 'none',\n width: '100%',\n marginLeft: 20,\n});\n\nexport const NavBar = styled(AppBar)<{ theme?: Theme }>(({ theme }) => ({\n backgroundColor:\n theme.palette.mode === 'light' ? theme.palette.primary.main : theme.palette.cyanBlue,\n color: common.white,\n minHeight: 60,\n display: 'flex',\n justifyContent: 'center',\n [`@media (max-width: ${theme.breakPoints.xsmall}px)`]: css`\n [data-testid='header--tooltip-info'] {\n display: none;\n }\n [data-testid='header--button--dark'],\n [data-testid='header--button--light'] {\n display: none;\n }\n [data-testid='header--tooltip-settings'] {\n display: none;\n }\n `,\n [`@media (min-width: ${theme.breakPoints.medium}px)`]: css`\n [data-testid='search-container'] {\n display: flex;\n }\n [data-testid='header--tooltip-search'] {\n display: none;\n }\n [data-testid='mobile-nav-bar'] {\n display: none;\n }\n `,\n [`@media (min-width: ${theme.breakPoints.large}px)`]: css`\n [data-testid='inner-nav-bar'] {\n padding: 0 16px;\n }\n `,\n [`@media (min-width: ${theme.breakPoints.xlarge}px)`]: css`\n [data-testid='inner-nav-bar'] {\n max-width: 1240px;\n width: 100%;\n margin: 0 auto;\n }\n `,\n}));\n"],"mappings":";;;;;;;;;;;;AASA,IAAa,eAAA,
|
|
1
|
+
{"version":3,"file":"styles.js","names":["styled","Toolbar","common","IconButton","AppBar"],"sources":["../../../src/sections/Header/styles.ts"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport AppBar from '@mui/material/AppBar';\nimport IconButton from '@mui/material/IconButton';\nimport Toolbar from '@mui/material/Toolbar';\nimport { common } from '@mui/material/colors';\n\nimport type { Theme } from '../../Theme';\n\nexport const InnerNavBar = styled(Toolbar)({\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 0,\n});\n\nexport const Greetings = styled('span')({\n margin: '0 5px 0 0',\n});\n\nexport const MobileNavBar = styled('div')<{ theme?: Theme }>((props) => ({\n alignItems: 'center',\n display: 'flex',\n borderBottom: `1px solid ${props.theme.palette.greyLight}`,\n padding: '8px',\n position: 'relative',\n}));\n\nexport const InnerMobileNavBar = styled('div')<{ theme?: Theme }>((props) => ({\n borderRadius: '4px',\n backgroundColor: props.theme.palette.greyLight,\n color: common.white,\n width: '100%',\n padding: '0 5px',\n margin: '0 10px 0 0',\n}));\n\nexport const IconSearchButton = styled(IconButton)({});\nexport const InfoButton = styled(IconButton)({});\nexport const SwitchThemeButton = styled(IconButton)({});\nexport const SettingsButtom = styled(IconButton)({});\n\nexport const SearchWrapper = styled('div')({\n display: 'none',\n width: '100%',\n marginLeft: 20,\n});\n\nexport const NavBar = styled(AppBar)<{ theme?: Theme }>(({ theme }) => ({\n backgroundColor:\n theme.palette.mode === 'light' ? theme.palette.primary.main : theme.palette.cyanBlue,\n color: common.white,\n minHeight: 60,\n display: 'flex',\n justifyContent: 'center',\n [`@media (max-width: ${theme.breakPoints.xsmall}px)`]: css`\n [data-testid='header--tooltip-info'] {\n display: none;\n }\n [data-testid='header--button--dark'],\n [data-testid='header--button--light'] {\n display: none;\n }\n [data-testid='header--tooltip-settings'] {\n display: none;\n }\n `,\n [`@media (min-width: ${theme.breakPoints.medium}px)`]: css`\n [data-testid='search-container'] {\n display: flex;\n }\n [data-testid='header--tooltip-search'] {\n display: none;\n }\n [data-testid='mobile-nav-bar'] {\n display: none;\n }\n `,\n [`@media (min-width: ${theme.breakPoints.large}px)`]: css`\n [data-testid='inner-nav-bar'] {\n padding: 0 16px;\n }\n `,\n [`@media (min-width: ${theme.breakPoints.xlarge}px)`]: css`\n [data-testid='inner-nav-bar'] {\n max-width: 1240px;\n width: 100%;\n margin: 0 auto;\n }\n `,\n}));\n"],"mappings":";;;;;;;;;;;;AASA,IAAa,eAAA,GAAcA,gBAAAA,QAAAA,CAAOC,sBAAAA,OAAO,CAAC,CAAC;CACzC,gBAAgB;CAChB,YAAY;CACZ,SAAS;AACX,CAAC;AAED,IAAa,aAAA,GAAYD,gBAAAA,QAAAA,CAAO,MAAM,CAAC,CAAC,EACtC,QAAQ,YACV,CAAC;AAED,IAAa,gBAAA,GAAeA,gBAAAA,QAAAA,CAAO,KAAK,CAAC,EAAqB,WAAW;CACvE,YAAY;CACZ,SAAS;CACT,cAAc,aAAa,MAAM,MAAM,QAAQ;CAC/C,SAAS;CACT,UAAU;AACZ,EAAE;AAEF,IAAa,qBAAA,GAAoBA,gBAAAA,QAAAA,CAAO,KAAK,CAAC,EAAqB,WAAW;CAC5E,cAAc;CACd,iBAAiB,MAAM,MAAM,QAAQ;CACrC,OAAOE,qBAAAA,OAAO;CACd,OAAO;CACP,SAAS;CACT,QAAQ;AACV,EAAE;AAEF,IAAa,oBAAA,GAAmBF,gBAAAA,QAAAA,CAAOG,yBAAAA,OAAU,CAAC,CAAC,CAAC,CAAC;AACrD,IAAa,cAAA,GAAaH,gBAAAA,QAAAA,CAAOG,yBAAAA,OAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAa,qBAAA,GAAoBH,gBAAAA,QAAAA,CAAOG,yBAAAA,OAAU,CAAC,CAAC,CAAC,CAAC;AACtD,IAAa,kBAAA,GAAiBH,gBAAAA,QAAAA,CAAOG,yBAAAA,OAAU,CAAC,CAAC,CAAC,CAAC;AAEnD,IAAa,iBAAA,GAAgBH,gBAAAA,QAAAA,CAAO,KAAK,CAAC,CAAC;CACzC,SAAS;CACT,OAAO;CACP,YAAY;AACd,CAAC;AAED,IAAa,UAAA,GAASA,gBAAAA,QAAAA,CAAOI,qBAAAA,OAAM,CAAC,EAAqB,EAAE,aAAa;CACtE,iBACE,MAAM,QAAQ,SAAS,UAAU,MAAM,QAAQ,QAAQ,OAAO,MAAM,QAAQ;CAC9E,OAAOF,qBAAAA,OAAO;CACd,WAAW;CACX,SAAS;CACT,gBAAgB;EACf,sBAAsB,MAAM,YAAY,OAAO,OAAO,eAAA,GAAG;;;;;;;;;;;;EAYzD,sBAAsB,MAAM,YAAY,OAAO,OAAO,eAAA,GAAG;;;;;;;;;;;EAWzD,sBAAsB,MAAM,YAAY,MAAM,OAAO,eAAA,GAAG;;;;;EAKxD,sBAAsB,MAAM,YAAY,OAAO,OAAO,eAAA,GAAG;;;;;;;AAO5D,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Home.js","names":[],"sources":["../../../src/sections/Home/Home.tsx"],"sourcesContent":["import React from 'react';\n\nimport { GenericError, Loading, PackageList, useManifests } from '../..';\nimport type { ManifestWeb } from '../../providers/ManifestsProvider/ManifestsProvider';\n\nconst Home: React.FC = () => {\n const manifests = useManifests();\n\n if (manifests.isError) {\n return <GenericError />;\n }\n\n return (\n <div className=\"container content\" data-testid=\"home-page-container\">\n {manifests.isLoading ? (\n <Loading />\n ) : (\n <PackageList packages={manifests.manifests as ManifestWeb[]} />\n )}\n </div>\n );\n};\n\nexport default Home;\n"],"mappings":";;;;;;;;;;AAKA,IAAM,aAAuB;CAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"Home.js","names":["useManifests","GenericError","Loading","PackageList"],"sources":["../../../src/sections/Home/Home.tsx"],"sourcesContent":["import React from 'react';\n\nimport { GenericError, Loading, PackageList, useManifests } from '../..';\nimport type { ManifestWeb } from '../../providers/ManifestsProvider/ManifestsProvider';\n\nconst Home: React.FC = () => {\n const manifests = useManifests();\n\n if (manifests.isError) {\n return <GenericError />;\n }\n\n return (\n <div className=\"container content\" data-testid=\"home-page-container\">\n {manifests.isLoading ? (\n <Loading />\n ) : (\n <PackageList packages={manifests.manifests as ManifestWeb[]} />\n )}\n </div>\n );\n};\n\nexport default Home;\n"],"mappings":";;;;;;;;;;AAKA,IAAM,aAAuB;CAC3B,MAAM,YAAYA,0BAAAA,aAAa;CAE/B,IAAI,UAAU,SACZ,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,qBAAAA,SAAD,CAAe,CAAA;CAGxB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAoB,eAAY;EAC5C,UAAA,UAAU,YACT,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,SAAD,CAAU,CAAA,IAEV,iBAAA,GAAA,kBAAA,IAAA,CAACC,oBAAAA,SAAD,EAAa,UAAU,UAAU,UAA6B,CAAA;CAE7D,CAAA;AAET"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { Home as default };
|
|
1
|
+
export { default } from "./Home.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddUser.js","names":[],"sources":["../../../src/sections/Security/AddUser.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Link, Typography } from '@mui/material';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { Link as RouterLink, useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport PasswordField from '../../components/LoginForm/PasswordField';\nimport UsernameField from '../../components/LoginForm/UsernameField';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { useAuth } from '../../providers/AuthProvider/AuthProvider';\nimport { authErrorMessage } from '../../providers/AuthProvider/utils';\nimport { saveAuth } from '../../store/storage';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport { generateSessionId } from '../../utils/session-id';\nimport type { AddUserFormValues } from '../../utils/schemas';\nimport { addUserSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\ntype AddUserBody = {\n name: string;\n password: string;\n email?: string;\n // the signup endpoint rejects requests without a 36-char session id\n sessionId: string;\n};\n\nconst AddUser: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const { setUserState } = useAuth();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const { next, user } = getSecurityUrlParams(location);\n const loginLink = Route.LOGIN + (next ? `?next=${encodeURIComponent(next)}` : '');\n const createUserEnabled = configuration?.flags?.createUser;\n const form = useForm<AddUserFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: typeof user === 'string' ? user : '',\n password: '',\n email: '',\n },\n resolver: yupResolver(addUserSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, isSubmitting, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ token?: string; username?: string }>(\n basePath,\n APIRoute.SIGNUP,\n 'PUT'\n );\n\n const handleAddUser = useCallback(\n async (body: AddUserBody) => {\n return await trigger(body);\n },\n [trigger]\n );\n\n // `disabled={isSubmitting}` only applies after a re-render; clicks landing in\n // the same React batch would still fire duplicate requests\n const inFlight = useRef(false);\n\n const onSubmit = useCallback(\n async (data: AddUserFormValues) => {\n if (inFlight.current) {\n return;\n }\n inFlight.current = true;\n try {\n const result = await handleAddUser({\n name: data.username,\n password: data.password,\n email: data.email,\n sessionId: generateSessionId(),\n });\n if (!result || !result.username || !result.token) {\n // a 2xx with an unexpected body must not pass as a successful signup\n throw new Error('signup response is missing the token');\n }\n saveAuth(result.username, result.token);\n // AuthProvider reads storage only once, so the header needs the state update\n setUserState?.({ username: result.username, token: result.token });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.AddUser}`);\n } catch (err) {\n setError('root', {\n type: 'server',\n message: authErrorMessage(err, t('security.error.unable-to-add-user')),\n });\n } finally {\n inFlight.current = false;\n }\n },\n [handleAddUser, setError, setUserState, navigate, t]\n );\n\n useEffect(() => {\n if (!createUserEnabled) {\n navigate('/');\n }\n }, [createUserEnabled, navigate]);\n\n return createUserEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.addUser.title')}\n </Typography>\n <UsernameField errors={errors} register={register} />\n <PasswordField errors={errors} register={register} />\n\n <SecurityTextField\n error={!!errors.email}\n // without this the submit button silently stays disabled on an\n // invalid email, with no visible reason\n helperText={errors.email?.message ? t(errors.email.message) : undefined}\n label={t('security.addUser.email')}\n type=\"email\"\n {...register('email')}\n />\n\n <Typography color=\"text.secondary\" paragraph={true} sx={{ fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.emailDescription')}\n </Typography>\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid || isSubmitting}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.addUser.submit')}\n </Button>\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.alreadyUserQuestion')}\n <Link component={RouterLink} sx={{ ml: 1 }} to={loginLink}>\n {t('security.addUser.login')}\n </Link>\n </Typography>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default AddUser;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAM,gBAA0B;CAC9B,MAAM,EAAE,OAAA,
|
|
1
|
+
{"version":3,"file":"AddUser.js","names":["useTranslation","useLocation","useNavigate","useAuth","getConfiguration","stripTrailingSlash","getSecurityUrlParams","Route","useForm","yupResolver","addUserSchema","useDataMutation","APIRoute","useCallback","useRef","generateSessionId","MessageType","authErrorMessage","SecurityLayout","SecurityContainer","SecurityForm","Typography","UsernameField","PasswordField","SecurityTextField","LoginDialogFormError","Button","Link","RouterLink"],"sources":["../../../src/sections/Security/AddUser.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Link, Typography } from '@mui/material';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { Link as RouterLink, useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport PasswordField from '../../components/LoginForm/PasswordField';\nimport UsernameField from '../../components/LoginForm/UsernameField';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { useAuth } from '../../providers/AuthProvider/AuthProvider';\nimport { authErrorMessage } from '../../providers/AuthProvider/utils';\nimport { saveAuth } from '../../store/storage';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport { generateSessionId } from '../../utils/session-id';\nimport type { AddUserFormValues } from '../../utils/schemas';\nimport { addUserSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\ntype AddUserBody = {\n name: string;\n password: string;\n email?: string;\n // the signup endpoint rejects requests without a 36-char session id\n sessionId: string;\n};\n\nconst AddUser: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const { setUserState } = useAuth();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const { next, user } = getSecurityUrlParams(location);\n const loginLink = Route.LOGIN + (next ? `?next=${encodeURIComponent(next)}` : '');\n const createUserEnabled = configuration?.flags?.createUser;\n const form = useForm<AddUserFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: typeof user === 'string' ? user : '',\n password: '',\n email: '',\n },\n resolver: yupResolver(addUserSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, isSubmitting, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ token?: string; username?: string }>(\n basePath,\n APIRoute.SIGNUP,\n 'PUT'\n );\n\n const handleAddUser = useCallback(\n async (body: AddUserBody) => {\n return await trigger(body);\n },\n [trigger]\n );\n\n // `disabled={isSubmitting}` only applies after a re-render; clicks landing in\n // the same React batch would still fire duplicate requests\n const inFlight = useRef(false);\n\n const onSubmit = useCallback(\n async (data: AddUserFormValues) => {\n if (inFlight.current) {\n return;\n }\n inFlight.current = true;\n try {\n const result = await handleAddUser({\n name: data.username,\n password: data.password,\n email: data.email,\n sessionId: generateSessionId(),\n });\n if (!result || !result.username || !result.token) {\n // a 2xx with an unexpected body must not pass as a successful signup\n throw new Error('signup response is missing the token');\n }\n saveAuth(result.username, result.token);\n // AuthProvider reads storage only once, so the header needs the state update\n setUserState?.({ username: result.username, token: result.token });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.AddUser}`);\n } catch (err) {\n setError('root', {\n type: 'server',\n message: authErrorMessage(err, t('security.error.unable-to-add-user')),\n });\n } finally {\n inFlight.current = false;\n }\n },\n [handleAddUser, setError, setUserState, navigate, t]\n );\n\n useEffect(() => {\n if (!createUserEnabled) {\n navigate('/');\n }\n }, [createUserEnabled, navigate]);\n\n return createUserEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.addUser.title')}\n </Typography>\n <UsernameField errors={errors} register={register} />\n <PasswordField errors={errors} register={register} />\n\n <SecurityTextField\n error={!!errors.email}\n // without this the submit button silently stays disabled on an\n // invalid email, with no visible reason\n helperText={errors.email?.message ? t(errors.email.message) : undefined}\n label={t('security.addUser.email')}\n type=\"email\"\n {...register('email')}\n />\n\n <Typography color=\"text.secondary\" paragraph={true} sx={{ fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.emailDescription')}\n </Typography>\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid || isSubmitting}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.addUser.submit')}\n </Button>\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.alreadyUserQuestion')}\n <Link component={RouterLink} sx={{ ml: 1 }} to={loginLink}>\n {t('security.addUser.login')}\n </Link>\n </Typography>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default AddUser;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAM,gBAA0B;CAC9B,MAAM,EAAE,OAAA,GAAMA,cAAAA,eAAAA,CAAe;CAC7B,MAAM,YAAA,GAAWC,aAAAA,YAAAA,CAAY;CAC7B,MAAM,YAAA,GAAWC,aAAAA,YAAAA,CAAY;CAC7B,MAAM,EAAE,iBAAiBC,qBAAAA,QAAQ;CACjC,MAAM,gBAAgBC,sBAAAA,iBAAiB;CACvC,MAAM,WAAWC,cAAAA,mBAAmB,cAAc,IAAI;CACtD,MAAM,EAAE,MAAM,SAASC,gBAAAA,qBAAqB,QAAQ;CACpD,MAAM,YAAYC,eAAAA,MAAM,SAAS,OAAO,SAAS,mBAAmB,IAAI,MAAM;CAC9E,MAAM,oBAAoB,eAAe,OAAO;CAWhD,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,cAAc,cAAA,GAdzBC,gBAAAA,QAAAA,CAA2B;EACtC,MAAM;EACN,eAAe;GACb,UAAU,OAAO,SAAS,WAAW,OAAO;GAC5C,UAAU;GACV,OAAO;EACT;EACA,WAAA,GAAUC,wBAAAA,YAAAA,CAAYC,gBAAAA,aAAa;CACrC,CAOI;CAEJ,MAAM,EAAE,YAAYC,0BAAAA,gBAClB,UACAC,eAAAA,SAAS,QACT,KACF;CAEA,MAAM,iBAAA,GAAgBC,MAAAA,YAAAA,CACpB,OAAO,SAAsB;EAC3B,OAAO,MAAM,QAAQ,IAAI;CAC3B,GACA,CAAC,OAAO,CACV;CAIA,MAAM,YAAA,GAAWC,MAAAA,OAAAA,CAAO,KAAK;CAE7B,MAAM,YAAA,GAAWD,MAAAA,YAAAA,CACf,OAAO,SAA4B;EACjC,IAAI,SAAS,SACX;EAEF,SAAS,UAAU;EACnB,IAAI;GACF,MAAM,SAAS,MAAM,cAAc;IACjC,MAAM,KAAK;IACX,UAAU,KAAK;IACf,OAAO,KAAK;IACZ,WAAWE,mBAAAA,kBAAkB;GAC/B,CAAC;GACD,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,OAAO,OAEzC,MAAM,IAAI,MAAM,sCAAsC;GAExD,gBAAA,SAAS,OAAO,UAAU,OAAO,KAAK;GAEtC,eAAe;IAAE,UAAU,OAAO;IAAU,OAAO,OAAO;GAAM,CAAC;GACjE,SAAS,GAAGR,eAAAA,MAAM,QAAQ,eAAeS,gBAAAA,YAAY,SAAS;EAChE,SAAS,KAAK;GACZ,SAAS,QAAQ;IACf,MAAM;IACN,SAASC,gBAAAA,iBAAiB,KAAK,EAAE,mCAAmC,CAAC;GACvE,CAAC;EACH,UAAU;GACR,SAAS,UAAU;EACrB;CACF,GACA;EAAC;EAAe;EAAU;EAAc;EAAU;CAAC,CACrD;CAEA,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,mBACH,SAAS,GAAG;CAEhB,GAAG,CAAC,mBAAmB,QAAQ,CAAC;CAEhC,OAAO,oBACL,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,mBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,eAAAA,cAAD;EAAc,UAAU,aAAa,QAAQ;EAA7C,UAAA;GACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,cAAAA,YAAD;IAAY,OAAM;IAAS,WAAU;IAAK,cAAc;IAAM,SAAQ;IACnE,UAAA,EAAE,wBAAwB;GACjB,CAAA;GACZ,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,SAAD;IAAuB;IAAkB;GAAW,CAAA;GACpD,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,SAAD;IAAuB;IAAkB;GAAW,CAAA;GAEpD,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAGhB,YAAY,OAAO,OAAO,UAAU,EAAE,OAAO,MAAM,OAAO,IAAI,KAAA;IAC9D,OAAO,EAAE,wBAAwB;IACjC,MAAK;IACL,GAAI,SAAS,OAAO;GACrB,CAAA;GAED,iBAAA,GAAA,kBAAA,IAAA,CAACH,cAAAA,YAAD;IAAY,OAAM;IAAiB,WAAW;IAAM,IAAI,EAAE,UAAU,GAAG;IAAG,SAAQ;IAC/E,UAAA,EAAE,mCAAmC;GAC5B,CAAA;GACX,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAACI,6BAAAA,SAAD,EAAsB,OAAO,OAAO,KAAO,CAAA;GAC3D,iBAAA,GAAA,kBAAA,IAAA,CAACC,cAAAA,QAAD;IACE,OAAM;IACN,UAAU,CAAC,WAAW;IACtB,WAAW;IACX,IAAI,EAAE,IAAI,EAAE;IACZ,MAAK;IACL,SAAQ;IAEP,UAAA,EAAE,yBAAyB;GACtB,CAAA;GACR,iBAAA,GAAA,kBAAA,KAAA,CAACL,cAAAA,YAAD;IAAY,OAAM;IAAS,IAAI;KAAE,IAAI;KAAG,UAAU;IAAG;IAAG,SAAQ;IAAhE,UAAA,CACG,EAAE,sCAAsC,GACzC,iBAAA,GAAA,kBAAA,IAAA,CAACM,cAAAA,MAAD;KAAM,WAAWC,aAAAA;KAAY,IAAI,EAAE,IAAI,EAAE;KAAG,IAAI;KAC7C,UAAA,EAAE,wBAAwB;IACvB,CAAA,CACI;;EACA;CACG,CAAA,EAAA,CAAA,EACL,CAAA,IACd;AACN"}
|