@strapi/plugin-documentation 5.10.4 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/chunks/{App-RCDQlkkW.mjs → App-D6yQIQar.mjs} +3 -3
- package/dist/admin/chunks/{App-RCDQlkkW.mjs.map → App-D6yQIQar.mjs.map} +1 -1
- package/dist/admin/chunks/{App-Cxz0rk7X.js → App-DC2H8bJ5.js} +3 -3
- package/dist/admin/chunks/{App-Cxz0rk7X.js.map → App-DC2H8bJ5.js.map} +1 -1
- package/dist/admin/chunks/{Settings-BSdFg_W6.js → Settings-Cpj-uI9B.js} +3 -3
- package/dist/admin/chunks/{Settings-BSdFg_W6.js.map → Settings-Cpj-uI9B.js.map} +1 -1
- package/dist/admin/chunks/{Settings-BVMaCS19.mjs → Settings-DyLMOJEx.mjs} +3 -3
- package/dist/admin/chunks/{Settings-BVMaCS19.mjs.map → Settings-DyLMOJEx.mjs.map} +1 -1
- package/dist/admin/chunks/{getTrad-Jg94Stau.js → getTrad-AvLNMP3V.js} +2 -2
- package/dist/admin/chunks/{getTrad-Jg94Stau.js.map → getTrad-AvLNMP3V.js.map} +1 -1
- package/dist/admin/chunks/{getTrad-BeRenTLC.mjs → getTrad-D9juLfq6.mjs} +2 -2
- package/dist/admin/chunks/{getTrad-BeRenTLC.mjs.map → getTrad-D9juLfq6.mjs.map} +1 -1
- package/dist/admin/chunks/{index-Bqh49AYj.mjs → index-BHy3RKs2.mjs} +4 -4
- package/dist/admin/chunks/{index-Bqh49AYj.mjs.map → index-BHy3RKs2.mjs.map} +1 -1
- package/dist/admin/chunks/{index-BBrYAkKJ.js → index-BSW-EfNW.js} +4 -4
- package/dist/admin/chunks/{index-BBrYAkKJ.js.map → index-BSW-EfNW.js.map} +1 -1
- package/dist/admin/chunks/{uk-CBFYJeOD.js → uk-BkF_x68T.js} +21 -2
- package/dist/admin/chunks/uk-BkF_x68T.js.map +1 -0
- package/dist/admin/chunks/{uk-BEfALDlr.mjs → uk-CWOtQQic.mjs} +21 -2
- package/dist/admin/chunks/uk-CWOtQQic.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +9 -9
- package/dist/admin/chunks/uk-BEfALDlr.mjs.map +0 -1
- package/dist/admin/chunks/uk-CBFYJeOD.js.map +0 -1
@@ -5,8 +5,8 @@ import { Eye, ArrowClockwise, Trash } from '@strapi/icons';
|
|
5
5
|
import { useNotification, useAPIErrorHandler, useRBAC, Page, Layouts, ConfirmDialog } from '@strapi/strapi/admin';
|
6
6
|
import { useIntl } from 'react-intl';
|
7
7
|
import { styled } from 'styled-components';
|
8
|
-
import { P as PERMISSIONS } from './index-
|
9
|
-
import { u as useGetInfoQuery, a as useRegenerateDocMutation, b as useDeleteVersionMutation, g as getTrad } from './getTrad-
|
8
|
+
import { P as PERMISSIONS } from './index-BHy3RKs2.mjs';
|
9
|
+
import { u as useGetInfoQuery, a as useRegenerateDocMutation, b as useDeleteVersionMutation, g as getTrad } from './getTrad-D9juLfq6.mjs';
|
10
10
|
import '@strapi/admin/strapi-admin';
|
11
11
|
|
12
12
|
const App = ()=>{
|
@@ -228,4 +228,4 @@ const createDocumentationHref = (path)=>{
|
|
228
228
|
};
|
229
229
|
|
230
230
|
export { App };
|
231
|
-
//# sourceMappingURL=App-
|
231
|
+
//# sourceMappingURL=App-D6yQIQar.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"App-RCDQlkkW.mjs","sources":["../../../admin/src/pages/App.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\nimport * as React from 'react';\n\nimport {\n LinkButton,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n EmptyStateLayout,\n Dialog,\n} from '@strapi/design-system';\nimport { Eye as Show, ArrowClockwise as Reload, Trash } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useRBAC,\n Page,\n useAPIErrorHandler,\n useNotification,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PERMISSIONS } from '../constants';\nimport {\n useGetInfoQuery,\n useRegenerateDocMutation,\n useDeleteVersionMutation,\n} from '../services/api';\nimport { getTrad } from '../utils';\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { formatAPIError } = useAPIErrorHandler();\n const { data, isLoading: isLoadingInfo, isError } = useGetInfoQuery();\n const [regenerate] = useRegenerateDocMutation();\n const [deleteVersion] = useDeleteVersionMutation();\n const [showConfirmDelete, setShowConfirmDelete] = React.useState<boolean>(false);\n const [versionToDelete, setVersionToDelete] = React.useState<string>();\n const { allowedActions, isLoading: isLoadingRBAC } = useRBAC(PERMISSIONS);\n\n const isLoading = isLoadingInfo || isLoadingRBAC;\n\n const colCount = 4;\n const rowCount = (data?.docVersions?.length || 0) + 1;\n\n const handleRegenerateDoc = (version: string) => {\n regenerate({ version })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.generate.success'),\n defaultMessage: 'Successfully generated documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n };\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleConfirmDelete = async () => {\n if (!versionToDelete) {\n // nothing to delete\n return;\n }\n\n await deleteVersion({ version: versionToDelete })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.delete.success'),\n defaultMessage: 'Successfully deleted documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleClickDelete = (version: string) => {\n setVersionToDelete(version);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const title = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n });\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>{title}</Page.Title>\n <Page.Main>\n <Layouts.Header\n title={title}\n subtitle={formatMessage({\n id: getTrad('pages.PluginPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <OpenDocLink\n disabled={!allowedActions.canRead || !data?.currentVersion || !data?.prefix}\n href={createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`)}\n startIcon={<Show />}\n >\n {formatMessage({\n id: getTrad('pages.PluginPage.Button.open'),\n defaultMessage: 'Open Documentation',\n })}\n </OpenDocLink>\n }\n />\n <Layouts.Content>\n {data?.docVersions.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.version'),\n defaultMessage: 'Version',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.generated'),\n defaultMessage: 'Last Generated',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data.docVersions\n .slice(0)\n .sort((a, b) => (a.generatedDate < b.generatedDate ? 1 : -1))\n .map((doc) => (\n <Tr key={doc.version}>\n <Td width=\"50%\">\n <Typography>{doc.version}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{doc.generatedDate}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n <IconButton\n tag=\"a\"\n disabled={!allowedActions.canRead}\n href={createDocumentationHref(`${data.prefix}/v${doc.version}`)}\n variant=\"ghost\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.show'),\n defaultMessage: 'Open {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Show />\n </IconButton>\n {allowedActions.canRegenerate ? (\n <IconButton\n onClick={() => handleRegenerateDoc(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.regenerate'),\n defaultMessage: 'Regenerate {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Reload />\n </IconButton>\n ) : null}\n {allowedActions.canUpdate && doc.version !== data.currentVersion ? (\n <IconButton\n onClick={() => handleClickDelete(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout content=\"\" icon={null} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={setShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\n/**\n * TODO: should this be fixed in the DS?\n */\nconst OpenDocLink = styled(LinkButton)`\n text-decoration: none;\n`;\n\nconst createDocumentationHref = (path: string) => {\n if (path.startsWith('http')) {\n return path;\n }\n\n if (path.startsWith('/')) {\n return `${window.strapi.backendURL}${path}`;\n }\n\n return `${window.strapi.backendURL}/${path}`;\n};\n\nexport { App };\n"],"names":["App","formatMessage","useIntl","toggleNotification","useNotification","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingInfo","isError","useGetInfoQuery","regenerate","useRegenerateDocMutation","deleteVersion","useDeleteVersionMutation","showConfirmDelete","setShowConfirmDelete","React","useState","versionToDelete","setVersionToDelete","allowedActions","isLoadingRBAC","useRBAC","PERMISSIONS","colCount","rowCount","docVersions","length","handleRegenerateDoc","version","unwrap","then","type","message","id","getTrad","defaultMessage","catch","err","handleConfirmDelete","handleClickDelete","title","_jsx","Page","Loading","Error","_jsxs","Layouts","Root","Title","Main","Header","subtitle","primaryAction","OpenDocLink","disabled","canRead","currentVersion","prefix","href","createDocumentationHref","startIcon","Show","Content","Table","Thead","Tr","Th","Typography","variant","textColor","Tbody","slice","sort","a","b","generatedDate","map","doc","Td","width","Flex","justifyContent","onClick","e","stopPropagation","IconButton","tag","target","rel","label","canRegenerate","Reload","canUpdate","Trash","EmptyStateLayout","content","icon","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","styled","LinkButton","path","startsWith","window","strapi","backendURL"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"App-D6yQIQar.mjs","sources":["../../../admin/src/pages/App.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\nimport * as React from 'react';\n\nimport {\n LinkButton,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n EmptyStateLayout,\n Dialog,\n} from '@strapi/design-system';\nimport { Eye as Show, ArrowClockwise as Reload, Trash } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useRBAC,\n Page,\n useAPIErrorHandler,\n useNotification,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PERMISSIONS } from '../constants';\nimport {\n useGetInfoQuery,\n useRegenerateDocMutation,\n useDeleteVersionMutation,\n} from '../services/api';\nimport { getTrad } from '../utils';\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { formatAPIError } = useAPIErrorHandler();\n const { data, isLoading: isLoadingInfo, isError } = useGetInfoQuery();\n const [regenerate] = useRegenerateDocMutation();\n const [deleteVersion] = useDeleteVersionMutation();\n const [showConfirmDelete, setShowConfirmDelete] = React.useState<boolean>(false);\n const [versionToDelete, setVersionToDelete] = React.useState<string>();\n const { allowedActions, isLoading: isLoadingRBAC } = useRBAC(PERMISSIONS);\n\n const isLoading = isLoadingInfo || isLoadingRBAC;\n\n const colCount = 4;\n const rowCount = (data?.docVersions?.length || 0) + 1;\n\n const handleRegenerateDoc = (version: string) => {\n regenerate({ version })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.generate.success'),\n defaultMessage: 'Successfully generated documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n };\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleConfirmDelete = async () => {\n if (!versionToDelete) {\n // nothing to delete\n return;\n }\n\n await deleteVersion({ version: versionToDelete })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.delete.success'),\n defaultMessage: 'Successfully deleted documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleClickDelete = (version: string) => {\n setVersionToDelete(version);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const title = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n });\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>{title}</Page.Title>\n <Page.Main>\n <Layouts.Header\n title={title}\n subtitle={formatMessage({\n id: getTrad('pages.PluginPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <OpenDocLink\n disabled={!allowedActions.canRead || !data?.currentVersion || !data?.prefix}\n href={createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`)}\n startIcon={<Show />}\n >\n {formatMessage({\n id: getTrad('pages.PluginPage.Button.open'),\n defaultMessage: 'Open Documentation',\n })}\n </OpenDocLink>\n }\n />\n <Layouts.Content>\n {data?.docVersions.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.version'),\n defaultMessage: 'Version',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.generated'),\n defaultMessage: 'Last Generated',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data.docVersions\n .slice(0)\n .sort((a, b) => (a.generatedDate < b.generatedDate ? 1 : -1))\n .map((doc) => (\n <Tr key={doc.version}>\n <Td width=\"50%\">\n <Typography>{doc.version}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{doc.generatedDate}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n <IconButton\n tag=\"a\"\n disabled={!allowedActions.canRead}\n href={createDocumentationHref(`${data.prefix}/v${doc.version}`)}\n variant=\"ghost\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.show'),\n defaultMessage: 'Open {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Show />\n </IconButton>\n {allowedActions.canRegenerate ? (\n <IconButton\n onClick={() => handleRegenerateDoc(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.regenerate'),\n defaultMessage: 'Regenerate {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Reload />\n </IconButton>\n ) : null}\n {allowedActions.canUpdate && doc.version !== data.currentVersion ? (\n <IconButton\n onClick={() => handleClickDelete(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout content=\"\" icon={null} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={setShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\n/**\n * TODO: should this be fixed in the DS?\n */\nconst OpenDocLink = styled(LinkButton)`\n text-decoration: none;\n`;\n\nconst createDocumentationHref = (path: string) => {\n if (path.startsWith('http')) {\n return path;\n }\n\n if (path.startsWith('/')) {\n return `${window.strapi.backendURL}${path}`;\n }\n\n return `${window.strapi.backendURL}/${path}`;\n};\n\nexport { App };\n"],"names":["App","formatMessage","useIntl","toggleNotification","useNotification","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingInfo","isError","useGetInfoQuery","regenerate","useRegenerateDocMutation","deleteVersion","useDeleteVersionMutation","showConfirmDelete","setShowConfirmDelete","React","useState","versionToDelete","setVersionToDelete","allowedActions","isLoadingRBAC","useRBAC","PERMISSIONS","colCount","rowCount","docVersions","length","handleRegenerateDoc","version","unwrap","then","type","message","id","getTrad","defaultMessage","catch","err","handleConfirmDelete","handleClickDelete","title","_jsx","Page","Loading","Error","_jsxs","Layouts","Root","Title","Main","Header","subtitle","primaryAction","OpenDocLink","disabled","canRead","currentVersion","prefix","href","createDocumentationHref","startIcon","Show","Content","Table","Thead","Tr","Th","Typography","variant","textColor","Tbody","slice","sort","a","b","generatedDate","map","doc","Td","width","Flex","justifyContent","onClick","e","stopPropagation","IconButton","tag","target","rel","label","canRegenerate","Reload","canUpdate","Trash","EmptyStateLayout","content","icon","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","styled","LinkButton","path","startsWith","window","strapi","backendURL"],"mappings":"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"}
|
@@ -7,8 +7,8 @@ var icons = require('@strapi/icons');
|
|
7
7
|
var admin = require('@strapi/strapi/admin');
|
8
8
|
var reactIntl = require('react-intl');
|
9
9
|
var styledComponents = require('styled-components');
|
10
|
-
var index = require('./index-
|
11
|
-
var getTrad = require('./getTrad-
|
10
|
+
var index = require('./index-BSW-EfNW.js');
|
11
|
+
var getTrad = require('./getTrad-AvLNMP3V.js');
|
12
12
|
require('@strapi/admin/strapi-admin');
|
13
13
|
|
14
14
|
function _interopNamespaceDefault(e) {
|
@@ -249,4 +249,4 @@ const createDocumentationHref = (path)=>{
|
|
249
249
|
};
|
250
250
|
|
251
251
|
exports.App = App;
|
252
|
-
//# sourceMappingURL=App-
|
252
|
+
//# sourceMappingURL=App-DC2H8bJ5.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"App-Cxz0rk7X.js","sources":["../../../admin/src/pages/App.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\nimport * as React from 'react';\n\nimport {\n LinkButton,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n EmptyStateLayout,\n Dialog,\n} from '@strapi/design-system';\nimport { Eye as Show, ArrowClockwise as Reload, Trash } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useRBAC,\n Page,\n useAPIErrorHandler,\n useNotification,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PERMISSIONS } from '../constants';\nimport {\n useGetInfoQuery,\n useRegenerateDocMutation,\n useDeleteVersionMutation,\n} from '../services/api';\nimport { getTrad } from '../utils';\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { formatAPIError } = useAPIErrorHandler();\n const { data, isLoading: isLoadingInfo, isError } = useGetInfoQuery();\n const [regenerate] = useRegenerateDocMutation();\n const [deleteVersion] = useDeleteVersionMutation();\n const [showConfirmDelete, setShowConfirmDelete] = React.useState<boolean>(false);\n const [versionToDelete, setVersionToDelete] = React.useState<string>();\n const { allowedActions, isLoading: isLoadingRBAC } = useRBAC(PERMISSIONS);\n\n const isLoading = isLoadingInfo || isLoadingRBAC;\n\n const colCount = 4;\n const rowCount = (data?.docVersions?.length || 0) + 1;\n\n const handleRegenerateDoc = (version: string) => {\n regenerate({ version })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.generate.success'),\n defaultMessage: 'Successfully generated documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n };\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleConfirmDelete = async () => {\n if (!versionToDelete) {\n // nothing to delete\n return;\n }\n\n await deleteVersion({ version: versionToDelete })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.delete.success'),\n defaultMessage: 'Successfully deleted documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleClickDelete = (version: string) => {\n setVersionToDelete(version);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const title = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n });\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>{title}</Page.Title>\n <Page.Main>\n <Layouts.Header\n title={title}\n subtitle={formatMessage({\n id: getTrad('pages.PluginPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <OpenDocLink\n disabled={!allowedActions.canRead || !data?.currentVersion || !data?.prefix}\n href={createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`)}\n startIcon={<Show />}\n >\n {formatMessage({\n id: getTrad('pages.PluginPage.Button.open'),\n defaultMessage: 'Open Documentation',\n })}\n </OpenDocLink>\n }\n />\n <Layouts.Content>\n {data?.docVersions.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.version'),\n defaultMessage: 'Version',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.generated'),\n defaultMessage: 'Last Generated',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data.docVersions\n .slice(0)\n .sort((a, b) => (a.generatedDate < b.generatedDate ? 1 : -1))\n .map((doc) => (\n <Tr key={doc.version}>\n <Td width=\"50%\">\n <Typography>{doc.version}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{doc.generatedDate}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n <IconButton\n tag=\"a\"\n disabled={!allowedActions.canRead}\n href={createDocumentationHref(`${data.prefix}/v${doc.version}`)}\n variant=\"ghost\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.show'),\n defaultMessage: 'Open {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Show />\n </IconButton>\n {allowedActions.canRegenerate ? (\n <IconButton\n onClick={() => handleRegenerateDoc(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.regenerate'),\n defaultMessage: 'Regenerate {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Reload />\n </IconButton>\n ) : null}\n {allowedActions.canUpdate && doc.version !== data.currentVersion ? (\n <IconButton\n onClick={() => handleClickDelete(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout content=\"\" icon={null} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={setShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\n/**\n * TODO: should this be fixed in the DS?\n */\nconst OpenDocLink = styled(LinkButton)`\n text-decoration: none;\n`;\n\nconst createDocumentationHref = (path: string) => {\n if (path.startsWith('http')) {\n return path;\n }\n\n if (path.startsWith('/')) {\n return `${window.strapi.backendURL}${path}`;\n }\n\n return `${window.strapi.backendURL}/${path}`;\n};\n\nexport { App };\n"],"names":["App","formatMessage","useIntl","toggleNotification","useNotification","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingInfo","isError","useGetInfoQuery","regenerate","useRegenerateDocMutation","deleteVersion","useDeleteVersionMutation","showConfirmDelete","setShowConfirmDelete","React","useState","versionToDelete","setVersionToDelete","allowedActions","isLoadingRBAC","useRBAC","PERMISSIONS","colCount","rowCount","docVersions","length","handleRegenerateDoc","version","unwrap","then","type","message","id","getTrad","defaultMessage","catch","err","handleConfirmDelete","handleClickDelete","title","_jsx","Page","Loading","Error","_jsxs","Layouts","Root","Title","Main","Header","subtitle","primaryAction","OpenDocLink","disabled","canRead","currentVersion","prefix","href","createDocumentationHref","startIcon","Show","Content","Table","Thead","Tr","Th","Typography","variant","textColor","Tbody","slice","sort","a","b","generatedDate","map","doc","Td","width","Flex","justifyContent","onClick","e","stopPropagation","IconButton","tag","target","rel","label","canRegenerate","Reload","canUpdate","Trash","EmptyStateLayout","content","icon","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","styled","LinkButton","path","startsWith","window","strapi","backendURL"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,MAAMA,GAAM,GAAA,IAAA;IACV,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,qBAAAA,EAAAA;IAC/B,MAAM,EAAEC,cAAc,EAAE,GAAGC,wBAAAA,EAAAA;IAC3B,MAAM,EAAEC,IAAI,EAAEC,SAAAA,EAAWC,aAAa,EAAEC,OAAO,EAAE,GAAGC,uBAAAA,EAAAA;IACpD,MAAM,CAACC,WAAW,GAAGC,gCAAAA,EAAAA;IACrB,MAAM,CAACC,cAAc,GAAGC,gCAAAA,EAAAA;AACxB,IAAA,MAAM,CAACC,iBAAmBC,EAAAA,oBAAAA,CAAqB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAU,KAAA,CAAA;AAC1E,IAAA,MAAM,CAACC,eAAAA,EAAiBC,kBAAmB,CAAA,GAAGH,iBAAMC,QAAQ,EAAA;AAC5D,IAAA,MAAM,EAAEG,cAAc,EAAEd,WAAWe,aAAa,EAAE,GAAGC,aAAQC,CAAAA,iBAAAA,CAAAA;AAE7D,IAAA,MAAMjB,YAAYC,aAAiBc,IAAAA,aAAAA;AAEnC,IAAA,MAAMG,QAAW,GAAA,CAAA;AACjB,IAAA,MAAMC,WAAW,CAACpB,MAAMqB,WAAaC,EAAAA,MAAAA,IAAU,CAAA,IAAK,CAAA;AAEpD,IAAA,MAAMC,sBAAsB,CAACC,OAAAA,GAAAA;QAC3BnB,UAAW,CAAA;AAAEmB,YAAAA;SACVC,CAAAA,CAAAA,MAAM,EACNC,CAAAA,IAAI,CAAC,IAAA;YACJ9B,kBAAmB,CAAA;gBACjB+B,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASlC,aAAc,CAAA;AACrBmC,oBAAAA,EAAAA,EAAIC,eAAQ,CAAA,+BAAA,CAAA;oBACZC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;SAEDC,CAAAA,CAAAA,KAAK,CAAC,CAACC,GAAAA,GAAAA;YACNrC,kBAAmB,CAAA;gBACjB+B,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS9B,cAAemC,CAAAA,GAAAA;AAC1B,aAAA,CAAA;AACF,SAAA,CAAA;AACJ,KAAA;AAMA,IAAA,MAAMC,mBAAsB,GAAA,UAAA;AAC1B,QAAA,IAAI,CAACrB,eAAiB,EAAA;;AAEpB,YAAA;AACF;AAEA,QAAA,MAAMN,aAAc,CAAA;YAAEiB,OAASX,EAAAA;SAC5BY,CAAAA,CAAAA,MAAM,EACNC,CAAAA,IAAI,CAAC,IAAA;YACJ9B,kBAAmB,CAAA;gBACjB+B,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASlC,aAAc,CAAA;AACrBmC,oBAAAA,EAAAA,EAAIC,eAAQ,CAAA,6BAAA,CAAA;oBACZC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;SAEDC,CAAAA,CAAAA,KAAK,CAAC,CAACC,GAAAA,GAAAA;YACNrC,kBAAmB,CAAA;gBACjB+B,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS9B,cAAemC,CAAAA,GAAAA;AAC1B,aAAA,CAAA;AACF,SAAA,CAAA;AAEFvB,QAAAA,oBAAAA,CAAqB,CAACD,iBAAAA,CAAAA;AACxB,KAAA;AAEA,IAAA,MAAM0B,oBAAoB,CAACX,OAAAA,GAAAA;QACzBV,kBAAmBU,CAAAA,OAAAA,CAAAA;AACnBd,QAAAA,oBAAAA,CAAqB,CAACD,iBAAAA,CAAAA;AACxB,KAAA;AAEA,IAAA,MAAM2B,QAAQ1C,aAAc,CAAA;AAC1BmC,QAAAA,EAAAA,EAAIC,eAAQ,CAAA,aAAA,CAAA;QACZC,cAAgB,EAAA;AAClB,KAAA,CAAA;AAEA,IAAA,IAAI9B,SAAW,EAAA;QACb,qBAAOoC,cAAA,CAACC,WAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,IAAIpC,OAAS,EAAA;QACX,qBAAOkC,cAAA,CAACC,WAAKE,KAAK,EAAA,EAAA,CAAA;AACpB;IAEA,qBACEC,eAAA,CAACC,cAAQC,IAAI,EAAA;;AACX,0BAAAN,cAAA,CAACC,WAAKM,KAAK,EAAA;AAAER,gBAAAA,QAAAA,EAAAA;;AACb,0BAAAK,eAAA,CAACH,WAAKO,IAAI,EAAA;;AACR,kCAAAR,cAAA,CAACK,cAAQI,MAAM,EAAA;wBACbV,KAAOA,EAAAA,KAAAA;AACPW,wBAAAA,QAAAA,EAAUrD,aAAc,CAAA;AACtBmC,4BAAAA,EAAAA,EAAIC,eAAQ,CAAA,qCAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;AACAiB,wBAAAA,aAAAA,gBACEX,cAACY,CAAAA,WAAAA,EAAAA;4BACCC,QAAU,EAAA,CAACnC,eAAeoC,OAAO,IAAI,CAACnD,IAAMoD,EAAAA,cAAAA,IAAkB,CAACpD,IAAMqD,EAAAA,MAAAA;4BACrEC,IAAMC,EAAAA,uBAAAA,CAAwB,CAAC,EAAEvD,IAAAA,EAAMqD,OAAO,EAAE,EAAErD,IAAMoD,EAAAA,cAAAA,CAAe,CAAC,CAAA;AACxEI,4BAAAA,SAAAA,gBAAWnB,cAACoB,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;sCAEX/D,aAAc,CAAA;AACbmC,gCAAAA,EAAAA,EAAIC,eAAQ,CAAA,8BAAA,CAAA;gCACZC,cAAgB,EAAA;AAClB,6BAAA;;;AAIN,kCAAAM,cAAA,CAACK,cAAQgB,OAAO,EAAA;kCACb1D,IAAMqB,EAAAA,WAAAA,CAAYC,uBACjBmB,eAACkB,CAAAA,kBAAAA,EAAAA;4BAAMxC,QAAUA,EAAAA,QAAAA;4BAAUC,QAAUA,EAAAA,QAAAA;;8CACnCiB,cAACuB,CAAAA,kBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAAnB,eAACoB,CAAAA,eAAAA,EAAAA;;0DACCxB,cAACyB,CAAAA,eAAAA,EAAAA;AACC,gDAAA,QAAA,gBAAAzB,cAAC0B,CAAAA,uBAAAA,EAAAA;oDAAWC,OAAQ,EAAA,OAAA;oDAAQC,SAAU,EAAA,YAAA;8DACnCvE,aAAc,CAAA;AACbmC,wDAAAA,EAAAA,EAAIC,eAAQ,CAAA,gCAAA,CAAA;wDACZC,cAAgB,EAAA;AAClB,qDAAA;;;0DAGJM,cAACyB,CAAAA,eAAAA,EAAAA;AACC,gDAAA,QAAA,gBAAAzB,cAAC0B,CAAAA,uBAAAA,EAAAA;oDAAWC,OAAQ,EAAA,OAAA;oDAAQC,SAAU,EAAA,YAAA;8DACnCvE,aAAc,CAAA;AACbmC,wDAAAA,EAAAA,EAAIC,eAAQ,CAAA,kCAAA,CAAA;wDACZC,cAAgB,EAAA;AAClB,qDAAA;;;;;;8CAKRM,cAAC6B,CAAAA,kBAAAA,EAAAA;8CACElE,IAAKqB,CAAAA,WAAW,CACd8C,KAAK,CAAC,GACNC,IAAI,CAAC,CAACC,CAAAA,EAAGC,CAAOD,GAAAA,CAAAA,CAAEE,aAAa,GAAGD,CAAAA,CAAEC,aAAa,GAAG,CAAI,GAAA,CAAC,GACzDC,GAAG,CAAC,CAACC,GAAAA,iBACJhC,eAACoB,CAAAA,eAAAA,EAAAA;;8DACCxB,cAACqC,CAAAA,eAAAA,EAAAA;oDAAGC,KAAM,EAAA,KAAA;AACR,oDAAA,QAAA,gBAAAtC,cAAC0B,CAAAA,uBAAAA,EAAAA;AAAYU,wDAAAA,QAAAA,EAAAA,GAAAA,CAAIjD;;;8DAEnBa,cAACqC,CAAAA,eAAAA,EAAAA;oDAAGC,KAAM,EAAA,KAAA;AACR,oDAAA,QAAA,gBAAAtC,cAAC0B,CAAAA,uBAAAA,EAAAA;AAAYU,wDAAAA,QAAAA,EAAAA,GAAAA,CAAIF;;;8DAEnBlC,cAACqC,CAAAA,eAAAA,EAAAA;AACC,oDAAA,QAAA,gBAAAjC,eAACmC,CAAAA,iBAAAA,EAAAA;wDAAKC,cAAe,EAAA,KAAA;wDAAMC,OAAS,EAAA,CAACC,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;;0EAC1D3C,cAAC4C,CAAAA,uBAAAA,EAAAA;gEACCC,GAAI,EAAA,GAAA;gEACJhC,QAAU,EAAA,CAACnC,eAAeoC,OAAO;gEACjCG,IAAMC,EAAAA,uBAAAA,CAAwB,CAAC,EAAEvD,IAAKqD,CAAAA,MAAM,CAAC,EAAE,EAAEoB,GAAAA,CAAIjD,OAAO,CAAC,CAAC,CAAA;gEAC9DwC,OAAQ,EAAA,OAAA;gEACRmB,MAAO,EAAA,QAAA;gEACPC,GAAI,EAAA,qBAAA;AACJC,gEAAAA,KAAAA,EAAO3F,aACL,CAAA;AACEmC,oEAAAA,EAAAA,EAAIC,eAAQ,CAAA,kCAAA,CAAA;oEACZC,cAAgB,EAAA;iEAElB,EAAA;AAAEoD,oEAAAA,MAAAA,EAAQ,CAAC,EAAEV,GAAIjD,CAAAA,OAAO,CAAC;AAAE,iEAAA,CAAA;AAG7B,gEAAA,QAAA,gBAAAa,cAACoB,CAAAA,SAAAA,EAAAA,EAAAA;;4DAEF1C,cAAeuE,CAAAA,aAAa,iBAC3BjD,cAAC4C,CAAAA,uBAAAA,EAAAA;gEACCH,OAAS,EAAA,IAAMvD,mBAAoBkD,CAAAA,GAAAA,CAAIjD,OAAO,CAAA;gEAC9CwC,OAAQ,EAAA,OAAA;AACRqB,gEAAAA,KAAAA,EAAO3F,aACL,CAAA;AACEmC,oEAAAA,EAAAA,EAAIC,eAAQ,CAAA,wCAAA,CAAA;oEACZC,cAAgB,EAAA;iEAElB,EAAA;AAAEoD,oEAAAA,MAAAA,EAAQ,CAAC,EAAEV,GAAIjD,CAAAA,OAAO,CAAC;AAAE,iEAAA,CAAA;AAG7B,gEAAA,QAAA,gBAAAa,cAACkD,CAAAA,oBAAAA,EAAAA,EAAAA;AAED,6DAAA,CAAA,GAAA,IAAA;4DACHxE,cAAeyE,CAAAA,SAAS,IAAIf,GAAIjD,CAAAA,OAAO,KAAKxB,IAAKoD,CAAAA,cAAc,iBAC9Df,cAAC4C,CAAAA,uBAAAA,EAAAA;gEACCH,OAAS,EAAA,IAAM3C,iBAAkBsC,CAAAA,GAAAA,CAAIjD,OAAO,CAAA;gEAC5CwC,OAAQ,EAAA,OAAA;AACRqB,gEAAAA,KAAAA,EAAO3F,aACL,CAAA;oEACEmC,EAAI,EAAA,sBAAA;oEACJE,cAAgB,EAAA;iEAElB,EAAA;AAAEoD,oEAAAA,MAAAA,EAAQ,CAAC,EAAEV,GAAIjD,CAAAA,OAAO,CAAC;AAAE,iEAAA,CAAA;AAG7B,gEAAA,QAAA,gBAAAa,cAACoD,CAAAA,WAAAA,EAAAA,EAAAA;AAED,6DAAA,CAAA,GAAA;;;;;AAvDDhB,yCAAAA,EAAAA,GAAAA,CAAIjD,OAAO,CAAA;;;2CA+D5Ba,cAACqD,CAAAA,6BAAAA,EAAAA;4BAAiBC,OAAQ,EAAA,EAAA;4BAAGC,IAAM,EAAA;;;AAGvC,kCAAAvD,cAAA,CAACwD,oBAAOlD,IAAI,EAAA;wBAACmD,IAAMrF,EAAAA,iBAAAA;wBAAmBsF,YAAcrF,EAAAA,oBAAAA;AAClD,wBAAA,QAAA,gBAAA2B,cAAC2D,CAAAA,mBAAAA,EAAAA;4BAAcC,SAAW/D,EAAAA;;;;;;;AAKpC;AAEA;;AAEC,IACD,MAAMe,WAAAA,GAAciD,uBAAOC,CAAAA,uBAAAA,CAAW;;AAEtC,CAAC;AAED,MAAM5C,0BAA0B,CAAC6C,IAAAA,GAAAA;IAC/B,IAAIA,IAAAA,CAAKC,UAAU,CAAC,MAAS,CAAA,EAAA;QAC3B,OAAOD,IAAAA;AACT;IAEA,IAAIA,IAAAA,CAAKC,UAAU,CAAC,GAAM,CAAA,EAAA;QACxB,OAAO,CAAC,EAAEC,MAAOC,CAAAA,MAAM,CAACC,UAAU,CAAC,EAAEJ,IAAAA,CAAK,CAAC;AAC7C;IAEA,OAAO,CAAC,EAAEE,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAC,CAAC,EAAEJ,IAAAA,CAAK,CAAC;AAC9C,CAAA;;;;"}
|
1
|
+
{"version":3,"file":"App-DC2H8bJ5.js","sources":["../../../admin/src/pages/App.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\nimport * as React from 'react';\n\nimport {\n LinkButton,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n EmptyStateLayout,\n Dialog,\n} from '@strapi/design-system';\nimport { Eye as Show, ArrowClockwise as Reload, Trash } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useRBAC,\n Page,\n useAPIErrorHandler,\n useNotification,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PERMISSIONS } from '../constants';\nimport {\n useGetInfoQuery,\n useRegenerateDocMutation,\n useDeleteVersionMutation,\n} from '../services/api';\nimport { getTrad } from '../utils';\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { formatAPIError } = useAPIErrorHandler();\n const { data, isLoading: isLoadingInfo, isError } = useGetInfoQuery();\n const [regenerate] = useRegenerateDocMutation();\n const [deleteVersion] = useDeleteVersionMutation();\n const [showConfirmDelete, setShowConfirmDelete] = React.useState<boolean>(false);\n const [versionToDelete, setVersionToDelete] = React.useState<string>();\n const { allowedActions, isLoading: isLoadingRBAC } = useRBAC(PERMISSIONS);\n\n const isLoading = isLoadingInfo || isLoadingRBAC;\n\n const colCount = 4;\n const rowCount = (data?.docVersions?.length || 0) + 1;\n\n const handleRegenerateDoc = (version: string) => {\n regenerate({ version })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.generate.success'),\n defaultMessage: 'Successfully generated documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n };\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleConfirmDelete = async () => {\n if (!versionToDelete) {\n // nothing to delete\n return;\n }\n\n await deleteVersion({ version: versionToDelete })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.delete.success'),\n defaultMessage: 'Successfully deleted documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleClickDelete = (version: string) => {\n setVersionToDelete(version);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const title = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n });\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>{title}</Page.Title>\n <Page.Main>\n <Layouts.Header\n title={title}\n subtitle={formatMessage({\n id: getTrad('pages.PluginPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <OpenDocLink\n disabled={!allowedActions.canRead || !data?.currentVersion || !data?.prefix}\n href={createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`)}\n startIcon={<Show />}\n >\n {formatMessage({\n id: getTrad('pages.PluginPage.Button.open'),\n defaultMessage: 'Open Documentation',\n })}\n </OpenDocLink>\n }\n />\n <Layouts.Content>\n {data?.docVersions.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.version'),\n defaultMessage: 'Version',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.generated'),\n defaultMessage: 'Last Generated',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data.docVersions\n .slice(0)\n .sort((a, b) => (a.generatedDate < b.generatedDate ? 1 : -1))\n .map((doc) => (\n <Tr key={doc.version}>\n <Td width=\"50%\">\n <Typography>{doc.version}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{doc.generatedDate}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n <IconButton\n tag=\"a\"\n disabled={!allowedActions.canRead}\n href={createDocumentationHref(`${data.prefix}/v${doc.version}`)}\n variant=\"ghost\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.show'),\n defaultMessage: 'Open {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Show />\n </IconButton>\n {allowedActions.canRegenerate ? (\n <IconButton\n onClick={() => handleRegenerateDoc(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.regenerate'),\n defaultMessage: 'Regenerate {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Reload />\n </IconButton>\n ) : null}\n {allowedActions.canUpdate && doc.version !== data.currentVersion ? (\n <IconButton\n onClick={() => handleClickDelete(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout content=\"\" icon={null} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={setShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\n/**\n * TODO: should this be fixed in the DS?\n */\nconst OpenDocLink = styled(LinkButton)`\n text-decoration: none;\n`;\n\nconst createDocumentationHref = (path: string) => {\n if (path.startsWith('http')) {\n return path;\n }\n\n if (path.startsWith('/')) {\n return `${window.strapi.backendURL}${path}`;\n }\n\n return `${window.strapi.backendURL}/${path}`;\n};\n\nexport { App };\n"],"names":["App","formatMessage","useIntl","toggleNotification","useNotification","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingInfo","isError","useGetInfoQuery","regenerate","useRegenerateDocMutation","deleteVersion","useDeleteVersionMutation","showConfirmDelete","setShowConfirmDelete","React","useState","versionToDelete","setVersionToDelete","allowedActions","isLoadingRBAC","useRBAC","PERMISSIONS","colCount","rowCount","docVersions","length","handleRegenerateDoc","version","unwrap","then","type","message","id","getTrad","defaultMessage","catch","err","handleConfirmDelete","handleClickDelete","title","_jsx","Page","Loading","Error","_jsxs","Layouts","Root","Title","Main","Header","subtitle","primaryAction","OpenDocLink","disabled","canRead","currentVersion","prefix","href","createDocumentationHref","startIcon","Show","Content","Table","Thead","Tr","Th","Typography","variant","textColor","Tbody","slice","sort","a","b","generatedDate","map","doc","Td","width","Flex","justifyContent","onClick","e","stopPropagation","IconButton","tag","target","rel","label","canRegenerate","Reload","canUpdate","Trash","EmptyStateLayout","content","icon","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","styled","LinkButton","path","startsWith","window","strapi","backendURL"],"mappings":"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"}
|
@@ -9,8 +9,8 @@ var icons = require('@strapi/icons');
|
|
9
9
|
var formik = require('formik');
|
10
10
|
var styledComponents = require('styled-components');
|
11
11
|
var yup = require('yup');
|
12
|
-
var index = require('./index-
|
13
|
-
var getTrad = require('./getTrad-
|
12
|
+
var index = require('./index-BSW-EfNW.js');
|
13
|
+
var getTrad = require('./getTrad-AvLNMP3V.js');
|
14
14
|
require('@strapi/admin/strapi-admin');
|
15
15
|
|
16
16
|
function _interopNamespaceDefault(e) {
|
@@ -243,4 +243,4 @@ const SettingsPage = ()=>{
|
|
243
243
|
};
|
244
244
|
|
245
245
|
exports.SettingsPage = SettingsPage;
|
246
|
-
//# sourceMappingURL=Settings-
|
246
|
+
//# sourceMappingURL=Settings-Cpj-uI9B.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Settings-BSdFg_W6.js","sources":["../../../admin/src/utils/baseQuery.ts","../../../admin/src/components/SettingsForm.tsx","../../../admin/src/pages/Settings.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type UnknownApiError, type ApiError } from '@strapi/strapi/admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n TextInput,\n Toggle,\n Typography,\n Field,\n} from '@strapi/design-system';\n// Strapi Icons\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { translatedErrors, useRBAC, Layouts } from '@strapi/strapi/admin';\nimport { Form, Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { DocumentInfos, SettingsInput } from '../types';\nimport { getTrad } from '../utils';\n\nconst schema = yup.object().shape({\n restrictedAccess: yup.boolean(),\n password: yup.string().when('restrictedAccess', (value, initSchema) => {\n return value\n ? initSchema\n .required(translatedErrors.required.id)\n .min(8)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n : initSchema;\n }),\n});\n\nconst FieldActionWrapper = styled(Field.Action)`\n svg {\n height: 1.6rem;\n width: 1.6rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\ntype SettingsFormProps = {\n data?: DocumentInfos;\n onSubmit: (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => Promise<void>;\n};\n\nexport const SettingsForm = ({ data, onSubmit }: SettingsFormProps) => {\n const { formatMessage } = useIntl();\n const [passwordShown, setPasswordShown] = React.useState(false);\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n return (\n <Formik\n enableReinitialize\n initialValues={{\n restrictedAccess: data?.documentationAccess.restrictedAccess || false,\n password: '',\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n >\n {({\n handleSubmit,\n values,\n handleChange,\n errors,\n setFieldTouched,\n setFieldValue,\n setFieldError,\n dirty,\n }) => {\n return (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n })}\n subtitle={formatMessage({\n id: getTrad('pages.SettingsPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={!dirty && allowedActions.canUpdate}\n >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"restrictedAccess\"\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n </Field.Label>\n <Toggle\n checked={values.restrictedAccess}\n onChange={() => {\n if (values.restrictedAccess === true) {\n setFieldValue('password', '', false);\n setFieldTouched('password', false, false);\n setFieldError('password', undefined);\n }\n\n setFieldValue('restrictedAccess', !values.restrictedAccess, false);\n }}\n onLabel=\"On\"\n offLabel=\"Off\"\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n {values.restrictedAccess && (\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"password\"\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: errors.password,\n })\n : undefined\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n </Field.Label>\n <TextInput\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Show /> : <Hide />}\n </FieldActionWrapper>\n }\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n )}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n );\n};\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useAPIErrorHandler, Page, useNotification } from '@strapi/strapi/admin';\nimport { FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { SettingsForm } from '../components/SettingsForm';\nimport { useGetInfoQuery, useUpdateSettingsMutation } from '../services/api';\nimport { getTrad, isBaseQueryError } from '../utils';\n\nimport type { SettingsInput } from '../types';\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { data, isError, isLoading, isFetching } = useGetInfoQuery();\n const [updateSettings] = useUpdateSettingsMutation();\n\n const onUpdateSettings = async (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => {\n return updateSettings({ body })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.update.success'),\n defaultMessage: 'Successfully updated settings',\n }),\n });\n })\n .catch((err) => {\n if (isBaseQueryError(err) && err.name === 'ValidationError') {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(err),\n });\n }\n });\n };\n\n if (isLoading || isFetching) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Main>\n <SettingsForm data={data} onSubmit={onUpdateSettings} />\n </Main>\n );\n};\n\nexport { SettingsPage };\n"],"names":["isBaseQueryError","error","name","undefined","schema","yup","object","shape","restrictedAccess","boolean","password","string","when","value","initSchema","required","translatedErrors","id","min","matches","FieldActionWrapper","styled","Field","Action","theme","colors","neutral600","SettingsForm","data","onSubmit","formatMessage","useIntl","passwordShown","setPasswordShown","React","useState","allowedActions","useRBAC","PERMISSIONS","_jsx","Formik","enableReinitialize","initialValues","documentationAccess","validationSchema","handleSubmit","values","handleChange","errors","setFieldTouched","setFieldValue","setFieldError","dirty","_jsxs","Form","noValidate","Layouts","Header","title","getTrad","defaultMessage","subtitle","primaryAction","Button","type","startIcon","Check","disabled","canUpdate","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","col","s","hint","Label","Toggle","checked","onChange","onLabel","offLabel","Hint","TextInput","placeholder","endAction","onClick","e","stopPropagation","prev","label","Show","Hide","Error","SettingsPage","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isError","isLoading","isFetching","useGetInfoQuery","updateSettings","useUpdateSettingsMutation","onUpdateSettings","body","formik","unwrap","then","message","catch","err","Page","Loading","Main"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,mBAAmB,CAACC,KAAAA,GAAAA;IACxB,OAAOA,KAAAA,CAAMC,IAAI,KAAKC,SAAAA;AACxB,CAAA;;ACiBA,MAAMC,MAASC,GAAAA,cAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AAChCC,IAAAA,gBAAAA,EAAkBH,eAAII,OAAO,EAAA;AAC7BC,IAAAA,QAAAA,EAAUL,eAAIM,MAAM,EAAA,CAAGC,IAAI,CAAC,kBAAA,EAAoB,CAACC,KAAOC,EAAAA,UAAAA,GAAAA;QACtD,OAAOD,KAAAA,GACHC,WACGC,QAAQ,CAACC,uBAAiBD,QAAQ,CAACE,EAAE,CAAA,CACrCC,GAAG,CAAC,GACJC,OAAO,CAAC,OAAS,EAAA,0CAAA,CAAA,CACjBA,OAAO,CAAC,SAAS,0CACjBA,CAAAA,CAAAA,OAAO,CAAC,IAAA,EAAM,uCACjBL,CAAAA,GAAAA,UAAAA;AACN,KAAA;AACF,CAAA,CAAA;AAEA,MAAMM,kBAAqBC,GAAAA,uBAAAA,CAAOC,kBAAMC,CAAAA,MAAM,CAAC;;;;;YAKnC,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;AAGrD,CAAC;AAOM,MAAMC,YAAe,GAAA,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAqB,GAAA;IAChE,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,aAAeC,EAAAA,gBAAAA,CAAiB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACzD,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,aAAQC,CAAAA,iBAAAA,CAAAA;AAEnC,IAAA,qBACEC,cAACC,CAAAA,aAAAA,EAAAA;QACCC,kBAAkB,EAAA,IAAA;QAClBC,aAAe,EAAA;YACblC,gBAAkBoB,EAAAA,IAAAA,EAAMe,oBAAoBnC,gBAAoB,IAAA,KAAA;YAChEE,QAAU,EAAA;AACZ,SAAA;QACAmB,QAAUA,EAAAA,QAAAA;QACVe,gBAAkBxC,EAAAA,MAAAA;AAEjB,QAAA,QAAA,EAAA,CAAC,EACAyC,YAAY,EACZC,MAAM,EACNC,YAAY,EACZC,MAAM,EACNC,eAAe,EACfC,aAAa,EACbC,aAAa,EACbC,KAAK,EACN,GAAA;AACC,YAAA,qBACEC,eAACC,CAAAA,WAAAA,EAAAA;gBAAKC,UAAU,EAAA,IAAA;gBAAC1B,QAAUgB,EAAAA,YAAAA;;AACzB,kCAAAN,cAAA,CAACiB,cAAQC,MAAM,EAAA;AACbC,wBAAAA,KAAAA,EAAO5B,aAAc,CAAA;AACnBb,4BAAAA,EAAAA,EAAI0C,eAAQ,CAAA,aAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;AACAC,wBAAAA,QAAAA,EAAU/B,aAAc,CAAA;AACtBb,4BAAAA,EAAAA,EAAI0C,eAAQ,CAAA,uCAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;AACAE,wBAAAA,aAAAA,gBACEvB,cAACwB,CAAAA,mBAAAA,EAAAA;4BACCC,IAAK,EAAA,QAAA;AACLC,4BAAAA,SAAAA,gBAAW1B,cAAC2B,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;4BACZC,QAAU,EAAA,CAACf,KAAShB,IAAAA,cAAAA,CAAegC,SAAS;sCAE3CtC,aAAc,CAAA;AACbb,gCAAAA,EAAAA,EAAI0C,eAAQ,CAAA,gCAAA,CAAA;gCACZC,cAAgB,EAAA;AAClB,6BAAA;;;AAIN,kCAAArB,cAAA,CAACiB,cAAQa,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,gBAAAA,EAAAA;4BACCC,UAAW,EAAA,UAAA;4BACXC,SAAS,EAAA,IAAA;4BACTC,MAAO,EAAA,cAAA;4BACPC,UAAY,EAAA,CAAA;4BACZC,aAAe,EAAA,CAAA;4BACfC,WAAa,EAAA,CAAA;4BACbC,YAAc,EAAA,CAAA;AAEd,4BAAA,QAAA,gBAAAxB,eAACyB,CAAAA,iBAAAA,EAAAA;gCAAKC,SAAU,EAAA,QAAA;gCAASC,UAAW,EAAA,SAAA;gCAAUC,GAAK,EAAA,CAAA;;kDACjD1C,cAAC2C,CAAAA,uBAAAA,EAAAA;wCAAWC,OAAQ,EAAA,OAAA;wCAAQC,GAAI,EAAA,IAAA;kDAC7BtD,aAAc,CAAA;4CACbb,EAAI,EAAA,iBAAA;4CACJ2C,cAAgB,EAAA;AAClB,yCAAA;;AAEF,kDAAAP,eAAA,CAACgC,kBAAKC,IAAI,EAAA;wCAACL,GAAK,EAAA,CAAA;;AACd,0DAAA1C,cAAA,CAAC8C,kBAAKE,IAAI,EAAA;gDAACC,GAAK,EAAA,CAAA;gDAAGC,CAAG,EAAA,EAAA;gDAAIV,SAAU,EAAA,QAAA;gDAASC,UAAW,EAAA,SAAA;wEACtD3B,eAAA,CAAC/B,mBAAMgE,IAAI,EAAA;oDACTpF,IAAK,EAAA,kBAAA;AACLwF,oDAAAA,IAAAA,EAAM5D,aAAc,CAAA;AAClBb,wDAAAA,EAAAA,EAAI0C,eAAQ,CAAA,gCAAA,CAAA;wDACZC,cAAgB,EAAA;AAClB,qDAAA,CAAA;;AAEA,sEAAArB,cAAA,CAACjB,mBAAMqE,KAAK,EAAA;sEACT7D,aAAc,CAAA;AACbb,gEAAAA,EAAAA,EAAI0C,eAAQ,CAAA,iCAAA,CAAA;gEACZC,cAAgB,EAAA;AAClB,6DAAA;;sEAEFrB,cAACqD,CAAAA,mBAAAA,EAAAA;AACCC,4DAAAA,OAAAA,EAAS/C,OAAOtC,gBAAgB;4DAChCsF,QAAU,EAAA,IAAA;gEACR,IAAIhD,MAAAA,CAAOtC,gBAAgB,KAAK,IAAM,EAAA;AACpC0C,oEAAAA,aAAAA,CAAc,YAAY,EAAI,EAAA,KAAA,CAAA;AAC9BD,oEAAAA,eAAAA,CAAgB,YAAY,KAAO,EAAA,KAAA,CAAA;AACnCE,oEAAAA,aAAAA,CAAc,UAAYhD,EAAAA,SAAAA,CAAAA;AAC5B;AAEA+C,gEAAAA,aAAAA,CAAc,kBAAoB,EAAA,CAACJ,MAAOtC,CAAAA,gBAAgB,EAAE,KAAA,CAAA;AAC9D,6DAAA;4DACAuF,OAAQ,EAAA,IAAA;4DACRC,QAAS,EAAA;;AAEX,sEAAAzD,cAAA,CAACjB,mBAAM2E,IAAI,EAAA,EAAA;;;;AAGdnD,4CAAAA,MAAAA,CAAOtC,gBAAgB,kBACtB+B,cAAC8C,CAAAA,iBAAAA,CAAKE,IAAI,EAAA;gDAACC,GAAK,EAAA,CAAA;gDAAGC,CAAG,EAAA,EAAA;gDAAIV,SAAU,EAAA,QAAA;gDAASC,UAAW,EAAA,SAAA;wEACtD3B,eAAA,CAAC/B,mBAAMgE,IAAI,EAAA;oDACTpF,IAAK,EAAA,UAAA;oDACLD,KACE+C,EAAAA,MAAAA,CAAOtC,QAAQ,GACXoB,aAAc,CAAA;AACZb,wDAAAA,EAAAA,EAAI+B,OAAOtC,QAAQ;AACnBkD,wDAAAA,cAAAA,EAAgBZ,OAAOtC;qDAEzBP,CAAAA,GAAAA,SAAAA;;AAGN,sEAAAoC,cAAA,CAACjB,mBAAMqE,KAAK,EAAA;sEACT7D,aAAc,CAAA;gEACbb,EAAI,EAAA,iBAAA;gEACJ2C,cAAgB,EAAA;AAClB,6DAAA;;sEAEFrB,cAAC2D,CAAAA,sBAAAA,EAAAA;4DACCC,WAAY,EAAA,YAAA;AACZnC,4DAAAA,IAAAA,EAAMhC,gBAAgB,MAAS,GAAA,UAAA;AAC/BnB,4DAAAA,KAAAA,EAAOiC,OAAOpC,QAAQ;4DACtBoF,QAAU/C,EAAAA,YAAAA;AACVqD,4DAAAA,SAAAA,gBACE7D,cAACnB,CAAAA,kBAAAA,EAAAA;AACCiF,gEAAAA,OAAAA,EAAS,CAACC,CAAAA,GAAAA;AACRA,oEAAAA,CAAAA,CAAEC,eAAe,EAAA;oEACjBtE,gBAAiB,CAAA,CAACuE,OAAS,CAACA,IAAAA,CAAAA;AAC9B,iEAAA;AACAC,gEAAAA,KAAAA,EAAO3E,cACLE,aACI,GAAA;oEACEf,EAAI,EAAA,kCAAA;oEACJ2C,cAAgB,EAAA;iEAElB,GAAA;oEACE3C,EAAI,EAAA,kCAAA;oEACJ2C,cAAgB,EAAA;AAClB,iEAAA,CAAA;0EAGL5B,aAAgB,iBAAAO,cAAA,CAACmE,+BAAUnE,cAACoE,CAAAA,gBAAAA,EAAAA,EAAAA;;;AAInC,sEAAApE,cAAA,CAACjB,mBAAMsF,KAAK,EAAA,EAAA;;;;;;;;;;;;AAUhC;;AAGN,CAAE;;ACrMF,MAAMC,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,qBAAAA,EAAAA;IAC/B,MAAM,EAAEjF,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EACJiF,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,wBAAAA,EAAAA;IACJ,MAAM,EAAExF,IAAI,EAAEyF,OAAO,EAAEC,SAAS,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;IACjD,MAAM,CAACC,eAAe,GAAGC,iCAAAA,EAAAA;IAEzB,MAAMC,gBAAAA,GAAmB,OAAOC,IAAqBC,EAAAA,MAAAA,GAAAA;AACnD,QAAA,OAAOJ,cAAe,CAAA;AAAEG,YAAAA;SACrBE,CAAAA,CAAAA,MAAM,EACNC,CAAAA,IAAI,CAAC,IAAA;YACJjB,kBAAmB,CAAA;gBACjB9C,IAAM,EAAA,SAAA;AACNgE,gBAAAA,OAAAA,EAASlG,aAAc,CAAA;AACrBb,oBAAAA,EAAAA,EAAI0C,eAAQ,CAAA,6BAAA,CAAA;oBACZC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;SAEDqE,CAAAA,CAAAA,KAAK,CAAC,CAACC,GAAAA,GAAAA;AACN,YAAA,IAAIlI,gBAAiBkI,CAAAA,GAAAA,CAAAA,IAAQA,GAAIhI,CAAAA,IAAI,KAAK,iBAAmB,EAAA;gBAC3D4G,kBAAmB,CAAA;oBACjB9C,IAAM,EAAA,QAAA;AACNgE,oBAAAA,OAAAA,EAASf,cAAeiB,CAAAA,GAAAA;AAC1B,iBAAA,CAAA;AACF;AACF,SAAA,CAAA;AACJ,KAAA;AAEA,IAAA,IAAIZ,aAAaC,UAAY,EAAA;QAC3B,qBAAOhF,cAAA,CAAC4F,WAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,IAAIf,OAAS,EAAA;QACX,qBAAO9E,cAAA,CAAC4F,WAAKvB,KAAK,EAAA,EAAA,CAAA;AACpB;AAEA,IAAA,qBACErE,cAAC8F,CAAAA,iBAAAA,EAAAA;AACC,QAAA,QAAA,gBAAA9F,cAACZ,CAAAA,YAAAA,EAAAA;YAAaC,IAAMA,EAAAA,IAAAA;YAAMC,QAAU8F,EAAAA;;;AAG1C;;;;"}
|
1
|
+
{"version":3,"file":"Settings-Cpj-uI9B.js","sources":["../../../admin/src/utils/baseQuery.ts","../../../admin/src/components/SettingsForm.tsx","../../../admin/src/pages/Settings.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type UnknownApiError, type ApiError } from '@strapi/strapi/admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n TextInput,\n Toggle,\n Typography,\n Field,\n} from '@strapi/design-system';\n// Strapi Icons\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { translatedErrors, useRBAC, Layouts } from '@strapi/strapi/admin';\nimport { Form, Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { DocumentInfos, SettingsInput } from '../types';\nimport { getTrad } from '../utils';\n\nconst schema = yup.object().shape({\n restrictedAccess: yup.boolean(),\n password: yup.string().when('restrictedAccess', (value, initSchema) => {\n return value\n ? initSchema\n .required(translatedErrors.required.id)\n .min(8)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n : initSchema;\n }),\n});\n\nconst FieldActionWrapper = styled(Field.Action)`\n svg {\n height: 1.6rem;\n width: 1.6rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\ntype SettingsFormProps = {\n data?: DocumentInfos;\n onSubmit: (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => Promise<void>;\n};\n\nexport const SettingsForm = ({ data, onSubmit }: SettingsFormProps) => {\n const { formatMessage } = useIntl();\n const [passwordShown, setPasswordShown] = React.useState(false);\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n return (\n <Formik\n enableReinitialize\n initialValues={{\n restrictedAccess: data?.documentationAccess.restrictedAccess || false,\n password: '',\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n >\n {({\n handleSubmit,\n values,\n handleChange,\n errors,\n setFieldTouched,\n setFieldValue,\n setFieldError,\n dirty,\n }) => {\n return (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n })}\n subtitle={formatMessage({\n id: getTrad('pages.SettingsPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={!dirty && allowedActions.canUpdate}\n >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"restrictedAccess\"\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n </Field.Label>\n <Toggle\n checked={values.restrictedAccess}\n onChange={() => {\n if (values.restrictedAccess === true) {\n setFieldValue('password', '', false);\n setFieldTouched('password', false, false);\n setFieldError('password', undefined);\n }\n\n setFieldValue('restrictedAccess', !values.restrictedAccess, false);\n }}\n onLabel=\"On\"\n offLabel=\"Off\"\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n {values.restrictedAccess && (\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"password\"\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: errors.password,\n })\n : undefined\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n </Field.Label>\n <TextInput\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Show /> : <Hide />}\n </FieldActionWrapper>\n }\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n )}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n );\n};\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useAPIErrorHandler, Page, useNotification } from '@strapi/strapi/admin';\nimport { FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { SettingsForm } from '../components/SettingsForm';\nimport { useGetInfoQuery, useUpdateSettingsMutation } from '../services/api';\nimport { getTrad, isBaseQueryError } from '../utils';\n\nimport type { SettingsInput } from '../types';\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { data, isError, isLoading, isFetching } = useGetInfoQuery();\n const [updateSettings] = useUpdateSettingsMutation();\n\n const onUpdateSettings = async (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => {\n return updateSettings({ body })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.update.success'),\n defaultMessage: 'Successfully updated settings',\n }),\n });\n })\n .catch((err) => {\n if (isBaseQueryError(err) && err.name === 'ValidationError') {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(err),\n });\n }\n });\n };\n\n if (isLoading || isFetching) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Main>\n <SettingsForm data={data} onSubmit={onUpdateSettings} />\n </Main>\n );\n};\n\nexport { SettingsPage };\n"],"names":["isBaseQueryError","error","name","undefined","schema","yup","object","shape","restrictedAccess","boolean","password","string","when","value","initSchema","required","translatedErrors","id","min","matches","FieldActionWrapper","styled","Field","Action","theme","colors","neutral600","SettingsForm","data","onSubmit","formatMessage","useIntl","passwordShown","setPasswordShown","React","useState","allowedActions","useRBAC","PERMISSIONS","_jsx","Formik","enableReinitialize","initialValues","documentationAccess","validationSchema","handleSubmit","values","handleChange","errors","setFieldTouched","setFieldValue","setFieldError","dirty","_jsxs","Form","noValidate","Layouts","Header","title","getTrad","defaultMessage","subtitle","primaryAction","Button","type","startIcon","Check","disabled","canUpdate","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","col","s","hint","Label","Toggle","checked","onChange","onLabel","offLabel","Hint","TextInput","placeholder","endAction","onClick","e","stopPropagation","prev","label","Show","Hide","Error","SettingsPage","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isError","isLoading","isFetching","useGetInfoQuery","updateSettings","useUpdateSettingsMutation","onUpdateSettings","body","formik","unwrap","then","message","catch","err","Page","Loading","Main"],"mappings":"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"}
|
@@ -7,8 +7,8 @@ import { Check, Eye, EyeStriked } from '@strapi/icons';
|
|
7
7
|
import { Formik, Form } from 'formik';
|
8
8
|
import { styled } from 'styled-components';
|
9
9
|
import * as yup from 'yup';
|
10
|
-
import { P as PERMISSIONS } from './index-
|
11
|
-
import { g as getTrad, u as useGetInfoQuery, c as useUpdateSettingsMutation } from './getTrad-
|
10
|
+
import { P as PERMISSIONS } from './index-BHy3RKs2.mjs';
|
11
|
+
import { g as getTrad, u as useGetInfoQuery, c as useUpdateSettingsMutation } from './getTrad-D9juLfq6.mjs';
|
12
12
|
import '@strapi/admin/strapi-admin';
|
13
13
|
|
14
14
|
const isBaseQueryError = (error)=>{
|
@@ -221,4 +221,4 @@ const SettingsPage = ()=>{
|
|
221
221
|
};
|
222
222
|
|
223
223
|
export { SettingsPage };
|
224
|
-
//# sourceMappingURL=Settings-
|
224
|
+
//# sourceMappingURL=Settings-DyLMOJEx.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Settings-BVMaCS19.mjs","sources":["../../../admin/src/utils/baseQuery.ts","../../../admin/src/components/SettingsForm.tsx","../../../admin/src/pages/Settings.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type UnknownApiError, type ApiError } from '@strapi/strapi/admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n TextInput,\n Toggle,\n Typography,\n Field,\n} from '@strapi/design-system';\n// Strapi Icons\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { translatedErrors, useRBAC, Layouts } from '@strapi/strapi/admin';\nimport { Form, Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { DocumentInfos, SettingsInput } from '../types';\nimport { getTrad } from '../utils';\n\nconst schema = yup.object().shape({\n restrictedAccess: yup.boolean(),\n password: yup.string().when('restrictedAccess', (value, initSchema) => {\n return value\n ? initSchema\n .required(translatedErrors.required.id)\n .min(8)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n : initSchema;\n }),\n});\n\nconst FieldActionWrapper = styled(Field.Action)`\n svg {\n height: 1.6rem;\n width: 1.6rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\ntype SettingsFormProps = {\n data?: DocumentInfos;\n onSubmit: (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => Promise<void>;\n};\n\nexport const SettingsForm = ({ data, onSubmit }: SettingsFormProps) => {\n const { formatMessage } = useIntl();\n const [passwordShown, setPasswordShown] = React.useState(false);\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n return (\n <Formik\n enableReinitialize\n initialValues={{\n restrictedAccess: data?.documentationAccess.restrictedAccess || false,\n password: '',\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n >\n {({\n handleSubmit,\n values,\n handleChange,\n errors,\n setFieldTouched,\n setFieldValue,\n setFieldError,\n dirty,\n }) => {\n return (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n })}\n subtitle={formatMessage({\n id: getTrad('pages.SettingsPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={!dirty && allowedActions.canUpdate}\n >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"restrictedAccess\"\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n </Field.Label>\n <Toggle\n checked={values.restrictedAccess}\n onChange={() => {\n if (values.restrictedAccess === true) {\n setFieldValue('password', '', false);\n setFieldTouched('password', false, false);\n setFieldError('password', undefined);\n }\n\n setFieldValue('restrictedAccess', !values.restrictedAccess, false);\n }}\n onLabel=\"On\"\n offLabel=\"Off\"\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n {values.restrictedAccess && (\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"password\"\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: errors.password,\n })\n : undefined\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n </Field.Label>\n <TextInput\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Show /> : <Hide />}\n </FieldActionWrapper>\n }\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n )}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n );\n};\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useAPIErrorHandler, Page, useNotification } from '@strapi/strapi/admin';\nimport { FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { SettingsForm } from '../components/SettingsForm';\nimport { useGetInfoQuery, useUpdateSettingsMutation } from '../services/api';\nimport { getTrad, isBaseQueryError } from '../utils';\n\nimport type { SettingsInput } from '../types';\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { data, isError, isLoading, isFetching } = useGetInfoQuery();\n const [updateSettings] = useUpdateSettingsMutation();\n\n const onUpdateSettings = async (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => {\n return updateSettings({ body })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.update.success'),\n defaultMessage: 'Successfully updated settings',\n }),\n });\n })\n .catch((err) => {\n if (isBaseQueryError(err) && err.name === 'ValidationError') {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(err),\n });\n }\n });\n };\n\n if (isLoading || isFetching) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Main>\n <SettingsForm data={data} onSubmit={onUpdateSettings} />\n </Main>\n );\n};\n\nexport { SettingsPage };\n"],"names":["isBaseQueryError","error","name","undefined","schema","yup","object","shape","restrictedAccess","boolean","password","string","when","value","initSchema","required","translatedErrors","id","min","matches","FieldActionWrapper","styled","Field","Action","theme","colors","neutral600","SettingsForm","data","onSubmit","formatMessage","useIntl","passwordShown","setPasswordShown","React","useState","allowedActions","useRBAC","PERMISSIONS","_jsx","Formik","enableReinitialize","initialValues","documentationAccess","validationSchema","handleSubmit","values","handleChange","errors","setFieldTouched","setFieldValue","setFieldError","dirty","_jsxs","Form","noValidate","Layouts","Header","title","getTrad","defaultMessage","subtitle","primaryAction","Button","type","startIcon","Check","disabled","canUpdate","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","col","s","hint","Label","Toggle","checked","onChange","onLabel","offLabel","Hint","TextInput","placeholder","endAction","onClick","e","stopPropagation","prev","label","Show","Hide","Error","SettingsPage","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isError","isLoading","isFetching","useGetInfoQuery","updateSettings","useUpdateSettingsMutation","onUpdateSettings","body","formik","unwrap","then","message","catch","err","Page","Loading","Main"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Settings-DyLMOJEx.mjs","sources":["../../../admin/src/utils/baseQuery.ts","../../../admin/src/components/SettingsForm.tsx","../../../admin/src/pages/Settings.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type UnknownApiError, type ApiError } from '@strapi/strapi/admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n TextInput,\n Toggle,\n Typography,\n Field,\n} from '@strapi/design-system';\n// Strapi Icons\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { translatedErrors, useRBAC, Layouts } from '@strapi/strapi/admin';\nimport { Form, Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { DocumentInfos, SettingsInput } from '../types';\nimport { getTrad } from '../utils';\n\nconst schema = yup.object().shape({\n restrictedAccess: yup.boolean(),\n password: yup.string().when('restrictedAccess', (value, initSchema) => {\n return value\n ? initSchema\n .required(translatedErrors.required.id)\n .min(8)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n : initSchema;\n }),\n});\n\nconst FieldActionWrapper = styled(Field.Action)`\n svg {\n height: 1.6rem;\n width: 1.6rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\ntype SettingsFormProps = {\n data?: DocumentInfos;\n onSubmit: (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => Promise<void>;\n};\n\nexport const SettingsForm = ({ data, onSubmit }: SettingsFormProps) => {\n const { formatMessage } = useIntl();\n const [passwordShown, setPasswordShown] = React.useState(false);\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n return (\n <Formik\n enableReinitialize\n initialValues={{\n restrictedAccess: data?.documentationAccess.restrictedAccess || false,\n password: '',\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n >\n {({\n handleSubmit,\n values,\n handleChange,\n errors,\n setFieldTouched,\n setFieldValue,\n setFieldError,\n dirty,\n }) => {\n return (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n })}\n subtitle={formatMessage({\n id: getTrad('pages.SettingsPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={!dirty && allowedActions.canUpdate}\n >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"restrictedAccess\"\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n </Field.Label>\n <Toggle\n checked={values.restrictedAccess}\n onChange={() => {\n if (values.restrictedAccess === true) {\n setFieldValue('password', '', false);\n setFieldTouched('password', false, false);\n setFieldError('password', undefined);\n }\n\n setFieldValue('restrictedAccess', !values.restrictedAccess, false);\n }}\n onLabel=\"On\"\n offLabel=\"Off\"\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n {values.restrictedAccess && (\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"password\"\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: errors.password,\n })\n : undefined\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n </Field.Label>\n <TextInput\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Show /> : <Hide />}\n </FieldActionWrapper>\n }\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n )}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n );\n};\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useAPIErrorHandler, Page, useNotification } from '@strapi/strapi/admin';\nimport { FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { SettingsForm } from '../components/SettingsForm';\nimport { useGetInfoQuery, useUpdateSettingsMutation } from '../services/api';\nimport { getTrad, isBaseQueryError } from '../utils';\n\nimport type { SettingsInput } from '../types';\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { data, isError, isLoading, isFetching } = useGetInfoQuery();\n const [updateSettings] = useUpdateSettingsMutation();\n\n const onUpdateSettings = async (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => {\n return updateSettings({ body })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.update.success'),\n defaultMessage: 'Successfully updated settings',\n }),\n });\n })\n .catch((err) => {\n if (isBaseQueryError(err) && err.name === 'ValidationError') {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(err),\n });\n }\n });\n };\n\n if (isLoading || isFetching) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Main>\n <SettingsForm data={data} onSubmit={onUpdateSettings} />\n </Main>\n );\n};\n\nexport { SettingsPage };\n"],"names":["isBaseQueryError","error","name","undefined","schema","yup","object","shape","restrictedAccess","boolean","password","string","when","value","initSchema","required","translatedErrors","id","min","matches","FieldActionWrapper","styled","Field","Action","theme","colors","neutral600","SettingsForm","data","onSubmit","formatMessage","useIntl","passwordShown","setPasswordShown","React","useState","allowedActions","useRBAC","PERMISSIONS","_jsx","Formik","enableReinitialize","initialValues","documentationAccess","validationSchema","handleSubmit","values","handleChange","errors","setFieldTouched","setFieldValue","setFieldError","dirty","_jsxs","Form","noValidate","Layouts","Header","title","getTrad","defaultMessage","subtitle","primaryAction","Button","type","startIcon","Check","disabled","canUpdate","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","col","s","hint","Label","Toggle","checked","onChange","onLabel","offLabel","Hint","TextInput","placeholder","endAction","onClick","e","stopPropagation","prev","label","Show","Hide","Error","SettingsPage","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isError","isLoading","isFetching","useGetInfoQuery","updateSettings","useUpdateSettingsMutation","onUpdateSettings","body","formik","unwrap","then","message","catch","err","Page","Loading","Main"],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
3
|
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
4
|
-
var index = require('./index-
|
4
|
+
var index = require('./index-BSW-EfNW.js');
|
5
5
|
|
6
6
|
const api = strapiAdmin.adminApi.enhanceEndpoints({
|
7
7
|
addTagTypes: [
|
@@ -56,4 +56,4 @@ exports.useDeleteVersionMutation = useDeleteVersionMutation;
|
|
56
56
|
exports.useGetInfoQuery = useGetInfoQuery;
|
57
57
|
exports.useRegenerateDocMutation = useRegenerateDocMutation;
|
58
58
|
exports.useUpdateSettingsMutation = useUpdateSettingsMutation;
|
59
|
-
//# sourceMappingURL=getTrad-
|
59
|
+
//# sourceMappingURL=getTrad-AvLNMP3V.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTrad-
|
1
|
+
{"version":3,"file":"getTrad-AvLNMP3V.js","sources":["../../../admin/src/services/api.ts","../../../admin/src/utils/getTrad.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nimport { DocumentInfos } from '../types';\n\ntype SettingsInput = {\n restrictedAccess: boolean;\n password: string;\n};\n\nconst api = adminApi\n .enhanceEndpoints({\n addTagTypes: ['DocumentInfo'],\n })\n .injectEndpoints({\n endpoints: (builder) => {\n return {\n getInfo: builder.query<DocumentInfos, void>({\n query: () => '/documentation/getInfos',\n providesTags: ['DocumentInfo'],\n }),\n\n deleteVersion: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/deleteDoc/${version}`,\n method: 'DELETE',\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n updateSettings: builder.mutation<void, { body: SettingsInput }>({\n query: ({ body }) => ({\n url: `/documentation/updateSettings`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n regenerateDoc: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/regenerateDoc`,\n method: 'POST',\n data: { version },\n }),\n }),\n };\n },\n });\n\nexport const {\n useGetInfoQuery,\n useDeleteVersionMutation,\n useUpdateSettingsMutation,\n useRegenerateDocMutation,\n} = api;\n","import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n"],"names":["api","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getInfo","query","providesTags","deleteVersion","mutation","version","url","method","invalidatesTags","updateSettings","body","data","regenerateDoc","useGetInfoQuery","useDeleteVersionMutation","useUpdateSettingsMutation","useRegenerateDocMutation","getTrad","id","pluginId"],"mappings":";;;;;AASA,MAAMA,GAAAA,GAAMC,oBACTC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAe;AAC/B,CAAA,CAAA,CACCC,eAAe,CAAC;AACfC,IAAAA,SAAAA,EAAW,CAACC,OAAAA,GAAAA;QACV,OAAO;YACLC,OAASD,EAAAA,OAAAA,CAAQE,KAAK,CAAsB;AAC1CA,gBAAAA,KAAAA,EAAO,IAAM,yBAAA;gBACbC,YAAc,EAAA;AAAC,oBAAA;AAAe;AAChC,aAAA,CAAA;YAEAC,aAAeJ,EAAAA,OAAAA,CAAQK,QAAQ,CAA4B;AACzDH,gBAAAA,KAAAA,EAAO,CAAC,EAAEI,OAAO,EAAE,IAAM;AACvBC,wBAAAA,GAAAA,EAAK,CAAC,yBAAyB,EAAED,OAAAA,CAAQ,CAAC;wBAC1CE,MAAQ,EAAA;qBACV,CAAA;gBACAC,eAAiB,EAAA;AAAC,oBAAA;AAAe;AACnC,aAAA,CAAA;YAEAC,cAAgBV,EAAAA,OAAAA,CAAQK,QAAQ,CAAgC;AAC9DH,gBAAAA,KAAAA,EAAO,CAAC,EAAES,IAAI,EAAE,IAAM;wBACpBJ,GAAK,EAAA,CAAC,6BAA6B,CAAC;wBACpCC,MAAQ,EAAA,KAAA;wBACRI,IAAMD,EAAAA;qBACR,CAAA;gBACAF,eAAiB,EAAA;AAAC,oBAAA;AAAe;AACnC,aAAA,CAAA;YAEAI,aAAeb,EAAAA,OAAAA,CAAQK,QAAQ,CAA4B;AACzDH,gBAAAA,KAAAA,EAAO,CAAC,EAAEI,OAAO,EAAE,IAAM;wBACvBC,GAAK,EAAA,CAAC,4BAA4B,CAAC;wBACnCC,MAAQ,EAAA,MAAA;wBACRI,IAAM,EAAA;AAAEN,4BAAAA;AAAQ;qBAClB;AACF,aAAA;AACF,SAAA;AACF;AACF,CAAA,CAAA;AAEK,MAAM,EACXQ,eAAe,EACfC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACzB,GAAGvB;;ACpDG,MAAMwB,OAAU,GAAA,CAACC,EAAe,GAAA,CAAC,EAAEC,cAAAA,CAAS,CAAC,EAAED,EAAG,CAAA;;;;;;;;"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { adminApi } from '@strapi/admin/strapi-admin';
|
2
|
-
import { p as pluginId } from './index-
|
2
|
+
import { p as pluginId } from './index-BHy3RKs2.mjs';
|
3
3
|
|
4
4
|
const api = adminApi.enhanceEndpoints({
|
5
5
|
addTagTypes: [
|
@@ -50,4 +50,4 @@ const { useGetInfoQuery, useDeleteVersionMutation, useUpdateSettingsMutation, us
|
|
50
50
|
const getTrad = (id)=>`${pluginId}.${id}`;
|
51
51
|
|
52
52
|
export { useRegenerateDocMutation as a, useDeleteVersionMutation as b, useUpdateSettingsMutation as c, getTrad as g, useGetInfoQuery as u };
|
53
|
-
//# sourceMappingURL=getTrad-
|
53
|
+
//# sourceMappingURL=getTrad-D9juLfq6.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTrad-
|
1
|
+
{"version":3,"file":"getTrad-D9juLfq6.mjs","sources":["../../../admin/src/services/api.ts","../../../admin/src/utils/getTrad.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nimport { DocumentInfos } from '../types';\n\ntype SettingsInput = {\n restrictedAccess: boolean;\n password: string;\n};\n\nconst api = adminApi\n .enhanceEndpoints({\n addTagTypes: ['DocumentInfo'],\n })\n .injectEndpoints({\n endpoints: (builder) => {\n return {\n getInfo: builder.query<DocumentInfos, void>({\n query: () => '/documentation/getInfos',\n providesTags: ['DocumentInfo'],\n }),\n\n deleteVersion: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/deleteDoc/${version}`,\n method: 'DELETE',\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n updateSettings: builder.mutation<void, { body: SettingsInput }>({\n query: ({ body }) => ({\n url: `/documentation/updateSettings`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n regenerateDoc: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/regenerateDoc`,\n method: 'POST',\n data: { version },\n }),\n }),\n };\n },\n });\n\nexport const {\n useGetInfoQuery,\n useDeleteVersionMutation,\n useUpdateSettingsMutation,\n useRegenerateDocMutation,\n} = api;\n","import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n"],"names":["api","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getInfo","query","providesTags","deleteVersion","mutation","version","url","method","invalidatesTags","updateSettings","body","data","regenerateDoc","useGetInfoQuery","useDeleteVersionMutation","useUpdateSettingsMutation","useRegenerateDocMutation","getTrad","id","pluginId"],"mappings":";;;AASA,MAAMA,GAAAA,GAAMC,QACTC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAe;AAC/B,CAAA,CAAA,CACCC,eAAe,CAAC;AACfC,IAAAA,SAAAA,EAAW,CAACC,OAAAA,GAAAA;QACV,OAAO;YACLC,OAASD,EAAAA,OAAAA,CAAQE,KAAK,CAAsB;AAC1CA,gBAAAA,KAAAA,EAAO,IAAM,yBAAA;gBACbC,YAAc,EAAA;AAAC,oBAAA;AAAe;AAChC,aAAA,CAAA;YAEAC,aAAeJ,EAAAA,OAAAA,CAAQK,QAAQ,CAA4B;AACzDH,gBAAAA,KAAAA,EAAO,CAAC,EAAEI,OAAO,EAAE,IAAM;AACvBC,wBAAAA,GAAAA,EAAK,CAAC,yBAAyB,EAAED,OAAAA,CAAQ,CAAC;wBAC1CE,MAAQ,EAAA;qBACV,CAAA;gBACAC,eAAiB,EAAA;AAAC,oBAAA;AAAe;AACnC,aAAA,CAAA;YAEAC,cAAgBV,EAAAA,OAAAA,CAAQK,QAAQ,CAAgC;AAC9DH,gBAAAA,KAAAA,EAAO,CAAC,EAAES,IAAI,EAAE,IAAM;wBACpBJ,GAAK,EAAA,CAAC,6BAA6B,CAAC;wBACpCC,MAAQ,EAAA,KAAA;wBACRI,IAAMD,EAAAA;qBACR,CAAA;gBACAF,eAAiB,EAAA;AAAC,oBAAA;AAAe;AACnC,aAAA,CAAA;YAEAI,aAAeb,EAAAA,OAAAA,CAAQK,QAAQ,CAA4B;AACzDH,gBAAAA,KAAAA,EAAO,CAAC,EAAEI,OAAO,EAAE,IAAM;wBACvBC,GAAK,EAAA,CAAC,4BAA4B,CAAC;wBACnCC,MAAQ,EAAA,MAAA;wBACRI,IAAM,EAAA;AAAEN,4BAAAA;AAAQ;qBAClB;AACF,aAAA;AACF,SAAA;AACF;AACF,CAAA,CAAA;AAEK,MAAM,EACXQ,eAAe,EACfC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACzB,GAAGvB;;ACpDG,MAAMwB,OAAU,GAAA,CAACC,EAAe,GAAA,CAAC,EAAEC,QAAAA,CAAS,CAAC,EAAED,EAAG,CAAA;;;;"}
|
@@ -74,7 +74,7 @@ function __variableDynamicImportRuntime2__(path) {
|
|
74
74
|
case './translations/sv.json': return import('./sv-DK5DOsrV.mjs');
|
75
75
|
case './translations/th.json': return import('./th-DNiRgKQH.mjs');
|
76
76
|
case './translations/tr.json': return import('./tr-CWX4cUiB.mjs');
|
77
|
-
case './translations/uk.json': return import('./uk-
|
77
|
+
case './translations/uk.json': return import('./uk-CWOtQQic.mjs');
|
78
78
|
case './translations/vi.json': return import('./vi-geadDLtq.mjs');
|
79
79
|
case './translations/zh-Hans.json': return import('./zh-Hans-fcRf-TLx.mjs');
|
80
80
|
case './translations/zh.json': return import('./zh-E4LX--2j.mjs');
|
@@ -97,7 +97,7 @@ var index = {
|
|
97
97
|
},
|
98
98
|
permissions: PERMISSIONS.main,
|
99
99
|
Component: async ()=>{
|
100
|
-
const { App } = await import('./App-
|
100
|
+
const { App } = await import('./App-D6yQIQar.mjs');
|
101
101
|
return App;
|
102
102
|
},
|
103
103
|
position: 9
|
@@ -116,7 +116,7 @@ var index = {
|
|
116
116
|
id: 'documentation',
|
117
117
|
to: pluginId,
|
118
118
|
Component: async ()=>{
|
119
|
-
const { SettingsPage } = await import('./Settings-
|
119
|
+
const { SettingsPage } = await import('./Settings-DyLMOJEx.mjs');
|
120
120
|
return SettingsPage;
|
121
121
|
},
|
122
122
|
permissions: PERMISSIONS.main
|
@@ -141,4 +141,4 @@ var index = {
|
|
141
141
|
};
|
142
142
|
|
143
143
|
export { PERMISSIONS as P, index as i, pluginId as p };
|
144
|
-
//# sourceMappingURL=index-
|
144
|
+
//# sourceMappingURL=index-BHy3RKs2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index-
|
1
|
+
{"version":3,"file":"index-BHy3RKs2.mjs","sources":["../../../admin/src/constants.ts","../../../admin/src/pluginId.ts","../../../admin/src/utils/prefixPluginTranslations.ts","../../../admin/src/index.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n { action: 'plugin::documentation.settings.update', subject: null },\n ],\n open: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n ],\n regenerate: [{ action: 'plugin::documentation.settings.regenerate', subject: null }],\n update: [{ action: 'plugin::documentation.settings.update', subject: null }],\n};\n","export const pluginId = 'documentation';\n","const prefixPluginTranslations = (trad: Record<string, string>, pluginId?: string) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce(\n (acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n },\n {} as Record<string, string>\n );\n};\n\nexport { prefixPluginTranslations };\n","import { Information } from '@strapi/icons';\n\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Information,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n permissions: PERMISSIONS.main,\n Component: async () => {\n const { App } = await import('./pages/App');\n return App;\n },\n position: 9,\n });\n\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: any) {\n app.addSettingsLink('global', {\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n id: 'documentation',\n to: pluginId,\n Component: async () => {\n const { SettingsPage } = await import('./pages/Settings');\n return SettingsPage;\n },\n permissions: PERMISSIONS.main,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["PERMISSIONS","main","action","subject","open","regenerate","update","pluginId","prefixPluginTranslations","trad","Object","keys","reduce","acc","current","register","app","addMenuLink","to","icon","Information","intlLabel","id","defaultMessage","permissions","Component","App","position","registerPlugin","name","bootstrap","addSettingsLink","SettingsPage","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","catch","resolve"],"mappings":"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"}
|
@@ -76,7 +76,7 @@ function __variableDynamicImportRuntime2__(path) {
|
|
76
76
|
case './translations/sv.json': return Promise.resolve().then(function () { return require('./sv-Xg5gbVO9.js'); });
|
77
77
|
case './translations/th.json': return Promise.resolve().then(function () { return require('./th-Pci1U3n6.js'); });
|
78
78
|
case './translations/tr.json': return Promise.resolve().then(function () { return require('./tr-CBlxk5Of.js'); });
|
79
|
-
case './translations/uk.json': return Promise.resolve().then(function () { return require('./uk-
|
79
|
+
case './translations/uk.json': return Promise.resolve().then(function () { return require('./uk-BkF_x68T.js'); });
|
80
80
|
case './translations/vi.json': return Promise.resolve().then(function () { return require('./vi-CAG7iDHR.js'); });
|
81
81
|
case './translations/zh-Hans.json': return Promise.resolve().then(function () { return require('./zh-Hans-CtXQdJhw.js'); });
|
82
82
|
case './translations/zh.json': return Promise.resolve().then(function () { return require('./zh-rKHsKNA3.js'); });
|
@@ -99,7 +99,7 @@ var index = {
|
|
99
99
|
},
|
100
100
|
permissions: PERMISSIONS.main,
|
101
101
|
Component: async ()=>{
|
102
|
-
const { App } = await Promise.resolve().then(function () { return require('./App-
|
102
|
+
const { App } = await Promise.resolve().then(function () { return require('./App-DC2H8bJ5.js'); });
|
103
103
|
return App;
|
104
104
|
},
|
105
105
|
position: 9
|
@@ -118,7 +118,7 @@ var index = {
|
|
118
118
|
id: 'documentation',
|
119
119
|
to: pluginId,
|
120
120
|
Component: async ()=>{
|
121
|
-
const { SettingsPage } = await Promise.resolve().then(function () { return require('./Settings-
|
121
|
+
const { SettingsPage } = await Promise.resolve().then(function () { return require('./Settings-Cpj-uI9B.js'); });
|
122
122
|
return SettingsPage;
|
123
123
|
},
|
124
124
|
permissions: PERMISSIONS.main
|
@@ -145,4 +145,4 @@ var index = {
|
|
145
145
|
exports.PERMISSIONS = PERMISSIONS;
|
146
146
|
exports.index = index;
|
147
147
|
exports.pluginId = pluginId;
|
148
|
-
//# sourceMappingURL=index-
|
148
|
+
//# sourceMappingURL=index-BSW-EfNW.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index-
|
1
|
+
{"version":3,"file":"index-BSW-EfNW.js","sources":["../../../admin/src/constants.ts","../../../admin/src/pluginId.ts","../../../admin/src/utils/prefixPluginTranslations.ts","../../../admin/src/index.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n { action: 'plugin::documentation.settings.update', subject: null },\n ],\n open: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n ],\n regenerate: [{ action: 'plugin::documentation.settings.regenerate', subject: null }],\n update: [{ action: 'plugin::documentation.settings.update', subject: null }],\n};\n","export const pluginId = 'documentation';\n","const prefixPluginTranslations = (trad: Record<string, string>, pluginId?: string) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce(\n (acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n },\n {} as Record<string, string>\n );\n};\n\nexport { prefixPluginTranslations };\n","import { Information } from '@strapi/icons';\n\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Information,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n permissions: PERMISSIONS.main,\n Component: async () => {\n const { App } = await import('./pages/App');\n return App;\n },\n position: 9,\n });\n\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: any) {\n app.addSettingsLink('global', {\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n id: 'documentation',\n to: pluginId,\n Component: async () => {\n const { SettingsPage } = await import('./pages/Settings');\n return SettingsPage;\n },\n permissions: PERMISSIONS.main,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["PERMISSIONS","main","action","subject","open","regenerate","update","pluginId","prefixPluginTranslations","trad","Object","keys","reduce","acc","current","register","app","addMenuLink","to","icon","Information","intlLabel","id","defaultMessage","permissions","Component","App","position","registerPlugin","name","bootstrap","addSettingsLink","SettingsPage","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","catch","resolve"],"mappings":"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"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
3
|
var uk = {
|
4
|
+
"coming-soon": "Цей вміст наразі будується і повернеться через кілька тижнів!",
|
4
5
|
"components.Row.open": "Відкрити",
|
5
6
|
"components.Row.regenerate": "Згенерувати",
|
6
7
|
"containers.HomePage.Block.title": "Версії",
|
@@ -21,8 +22,26 @@ var uk = {
|
|
21
22
|
"error.noVersion": "Необхідна версія",
|
22
23
|
"error.regenerateDoc": "Під час генерування документації сталася помилка",
|
23
24
|
"error.regenerateDoc.versionMissing": "Версія, яку ви намагаєтесь згенерувати не існує.",
|
24
|
-
"notification.
|
25
|
+
"notification.delete.success": "Документ видалено",
|
26
|
+
"notification.generate.success": "Документ згенеровано",
|
27
|
+
"notification.update.success": "Налаштування оновлено",
|
28
|
+
"pages.PluginPage.Button.open": "Відкрити документацію",
|
29
|
+
"pages.PluginPage.header.description": "Налаштувати плаґін документації",
|
30
|
+
"pages.PluginPage.table.generated": "Останнє створення",
|
31
|
+
"pages.PluginPage.table.icon.regenerate": "Перегенерувати {target}",
|
32
|
+
"pages.PluginPage.table.icon.show": "Відкрити {target}",
|
33
|
+
"pages.PluginPage.table.version": "Версія",
|
34
|
+
"pages.SettingsPage.header.description": "Налаштувати плаґін документації",
|
35
|
+
"pages.SettingsPage.header.save": "Зберегти",
|
36
|
+
"pages.SettingsPage.toggle.hint": "Зробити кінцеву точку документації приватною",
|
37
|
+
"pages.SettingsPage.toggle.label": "Обмежений доступ",
|
38
|
+
"plugin.description.long": "Створіть документ OpenAPI та візуалізуйте ваш API за допомогою SWAGGER UI.",
|
39
|
+
"plugin.description.short": "Створіть документ OpenAPI та візуалізуйте ваш API за допомогою SWAGGER UI.",
|
40
|
+
"plugin.name": "Документація",
|
41
|
+
"Input.error.contain.lowercase": "Пароль повинен містити принаймні одну малу літеру",
|
42
|
+
"Input.error.contain.number": "Пароль повинен містити принаймні одну цифру",
|
43
|
+
"Input.error.contain.uppercase": "Пароль повинен містити принаймні одну велику літеру"
|
25
44
|
};
|
26
45
|
|
27
46
|
exports.default = uk;
|
28
|
-
//# sourceMappingURL=uk-
|
47
|
+
//# sourceMappingURL=uk-BkF_x68T.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"uk-BkF_x68T.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
var uk = {
|
2
|
+
"coming-soon": "Цей вміст наразі будується і повернеться через кілька тижнів!",
|
2
3
|
"components.Row.open": "Відкрити",
|
3
4
|
"components.Row.regenerate": "Згенерувати",
|
4
5
|
"containers.HomePage.Block.title": "Версії",
|
@@ -19,8 +20,26 @@ var uk = {
|
|
19
20
|
"error.noVersion": "Необхідна версія",
|
20
21
|
"error.regenerateDoc": "Під час генерування документації сталася помилка",
|
21
22
|
"error.regenerateDoc.versionMissing": "Версія, яку ви намагаєтесь згенерувати не існує.",
|
22
|
-
"notification.
|
23
|
+
"notification.delete.success": "Документ видалено",
|
24
|
+
"notification.generate.success": "Документ згенеровано",
|
25
|
+
"notification.update.success": "Налаштування оновлено",
|
26
|
+
"pages.PluginPage.Button.open": "Відкрити документацію",
|
27
|
+
"pages.PluginPage.header.description": "Налаштувати плаґін документації",
|
28
|
+
"pages.PluginPage.table.generated": "Останнє створення",
|
29
|
+
"pages.PluginPage.table.icon.regenerate": "Перегенерувати {target}",
|
30
|
+
"pages.PluginPage.table.icon.show": "Відкрити {target}",
|
31
|
+
"pages.PluginPage.table.version": "Версія",
|
32
|
+
"pages.SettingsPage.header.description": "Налаштувати плаґін документації",
|
33
|
+
"pages.SettingsPage.header.save": "Зберегти",
|
34
|
+
"pages.SettingsPage.toggle.hint": "Зробити кінцеву точку документації приватною",
|
35
|
+
"pages.SettingsPage.toggle.label": "Обмежений доступ",
|
36
|
+
"plugin.description.long": "Створіть документ OpenAPI та візуалізуйте ваш API за допомогою SWAGGER UI.",
|
37
|
+
"plugin.description.short": "Створіть документ OpenAPI та візуалізуйте ваш API за допомогою SWAGGER UI.",
|
38
|
+
"plugin.name": "Документація",
|
39
|
+
"Input.error.contain.lowercase": "Пароль повинен містити принаймні одну малу літеру",
|
40
|
+
"Input.error.contain.number": "Пароль повинен містити принаймні одну цифру",
|
41
|
+
"Input.error.contain.uppercase": "Пароль повинен містити принаймні одну велику літеру"
|
23
42
|
};
|
24
43
|
|
25
44
|
export { uk as default };
|
26
|
-
//# sourceMappingURL=uk-
|
45
|
+
//# sourceMappingURL=uk-CWOtQQic.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"uk-CWOtQQic.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/admin/index.js
CHANGED
package/dist/admin/index.mjs
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@strapi/plugin-documentation",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.11.0",
|
4
4
|
"description": "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -59,10 +59,10 @@
|
|
59
59
|
},
|
60
60
|
"dependencies": {
|
61
61
|
"@reduxjs/toolkit": "1.9.7",
|
62
|
-
"@strapi/admin": "5.
|
63
|
-
"@strapi/design-system": "2.0.0-rc.
|
64
|
-
"@strapi/icons": "2.0.0-rc.
|
65
|
-
"@strapi/utils": "5.
|
62
|
+
"@strapi/admin": "5.11.0",
|
63
|
+
"@strapi/design-system": "2.0.0-rc.18",
|
64
|
+
"@strapi/icons": "2.0.0-rc.18",
|
65
|
+
"@strapi/utils": "5.11.0",
|
66
66
|
"bcryptjs": "2.4.3",
|
67
67
|
"cheerio": "^1.0.0",
|
68
68
|
"formik": "2.4.5",
|
@@ -78,16 +78,16 @@
|
|
78
78
|
},
|
79
79
|
"devDependencies": {
|
80
80
|
"@apidevtools/swagger-parser": "^10.1.0",
|
81
|
-
"@strapi/admin-test-utils": "5.
|
82
|
-
"@strapi/strapi": "5.
|
83
|
-
"@strapi/types": "5.
|
81
|
+
"@strapi/admin-test-utils": "5.11.0",
|
82
|
+
"@strapi/strapi": "5.11.0",
|
83
|
+
"@strapi/types": "5.11.0",
|
84
84
|
"@testing-library/react": "15.0.7",
|
85
85
|
"@testing-library/user-event": "14.5.2",
|
86
86
|
"@types/fs-extra": "11.0.4",
|
87
87
|
"@types/koa": "2.13.4",
|
88
88
|
"@types/koa-session": "6.4.1",
|
89
89
|
"@types/swagger-ui-dist": "3.30.4",
|
90
|
-
"koa": "2.15.
|
90
|
+
"koa": "2.15.4",
|
91
91
|
"koa-body": "6.0.1",
|
92
92
|
"koa-session": "6.4.0",
|
93
93
|
"msw": "1.3.0",
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"uk-BEfALDlr.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"uk-CBFYJeOD.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|