@verdaccio/ui-components 5.0.0-next-9.2 → 5.0.0-next-9.4
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 +29 -25
- package/build/Theme/ResetStyles.js.map +1 -1
- package/build/Theme/ResetStyles.mjs +32 -0
- package/build/Theme/ResetStyles.mjs.map +1 -0
- package/build/Theme/StyleBaseline.js +10 -7
- package/build/Theme/StyleBaseline.js.map +1 -1
- package/build/Theme/StyleBaseline.mjs +11 -0
- package/build/Theme/StyleBaseline.mjs.map +1 -0
- package/build/Theme/ThemeProvider.js +33 -23
- package/build/Theme/ThemeProvider.js.map +1 -1
- package/build/Theme/ThemeProvider.mjs +40 -0
- package/build/Theme/ThemeProvider.mjs.map +1 -0
- package/build/Theme/colors.js +26 -12
- package/build/Theme/colors.js.map +1 -1
- package/build/Theme/colors.mjs +22 -0
- package/build/Theme/colors.mjs.map +1 -0
- package/build/Theme/index.js +5 -5
- package/build/Theme/index.mjs +5 -0
- package/build/Theme/modes.js +15 -12
- package/build/Theme/modes.js.map +1 -1
- package/build/Theme/modes.mjs +30 -0
- package/build/Theme/modes.mjs.map +1 -0
- package/build/Theme/theme.js +19 -16
- package/build/Theme/theme.js.map +1 -1
- package/build/Theme/theme.mjs +22 -0
- package/build/Theme/theme.mjs.map +1 -0
- package/build/Theme/tokens.js +14 -8
- package/build/Theme/tokens.js.map +1 -1
- package/build/Theme/tokens.mjs +33 -0
- package/build/Theme/tokens.mjs.map +1 -0
- package/build/_virtual/_rolldown/runtime.js +29 -7
- package/build/_virtual/_rolldown/runtime.mjs +13 -0
- package/build/api/use-data-mutation.js +31 -24
- package/build/api/use-data-mutation.js.map +1 -1
- package/build/api/use-data-mutation.mjs +45 -0
- package/build/api/use-data-mutation.mjs.map +1 -0
- package/build/api/use-data.js +17 -12
- package/build/api/use-data.js.map +1 -1
- package/build/api/use-data.mjs +23 -0
- package/build/api/use-data.mjs.map +1 -0
- package/build/components/ActionBar/ActionBar.js +37 -28
- package/build/components/ActionBar/ActionBar.js.map +1 -1
- package/build/components/ActionBar/ActionBar.mjs +52 -0
- package/build/components/ActionBar/ActionBar.mjs.map +1 -0
- package/build/components/ActionBar/ActionBarAction.js +66 -52
- package/build/components/ActionBar/ActionBarAction.js.map +1 -1
- package/build/components/ActionBar/ActionBarAction.mjs +85 -0
- package/build/components/ActionBar/ActionBarAction.mjs.map +1 -0
- package/build/components/ActionBar/index.js +1 -1
- package/build/components/ActionBar/index.mjs +1 -0
- package/build/components/AppRoute/AppRoute.js +58 -47
- package/build/components/AppRoute/AppRoute.js.map +1 -1
- package/build/components/AppRoute/AppRoute.mjs +76 -0
- package/build/components/AppRoute/AppRoute.mjs.map +1 -0
- package/build/components/Author/Author.js +26 -22
- package/build/components/Author/Author.js.map +1 -1
- package/build/components/Author/Author.mjs +33 -0
- package/build/components/Author/Author.mjs.map +1 -0
- package/build/components/Author/index.js +1 -1
- package/build/components/Author/index.mjs +1 -0
- package/build/components/Author/styles.js +13 -8
- package/build/components/Author/styles.js.map +1 -1
- package/build/components/Author/styles.mjs +26 -0
- package/build/components/Author/styles.mjs.map +1 -0
- package/build/components/CopyClipboard/CopyToClipBoard.js +35 -28
- package/build/components/CopyClipboard/CopyToClipBoard.js.map +1 -1
- package/build/components/CopyClipboard/CopyToClipBoard.mjs +57 -0
- package/build/components/CopyClipboard/CopyToClipBoard.mjs.map +1 -0
- package/build/components/CopyClipboard/index.js +2 -2
- package/build/components/CopyClipboard/index.mjs +2 -0
- package/build/components/CopyClipboard/utils.js +4 -3
- package/build/components/CopyClipboard/utils.js.map +1 -1
- package/build/components/CopyClipboard/utils.mjs +9 -0
- package/build/components/CopyClipboard/utils.mjs.map +1 -0
- package/build/components/Dependencies/Dependencies.js +38 -26
- package/build/components/Dependencies/Dependencies.js.map +1 -1
- package/build/components/Dependencies/Dependencies.mjs +45 -0
- package/build/components/Dependencies/Dependencies.mjs.map +1 -0
- package/build/components/Dependencies/DependencyBlock.js +50 -38
- package/build/components/Dependencies/DependencyBlock.js.map +1 -1
- package/build/components/Dependencies/DependencyBlock.mjs +70 -0
- package/build/components/Dependencies/DependencyBlock.mjs.map +1 -0
- package/build/components/Dependencies/index.js +2 -2
- package/build/components/Dependencies/index.mjs +2 -0
- package/build/components/Dependencies/utits.js +3 -3
- package/build/components/Dependencies/utits.js.map +1 -1
- package/build/components/Dependencies/utits.mjs +8 -0
- package/build/components/Dependencies/utits.mjs.map +1 -0
- package/build/components/Deprecated/Deprecated.js +17 -12
- package/build/components/Deprecated/Deprecated.js.map +1 -1
- package/build/components/Deprecated/Deprecated.mjs +18 -0
- package/build/components/Deprecated/Deprecated.mjs.map +1 -0
- package/build/components/Deprecated/index.js +1 -1
- package/build/components/Deprecated/index.mjs +1 -0
- package/build/components/Developers/DeveloperType.js +5 -3
- package/build/components/Developers/DeveloperType.js.map +1 -1
- package/build/components/Developers/DeveloperType.mjs +10 -0
- package/build/components/Developers/DeveloperType.mjs.map +1 -0
- package/build/components/Developers/Developers.js +50 -37
- package/build/components/Developers/Developers.js.map +1 -1
- package/build/components/Developers/Developers.mjs +68 -0
- package/build/components/Developers/Developers.mjs.map +1 -0
- package/build/components/Developers/Title.js +23 -18
- package/build/components/Developers/Title.js.map +1 -1
- package/build/components/Developers/Title.mjs +32 -0
- package/build/components/Developers/Title.mjs.map +1 -0
- package/build/components/Developers/get-unique-developer-values.js +4 -3
- package/build/components/Developers/get-unique-developer-values.js.map +1 -1
- package/build/components/Developers/get-unique-developer-values.mjs +9 -0
- package/build/components/Developers/get-unique-developer-values.mjs.map +1 -0
- package/build/components/Developers/index.js +2 -2
- package/build/components/Developers/index.mjs +2 -0
- package/build/components/Distribution/Dist.js +32 -27
- package/build/components/Distribution/Dist.js.map +1 -1
- package/build/components/Distribution/Dist.mjs +42 -0
- package/build/components/Distribution/Dist.mjs.map +1 -0
- package/build/components/Distribution/index.js +1 -1
- package/build/components/Distribution/index.mjs +1 -0
- package/build/components/Distribution/styles.js +22 -13
- package/build/components/Distribution/styles.js.map +1 -1
- package/build/components/Distribution/styles.mjs +41 -0
- package/build/components/Distribution/styles.mjs.map +1 -0
- package/build/components/Engines/Engines.js +61 -43
- package/build/components/Engines/Engines.js.map +1 -1
- package/build/components/Engines/Engines.mjs +82 -0
- package/build/components/Engines/Engines.mjs.map +1 -0
- package/build/components/Engines/index.js +1 -1
- package/build/components/Engines/index.mjs +1 -0
- package/build/components/Engines/styles.js +16 -10
- package/build/components/Engines/styles.js.map +1 -1
- package/build/components/Engines/styles.mjs +29 -0
- package/build/components/Engines/styles.mjs.map +1 -0
- package/build/components/ErrorBoundary/ErrorBoundary.js +18 -14
- package/build/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/build/components/ErrorBoundary/ErrorBoundary.mjs +31 -0
- package/build/components/ErrorBoundary/ErrorBoundary.mjs.map +1 -0
- package/build/components/ErrorBoundary/index.js +1 -1
- package/build/components/ErrorBoundary/index.mjs +1 -0
- package/build/components/Forbidden/Forbidden.js +37 -27
- package/build/components/Forbidden/Forbidden.js.map +1 -1
- package/build/components/Forbidden/Forbidden.mjs +70 -0
- package/build/components/Forbidden/Forbidden.mjs.map +1 -0
- package/build/components/Forbidden/index.js +1 -1
- package/build/components/Forbidden/index.mjs +1 -0
- package/build/components/FundButton/FundButton.js +38 -29
- package/build/components/FundButton/FundButton.js.map +1 -1
- package/build/components/FundButton/FundButton.mjs +60 -0
- package/build/components/FundButton/FundButton.mjs.map +1 -0
- package/build/components/FundButton/index.js +1 -1
- package/build/components/FundButton/index.mjs +1 -0
- package/build/components/HeaderInfoDialog/HeaderInfoDialog.js +52 -42
- package/build/components/HeaderInfoDialog/HeaderInfoDialog.js.map +1 -1
- package/build/components/HeaderInfoDialog/HeaderInfoDialog.mjs +71 -0
- package/build/components/HeaderInfoDialog/HeaderInfoDialog.mjs.map +1 -0
- package/build/components/HeaderInfoDialog/index.js +1 -1
- package/build/components/HeaderInfoDialog/index.mjs +1 -0
- package/build/components/Heading/Heading.js +12 -9
- package/build/components/Heading/Heading.js.map +1 -1
- package/build/components/Heading/Heading.mjs +15 -0
- package/build/components/Heading/Heading.mjs.map +1 -0
- package/build/components/Heading/index.js +1 -1
- package/build/components/Heading/index.mjs +1 -0
- package/build/components/Help/Help.js +42 -34
- package/build/components/Help/Help.js.map +1 -1
- package/build/components/Help/Help.mjs +60 -0
- package/build/components/Help/Help.mjs.map +1 -0
- package/build/components/Help/index.js +1 -1
- package/build/components/Help/index.mjs +1 -0
- package/build/components/Help/styles.js +9 -6
- package/build/components/Help/styles.js.map +1 -1
- package/build/components/Help/styles.mjs +21 -0
- package/build/components/Help/styles.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/CommonJS2.js +9 -7
- package/build/components/Icons/DevsIcons/CommonJS2.js.map +1 -1
- package/build/components/Icons/DevsIcons/CommonJS2.mjs +16 -0
- package/build/components/Icons/DevsIcons/CommonJS2.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/ES6Module2.js +9 -7
- package/build/components/Icons/DevsIcons/ES6Module2.js.map +1 -1
- package/build/components/Icons/DevsIcons/ES6Module2.mjs +16 -0
- package/build/components/Icons/DevsIcons/ES6Module2.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/Git2.js +9 -7
- package/build/components/Icons/DevsIcons/Git2.js.map +1 -1
- package/build/components/Icons/DevsIcons/Git2.mjs +16 -0
- package/build/components/Icons/DevsIcons/Git2.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/NodeJS2.js +9 -7
- package/build/components/Icons/DevsIcons/NodeJS2.js.map +1 -1
- package/build/components/Icons/DevsIcons/NodeJS2.mjs +16 -0
- package/build/components/Icons/DevsIcons/NodeJS2.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/TypeScript2.js +9 -7
- package/build/components/Icons/DevsIcons/TypeScript2.js.map +1 -1
- package/build/components/Icons/DevsIcons/TypeScript2.mjs +16 -0
- package/build/components/Icons/DevsIcons/TypeScript2.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/commonjs.js +2 -2
- package/build/components/Icons/DevsIcons/commonjs.js.map +1 -1
- package/build/components/Icons/DevsIcons/commonjs.mjs +6 -0
- package/build/components/Icons/DevsIcons/commonjs.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/es6module.js +2 -2
- package/build/components/Icons/DevsIcons/es6module.js.map +1 -1
- package/build/components/Icons/DevsIcons/es6module.mjs +6 -0
- package/build/components/Icons/DevsIcons/es6module.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/git.js +2 -2
- package/build/components/Icons/DevsIcons/git.js.map +1 -1
- package/build/components/Icons/DevsIcons/git.mjs +6 -0
- package/build/components/Icons/DevsIcons/git.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/index.js +5 -5
- package/build/components/Icons/DevsIcons/index.mjs +5 -0
- package/build/components/Icons/DevsIcons/nodejs.js +2 -2
- package/build/components/Icons/DevsIcons/nodejs.js.map +1 -1
- package/build/components/Icons/DevsIcons/nodejs.mjs +6 -0
- package/build/components/Icons/DevsIcons/nodejs.mjs.map +1 -0
- package/build/components/Icons/DevsIcons/typescript.js +2 -2
- package/build/components/Icons/DevsIcons/typescript.js.map +1 -1
- package/build/components/Icons/DevsIcons/typescript.mjs +6 -0
- package/build/components/Icons/DevsIcons/typescript.mjs.map +1 -0
- package/build/components/Icons/Earth.js +19 -17
- package/build/components/Icons/Earth.js.map +1 -1
- package/build/components/Icons/Earth.mjs +41 -0
- package/build/components/Icons/Earth.mjs.map +1 -0
- package/build/components/Icons/FileBinary.js +12 -10
- package/build/components/Icons/FileBinary.js.map +1 -1
- package/build/components/Icons/FileBinary.mjs +17 -0
- package/build/components/Icons/FileBinary.mjs.map +1 -0
- package/build/components/Icons/Law.js +12 -10
- package/build/components/Icons/Law.js.map +1 -1
- package/build/components/Icons/Law.mjs +20 -0
- package/build/components/Icons/Law.mjs.map +1 -0
- package/build/components/Icons/License.js +12 -10
- package/build/components/Icons/License.js.map +1 -1
- package/build/components/Icons/License.mjs +17 -0
- package/build/components/Icons/License.mjs.map +1 -0
- package/build/components/Icons/Managers/Npm2.js +9 -7
- package/build/components/Icons/Managers/Npm2.js.map +1 -1
- package/build/components/Icons/Managers/Npm2.mjs +16 -0
- package/build/components/Icons/Managers/Npm2.mjs.map +1 -0
- package/build/components/Icons/Managers/Pnpm2.js +9 -7
- package/build/components/Icons/Managers/Pnpm2.js.map +1 -1
- package/build/components/Icons/Managers/Pnpm2.mjs +16 -0
- package/build/components/Icons/Managers/Pnpm2.mjs.map +1 -0
- package/build/components/Icons/Managers/Yarn2.js +9 -7
- package/build/components/Icons/Managers/Yarn2.js.map +1 -1
- package/build/components/Icons/Managers/Yarn2.mjs +16 -0
- package/build/components/Icons/Managers/Yarn2.mjs.map +1 -0
- package/build/components/Icons/Managers/index.js +3 -3
- package/build/components/Icons/Managers/index.mjs +3 -0
- package/build/components/Icons/Managers/npm.js +2 -2
- package/build/components/Icons/Managers/npm.js.map +1 -1
- package/build/components/Icons/Managers/npm.mjs +6 -0
- package/build/components/Icons/Managers/npm.mjs.map +1 -0
- package/build/components/Icons/Managers/pnpm.js +2 -2
- package/build/components/Icons/Managers/pnpm.js.map +1 -1
- package/build/components/Icons/Managers/pnpm.mjs +6 -0
- package/build/components/Icons/Managers/pnpm.mjs.map +1 -0
- package/build/components/Icons/Managers/yarn.js +2 -2
- package/build/components/Icons/Managers/yarn.js.map +1 -1
- package/build/components/Icons/Managers/yarn.mjs +6 -0
- package/build/components/Icons/Managers/yarn.mjs.map +1 -0
- package/build/components/Icons/SvgIcon.js +28 -19
- package/build/components/Icons/SvgIcon.js.map +1 -1
- package/build/components/Icons/SvgIcon.mjs +31 -0
- package/build/components/Icons/SvgIcon.mjs.map +1 -0
- package/build/components/Icons/Time.js +14 -12
- package/build/components/Icons/Time.js.map +1 -1
- package/build/components/Icons/Time.mjs +24 -0
- package/build/components/Icons/Time.mjs.map +1 -0
- package/build/components/Icons/Version.js +12 -10
- package/build/components/Icons/Version.js.map +1 -1
- package/build/components/Icons/Version.mjs +22 -0
- package/build/components/Icons/Version.mjs.map +1 -0
- package/build/components/Icons/index.js +38 -33
- package/build/components/Icons/index.mjs +38 -0
- package/build/components/Icons/index.mjs.map +1 -0
- package/build/components/Install/Install.js +44 -36
- package/build/components/Install/Install.js.map +1 -1
- package/build/components/Install/Install.mjs +66 -0
- package/build/components/Install/Install.mjs.map +1 -0
- package/build/components/Install/InstallListItem.js +66 -51
- package/build/components/Install/InstallListItem.js.map +1 -1
- package/build/components/Install/InstallListItem.mjs +109 -0
- package/build/components/Install/InstallListItem.mjs.map +1 -0
- package/build/components/Install/index.js +1 -1
- package/build/components/Install/index.mjs +1 -0
- package/build/components/Keywords/KeywordListItems.js +17 -12
- package/build/components/Keywords/KeywordListItems.js.map +1 -1
- package/build/components/Keywords/KeywordListItems.mjs +28 -0
- package/build/components/Keywords/KeywordListItems.mjs.map +1 -0
- package/build/components/Keywords/Keywords.js +22 -16
- package/build/components/Keywords/Keywords.js.map +1 -1
- package/build/components/Keywords/Keywords.mjs +29 -0
- package/build/components/Keywords/Keywords.mjs.map +1 -0
- package/build/components/Keywords/index.js +1 -1
- package/build/components/Keywords/index.mjs +1 -0
- package/build/components/Label/Label.js +20 -14
- package/build/components/Label/Label.js.map +1 -1
- package/build/components/Label/Label.mjs +23 -0
- package/build/components/Label/Label.mjs.map +1 -0
- package/build/components/Label/index.js +1 -1
- package/build/components/Label/index.mjs +1 -0
- package/build/components/Link/Link.js +23 -18
- package/build/components/Link/Link.js.map +1 -1
- package/build/components/Link/Link.mjs +37 -0
- package/build/components/Link/Link.mjs.map +1 -0
- package/build/components/Link/index.js +1 -1
- package/build/components/Link/index.mjs +1 -0
- package/build/components/LinkExternal/LinkExternal.js +15 -12
- package/build/components/LinkExternal/LinkExternal.js.map +1 -1
- package/build/components/LinkExternal/LinkExternal.mjs +21 -0
- package/build/components/LinkExternal/LinkExternal.mjs.map +1 -0
- package/build/components/LinkExternal/index.js +1 -1
- package/build/components/LinkExternal/index.mjs +1 -0
- package/build/components/Loading/Loading.js +12 -10
- package/build/components/Loading/Loading.js.map +1 -1
- package/build/components/Loading/Loading.mjs +16 -0
- package/build/components/Loading/Loading.mjs.map +1 -0
- package/build/components/Loading/Spinner/Spinner.js +20 -14
- package/build/components/Loading/Spinner/Spinner.js.map +1 -1
- package/build/components/Loading/Spinner/Spinner.mjs +32 -0
- package/build/components/Loading/Spinner/Spinner.mjs.map +1 -0
- package/build/components/Loading/Spinner/index.js +1 -1
- package/build/components/Loading/Spinner/index.mjs +1 -0
- package/build/components/Loading/index.js +1 -1
- package/build/components/Loading/index.mjs +1 -0
- package/build/components/Loading/styles.js +12 -8
- package/build/components/Loading/styles.js.map +1 -1
- package/build/components/Loading/styles.mjs +30 -0
- package/build/components/Loading/styles.mjs.map +1 -0
- package/build/components/LoginDialog/LoginDialog.js +25 -20
- package/build/components/LoginDialog/LoginDialog.js.map +1 -1
- package/build/components/LoginDialog/LoginDialog.mjs +31 -0
- package/build/components/LoginDialog/LoginDialog.mjs.map +1 -0
- package/build/components/LoginDialog/LoginDialogCloseButton.js +25 -18
- package/build/components/LoginDialog/LoginDialogCloseButton.js.map +1 -1
- package/build/components/LoginDialog/LoginDialogCloseButton.mjs +30 -0
- package/build/components/LoginDialog/LoginDialogCloseButton.mjs.map +1 -0
- package/build/components/LoginDialog/LoginDialogForm.js +15 -13
- package/build/components/LoginDialog/LoginDialogForm.js.map +1 -1
- package/build/components/LoginDialog/LoginDialogForm.mjs +19 -0
- package/build/components/LoginDialog/LoginDialogForm.mjs.map +1 -0
- package/build/components/LoginDialog/LoginDialogFormError.js +32 -22
- package/build/components/LoginDialog/LoginDialogFormError.js.map +1 -1
- package/build/components/LoginDialog/LoginDialogFormError.mjs +36 -0
- package/build/components/LoginDialog/LoginDialogFormError.mjs.map +1 -0
- package/build/components/LoginDialog/index.js +1 -1
- package/build/components/LoginDialog/index.mjs +1 -0
- package/build/components/LoginForm/Login.js +45 -36
- package/build/components/LoginForm/Login.js.map +1 -1
- package/build/components/LoginForm/Login.mjs +69 -0
- package/build/components/LoginForm/Login.mjs.map +1 -0
- package/build/components/LoginForm/PasswordField.js +24 -19
- package/build/components/LoginForm/PasswordField.js.map +1 -1
- package/build/components/LoginForm/PasswordField.mjs +34 -0
- package/build/components/LoginForm/PasswordField.mjs.map +1 -0
- package/build/components/LoginForm/UsernameField.js +24 -19
- package/build/components/LoginForm/UsernameField.js.map +1 -1
- package/build/components/LoginForm/UsernameField.mjs +32 -0
- package/build/components/LoginForm/UsernameField.mjs.map +1 -0
- package/build/components/LoginForm/styles.js +42 -32
- package/build/components/LoginForm/styles.js.map +1 -1
- package/build/components/LoginForm/styles.mjs +52 -0
- package/build/components/LoginForm/styles.mjs.map +1 -0
- package/build/components/LoginForm/useLoginForm.js +23 -18
- package/build/components/LoginForm/useLoginForm.js.map +1 -1
- package/build/components/LoginForm/useLoginForm.mjs +38 -0
- package/build/components/LoginForm/useLoginForm.mjs.map +1 -0
- package/build/components/Logo/Logo.js +44 -36
- package/build/components/Logo/Logo.js.map +1 -1
- package/build/components/Logo/Logo.mjs +74 -0
- package/build/components/Logo/Logo.mjs.map +1 -0
- package/build/components/Logo/img/logo-black-and-white.js +2 -2
- package/build/components/Logo/img/logo-black-and-white.js.map +1 -1
- package/build/components/Logo/img/logo-black-and-white.mjs +6 -0
- package/build/components/Logo/img/logo-black-and-white.mjs.map +1 -0
- package/build/components/Logo/img/logo.js +2 -2
- package/build/components/Logo/img/logo.js.map +1 -1
- package/build/components/Logo/img/logo.mjs +6 -0
- package/build/components/Logo/img/logo.mjs.map +1 -0
- package/build/components/Logo/index.js +1 -1
- package/build/components/Logo/index.mjs +1 -0
- package/build/components/MenuItem/MenuItem.js +18 -13
- package/build/components/MenuItem/MenuItem.js.map +1 -1
- package/build/components/MenuItem/MenuItem.mjs +30 -0
- package/build/components/MenuItem/MenuItem.mjs.map +1 -0
- package/build/components/MenuItem/index.js +1 -1
- package/build/components/MenuItem/index.mjs +1 -0
- package/build/components/NoItems/NoItems.js +13 -9
- package/build/components/NoItems/NoItems.js.map +1 -1
- package/build/components/NoItems/NoItems.mjs +16 -0
- package/build/components/NoItems/NoItems.mjs.map +1 -0
- package/build/components/NoItems/index.js +1 -1
- package/build/components/NoItems/index.mjs +1 -0
- package/build/components/NotFound/NotFound.js +37 -27
- package/build/components/NotFound/NotFound.js.map +1 -1
- package/build/components/NotFound/NotFound.mjs +70 -0
- package/build/components/NotFound/NotFound.mjs.map +1 -0
- package/build/components/NotFound/index.js +1 -1
- package/build/components/NotFound/index.mjs +1 -0
- package/build/components/Package/Package.js +146 -112
- package/build/components/Package/Package.js.map +1 -1
- package/build/components/Package/Package.mjs +188 -0
- package/build/components/Package/Package.mjs.map +1 -0
- package/build/components/Package/index.js +1 -1
- package/build/components/Package/index.mjs +1 -0
- package/build/components/Package/styles.js +70 -41
- package/build/components/Package/styles.js.map +1 -1
- package/build/components/Package/styles.mjs +142 -0
- package/build/components/Package/styles.mjs.map +1 -0
- package/build/components/PackageList/PackageList.js +64 -55
- package/build/components/PackageList/PackageList.js.map +1 -1
- package/build/components/PackageList/PackageList.mjs +71 -0
- package/build/components/PackageList/PackageList.mjs.map +1 -0
- package/build/components/PackageList/index.js +1 -1
- package/build/components/PackageList/index.mjs +1 -0
- package/build/components/Person/Person.js +28 -23
- package/build/components/Person/Person.js.map +1 -1
- package/build/components/Person/Person.mjs +39 -0
- package/build/components/Person/Person.mjs.map +1 -0
- package/build/components/Person/PersonTooltip.js +20 -17
- package/build/components/Person/PersonTooltip.js.map +1 -1
- package/build/components/Person/PersonTooltip.mjs +26 -0
- package/build/components/Person/PersonTooltip.mjs.map +1 -0
- package/build/components/Person/index.js +1 -1
- package/build/components/Person/index.mjs +1 -0
- package/build/components/Person/utils.js +11 -8
- package/build/components/Person/utils.js.map +1 -1
- package/build/components/Person/utils.mjs +14 -0
- package/build/components/Person/utils.mjs.map +1 -0
- package/build/components/RawViewer/RawViewer.js +41 -30
- package/build/components/RawViewer/RawViewer.js.map +1 -1
- package/build/components/RawViewer/RawViewer.mjs +58 -0
- package/build/components/RawViewer/RawViewer.mjs.map +1 -0
- package/build/components/RawViewer/index.js +1 -1
- package/build/components/RawViewer/index.mjs +1 -0
- package/build/components/Readme/Readme.js +30 -23
- package/build/components/Readme/Readme.js.map +1 -1
- package/build/components/Readme/Readme.mjs +45 -0
- package/build/components/Readme/Readme.mjs.map +1 -0
- package/build/components/Readme/index.js +1 -1
- package/build/components/Readme/index.mjs +1 -0
- package/build/components/Readme/utils.js +21 -18
- package/build/components/Readme/utils.js.map +1 -1
- package/build/components/Readme/utils.mjs +26 -0
- package/build/components/Readme/utils.mjs.map +1 -0
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.js +23 -18
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.js.map +1 -1
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.mjs +32 -0
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.mjs.map +1 -0
- package/build/components/RegistryInfoDialog/index.js +1 -1
- package/build/components/RegistryInfoDialog/index.mjs +1 -0
- package/build/components/RegistryInfoDialog/styles.js +19 -13
- package/build/components/RegistryInfoDialog/styles.js.map +1 -1
- package/build/components/RegistryInfoDialog/styles.mjs +25 -0
- package/build/components/RegistryInfoDialog/styles.mjs.map +1 -0
- package/build/components/Repository/Repository.js +63 -46
- package/build/components/Repository/Repository.js.map +1 -1
- package/build/components/Repository/Repository.mjs +96 -0
- package/build/components/Repository/Repository.mjs.map +1 -0
- package/build/components/Repository/index.js +1 -1
- package/build/components/Repository/index.mjs +1 -0
- package/build/components/Search/AutoComplete/AutoComplete.js +42 -27
- package/build/components/Search/AutoComplete/AutoComplete.js.map +1 -1
- package/build/components/Search/AutoComplete/AutoComplete.mjs +47 -0
- package/build/components/Search/AutoComplete/AutoComplete.mjs.map +1 -0
- package/build/components/Search/AutoComplete/index.js +1 -1
- package/build/components/Search/AutoComplete/index.mjs +1 -0
- package/build/components/Search/AutoComplete/styles.js +7 -5
- package/build/components/Search/AutoComplete/styles.js.map +1 -1
- package/build/components/Search/AutoComplete/styles.mjs +20 -0
- package/build/components/Search/AutoComplete/styles.mjs.map +1 -0
- package/build/components/Search/Search.js +121 -78
- package/build/components/Search/Search.js.map +1 -1
- package/build/components/Search/Search.mjs +133 -0
- package/build/components/Search/Search.mjs.map +1 -0
- package/build/components/Search/SearchItem.js +62 -47
- package/build/components/Search/SearchItem.js.map +1 -1
- package/build/components/Search/SearchItem.mjs +115 -0
- package/build/components/Search/SearchItem.mjs.map +1 -0
- package/build/components/Search/index.js +1 -1
- package/build/components/Search/index.mjs +1 -0
- package/build/components/Search/styles.js +17 -12
- package/build/components/Search/styles.js.map +1 -1
- package/build/components/Search/styles.mjs +32 -0
- package/build/components/Search/styles.mjs.map +1 -0
- package/build/components/Search/utils.js +13 -10
- package/build/components/Search/utils.js.map +1 -1
- package/build/components/Search/utils.mjs +19 -0
- package/build/components/Search/utils.mjs.map +1 -0
- package/build/components/SettingsMenu/SettingsMenu.js +84 -61
- package/build/components/SettingsMenu/SettingsMenu.js.map +1 -1
- package/build/components/SettingsMenu/SettingsMenu.mjs +111 -0
- package/build/components/SettingsMenu/SettingsMenu.mjs.map +1 -0
- package/build/components/SettingsMenu/index.js +1 -1
- package/build/components/SettingsMenu/index.mjs +1 -0
- package/build/components/SideBarTitle/SideBarTitle.js +47 -34
- package/build/components/SideBarTitle/SideBarTitle.js.map +1 -1
- package/build/components/SideBarTitle/SideBarTitle.mjs +79 -0
- package/build/components/SideBarTitle/SideBarTitle.mjs.map +1 -0
- package/build/components/SideBarTitle/index.js +1 -1
- package/build/components/SideBarTitle/index.mjs +1 -0
- package/build/components/SideBarTitle/utils.js +10 -7
- package/build/components/SideBarTitle/utils.js.map +1 -1
- package/build/components/SideBarTitle/utils.mjs +13 -0
- package/build/components/SideBarTitle/utils.mjs.map +1 -0
- package/build/components/UpLinks/UpLinks.js +46 -38
- package/build/components/UpLinks/UpLinks.js.map +1 -1
- package/build/components/UpLinks/UpLinks.mjs +60 -0
- package/build/components/UpLinks/UpLinks.mjs.map +1 -0
- package/build/components/UpLinks/UplinkLink.js +15 -13
- package/build/components/UpLinks/UplinkLink.js.map +1 -1
- package/build/components/UpLinks/UplinkLink.mjs +19 -0
- package/build/components/UpLinks/UplinkLink.mjs.map +1 -0
- package/build/components/UpLinks/index.js +2 -2
- package/build/components/UpLinks/index.mjs +2 -0
- package/build/components/UpLinks/styles.js +20 -12
- package/build/components/UpLinks/styles.js.map +1 -1
- package/build/components/UpLinks/styles.mjs +31 -0
- package/build/components/UpLinks/styles.mjs.map +1 -0
- package/build/components/Versions/HistoryList.js +51 -41
- package/build/components/Versions/HistoryList.js.map +1 -1
- package/build/components/Versions/HistoryList.mjs +67 -0
- package/build/components/Versions/HistoryList.mjs.map +1 -0
- package/build/components/Versions/TagList.js +26 -20
- package/build/components/Versions/TagList.js.map +1 -1
- package/build/components/Versions/TagList.mjs +33 -0
- package/build/components/Versions/TagList.mjs.map +1 -0
- package/build/components/Versions/Versions.js +73 -48
- package/build/components/Versions/Versions.js.map +1 -1
- package/build/components/Versions/Versions.mjs +92 -0
- package/build/components/Versions/Versions.mjs.map +1 -0
- package/build/components/Versions/index.js +2 -2
- package/build/components/Versions/index.mjs +2 -0
- package/build/components/Versions/styles.js +15 -10
- package/build/components/Versions/styles.js.map +1 -1
- package/build/components/Versions/styles.mjs +26 -0
- package/build/components/Versions/styles.mjs.map +1 -0
- package/build/configuration.js +6 -6
- package/build/configuration.js.map +1 -1
- package/build/configuration.mjs +23 -0
- package/build/configuration.mjs.map +1 -0
- package/build/hooks/index.js +2 -2
- package/build/hooks/index.mjs +2 -0
- package/build/hooks/useLocalStorage.js +28 -14
- package/build/hooks/useLocalStorage.js.map +1 -1
- package/build/hooks/useLocalStorage.mjs +37 -0
- package/build/hooks/useLocalStorage.mjs.map +1 -0
- package/build/hooks/useOnClickOutside.js +20 -9
- package/build/hooks/useOnClickOutside.js.map +1 -1
- package/build/hooks/useOnClickOutside.mjs +26 -0
- package/build/hooks/useOnClickOutside.mjs.map +1 -0
- package/build/index.js +225 -118
- package/build/index.mjs +118 -0
- package/build/layouts/Security/Dialog.js +14 -8
- package/build/layouts/Security/Dialog.js.map +1 -1
- package/build/layouts/Security/Dialog.mjs +23 -0
- package/build/layouts/Security/Dialog.mjs.map +1 -0
- package/build/layouts/Version/Version.js +31 -26
- package/build/layouts/Version/Version.js.map +1 -1
- package/build/layouts/Version/Version.mjs +32 -0
- package/build/layouts/Version/Version.mjs.map +1 -0
- package/build/layouts/Version/index.js +1 -1
- package/build/layouts/Version/index.mjs +1 -0
- package/build/pages/Front/Home.js +4 -4
- package/build/pages/Front/Home.js.map +1 -1
- package/build/pages/Front/Home.mjs +8 -0
- package/build/pages/Front/Home.mjs.map +1 -0
- package/build/pages/Front/index.js +2 -2
- package/build/pages/Front/index.mjs +2 -0
- package/build/pages/Security/AddUser.js +4 -4
- package/build/pages/Security/AddUser.js.map +1 -1
- package/build/pages/Security/AddUser.mjs +8 -0
- package/build/pages/Security/AddUser.mjs.map +1 -0
- package/build/pages/Security/ChangePassword.js +4 -4
- package/build/pages/Security/ChangePassword.js.map +1 -1
- package/build/pages/Security/ChangePassword.mjs +8 -0
- package/build/pages/Security/ChangePassword.mjs.map +1 -0
- package/build/pages/Security/Login.js +4 -4
- package/build/pages/Security/Login.js.map +1 -1
- package/build/pages/Security/Login.mjs +8 -0
- package/build/pages/Security/Login.mjs.map +1 -0
- package/build/pages/Security/Success.js +4 -4
- package/build/pages/Security/Success.js.map +1 -1
- package/build/pages/Security/Success.mjs +8 -0
- package/build/pages/Security/Success.mjs.map +1 -0
- package/build/pages/Security/index.js +4 -4
- package/build/pages/Security/index.mjs +4 -0
- package/build/pages/Version/Version.js +19 -13
- package/build/pages/Version/Version.js.map +1 -1
- package/build/pages/Version/Version.mjs +22 -0
- package/build/pages/Version/Version.mjs.map +1 -0
- package/build/pages/Version/index.js +2 -2
- package/build/pages/Version/index.mjs +2 -0
- package/build/providers/AppConfigurationProvider/AppConfigurationProvider.js +44 -34
- package/build/providers/AppConfigurationProvider/AppConfigurationProvider.js.map +1 -1
- package/build/providers/AppConfigurationProvider/AppConfigurationProvider.mjs +62 -0
- package/build/providers/AppConfigurationProvider/AppConfigurationProvider.mjs.map +1 -0
- package/build/providers/AppConfigurationProvider/index.js +1 -1
- package/build/providers/AppConfigurationProvider/index.mjs +1 -0
- package/build/providers/AuthProvider/AuthProvider.js +41 -25
- package/build/providers/AuthProvider/AuthProvider.js.map +1 -1
- package/build/providers/AuthProvider/AuthProvider.mjs +51 -0
- package/build/providers/AuthProvider/AuthProvider.mjs.map +1 -0
- package/build/providers/AuthProvider/index.js +1 -1
- package/build/providers/AuthProvider/index.mjs +1 -0
- package/build/providers/AuthProvider/utils.js +13 -12
- package/build/providers/AuthProvider/utils.js.map +1 -1
- package/build/providers/AuthProvider/utils.mjs +22 -0
- package/build/providers/AuthProvider/utils.mjs.map +1 -0
- package/build/providers/DownloadProvider/DownloadProvider.js +27 -21
- package/build/providers/DownloadProvider/DownloadProvider.js.map +1 -1
- package/build/providers/DownloadProvider/DownloadProvider.mjs +34 -0
- package/build/providers/DownloadProvider/DownloadProvider.mjs.map +1 -0
- package/build/providers/DownloadProvider/index.js +1 -1
- package/build/providers/DownloadProvider/index.mjs +1 -0
- package/build/providers/ManifestsProvider/ManifestsProvider.js +21 -15
- package/build/providers/ManifestsProvider/ManifestsProvider.js.map +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.mjs +25 -0
- package/build/providers/ManifestsProvider/ManifestsProvider.mjs.map +1 -0
- package/build/providers/ManifestsProvider/index.js +1 -1
- package/build/providers/ManifestsProvider/index.mjs +1 -0
- package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.js +28 -19
- package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.js.map +1 -1
- package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.mjs +30 -0
- package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.mjs.map +1 -0
- package/build/providers/PersistenceSettingProvider/index.js +1 -1
- package/build/providers/PersistenceSettingProvider/index.mjs +1 -0
- package/build/providers/SearchProvider/SearchProvider.js +47 -36
- package/build/providers/SearchProvider/SearchProvider.js.map +1 -1
- package/build/providers/SearchProvider/SearchProvider.mjs +53 -0
- package/build/providers/SearchProvider/SearchProvider.mjs.map +1 -0
- package/build/providers/SearchProvider/index.js +1 -1
- package/build/providers/SearchProvider/index.mjs +1 -0
- package/build/providers/TranslatorProvider/TranslatorProvider.js +37 -24
- package/build/providers/TranslatorProvider/TranslatorProvider.js.map +1 -1
- package/build/providers/TranslatorProvider/TranslatorProvider.mjs +45 -0
- package/build/providers/TranslatorProvider/TranslatorProvider.mjs.map +1 -0
- package/build/providers/TranslatorProvider/index.js +1 -1
- package/build/providers/TranslatorProvider/index.mjs +1 -0
- package/build/providers/VersionProvider/VersionProvider.js +49 -36
- package/build/providers/VersionProvider/VersionProvider.js.map +1 -1
- package/build/providers/VersionProvider/VersionProvider.mjs +55 -0
- package/build/providers/VersionProvider/VersionProvider.mjs.map +1 -0
- package/build/providers/VersionProvider/index.js +1 -1
- package/build/providers/VersionProvider/index.mjs +1 -0
- package/build/providers/index.js +16 -16
- package/build/providers/index.mjs +16 -0
- package/build/sections/Detail/ContainerContent.js +28 -18
- package/build/sections/Detail/ContainerContent.js.map +1 -1
- package/build/sections/Detail/ContainerContent.mjs +34 -0
- package/build/sections/Detail/ContainerContent.mjs.map +1 -0
- package/build/sections/Detail/Detail.js +38 -26
- package/build/sections/Detail/Detail.js.map +1 -1
- package/build/sections/Detail/Detail.mjs +50 -0
- package/build/sections/Detail/Detail.mjs.map +1 -0
- package/build/sections/Detail/ReadmeSection.js +11 -6
- package/build/sections/Detail/ReadmeSection.js.map +1 -1
- package/build/sections/Detail/ReadmeSection.mjs +13 -0
- package/build/sections/Detail/ReadmeSection.mjs.map +1 -0
- package/build/sections/Detail/Tabs.js +36 -27
- package/build/sections/Detail/Tabs.js.map +1 -1
- package/build/sections/Detail/Tabs.mjs +59 -0
- package/build/sections/Detail/Tabs.mjs.map +1 -0
- package/build/sections/Detail/index.js +1 -1
- package/build/sections/Detail/index.mjs +1 -0
- package/build/sections/Footer/Footer.js +56 -46
- package/build/sections/Footer/Footer.js.map +1 -1
- package/build/sections/Footer/Footer.mjs +105 -0
- package/build/sections/Footer/Footer.mjs.map +1 -0
- package/build/sections/Footer/index.js +1 -1
- package/build/sections/Footer/index.mjs +1 -0
- package/build/sections/Footer/styles.js +31 -21
- package/build/sections/Footer/styles.js.map +1 -1
- package/build/sections/Footer/styles.mjs +65 -0
- package/build/sections/Footer/styles.mjs.map +1 -0
- package/build/sections/Header/Header.js +76 -63
- package/build/sections/Header/Header.js.map +1 -1
- package/build/sections/Header/Header.mjs +101 -0
- package/build/sections/Header/Header.mjs.map +1 -0
- package/build/sections/Header/HeaderGreetings.js +13 -11
- package/build/sections/Header/HeaderGreetings.js.map +1 -1
- package/build/sections/Header/HeaderGreetings.mjs +19 -0
- package/build/sections/Header/HeaderGreetings.mjs.map +1 -0
- package/build/sections/Header/HeaderLeft.js +17 -14
- package/build/sections/Header/HeaderLeft.js.map +1 -1
- package/build/sections/Header/HeaderLeft.mjs +33 -0
- package/build/sections/Header/HeaderLeft.mjs.map +1 -0
- package/build/sections/Header/HeaderMenu.js +27 -22
- package/build/sections/Header/HeaderMenu.js.map +1 -1
- package/build/sections/Header/HeaderMenu.mjs +45 -0
- package/build/sections/Header/HeaderMenu.mjs.map +1 -0
- package/build/sections/Header/HeaderRight.js +68 -47
- package/build/sections/Header/HeaderRight.js.map +1 -1
- package/build/sections/Header/HeaderRight.mjs +95 -0
- package/build/sections/Header/HeaderRight.mjs.map +1 -0
- package/build/sections/Header/HeaderSettingsDialog.js +70 -59
- package/build/sections/Header/HeaderSettingsDialog.js.map +1 -1
- package/build/sections/Header/HeaderSettingsDialog.mjs +99 -0
- package/build/sections/Header/HeaderSettingsDialog.mjs.map +1 -0
- package/build/sections/Header/HeaderToolTip.js +9 -7
- package/build/sections/Header/HeaderToolTip.js.map +1 -1
- package/build/sections/Header/HeaderToolTip.mjs +12 -0
- package/build/sections/Header/HeaderToolTip.mjs.map +1 -0
- package/build/sections/Header/HeaderToolTipIcon.js +38 -31
- package/build/sections/Header/HeaderToolTipIcon.js.map +1 -1
- package/build/sections/Header/HeaderToolTipIcon.mjs +58 -0
- package/build/sections/Header/HeaderToolTipIcon.mjs.map +1 -0
- package/build/sections/Header/LanguageSwitch.js +75 -51
- package/build/sections/Header/LanguageSwitch.js.map +1 -1
- package/build/sections/Header/LanguageSwitch.mjs +99 -0
- package/build/sections/Header/LanguageSwitch.mjs.map +1 -0
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js +136 -105
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js.map +1 -1
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs +199 -0
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs.map +1 -0
- package/build/sections/Header/RegistryInfoContent/index.js +1 -1
- package/build/sections/Header/RegistryInfoContent/index.mjs +1 -0
- package/build/sections/Header/RegistryInfoContent/styles.js +10 -6
- package/build/sections/Header/RegistryInfoContent/styles.js.map +1 -1
- package/build/sections/Header/RegistryInfoContent/styles.mjs +20 -0
- package/build/sections/Header/RegistryInfoContent/styles.mjs.map +1 -0
- package/build/sections/Header/index.js +1 -1
- package/build/sections/Header/index.mjs +1 -0
- package/build/sections/Header/styles.js +60 -37
- package/build/sections/Header/styles.js.map +1 -1
- package/build/sections/Header/styles.mjs +126 -0
- package/build/sections/Header/styles.mjs.map +1 -0
- package/build/sections/Home/Home.js +14 -11
- package/build/sections/Home/Home.js.map +1 -1
- package/build/sections/Home/Home.mjs +20 -0
- package/build/sections/Home/Home.mjs.map +1 -0
- package/build/sections/Home/index.js +1 -1
- package/build/sections/Home/index.mjs +1 -0
- package/build/sections/Security/AddUser.js +84 -68
- package/build/sections/Security/AddUser.js.map +1 -1
- package/build/sections/Security/AddUser.mjs +132 -0
- package/build/sections/Security/AddUser.mjs.map +1 -0
- package/build/sections/Security/ChangePassword.js +83 -71
- package/build/sections/Security/ChangePassword.js.map +1 -1
- package/build/sections/Security/ChangePassword.mjs +123 -0
- package/build/sections/Security/ChangePassword.mjs.map +1 -0
- package/build/sections/Security/Login.js +70 -54
- package/build/sections/Security/Login.js.map +1 -1
- package/build/sections/Security/Login.mjs +94 -0
- package/build/sections/Security/Login.mjs.map +1 -0
- package/build/sections/Security/Success.js +39 -26
- package/build/sections/Security/Success.js.map +1 -1
- package/build/sections/Security/Success.mjs +51 -0
- package/build/sections/Security/Success.mjs.map +1 -0
- package/build/sections/Security/index.js +4 -4
- package/build/sections/Security/index.mjs +4 -0
- package/build/sections/Security/styles.js +19 -14
- package/build/sections/Security/styles.js.map +1 -1
- package/build/sections/Security/styles.mjs +29 -0
- package/build/sections/Security/styles.mjs.map +1 -0
- package/build/sections/Security/utils.js +14 -11
- package/build/sections/Security/utils.js.map +1 -1
- package/build/sections/Security/utils.mjs +19 -0
- package/build/sections/Security/utils.mjs.map +1 -0
- package/build/sections/SideBar/Sidebar.js +73 -64
- package/build/sections/SideBar/Sidebar.js.map +1 -1
- package/build/sections/SideBar/Sidebar.mjs +93 -0
- package/build/sections/SideBar/Sidebar.mjs.map +1 -0
- package/build/sections/SideBar/index.js +1 -1
- package/build/sections/SideBar/index.mjs +1 -0
- package/build/sections/index.js +4 -4
- package/build/sections/index.mjs +4 -0
- package/build/store/api.js +57 -41
- package/build/store/api.js.map +1 -1
- package/build/store/api.mjs +76 -0
- package/build/store/api.mjs.map +1 -0
- package/build/store/index.js +1 -1
- package/build/store/index.mjs +1 -0
- package/build/store/routes.js +13 -3
- package/build/store/routes.js.map +1 -1
- package/build/store/routes.mjs +18 -0
- package/build/store/routes.mjs.map +1 -0
- package/build/store/storage.js +22 -13
- package/build/store/storage.js.map +1 -1
- package/build/store/storage.mjs +29 -0
- package/build/store/storage.mjs.map +1 -0
- package/build/store/utils.js +5 -4
- package/build/store/utils.js.map +1 -1
- package/build/store/utils.mjs +9 -0
- package/build/store/utils.mjs.map +1 -0
- package/build/ui-components.css +1198 -1
- package/build/utils/cli-utils.js +19 -16
- package/build/utils/cli-utils.js.map +1 -1
- package/build/utils/cli-utils.mjs +26 -0
- package/build/utils/cli-utils.mjs.map +1 -0
- package/build/utils/index.js +6 -6
- package/build/utils/index.mjs +6 -0
- package/build/utils/loadable.js +18 -7
- package/build/utils/loadable.js.map +1 -1
- package/build/utils/loadable.mjs +23 -0
- package/build/utils/loadable.mjs.map +1 -0
- package/build/utils/routes.js +26 -5
- package/build/utils/routes.js.map +1 -1
- package/build/utils/routes.mjs +30 -0
- package/build/utils/routes.mjs.map +1 -0
- package/build/utils/schemas.js +22 -14
- package/build/utils/schemas.js.map +1 -1
- package/build/utils/schemas.mjs +22 -0
- package/build/utils/schemas.mjs.map +1 -0
- package/build/utils/token.js +19 -15
- package/build/utils/token.js.map +1 -1
- package/build/utils/token.mjs +23 -0
- package/build/utils/token.mjs.map +1 -0
- package/build/utils/url.js +50 -30
- package/build/utils/url.js.map +1 -1
- package/build/utils/url.mjs +61 -0
- package/build/utils/url.mjs.map +1 -0
- package/build/utils/utils.js +93 -49
- package/build/utils/utils.js.map +1 -1
- package/build/utils/utils.mjs +93 -0
- package/build/utils/utils.mjs.map +1 -0
- package/package.json +17 -9
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Wrapper } from "./styles.mjs";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import Autocomplete from "@mui/material/Autocomplete";
|
|
6
|
+
//#region src/components/Search/AutoComplete/AutoComplete.tsx
|
|
7
|
+
var AutoComplete = ({ suggestions = [], onSuggestionsFetch, onCleanSuggestions, renderInput, renderOption, getOptionLabel, onSelectItem, suggestionsLoading = false }) => {
|
|
8
|
+
const { t } = useTranslation();
|
|
9
|
+
const [inputValue, setInputValue] = useState("");
|
|
10
|
+
const handleOnInputChange = (event, value, reason) => {
|
|
11
|
+
if (reason === "input") {
|
|
12
|
+
event.preventDefault();
|
|
13
|
+
onSuggestionsFetch({ value });
|
|
14
|
+
setInputValue(value);
|
|
15
|
+
} else if (reason === "clear") {
|
|
16
|
+
onCleanSuggestions(event);
|
|
17
|
+
setInputValue("");
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const handleOnClose = (event) => {
|
|
21
|
+
onCleanSuggestions(event);
|
|
22
|
+
setInputValue("");
|
|
23
|
+
};
|
|
24
|
+
return /* @__PURE__ */ jsx(Wrapper, { children: /* @__PURE__ */ jsx(Autocomplete, {
|
|
25
|
+
clearOnBlur: true,
|
|
26
|
+
disablePortal: true,
|
|
27
|
+
filterOptions: (options, state) => state.inputValue.trim() ? options : [],
|
|
28
|
+
fullWidth: true,
|
|
29
|
+
getOptionLabel,
|
|
30
|
+
id: "search-header-suggest",
|
|
31
|
+
inputValue,
|
|
32
|
+
loading: suggestionsLoading,
|
|
33
|
+
loadingText: t("autoComplete.loading"),
|
|
34
|
+
noOptionsText: t("autoComplete.no-results-found"),
|
|
35
|
+
onChange: onSelectItem,
|
|
36
|
+
onClose: handleOnClose,
|
|
37
|
+
onInputChange: handleOnInputChange,
|
|
38
|
+
options: suggestions,
|
|
39
|
+
renderInput,
|
|
40
|
+
renderOption,
|
|
41
|
+
renderTags: () => null
|
|
42
|
+
}) });
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { AutoComplete as default };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=AutoComplete.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoComplete.mjs","names":["Autocomplete","FC","React","useState","useTranslation","SearchResultWeb","Wrapper","OnSelecItem","event","SyntheticEvent","value","reason","details","Props","suggestions","suggestionsLoading","placeholder","renderOption","props","option","JSX","Element","renderInput","params","onSuggestionsFetch","getOptionLabel","onCleanSuggestions","onSelectItem","AutoComplete","t","inputValue","setInputValue","handleOnInputChange","preventDefault","handleOnClose","options","state","trim"],"sources":["../../../../src/components/Search/AutoComplete/AutoComplete.tsx"],"sourcesContent":["import Autocomplete from '@mui/material/Autocomplete';\nimport type { FC } from 'react';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { SearchResultWeb } from '@verdaccio/types';\n\nimport { Wrapper } from './styles';\n\nexport type OnSelecItem = (\n event: React.SyntheticEvent,\n value: SearchResultWeb,\n reason: string,\n details?: string\n) => void;\ninterface Props {\n suggestions?: SearchResultWeb[];\n suggestionsLoading?: boolean;\n placeholder: string;\n renderOption?: (props: any, option: any) => JSX.Element;\n renderInput: (params: any) => JSX.Element;\n onSuggestionsFetch: any;\n getOptionLabel: (option: any) => any;\n onCleanSuggestions: (event: React.SyntheticEvent) => void;\n onSelectItem: OnSelecItem;\n}\n\nconst AutoComplete: FC<Props> = ({\n suggestions = [],\n onSuggestionsFetch,\n onCleanSuggestions,\n renderInput,\n renderOption,\n getOptionLabel,\n onSelectItem,\n suggestionsLoading = false,\n}: Props) => {\n const { t } = useTranslation();\n const [inputValue, setInputValue] = useState('');\n\n const handleOnInputChange = (event: React.SyntheticEvent, value: string, reason: string) => {\n if (reason === 'input') {\n event.preventDefault();\n onSuggestionsFetch({ value });\n setInputValue(value);\n } else if (reason === 'clear') {\n onCleanSuggestions(event);\n setInputValue('');\n }\n };\n\n const handleOnClose = (event) => {\n onCleanSuggestions(event);\n setInputValue('');\n };\n\n // @ts-ignore\n return (\n <Wrapper>\n <Autocomplete\n /* @ts-ignore */\n clearOnBlur={true}\n disablePortal={true}\n filterOptions={(options, state) => (state.inputValue.trim() ? options : [])}\n fullWidth={true}\n getOptionLabel={getOptionLabel}\n id=\"search-header-suggest\"\n inputValue={inputValue}\n loading={suggestionsLoading}\n loadingText={t('autoComplete.loading')}\n noOptionsText={t('autoComplete.no-results-found')}\n onChange={onSelectItem as any}\n onClose={handleOnClose}\n onInputChange={handleOnInputChange}\n options={suggestions}\n renderInput={renderInput}\n renderOption={renderOption}\n renderTags={() => null}\n />\n </Wrapper>\n );\n};\n\nexport default AutoComplete;\n"],"mappings":";;;;;;AA2BA,IAAM4B,gBAA2B,EAC/Bd,cAAc,EAAE,EAChBU,oBACAE,oBACAJ,aACAL,cACAQ,gBACAE,cACAZ,qBAAqB,YACV;CACX,MAAM,EAAEc,MAAMzB,gBAAgB;CAC9B,MAAM,CAAC0B,YAAYC,iBAAiB5B,SAAS,GAAG;CAEhD,MAAM6B,uBAAuBxB,OAA6BE,OAAeC,WAAmB;AAC1F,MAAIA,WAAW,SAAS;AACtBH,SAAMyB,gBAAgB;AACtBT,sBAAmB,EAAEd,OAAO,CAAC;AAC7BqB,iBAAcrB,MAAM;aACXC,WAAW,SAAS;AAC7Be,sBAAmBlB,MAAM;AACzBuB,iBAAc,GAAG;;;CAIrB,MAAMG,iBAAiB1B,UAAU;AAC/BkB,qBAAmBlB,MAAM;AACzBuB,gBAAc,GAAG;;AAInB,QACE,oBAAC,SAAD,EAAA,UACE,oBAAC,cAAD;EAEE,aAAa;EACb,eAAe;EACf,gBAAgBI,SAASC,UAAWA,MAAMN,WAAWO,MAAM,GAAGF,UAAU,EAAG;EAC3E,WAAW;EACKV;EAChB,IAAG;EACSK;EACZ,SAASf;EACT,aAAac,EAAE,uBAAuB;EACtC,eAAeA,EAAE,gCAAgC;EACjD,UAAUF;EACV,SAASO;EACT,eAAeF;EACf,SAASlB;EACIQ;EACCL;EACd,kBAAkB;EAAK,CAAA,EAEjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
require("./AutoComplete.js");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./AutoComplete.mjs";
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
const require_runtime = require("../../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
let _emotion_styled_base = require("@emotion/styled/base");
|
|
3
|
+
_emotion_styled_base = require_runtime.__toESM(_emotion_styled_base);
|
|
2
4
|
//#region src/components/Search/AutoComplete/styles.ts
|
|
3
|
-
function
|
|
5
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() {
|
|
4
6
|
return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
|
|
5
7
|
}
|
|
6
|
-
var
|
|
8
|
+
var Wrapper = /* @__PURE__ */ (0, _emotion_styled_base.default)("div", process.env.NODE_ENV === "production" ? { target: "e17sb8qr0" } : {
|
|
7
9
|
target: "e17sb8qr0",
|
|
8
10
|
label: "Wrapper"
|
|
9
11
|
})(process.env.NODE_ENV === "production" ? {
|
|
@@ -12,9 +14,9 @@ var n = /* @__PURE__ */ e("div", process.env.NODE_ENV === "production" ? { targe
|
|
|
12
14
|
} : {
|
|
13
15
|
name: "1ayuow2",
|
|
14
16
|
styles: "width:100%;position:relative;z-index:1/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3ZlcmRhY2Npby92ZXJkYWNjaW8vcGFja2FnZXMvdWktY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9TZWFyY2gvQXV0b0NvbXBsZXRlL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFdUIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdmVyZGFjY2lvL3ZlcmRhY2Npby9wYWNrYWdlcy91aS1jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaC9BdXRvQ29tcGxldGUvc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5leHBvcnQgY29uc3QgV3JhcHBlciA9IHN0eWxlZCgnZGl2Jykoe1xuICB3aWR0aDogJzEwMCUnLFxuICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgekluZGV4OiAxLFxufSk7XG4iXX0= */",
|
|
15
|
-
toString:
|
|
17
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
16
18
|
});
|
|
17
19
|
//#endregion
|
|
18
|
-
|
|
20
|
+
exports.Wrapper = Wrapper;
|
|
19
21
|
|
|
20
22
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":["Wrapper","_styled","process","env","NODE_ENV","target","label","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__"],"sources":["../../../../src/components/Search/AutoComplete/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\n\nexport const Wrapper = styled('div')({\n width: '100%',\n position: 'relative',\n zIndex: 1,\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.js","names":["Wrapper","_styled","process","env","NODE_ENV","target","label","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__"],"sources":["../../../../src/components/Search/AutoComplete/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\n\nexport const Wrapper = styled('div')({\n width: '100%',\n position: 'relative',\n zIndex: 1,\n});\n"],"mappings":";;;;;;;AAEA,IAAaA,UAAUC,iBAAAA,GAAAA,qBAAAA,SAAO,OAAA,QAAA,IAAA,aAAK,eAAA,EAAAI,QAAA,aAAA,GAAA;CAAAA,QAAA;CAAAC,OAAA;CAAA,CAAC,CAAA,QAAA,IAAA,aAAA,eAAA;CAAAC,MAAA;CAAAC,QAAA;CAAA,GAAA;CAAAD,MAAA;CAAAC,QAAA;CAAAC,UAAAC;CAInC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
//#region src/components/Search/AutoComplete/styles.ts
|
|
3
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() {
|
|
4
|
+
return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
|
|
5
|
+
}
|
|
6
|
+
var Wrapper = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? { target: "e17sb8qr0" } : {
|
|
7
|
+
target: "e17sb8qr0",
|
|
8
|
+
label: "Wrapper"
|
|
9
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
10
|
+
name: "1ayuow2",
|
|
11
|
+
styles: "width:100%;position:relative;z-index:1"
|
|
12
|
+
} : {
|
|
13
|
+
name: "1ayuow2",
|
|
14
|
+
styles: "width:100%;position:relative;z-index:1/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3ZlcmRhY2Npby92ZXJkYWNjaW8vcGFja2FnZXMvdWktY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9TZWFyY2gvQXV0b0NvbXBsZXRlL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFdUIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdmVyZGFjY2lvL3ZlcmRhY2Npby9wYWNrYWdlcy91aS1jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaC9BdXRvQ29tcGxldGUvc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5leHBvcnQgY29uc3QgV3JhcHBlciA9IHN0eWxlZCgnZGl2Jykoe1xuICB3aWR0aDogJzEwMCUnLFxuICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgekluZGV4OiAxLFxufSk7XG4iXX0= */",
|
|
15
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
16
|
+
});
|
|
17
|
+
//#endregion
|
|
18
|
+
export { Wrapper };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=styles.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.mjs","names":["Wrapper","_styled","process","env","NODE_ENV","target","label","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__"],"sources":["../../../../src/components/Search/AutoComplete/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\n\nexport const Wrapper = styled('div')({\n width: '100%',\n position: 'relative',\n zIndex: 1,\n});\n"],"mappings":";;;;;AAEA,IAAaA,UAAUC,wBAAO,OAAA,QAAA,IAAA,aAAK,eAAA,EAAAI,QAAA,aAAA,GAAA;CAAAA,QAAA;CAAAC,OAAA;CAAA,CAAC,CAAA,QAAA,IAAA,aAAA,eAAA;CAAAC,MAAA;CAAAC,QAAA;CAAA,GAAA;CAAAD,MAAA;CAAAC,QAAA;CAAAC,UAAAC;CAInC,CAAC"}
|
|
@@ -1,94 +1,137 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_routes = require("../../utils/routes.js");
|
|
3
|
+
require("../../utils/index.js");
|
|
4
|
+
const require_AppConfigurationProvider = require("../../providers/AppConfigurationProvider/AppConfigurationProvider.js");
|
|
5
|
+
const require_SearchProvider = require("../../providers/SearchProvider/SearchProvider.js");
|
|
6
|
+
const require_AutoComplete = require("./AutoComplete/AutoComplete.js");
|
|
7
|
+
require("./AutoComplete/index.js");
|
|
8
|
+
const require_SearchItem = require("./SearchItem.js");
|
|
9
|
+
const require_styles = require("./styles.js");
|
|
10
|
+
require("../../index.js");
|
|
11
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
+
let react = require("react");
|
|
13
|
+
react = require_runtime.__toESM(react);
|
|
14
|
+
let react_i18next = require("react-i18next");
|
|
15
|
+
let react_router = require("react-router");
|
|
16
|
+
let lodash_debounce = require("lodash/debounce");
|
|
17
|
+
lodash_debounce = require_runtime.__toESM(lodash_debounce);
|
|
18
|
+
let _mui_icons_material_Search = require("@mui/icons-material/Search");
|
|
19
|
+
_mui_icons_material_Search = require_runtime.__toESM(_mui_icons_material_Search);
|
|
16
20
|
//#region src/components/Search/Search.tsx
|
|
17
|
-
var
|
|
21
|
+
var CONSTANTS = {
|
|
18
22
|
API_DELAY: 300,
|
|
19
23
|
ABORT_ERROR: "AbortError"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
};
|
|
25
|
+
var Search = () => {
|
|
26
|
+
const { t } = (0, react_i18next.useTranslation)();
|
|
27
|
+
const navigate = (0, react_router.useNavigate)();
|
|
28
|
+
const { searchResults, isLoading, doSearch } = require_SearchProvider.useSearch();
|
|
29
|
+
const { configOptions: { flags } } = require_AppConfigurationProvider.useConfig();
|
|
30
|
+
const searchRemote = flags?.searchRemote ?? false;
|
|
31
|
+
const abortControllerRef = (0, react.useRef)(null);
|
|
32
|
+
const cancelAllSearchRequests = (0, react.useCallback)(() => {
|
|
33
|
+
if (abortControllerRef.current) {
|
|
34
|
+
abortControllerRef.current.abort();
|
|
35
|
+
abortControllerRef.current = null;
|
|
36
|
+
}
|
|
23
37
|
}, []);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
const handleOnBlur = (0, react.useCallback)((event) => {
|
|
39
|
+
event.stopPropagation();
|
|
40
|
+
cancelAllSearchRequests();
|
|
41
|
+
}, [cancelAllSearchRequests]);
|
|
42
|
+
const handleClickSearch = (0, react.useCallback)((event, value, reason) => {
|
|
43
|
+
event.stopPropagation();
|
|
44
|
+
if (reason === "selectOption") {
|
|
45
|
+
const pkgName = value["package"]?.name ?? value.name;
|
|
46
|
+
navigate(`${require_routes.Route.DETAIL}${pkgName}`);
|
|
47
|
+
}
|
|
48
|
+
}, [navigate, searchRemote]);
|
|
49
|
+
const doSearchRef = (0, react.useRef)(doSearch);
|
|
50
|
+
doSearchRef.current = doSearch;
|
|
51
|
+
/**
|
|
52
|
+
* Stable fetch function that reads the latest doSearch from a ref,
|
|
53
|
+
* avoiding dependency changes that would break the debounce.
|
|
54
|
+
*/
|
|
55
|
+
const handleFetchPackages = (0, react.useCallback)(async ({ value }) => {
|
|
56
|
+
if (value?.trim() !== "") {
|
|
57
|
+
cancelAllSearchRequests();
|
|
58
|
+
const controller = new AbortController();
|
|
59
|
+
abortControllerRef.current = controller;
|
|
60
|
+
try {
|
|
61
|
+
await doSearchRef.current?.({
|
|
62
|
+
text: value,
|
|
63
|
+
signal: controller.signal
|
|
64
|
+
});
|
|
65
|
+
} catch (err) {
|
|
66
|
+
if (err.name === CONSTANTS.ABORT_ERROR) console.warn("Search request aborted");
|
|
67
|
+
else console.error("Search error:", err);
|
|
48
68
|
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
69
|
+
}
|
|
70
|
+
}, [cancelAllSearchRequests]);
|
|
71
|
+
const debouncedFetch = (0, react.useMemo)(() => (0, lodash_debounce.default)(handleFetchPackages, CONSTANTS.API_DELAY), [handleFetchPackages]);
|
|
72
|
+
(0, react.useEffect)(() => {
|
|
73
|
+
return () => {
|
|
74
|
+
debouncedFetch.cancel?.();
|
|
75
|
+
cancelAllSearchRequests();
|
|
76
|
+
};
|
|
77
|
+
}, [debouncedFetch, cancelAllSearchRequests]);
|
|
78
|
+
const renderOption = (props, option) => {
|
|
79
|
+
const { key, ...otherProps } = props;
|
|
80
|
+
if (searchRemote) {
|
|
81
|
+
const item = option.package;
|
|
82
|
+
const isPrivate = option?.verdaccioPrivate;
|
|
83
|
+
const isCached = option?.verdaccioPkgCached;
|
|
84
|
+
const isRemote = !isCached && !isPrivate;
|
|
85
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SearchItem.default, {
|
|
86
|
+
...otherProps,
|
|
87
|
+
description: item?.description,
|
|
88
|
+
isCached,
|
|
89
|
+
isPrivate,
|
|
90
|
+
isRemote,
|
|
91
|
+
name: item?.name,
|
|
92
|
+
version: item?.version
|
|
93
|
+
}, key);
|
|
94
|
+
} else {
|
|
95
|
+
const item = option.package;
|
|
96
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SearchItem.default, {
|
|
97
|
+
...otherProps,
|
|
98
|
+
description: item?.description,
|
|
99
|
+
name: item?.name,
|
|
100
|
+
version: item?.version
|
|
101
|
+
}, key);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const renderInput = (params) => {
|
|
105
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.StyledTextField, {
|
|
106
|
+
...params,
|
|
53
107
|
InputProps: {
|
|
54
|
-
...
|
|
55
|
-
startAdornment: /* @__PURE__ */
|
|
108
|
+
...params.InputProps,
|
|
109
|
+
startAdornment: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.StyledInputAdornment, {
|
|
56
110
|
position: "start",
|
|
57
|
-
children: /* @__PURE__ */
|
|
111
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_icons_material_Search.default, {})
|
|
58
112
|
})
|
|
59
113
|
},
|
|
60
114
|
label: "",
|
|
61
|
-
placeholder:
|
|
115
|
+
placeholder: t("search.packages"),
|
|
62
116
|
variant: "standard"
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
let e = t.package;
|
|
79
|
-
return /* @__PURE__ */ s(i, {
|
|
80
|
-
...r,
|
|
81
|
-
description: e?.description,
|
|
82
|
-
name: e?.name,
|
|
83
|
-
version: e?.version
|
|
84
|
-
}, n);
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
suggestions: v,
|
|
88
|
-
suggestionsLoading: y
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
const getOptionLabel = (option) => {
|
|
120
|
+
return option?.package?.name;
|
|
121
|
+
};
|
|
122
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AutoComplete.default, {
|
|
123
|
+
getOptionLabel,
|
|
124
|
+
onCleanSuggestions: handleOnBlur,
|
|
125
|
+
onSelectItem: handleClickSearch,
|
|
126
|
+
onSuggestionsFetch: debouncedFetch,
|
|
127
|
+
placeholder: t("search.packages"),
|
|
128
|
+
renderInput,
|
|
129
|
+
renderOption,
|
|
130
|
+
suggestions: searchResults,
|
|
131
|
+
suggestionsLoading: isLoading
|
|
89
132
|
});
|
|
90
133
|
};
|
|
91
134
|
//#endregion
|
|
92
|
-
|
|
135
|
+
exports.default = Search;
|
|
93
136
|
|
|
94
137
|
//# sourceMappingURL=Search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","names":["SearchMui","debounce","React","useCallback","useEffect","useRef","useTranslation","useNavigate","SearchResultWeb","useConfig","useSearch","Route","AutoComplete","SearchItem","StyledInputAdornment","StyledTextField","CONSTANTS","API_DELAY","ABORT_ERROR","Search","FC","t","navigate","searchResults","isLoading","doSearch","configOptions","flags","searchRemote","abortControllerRef","AbortController","cancelAllSearchRequests","current","abort","handleOnBlur","event","SyntheticEvent","stopPropagation","handleClickSearch","value","reason","pkgName","name","DETAIL","handleFetchPackages","trim","controller","text","signal","err","console","warn","error","renderOption","props","option","key","otherProps","item","package","isPrivate","verdaccioPrivate","isCached","verdaccioPkgCached","isRemote","description","version","renderInput","params","InputProps","startAdornment","getOptionLabel"],"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import SearchMui from '@mui/icons-material/Search';\nimport debounce from 'lodash/debounce';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport type { SearchResultWeb } from '@verdaccio/types';\n\nimport { useConfig, useSearch } from '../../';\nimport { Route } from '../../utils';\nimport AutoComplete from './AutoComplete';\nimport SearchItem from './SearchItem';\nimport { StyledInputAdornment, StyledTextField } from './styles';\n\nconst CONSTANTS = {\n API_DELAY: 300,\n ABORT_ERROR: 'AbortError',\n};\n\nconst Search: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { searchResults, isLoading, doSearch } = useSearch();\n const {\n configOptions: { flags },\n } = useConfig();\n const searchRemote = flags?.searchRemote ?? false;\n\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const cancelAllSearchRequests = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n }, []);\n\n
|
|
1
|
+
{"version":3,"file":"Search.js","names":["SearchMui","debounce","React","useCallback","useEffect","useMemo","useRef","useTranslation","useNavigate","SearchResultWeb","useConfig","useSearch","Route","AutoComplete","SearchItem","StyledInputAdornment","StyledTextField","CONSTANTS","API_DELAY","ABORT_ERROR","Search","FC","t","navigate","searchResults","isLoading","doSearch","configOptions","flags","searchRemote","abortControllerRef","AbortController","cancelAllSearchRequests","current","abort","handleOnBlur","event","SyntheticEvent","stopPropagation","handleClickSearch","value","reason","pkgName","name","DETAIL","doSearchRef","handleFetchPackages","trim","controller","text","signal","err","console","warn","error","debouncedFetch","cancel","renderOption","props","option","key","otherProps","item","package","isPrivate","verdaccioPrivate","isCached","verdaccioPkgCached","isRemote","description","version","renderInput","params","InputProps","startAdornment","getOptionLabel"],"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import SearchMui from '@mui/icons-material/Search';\nimport debounce from 'lodash/debounce';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport type { SearchResultWeb } from '@verdaccio/types';\n\nimport { useConfig, useSearch } from '../../';\nimport { Route } from '../../utils';\nimport AutoComplete from './AutoComplete';\nimport SearchItem from './SearchItem';\nimport { StyledInputAdornment, StyledTextField } from './styles';\n\nconst CONSTANTS = {\n API_DELAY: 300,\n ABORT_ERROR: 'AbortError',\n};\n\nconst Search: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { searchResults, isLoading, doSearch } = useSearch();\n const {\n configOptions: { flags },\n } = useConfig();\n const searchRemote = flags?.searchRemote ?? false;\n\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const cancelAllSearchRequests = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n }, []);\n\n const handleOnBlur = useCallback(\n (event: React.SyntheticEvent) => {\n event.stopPropagation();\n cancelAllSearchRequests();\n },\n [cancelAllSearchRequests]\n );\n\n const handleClickSearch = useCallback(\n (event: React.SyntheticEvent, value: SearchResultWeb, reason: string): void => {\n event.stopPropagation();\n if (reason === 'selectOption') {\n const pkgName = value['package']?.name ?? value.name;\n navigate(`${Route.DETAIL}${pkgName}`);\n }\n },\n [navigate, searchRemote]\n );\n\n // Use a ref to always access the latest doSearch without re-creating the debounced function\n const doSearchRef = useRef(doSearch);\n doSearchRef.current = doSearch;\n\n /**\n * Stable fetch function that reads the latest doSearch from a ref,\n * avoiding dependency changes that would break the debounce.\n */\n const handleFetchPackages = useCallback(\n async ({ value }: { value: string }) => {\n if (value?.trim() !== '') {\n // Abort any previous pending request before starting a new one\n cancelAllSearchRequests();\n\n // Create a new controller for the current request\n const controller = new AbortController();\n abortControllerRef.current = controller;\n\n try {\n await doSearchRef.current?.({\n text: value,\n signal: controller.signal,\n });\n } catch (err: any) {\n if (err.name === CONSTANTS.ABORT_ERROR) {\n console.warn('Search request aborted');\n } else {\n console.error('Search error:', err);\n }\n }\n }\n },\n [cancelAllSearchRequests]\n );\n\n // Memoize the debounced function so a single instance is reused across renders,\n // ensuring the debounce timer works correctly instead of creating a new timer per render.\n const debouncedFetch = useMemo(\n () => debounce(handleFetchPackages, CONSTANTS.API_DELAY),\n [handleFetchPackages]\n );\n\n useEffect(() => {\n return () => {\n debouncedFetch.cancel?.();\n cancelAllSearchRequests();\n };\n }, [debouncedFetch, cancelAllSearchRequests]);\n\n const renderOption = (props, option) => {\n const { key, ...otherProps } = props;\n\n if (searchRemote) {\n const item: SearchResultWeb = option.package;\n const isPrivate = option?.verdaccioPrivate;\n const isCached = option?.verdaccioPkgCached;\n const isRemote = !isCached && !isPrivate;\n return (\n <SearchItem\n key={key}\n {...otherProps}\n description={item?.description}\n isCached={isCached}\n isPrivate={isPrivate}\n isRemote={isRemote}\n name={item?.name}\n version={item?.version}\n />\n );\n } else {\n const item: SearchResultWeb = option.package;\n return (\n <SearchItem\n key={key}\n {...otherProps}\n description={item?.description}\n name={item?.name}\n version={item?.version}\n />\n );\n }\n };\n\n const renderInput = (params) => {\n return (\n <StyledTextField\n {...params}\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <StyledInputAdornment position=\"start\">\n <SearchMui />\n </StyledInputAdornment>\n ),\n }}\n label=\"\"\n placeholder={t('search.packages')}\n variant=\"standard\"\n />\n );\n };\n\n const getOptionLabel = (option) => {\n return option?.package?.name;\n };\n\n return (\n <AutoComplete\n getOptionLabel={getOptionLabel}\n onCleanSuggestions={handleOnBlur}\n onSelectItem={handleClickSearch}\n onSuggestionsFetch={debouncedFetch}\n placeholder={t('search.packages')}\n renderInput={renderInput}\n renderOption={renderOption}\n suggestions={searchResults}\n suggestionsLoading={isLoading}\n />\n );\n};\n\nexport default Search;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Route as Route$1 } from "../../utils/routes.mjs";
|
|
2
|
+
import "../../utils/index.mjs";
|
|
3
|
+
import { useConfig } from "../../providers/AppConfigurationProvider/AppConfigurationProvider.mjs";
|
|
4
|
+
import { useSearch } from "../../providers/SearchProvider/SearchProvider.mjs";
|
|
5
|
+
import AutoComplete from "./AutoComplete/AutoComplete.mjs";
|
|
6
|
+
import "./AutoComplete/index.mjs";
|
|
7
|
+
import SearchItem from "./SearchItem.mjs";
|
|
8
|
+
import { StyledInputAdornment, StyledTextField } from "./styles.mjs";
|
|
9
|
+
import "../../index.mjs";
|
|
10
|
+
import { jsx } from "react/jsx-runtime";
|
|
11
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
12
|
+
import { useTranslation } from "react-i18next";
|
|
13
|
+
import { useNavigate } from "react-router";
|
|
14
|
+
import debounce from "lodash/debounce";
|
|
15
|
+
import SearchMui from "@mui/icons-material/Search";
|
|
16
|
+
//#region src/components/Search/Search.tsx
|
|
17
|
+
var CONSTANTS = {
|
|
18
|
+
API_DELAY: 300,
|
|
19
|
+
ABORT_ERROR: "AbortError"
|
|
20
|
+
};
|
|
21
|
+
var Search = () => {
|
|
22
|
+
const { t } = useTranslation();
|
|
23
|
+
const navigate = useNavigate();
|
|
24
|
+
const { searchResults, isLoading, doSearch } = useSearch();
|
|
25
|
+
const { configOptions: { flags } } = useConfig();
|
|
26
|
+
const searchRemote = flags?.searchRemote ?? false;
|
|
27
|
+
const abortControllerRef = useRef(null);
|
|
28
|
+
const cancelAllSearchRequests = useCallback(() => {
|
|
29
|
+
if (abortControllerRef.current) {
|
|
30
|
+
abortControllerRef.current.abort();
|
|
31
|
+
abortControllerRef.current = null;
|
|
32
|
+
}
|
|
33
|
+
}, []);
|
|
34
|
+
const handleOnBlur = useCallback((event) => {
|
|
35
|
+
event.stopPropagation();
|
|
36
|
+
cancelAllSearchRequests();
|
|
37
|
+
}, [cancelAllSearchRequests]);
|
|
38
|
+
const handleClickSearch = useCallback((event, value, reason) => {
|
|
39
|
+
event.stopPropagation();
|
|
40
|
+
if (reason === "selectOption") {
|
|
41
|
+
const pkgName = value["package"]?.name ?? value.name;
|
|
42
|
+
navigate(`${Route$1.DETAIL}${pkgName}`);
|
|
43
|
+
}
|
|
44
|
+
}, [navigate, searchRemote]);
|
|
45
|
+
const doSearchRef = useRef(doSearch);
|
|
46
|
+
doSearchRef.current = doSearch;
|
|
47
|
+
/**
|
|
48
|
+
* Stable fetch function that reads the latest doSearch from a ref,
|
|
49
|
+
* avoiding dependency changes that would break the debounce.
|
|
50
|
+
*/
|
|
51
|
+
const handleFetchPackages = useCallback(async ({ value }) => {
|
|
52
|
+
if (value?.trim() !== "") {
|
|
53
|
+
cancelAllSearchRequests();
|
|
54
|
+
const controller = new AbortController();
|
|
55
|
+
abortControllerRef.current = controller;
|
|
56
|
+
try {
|
|
57
|
+
await doSearchRef.current?.({
|
|
58
|
+
text: value,
|
|
59
|
+
signal: controller.signal
|
|
60
|
+
});
|
|
61
|
+
} catch (err) {
|
|
62
|
+
if (err.name === CONSTANTS.ABORT_ERROR) console.warn("Search request aborted");
|
|
63
|
+
else console.error("Search error:", err);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}, [cancelAllSearchRequests]);
|
|
67
|
+
const debouncedFetch = useMemo(() => debounce(handleFetchPackages, CONSTANTS.API_DELAY), [handleFetchPackages]);
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
return () => {
|
|
70
|
+
debouncedFetch.cancel?.();
|
|
71
|
+
cancelAllSearchRequests();
|
|
72
|
+
};
|
|
73
|
+
}, [debouncedFetch, cancelAllSearchRequests]);
|
|
74
|
+
const renderOption = (props, option) => {
|
|
75
|
+
const { key, ...otherProps } = props;
|
|
76
|
+
if (searchRemote) {
|
|
77
|
+
const item = option.package;
|
|
78
|
+
const isPrivate = option?.verdaccioPrivate;
|
|
79
|
+
const isCached = option?.verdaccioPkgCached;
|
|
80
|
+
const isRemote = !isCached && !isPrivate;
|
|
81
|
+
return /* @__PURE__ */ jsx(SearchItem, {
|
|
82
|
+
...otherProps,
|
|
83
|
+
description: item?.description,
|
|
84
|
+
isCached,
|
|
85
|
+
isPrivate,
|
|
86
|
+
isRemote,
|
|
87
|
+
name: item?.name,
|
|
88
|
+
version: item?.version
|
|
89
|
+
}, key);
|
|
90
|
+
} else {
|
|
91
|
+
const item = option.package;
|
|
92
|
+
return /* @__PURE__ */ jsx(SearchItem, {
|
|
93
|
+
...otherProps,
|
|
94
|
+
description: item?.description,
|
|
95
|
+
name: item?.name,
|
|
96
|
+
version: item?.version
|
|
97
|
+
}, key);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
const renderInput = (params) => {
|
|
101
|
+
return /* @__PURE__ */ jsx(StyledTextField, {
|
|
102
|
+
...params,
|
|
103
|
+
InputProps: {
|
|
104
|
+
...params.InputProps,
|
|
105
|
+
startAdornment: /* @__PURE__ */ jsx(StyledInputAdornment, {
|
|
106
|
+
position: "start",
|
|
107
|
+
children: /* @__PURE__ */ jsx(SearchMui, {})
|
|
108
|
+
})
|
|
109
|
+
},
|
|
110
|
+
label: "",
|
|
111
|
+
placeholder: t("search.packages"),
|
|
112
|
+
variant: "standard"
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
const getOptionLabel = (option) => {
|
|
116
|
+
return option?.package?.name;
|
|
117
|
+
};
|
|
118
|
+
return /* @__PURE__ */ jsx(AutoComplete, {
|
|
119
|
+
getOptionLabel,
|
|
120
|
+
onCleanSuggestions: handleOnBlur,
|
|
121
|
+
onSelectItem: handleClickSearch,
|
|
122
|
+
onSuggestionsFetch: debouncedFetch,
|
|
123
|
+
placeholder: t("search.packages"),
|
|
124
|
+
renderInput,
|
|
125
|
+
renderOption,
|
|
126
|
+
suggestions: searchResults,
|
|
127
|
+
suggestionsLoading: isLoading
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
//#endregion
|
|
131
|
+
export { Search as default };
|
|
132
|
+
|
|
133
|
+
//# sourceMappingURL=Search.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Search.mjs","names":["SearchMui","debounce","React","useCallback","useEffect","useMemo","useRef","useTranslation","useNavigate","SearchResultWeb","useConfig","useSearch","Route","AutoComplete","SearchItem","StyledInputAdornment","StyledTextField","CONSTANTS","API_DELAY","ABORT_ERROR","Search","FC","t","navigate","searchResults","isLoading","doSearch","configOptions","flags","searchRemote","abortControllerRef","AbortController","cancelAllSearchRequests","current","abort","handleOnBlur","event","SyntheticEvent","stopPropagation","handleClickSearch","value","reason","pkgName","name","DETAIL","doSearchRef","handleFetchPackages","trim","controller","text","signal","err","console","warn","error","debouncedFetch","cancel","renderOption","props","option","key","otherProps","item","package","isPrivate","verdaccioPrivate","isCached","verdaccioPkgCached","isRemote","description","version","renderInput","params","InputProps","startAdornment","getOptionLabel"],"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import SearchMui from '@mui/icons-material/Search';\nimport debounce from 'lodash/debounce';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport type { SearchResultWeb } from '@verdaccio/types';\n\nimport { useConfig, useSearch } from '../../';\nimport { Route } from '../../utils';\nimport AutoComplete from './AutoComplete';\nimport SearchItem from './SearchItem';\nimport { StyledInputAdornment, StyledTextField } from './styles';\n\nconst CONSTANTS = {\n API_DELAY: 300,\n ABORT_ERROR: 'AbortError',\n};\n\nconst Search: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { searchResults, isLoading, doSearch } = useSearch();\n const {\n configOptions: { flags },\n } = useConfig();\n const searchRemote = flags?.searchRemote ?? false;\n\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const cancelAllSearchRequests = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n }, []);\n\n const handleOnBlur = useCallback(\n (event: React.SyntheticEvent) => {\n event.stopPropagation();\n cancelAllSearchRequests();\n },\n [cancelAllSearchRequests]\n );\n\n const handleClickSearch = useCallback(\n (event: React.SyntheticEvent, value: SearchResultWeb, reason: string): void => {\n event.stopPropagation();\n if (reason === 'selectOption') {\n const pkgName = value['package']?.name ?? value.name;\n navigate(`${Route.DETAIL}${pkgName}`);\n }\n },\n [navigate, searchRemote]\n );\n\n // Use a ref to always access the latest doSearch without re-creating the debounced function\n const doSearchRef = useRef(doSearch);\n doSearchRef.current = doSearch;\n\n /**\n * Stable fetch function that reads the latest doSearch from a ref,\n * avoiding dependency changes that would break the debounce.\n */\n const handleFetchPackages = useCallback(\n async ({ value }: { value: string }) => {\n if (value?.trim() !== '') {\n // Abort any previous pending request before starting a new one\n cancelAllSearchRequests();\n\n // Create a new controller for the current request\n const controller = new AbortController();\n abortControllerRef.current = controller;\n\n try {\n await doSearchRef.current?.({\n text: value,\n signal: controller.signal,\n });\n } catch (err: any) {\n if (err.name === CONSTANTS.ABORT_ERROR) {\n console.warn('Search request aborted');\n } else {\n console.error('Search error:', err);\n }\n }\n }\n },\n [cancelAllSearchRequests]\n );\n\n // Memoize the debounced function so a single instance is reused across renders,\n // ensuring the debounce timer works correctly instead of creating a new timer per render.\n const debouncedFetch = useMemo(\n () => debounce(handleFetchPackages, CONSTANTS.API_DELAY),\n [handleFetchPackages]\n );\n\n useEffect(() => {\n return () => {\n debouncedFetch.cancel?.();\n cancelAllSearchRequests();\n };\n }, [debouncedFetch, cancelAllSearchRequests]);\n\n const renderOption = (props, option) => {\n const { key, ...otherProps } = props;\n\n if (searchRemote) {\n const item: SearchResultWeb = option.package;\n const isPrivate = option?.verdaccioPrivate;\n const isCached = option?.verdaccioPkgCached;\n const isRemote = !isCached && !isPrivate;\n return (\n <SearchItem\n key={key}\n {...otherProps}\n description={item?.description}\n isCached={isCached}\n isPrivate={isPrivate}\n isRemote={isRemote}\n name={item?.name}\n version={item?.version}\n />\n );\n } else {\n const item: SearchResultWeb = option.package;\n return (\n <SearchItem\n key={key}\n {...otherProps}\n description={item?.description}\n name={item?.name}\n version={item?.version}\n />\n );\n }\n };\n\n const renderInput = (params) => {\n return (\n <StyledTextField\n {...params}\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <StyledInputAdornment position=\"start\">\n <SearchMui />\n </StyledInputAdornment>\n ),\n }}\n label=\"\"\n placeholder={t('search.packages')}\n variant=\"standard\"\n />\n );\n };\n\n const getOptionLabel = (option) => {\n return option?.package?.name;\n };\n\n return (\n <AutoComplete\n getOptionLabel={getOptionLabel}\n onCleanSuggestions={handleOnBlur}\n onSelectItem={handleClickSearch}\n onSuggestionsFetch={debouncedFetch}\n placeholder={t('search.packages')}\n renderInput={renderInput}\n renderOption={renderOption}\n suggestions={searchResults}\n suggestionsLoading={isLoading}\n />\n );\n};\n\nexport default Search;\n"],"mappings":";;;;;;;;;;;;;;;;AAcA,IAAMiB,YAAY;CAChBC,WAAW;CACXC,aAAa;CACd;AAED,IAAMC,eAAyB;CAC7B,MAAM,EAAEE,MAAMf,gBAAgB;CAC9B,MAAMgB,WAAWf,aAAa;CAC9B,MAAM,EAAEgB,eAAeC,WAAWC,aAAaf,WAAW;CAC1D,MAAM,EACJgB,eAAe,EAAEC,YACflB,WAAW;CACf,MAAMmB,eAAeD,OAAOC,gBAAgB;CAE5C,MAAMC,qBAAqBxB,OAA+B,KAAK;CAE/D,MAAM0B,0BAA0B7B,kBAAkB;AAChD,MAAI2B,mBAAmBG,SAAS;AAC9BH,sBAAmBG,QAAQC,OAAO;AAClCJ,sBAAmBG,UAAU;;IAE9B,EAAE,CAAC;CAEN,MAAME,eAAehC,aAClBiC,UAAgC;AAC/BA,QAAME,iBAAiB;AACvBN,2BAAyB;IAE3B,CAACA,wBACH,CAAC;CAED,MAAMO,oBAAoBpC,aACvBiC,OAA6BI,OAAwBC,WAAyB;AAC7EL,QAAME,iBAAiB;AACvB,MAAIG,WAAW,gBAAgB;GAC7B,MAAMC,UAAUF,MAAM,YAAYG,QAAQH,MAAMG;AAChDpB,YAAS,GAAGX,QAAMgC,SAASF,UAAU;;IAGzC,CAACnB,UAAUM,aACb,CAAC;CAGD,MAAMgB,cAAcvC,OAAOoB,SAAS;AACpCmB,aAAYZ,UAAUP;;;;;CAMtB,MAAMoB,sBAAsB3C,YAC1B,OAAO,EAAEqC,YAA+B;AACtC,MAAIA,OAAOO,MAAM,KAAK,IAAI;AAExBf,4BAAyB;GAGzB,MAAMgB,aAAa,IAAIjB,iBAAiB;AACxCD,sBAAmBG,UAAUe;AAE7B,OAAI;AACF,UAAMH,YAAYZ,UAAU;KAC1BgB,MAAMT;KACNU,QAAQF,WAAWE;KACpB,CAAC;YACKC,KAAU;AACjB,QAAIA,IAAIR,SAAS1B,UAAUE,YACzBiC,SAAQC,KAAK,yBAAyB;QAEtCD,SAAQE,MAAM,iBAAiBH,IAAI;;;IAK3C,CAACnB,wBACH,CAAC;CAID,MAAMuB,iBAAiBlD,cACfJ,SAAS6C,qBAAqB7B,UAAUC,UAAU,EACxD,CAAC4B,oBACH,CAAC;AAED1C,iBAAgB;AACd,eAAa;AACXmD,kBAAeC,UAAU;AACzBxB,4BAAyB;;IAE1B,CAACuB,gBAAgBvB,wBAAwB,CAAC;CAE7C,MAAMyB,gBAAgBC,OAAOC,WAAW;EACtC,MAAM,EAAEC,KAAK,GAAGC,eAAeH;AAE/B,MAAI7B,cAAc;GAChB,MAAMiC,OAAwBH,OAAOI;GACrC,MAAMC,YAAYL,QAAQM;GAC1B,MAAMC,WAAWP,QAAQQ;GACzB,MAAMC,WAAW,CAACF,YAAY,CAACF;AAC/B,UACE,oBAAC,YAAD;IAEE,GAAIH;IACJ,aAAaC,MAAMO;IACTH;IACCF;IACDI;IACV,MAAMN,MAAMnB;IACZ,SAASmB,MAAMQ;IACf,EARKV,IAQL;SAEC;GACL,MAAME,OAAwBH,OAAOI;AACrC,UACE,oBAAC,YAAD;IAEE,GAAIF;IACJ,aAAaC,MAAMO;IACnB,MAAMP,MAAMnB;IACZ,SAASmB,MAAMQ;IACf,EALKV,IAKL;;;CAKR,MAAMW,eAAeC,WAAW;AAC9B,SACE,oBAAC,iBAAD;GACE,GAAIA;GACJ,YAAY;IACV,GAAGA,OAAOC;IACVC,gBACE,oBAAC,sBAAD;KAAsB,UAAS;eAC7B,oBAAC,WAAD,EAAU,CAAA;KACU,CAAA;IAEzB;GACD,OAAM;GACN,aAAapD,EAAE,kBAAkB;GACjC,SAAQ;GACR,CAAA;;CAIN,MAAMqD,kBAAkBhB,WAAW;AACjC,SAAOA,QAAQI,SAASpB;;AAG1B,QACE,oBAAC,cAAD;EACkBgC;EAChB,oBAAoBxC;EACpB,cAAcI;EACd,oBAAoBgB;EACpB,aAAajC,EAAE,kBAAkB;EACpBiD;EACCd;EACd,aAAajC;EACb,oBAAoBC;EACpB,CAAA"}
|