@strapi/admin 4.15.2 → 4.15.3-alpha.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/_chunks/{AuthenticatedApp-d1e28164.js → AuthenticatedApp-26a57d48.js} +21 -21
- package/dist/_chunks/{AuthenticatedApp-d1e28164.js.map → AuthenticatedApp-26a57d48.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-fd7e406d.mjs → AuthenticatedApp-332b40a8.mjs} +21 -21
- package/dist/_chunks/{AuthenticatedApp-fd7e406d.mjs.map → AuthenticatedApp-332b40a8.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-2a7f678a.mjs → HomePage-332764b2.mjs} +4 -4
- package/dist/_chunks/{HomePage-2a7f678a.mjs.map → HomePage-332764b2.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-616a2985.js → HomePage-74c5c19b.js} +4 -4
- package/dist/_chunks/{HomePage-616a2985.js.map → HomePage-74c5c19b.js.map} +1 -1
- package/dist/_chunks/{HomePage-2ac5c213.js → HomePage-8022e4f9.js} +4 -4
- package/dist/_chunks/{HomePage-2ac5c213.js.map → HomePage-8022e4f9.js.map} +1 -1
- package/dist/_chunks/{HomePage-ded37c60.mjs → HomePage-ebb9bd4d.mjs} +4 -4
- package/dist/_chunks/{HomePage-ded37c60.mjs.map → HomePage-ebb9bd4d.mjs.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-189010c1.js → InstalledPluginsPage-08915bd0.js} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-189010c1.js.map → InstalledPluginsPage-08915bd0.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-afa9edc3.mjs → InstalledPluginsPage-33ed21ac.mjs} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-afa9edc3.mjs.map → InstalledPluginsPage-33ed21ac.mjs.map} +1 -1
- package/dist/_chunks/{Login-02ddabf7.mjs → Login-4e7ab11a.mjs} +2 -2
- package/dist/_chunks/{Login-02ddabf7.mjs.map → Login-4e7ab11a.mjs.map} +1 -1
- package/dist/_chunks/{Login-28127829.js → Login-7c938e98.js} +2 -2
- package/dist/_chunks/{Login-28127829.js.map → Login-7c938e98.js.map} +1 -1
- package/dist/_chunks/{MarketplacePage-946134e6.js → MarketplacePage-3c080568.js} +3 -3
- package/dist/_chunks/{MarketplacePage-946134e6.js.map → MarketplacePage-3c080568.js.map} +1 -1
- package/dist/_chunks/{MarketplacePage-40f76f3d.mjs → MarketplacePage-b82389f1.mjs} +3 -3
- package/dist/_chunks/{MarketplacePage-40f76f3d.mjs.map → MarketplacePage-b82389f1.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-4c94e332.mjs → ProfilePage-2f0d41e0.mjs} +3 -3
- package/dist/_chunks/{ProfilePage-4c94e332.mjs.map → ProfilePage-2f0d41e0.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-6506e401.js → ProfilePage-9911a1aa.js} +3 -3
- package/dist/_chunks/{ProfilePage-6506e401.js.map → ProfilePage-9911a1aa.js.map} +1 -1
- package/dist/_chunks/{constants-c9fce26f.js → constants-2bd3e15b.js} +5 -5
- package/dist/_chunks/{constants-c9fce26f.js.map → constants-2bd3e15b.js.map} +1 -1
- package/dist/_chunks/{constants-952c50be.mjs → constants-6082c0ef.mjs} +3 -3
- package/dist/_chunks/{constants-952c50be.mjs.map → constants-6082c0ef.mjs.map} +1 -1
- package/dist/_chunks/{constants-c0280aed.mjs → constants-889d52fe.mjs} +2 -2
- package/dist/_chunks/{constants-c0280aed.mjs.map → constants-889d52fe.mjs.map} +1 -1
- package/dist/_chunks/{constants-42f4f7b3.js → constants-9d60a039.js} +6 -6
- package/dist/_chunks/{constants-42f4f7b3.js.map → constants-9d60a039.js.map} +1 -1
- package/dist/_chunks/{constants-cbadfd36.mjs → constants-b9efe215.mjs} +6 -6
- package/dist/_chunks/{constants-cbadfd36.mjs.map → constants-b9efe215.mjs.map} +1 -1
- package/dist/_chunks/{constants-cd1acf1b.mjs → constants-c5bbe308.mjs} +5 -5
- package/dist/_chunks/{constants-cd1acf1b.mjs.map → constants-c5bbe308.mjs.map} +1 -1
- package/dist/_chunks/{constants-82e97fee.js → constants-df81febb.js} +3 -3
- package/dist/_chunks/{constants-82e97fee.js.map → constants-df81febb.js.map} +1 -1
- package/dist/_chunks/{constants-733b0568.js → constants-efc88bf2.js} +2 -2
- package/dist/_chunks/{constants-733b0568.js.map → constants-efc88bf2.js.map} +1 -1
- package/dist/_chunks/{index-e2663a88.js → index-0134922e.js} +4 -4
- package/dist/_chunks/{index-e2663a88.js.map → index-0134922e.js.map} +1 -1
- package/dist/_chunks/{index-bad666f0.js → index-01a3932c.js} +3 -3
- package/dist/_chunks/{index-bad666f0.js.map → index-01a3932c.js.map} +1 -1
- package/dist/_chunks/{index-9f900c47.js → index-13a08117.js} +3 -3
- package/dist/_chunks/{index-9f900c47.js.map → index-13a08117.js.map} +1 -1
- package/dist/_chunks/{index-fe29b1fd.mjs → index-14462502.mjs} +4 -4
- package/dist/_chunks/{index-fe29b1fd.mjs.map → index-14462502.mjs.map} +1 -1
- package/dist/_chunks/{index-dace55d9.mjs → index-22fbd8cc.mjs} +3 -3
- package/dist/_chunks/{index-dace55d9.mjs.map → index-22fbd8cc.mjs.map} +1 -1
- package/dist/_chunks/{index-e8eff6c5.mjs → index-259a5ab3.mjs} +3 -3
- package/dist/_chunks/{index-e8eff6c5.mjs.map → index-259a5ab3.mjs.map} +1 -1
- package/dist/_chunks/{index-df42dfec.mjs → index-287b49b0.mjs} +5 -5
- package/dist/_chunks/{index-df42dfec.mjs.map → index-287b49b0.mjs.map} +1 -1
- package/dist/_chunks/{index-62264743.js → index-293f112c.js} +3 -3
- package/dist/_chunks/{index-62264743.js.map → index-293f112c.js.map} +1 -1
- package/dist/_chunks/{index-7f642760.js → index-2ca9ffb3.js} +20 -20
- package/dist/_chunks/{index-7f642760.js.map → index-2ca9ffb3.js.map} +1 -1
- package/dist/_chunks/{index-9eb160a3.js → index-2e47d9aa.js} +3 -3
- package/dist/_chunks/{index-9eb160a3.js.map → index-2e47d9aa.js.map} +1 -1
- package/dist/_chunks/{index-b4cc14ad.mjs → index-3d323e1b.mjs} +3 -3
- package/dist/_chunks/{index-b4cc14ad.mjs.map → index-3d323e1b.mjs.map} +1 -1
- package/dist/_chunks/{index-a3176d19.mjs → index-46245c2d.mjs} +5 -5
- package/dist/_chunks/{index-a3176d19.mjs.map → index-46245c2d.mjs.map} +1 -1
- package/dist/_chunks/{index-55f9b6b3.mjs → index-486f5166.mjs} +5 -5
- package/dist/_chunks/{index-55f9b6b3.mjs.map → index-486f5166.mjs.map} +1 -1
- package/dist/_chunks/{index-a8d13f01.mjs → index-49b41e57.mjs} +2 -2
- package/dist/_chunks/{index-a8d13f01.mjs.map → index-49b41e57.mjs.map} +1 -1
- package/dist/_chunks/{index-bfb5b3ab.js → index-4bdd41f2.js} +4 -4
- package/dist/_chunks/{index-bfb5b3ab.js.map → index-4bdd41f2.js.map} +1 -1
- package/dist/_chunks/{index-e2c5346d.js → index-4ff5f2a8.js} +5 -5
- package/dist/_chunks/{index-e2c5346d.js.map → index-4ff5f2a8.js.map} +1 -1
- package/dist/_chunks/{index-853bd239.mjs → index-5221021e.mjs} +3 -3
- package/dist/_chunks/{index-853bd239.mjs.map → index-5221021e.mjs.map} +1 -1
- package/dist/_chunks/{index-a8358156.js → index-54a7f1f4.js} +3 -3
- package/dist/_chunks/{index-a8358156.js.map → index-54a7f1f4.js.map} +1 -1
- package/dist/_chunks/{index-c4d3a07b.mjs → index-5502f0f9.mjs} +3 -3
- package/dist/_chunks/{index-c4d3a07b.mjs.map → index-5502f0f9.mjs.map} +1 -1
- package/dist/_chunks/{index-c7386be1.mjs → index-5af78a9d.mjs} +3 -3
- package/dist/_chunks/{index-c7386be1.mjs.map → index-5af78a9d.mjs.map} +1 -1
- package/dist/_chunks/{index-13a78498.js → index-5be49e36.js} +3 -3
- package/dist/_chunks/{index-13a78498.js.map → index-5be49e36.js.map} +1 -1
- package/dist/_chunks/{index-6931e33c.js → index-5bf8300a.js} +3 -3
- package/dist/_chunks/{index-6931e33c.js.map → index-5bf8300a.js.map} +1 -1
- package/dist/_chunks/{index-d81f74c4.mjs → index-663f37fb.mjs} +2 -2
- package/dist/_chunks/{index-d81f74c4.mjs.map → index-663f37fb.mjs.map} +1 -1
- package/dist/_chunks/{index-30933e3e.mjs → index-6999385d.mjs} +3 -3
- package/dist/_chunks/{index-30933e3e.mjs.map → index-6999385d.mjs.map} +1 -1
- package/dist/_chunks/{index-31227291.mjs → index-70ad05e1.mjs} +2 -2
- package/dist/_chunks/{index-31227291.mjs.map → index-70ad05e1.mjs.map} +1 -1
- package/dist/_chunks/{index-22993544.mjs → index-72195b26.mjs} +4 -4
- package/dist/_chunks/{index-22993544.mjs.map → index-72195b26.mjs.map} +1 -1
- package/dist/_chunks/{index-c3761887.js → index-73b1ca6d.js} +5 -5
- package/dist/_chunks/{index-c3761887.js.map → index-73b1ca6d.js.map} +1 -1
- package/dist/_chunks/{index-470a72bf.js → index-76459a60.js} +3 -3
- package/dist/_chunks/{index-470a72bf.js.map → index-76459a60.js.map} +1 -1
- package/dist/_chunks/{index-150ec200.js → index-77b91009.js} +3 -3
- package/dist/_chunks/{index-150ec200.js.map → index-77b91009.js.map} +1 -1
- package/dist/_chunks/{index-3b888524.js → index-84321b2e.js} +6 -6
- package/dist/_chunks/{index-3b888524.js.map → index-84321b2e.js.map} +1 -1
- package/dist/_chunks/{index-17acbe23.js → index-866d1aaf.js} +8 -8
- package/dist/_chunks/{index-17acbe23.js.map → index-866d1aaf.js.map} +1 -1
- package/dist/_chunks/{index-9f50c8b0.js → index-891738bc.js} +3 -3
- package/dist/_chunks/{index-9f50c8b0.js.map → index-891738bc.js.map} +1 -1
- package/dist/_chunks/{index-c0603138.js → index-89cb437c.js} +2 -2
- package/dist/_chunks/{index-c0603138.js.map → index-89cb437c.js.map} +1 -1
- package/dist/_chunks/{index-f9e95b10.js → index-901d8afc.js} +3 -3
- package/dist/_chunks/{index-f9e95b10.js.map → index-901d8afc.js.map} +1 -1
- package/dist/_chunks/{index-dcb2c919.js → index-9c56225f.js} +5 -5
- package/dist/_chunks/{index-dcb2c919.js.map → index-9c56225f.js.map} +1 -1
- package/dist/_chunks/{index-9c45bda7.mjs → index-9e3fc4fe.mjs} +6 -6
- package/dist/_chunks/{index-9c45bda7.mjs.map → index-9e3fc4fe.mjs.map} +1 -1
- package/dist/_chunks/{index-768b7de9.mjs → index-a16075f2.mjs} +8 -8
- package/dist/_chunks/{index-768b7de9.mjs.map → index-a16075f2.mjs.map} +1 -1
- package/dist/_chunks/{index-59e31a9f.mjs → index-a1c1b833.mjs} +3 -3
- package/dist/_chunks/{index-59e31a9f.mjs.map → index-a1c1b833.mjs.map} +1 -1
- package/dist/_chunks/{index-cdadc366.js → index-aaffa28c.js} +5 -5
- package/dist/_chunks/{index-cdadc366.js.map → index-aaffa28c.js.map} +1 -1
- package/dist/_chunks/{index-45ae7be1.mjs → index-abcea3d3.mjs} +4 -4
- package/dist/_chunks/{index-45ae7be1.mjs.map → index-abcea3d3.mjs.map} +1 -1
- package/dist/_chunks/{index-01dfec54.mjs → index-acdd9b71.mjs} +3 -3
- package/dist/_chunks/{index-01dfec54.mjs.map → index-acdd9b71.mjs.map} +1 -1
- package/dist/_chunks/{index-794eb0b6.js → index-adc85ed8.js} +4 -4
- package/dist/_chunks/{index-794eb0b6.js.map → index-adc85ed8.js.map} +1 -1
- package/dist/_chunks/{index-7e9cd960.js → index-af5e137f.js} +5 -5
- package/dist/_chunks/{index-7e9cd960.js.map → index-af5e137f.js.map} +1 -1
- package/dist/_chunks/{index-2f4b78ee.js → index-b11e88f3.js} +2 -2
- package/dist/_chunks/{index-2f4b78ee.js.map → index-b11e88f3.js.map} +1 -1
- package/dist/_chunks/{index-e7381e58.js → index-b47862fc.js} +5 -5
- package/dist/_chunks/{index-e7381e58.js.map → index-b47862fc.js.map} +1 -1
- package/dist/_chunks/{index-9f155b14.js → index-bea39602.js} +2 -2
- package/dist/_chunks/{index-9f155b14.js.map → index-bea39602.js.map} +1 -1
- package/dist/_chunks/{index-bf788868.mjs → index-c202e78f.mjs} +3 -3
- package/dist/_chunks/{index-bf788868.mjs.map → index-c202e78f.mjs.map} +1 -1
- package/dist/_chunks/{index-cc7bedec.mjs → index-c9f9b444.mjs} +4 -4
- package/dist/_chunks/{index-cc7bedec.mjs.map → index-c9f9b444.mjs.map} +1 -1
- package/dist/_chunks/{index-a7d28c42.mjs → index-caecca36.mjs} +3 -3
- package/dist/_chunks/{index-a7d28c42.mjs.map → index-caecca36.mjs.map} +1 -1
- package/dist/_chunks/{index-60a57d31.mjs → index-cd461a87.mjs} +4 -4
- package/dist/_chunks/{index-60a57d31.mjs.map → index-cd461a87.mjs.map} +1 -1
- package/dist/_chunks/{index-a163001f.js → index-cdfb1568.js} +4 -4
- package/dist/_chunks/{index-a163001f.js.map → index-cdfb1568.js.map} +1 -1
- package/dist/_chunks/{index-7739ddf5.js → index-cf87a6f0.js} +3 -3
- package/dist/_chunks/{index-7739ddf5.js.map → index-cf87a6f0.js.map} +1 -1
- package/dist/_chunks/{index-d93367d2.mjs → index-d33930a8.mjs} +20 -20
- package/dist/_chunks/{index-d93367d2.mjs.map → index-d33930a8.mjs.map} +1 -1
- package/dist/_chunks/{index-0ed0c104.mjs → index-d4473456.mjs} +4 -4
- package/dist/_chunks/{index-0ed0c104.mjs.map → index-d4473456.mjs.map} +1 -1
- package/dist/_chunks/{index-748f8264.js → index-d74efba3.js} +4 -4
- package/dist/_chunks/{index-748f8264.js.map → index-d74efba3.js.map} +1 -1
- package/dist/_chunks/{index-5df8a59e.mjs → index-d7bc095b.mjs} +4 -4
- package/dist/_chunks/{index-5df8a59e.mjs.map → index-d7bc095b.mjs.map} +1 -1
- package/dist/_chunks/{index-4a46c368.mjs → index-dbbda762.mjs} +5 -5
- package/dist/_chunks/{index-4a46c368.mjs.map → index-dbbda762.mjs.map} +1 -1
- package/dist/_chunks/{index-17fbff58.js → index-dfb03b19.js} +4 -4
- package/dist/_chunks/{index-17fbff58.js.map → index-dfb03b19.js.map} +1 -1
- package/dist/_chunks/{index-18155022.mjs → index-e10dd15d.mjs} +5 -5
- package/dist/_chunks/{index-18155022.mjs.map → index-e10dd15d.mjs.map} +1 -1
- package/dist/_chunks/{index-f69d3930.mjs → index-e4f7fa95.mjs} +3 -3
- package/dist/_chunks/{index-f69d3930.mjs.map → index-e4f7fa95.mjs.map} +1 -1
- package/dist/_chunks/{index-8a4d0275.mjs → index-e749e6ef.mjs} +5 -5
- package/dist/_chunks/{index-8a4d0275.mjs.map → index-e749e6ef.mjs.map} +1 -1
- package/dist/_chunks/{index-52b70b56.mjs → index-ef5a0b8f.mjs} +3 -3
- package/dist/_chunks/{index-52b70b56.mjs.map → index-ef5a0b8f.mjs.map} +1 -1
- package/dist/_chunks/{index-db37fbe6.js → index-f03c4e70.js} +4 -4
- package/dist/_chunks/{index-db37fbe6.js.map → index-f03c4e70.js.map} +1 -1
- package/dist/_chunks/{index-dd3259f3.js → index-fc0191f3.js} +3 -3
- package/dist/_chunks/{index-dd3259f3.js.map → index-fc0191f3.js.map} +1 -1
- package/dist/_chunks/{schema-ac25a47b.mjs → schema-4d12cff6.mjs} +2 -2
- package/dist/_chunks/{schema-ac25a47b.mjs.map → schema-4d12cff6.mjs.map} +1 -1
- package/dist/_chunks/{schema-8eebfdf9.js → schema-c6ce9e01.js} +2 -2
- package/dist/_chunks/{schema-8eebfdf9.js.map → schema-c6ce9e01.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-c0f3148d.js → validateWorkflow-155f5778.js} +3 -3
- package/dist/_chunks/{validateWorkflow-c0f3148d.js.map → validateWorkflow-155f5778.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-2511dc85.mjs → validateWorkflow-e0166061.mjs} +3 -3
- package/dist/_chunks/{validateWorkflow-2511dc85.mjs.map → validateWorkflow-e0166061.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/ee/LICENSE +1 -0
- package/package.json +12 -12
|
@@ -4,7 +4,7 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
|
4
4
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
5
5
|
const reactRedux = require("react-redux");
|
|
6
6
|
const reactRouterDom = require("react-router-dom");
|
|
7
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
7
|
+
const AuthenticatedApp = require("./AuthenticatedApp-26a57d48.js");
|
|
8
8
|
const React = require("react");
|
|
9
9
|
const designSystem = require("@strapi/design-system");
|
|
10
10
|
const Icons = require("@strapi/icons");
|
|
@@ -17,7 +17,7 @@ const yup = require("yup");
|
|
|
17
17
|
require("react-query");
|
|
18
18
|
require("semver/functions/lt");
|
|
19
19
|
require("semver/functions/valid");
|
|
20
|
-
require("./index-
|
|
20
|
+
require("./index-0134922e.js");
|
|
21
21
|
require("react-dom/client");
|
|
22
22
|
require("invariant");
|
|
23
23
|
require("lodash/isFunction");
|
|
@@ -291,4 +291,4 @@ const ProtectedEditPage = () => {
|
|
|
291
291
|
return /* @__PURE__ */ jsxRuntime.jsx(EditPage, {});
|
|
292
292
|
};
|
|
293
293
|
exports.default = ProtectedEditPage;
|
|
294
|
-
//# sourceMappingURL=index-
|
|
294
|
+
//# sourceMappingURL=index-01a3932c.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-bad666f0.js","sources":["../../admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/utils/schema.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ProtectedEditPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nRoleForm.defaultProps = {\n disabled: false,\n role: null,\n values: { name: '', description: '' },\n};\nRoleForm.propTypes = {\n disabled: PropTypes.bool,\n errors: PropTypes.object.isRequired,\n onBlur: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n role: PropTypes.object,\n values: PropTypes.object,\n};\n\nexport default RoleForm;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string().required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useRef, useState } from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useRouteMatch } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\nimport { useAdminRolePermissionLayout } from '../hooks/useAdminRolePermissionLayout';\nimport { useAdminRolePermissions } from '../hooks/useAdminRolePermissions';\n\nimport { Permissions, RoleForm } from './components';\nimport schema from './utils/schema';\n\nconst EditPage = () => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/roles/:id');\n const { put } = useFetchClient();\n const [isSubmitting, setIsSubmiting] = useState(false);\n const permissionsRef = useRef();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { trackUsage } = useTracking();\n const { formatAPIError } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useAdminRolePermissionLayout(id, {\n cacheTime: 0,\n });\n\n const {\n roles: [role = {}],\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n const { permissions, isLoading: isLoadingPermissions } = useAdminRolePermissions(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n // TODO: this should use a react-query mutation\n const handleEditRoleSubmit = async (data) => {\n try {\n lockApp();\n setIsSubmiting(true);\n\n const { permissionsToSend, didUpdateConditions } = permissionsRef.current.getPermissions();\n\n await put(`/admin/roles/${id}`, data);\n\n if (role.code !== 'strapi-super-admin') {\n await put(`/admin/roles/${id}/permissions`, {\n permissions: permissionsToSend,\n });\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n } finally {\n setIsSubmiting(false);\n unlockApp();\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <Formik\n enableReinitialize\n initialValues={{\n name: role.name,\n description: role.description,\n }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n disabled={role.code === 'strapi-super-admin'}\n onClick={handleSubmit}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/roles\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n isLoading={isRoleLoading || isLoadingPermissions}\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n {!isLoadingPermissionsLayout && !isRoleLoading && !isLoadingPermissions ? (\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n ) : (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n )}\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport default EditPage;\n","import React from 'react';\n\nimport { LoadingIndicatorPage, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC({\n read: permissions.settings.roles.read,\n update: permissions.settings.roles.update,\n });\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to=\"/\" />;\n }\n\n return <EditPage />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","GridItem","TextInput","Textarea","PropTypes","yup","translatedErrors","useNotification","useRouteMatch","useFetchClient","useState","useRef","useOverlayBlocker","useTracking","useAPIErrorHandler","useAdminRolePermissionLayout","useAdminRoles","useAdminRolePermissions","Main","SettingsPageTitle","Formik","HeaderLayout","Link","ArrowLeft","ContentLayout","Permissions","LoadingIndicatorPage","useSelector","selectAdminPermissions","useRBAC","Redirect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-01a3932c.js","sources":["../../admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/utils/schema.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ProtectedEditPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nRoleForm.defaultProps = {\n disabled: false,\n role: null,\n values: { name: '', description: '' },\n};\nRoleForm.propTypes = {\n disabled: PropTypes.bool,\n errors: PropTypes.object.isRequired,\n onBlur: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n role: PropTypes.object,\n values: PropTypes.object,\n};\n\nexport default RoleForm;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string().required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useRef, useState } from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useRouteMatch } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\nimport { useAdminRolePermissionLayout } from '../hooks/useAdminRolePermissionLayout';\nimport { useAdminRolePermissions } from '../hooks/useAdminRolePermissions';\n\nimport { Permissions, RoleForm } from './components';\nimport schema from './utils/schema';\n\nconst EditPage = () => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/roles/:id');\n const { put } = useFetchClient();\n const [isSubmitting, setIsSubmiting] = useState(false);\n const permissionsRef = useRef();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { trackUsage } = useTracking();\n const { formatAPIError } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useAdminRolePermissionLayout(id, {\n cacheTime: 0,\n });\n\n const {\n roles: [role = {}],\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n const { permissions, isLoading: isLoadingPermissions } = useAdminRolePermissions(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n // TODO: this should use a react-query mutation\n const handleEditRoleSubmit = async (data) => {\n try {\n lockApp();\n setIsSubmiting(true);\n\n const { permissionsToSend, didUpdateConditions } = permissionsRef.current.getPermissions();\n\n await put(`/admin/roles/${id}`, data);\n\n if (role.code !== 'strapi-super-admin') {\n await put(`/admin/roles/${id}/permissions`, {\n permissions: permissionsToSend,\n });\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n } finally {\n setIsSubmiting(false);\n unlockApp();\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <Formik\n enableReinitialize\n initialValues={{\n name: role.name,\n description: role.description,\n }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n disabled={role.code === 'strapi-super-admin'}\n onClick={handleSubmit}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/roles\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n isLoading={isRoleLoading || isLoadingPermissions}\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n {!isLoadingPermissionsLayout && !isRoleLoading && !isLoadingPermissions ? (\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n ) : (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n )}\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport default EditPage;\n","import React from 'react';\n\nimport { LoadingIndicatorPage, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC({\n read: permissions.settings.roles.read,\n update: permissions.settings.roles.update,\n });\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to=\"/\" />;\n }\n\n return <EditPage />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","GridItem","TextInput","Textarea","PropTypes","yup","translatedErrors","useNotification","useRouteMatch","useFetchClient","useState","useRef","useOverlayBlocker","useTracking","useAPIErrorHandler","useAdminRolePermissionLayout","useAdminRoles","useAdminRolePermissions","Main","SettingsPageTitle","Formik","HeaderLayout","Link","ArrowLeft","ContentLayout","Permissions","LoadingIndicatorPage","useSelector","selectAdminPermissions","useRBAC","Redirect"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const isEqual = require("lodash/isEqual");
|
|
|
8
8
|
const reactIntl = require("react-intl");
|
|
9
9
|
const reactRedux = require("react-redux");
|
|
10
10
|
const useAdminRoles = require("./useAdminRoles-68d5d608.js");
|
|
11
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
11
|
+
const AuthenticatedApp = require("./AuthenticatedApp-26a57d48.js");
|
|
12
12
|
const React = require("react");
|
|
13
13
|
const produce = require("immer");
|
|
14
14
|
const omit = require("lodash/omit");
|
|
@@ -19,7 +19,7 @@ const formatAPIErrors = require("./formatAPIErrors-b599cf27.js");
|
|
|
19
19
|
require("react-query");
|
|
20
20
|
require("semver/functions/lt");
|
|
21
21
|
require("semver/functions/valid");
|
|
22
|
-
require("./index-
|
|
22
|
+
require("./index-0134922e.js");
|
|
23
23
|
require("react-dom/client");
|
|
24
24
|
require("invariant");
|
|
25
25
|
require("lodash/isFunction");
|
|
@@ -415,4 +415,4 @@ const ProtectedSSO = () => {
|
|
|
415
415
|
};
|
|
416
416
|
exports.SingleSignOn = SingleSignOn;
|
|
417
417
|
exports.default = ProtectedSSO;
|
|
418
|
-
//# sourceMappingURL=index-
|
|
418
|
+
//# sourceMappingURL=index-13a08117.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-9f900c47.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/hooks/useSettingsForm.ts","../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/utils/schema.js","../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/index.js"],"sourcesContent":["import * as React from 'react';\n\nimport {\n getYupInnerErrors,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport produce from 'immer';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport set from 'lodash/set';\nimport { ValidationError } from 'yup';\n\nimport { formatAPIErrors } from '../../../../../../../../admin/src/utils/formatAPIErrors';\n\ninterface GetDataSucceedAction {\n type: 'GET_DATA_SUCCEEDED';\n data: {\n [key: string]: unknown;\n };\n fieldsToPick: string[];\n}\n\ninterface OnCancelAction {\n type: 'ON_CANCEL';\n}\n\ninterface OnChangeAction {\n type: 'ON_CHANGE';\n keys: string;\n value: unknown;\n}\n\ninterface OnSubmitAction {\n type: 'ON_SUBMIT';\n}\n\ninterface OnSubmitSucceedAction {\n type: 'ON_SUBMIT_SUCCEEDED';\n data: {\n [key: string]: unknown;\n };\n}\n\ninterface SetErrorsAction {\n type: 'SET_ERRORS';\n errors: Record<string, unknown>;\n}\n\ninterface InitialState {\n fieldsToPick: string[];\n formErrors?: Record<string, unknown>;\n initialData: Record<string, unknown>;\n isLoading: boolean;\n modifiedData: Record<string, unknown>;\n showHeaderButtonLoader: boolean;\n showHeaderLoader: boolean;\n}\n\nconst initialState: InitialState = {\n fieldsToPick: [],\n formErrors: {},\n initialData: {},\n isLoading: true,\n modifiedData: {},\n showHeaderButtonLoader: false,\n showHeaderLoader: true,\n};\n\ntype Action =\n | GetDataSucceedAction\n | OnCancelAction\n | OnChangeAction\n | OnSubmitAction\n | OnSubmitSucceedAction\n | SetErrorsAction;\n\nconst reducer = (state: typeof initialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n draftState.isLoading = false;\n draftState.showHeaderLoader = false;\n draftState.initialData = pick(action.data, state.fieldsToPick);\n draftState.modifiedData = pick(action.data, state.fieldsToPick);\n break;\n }\n case 'ON_CANCEL': {\n draftState.modifiedData = state.initialData;\n draftState.formErrors = {};\n break;\n }\n case 'ON_CHANGE': {\n if (action.keys.includes('username') && !action.value) {\n set(draftState.modifiedData, action.keys.split('.'), null);\n } else {\n set(draftState.modifiedData, action.keys.split('.'), action.value);\n }\n break;\n }\n case 'ON_SUBMIT': {\n draftState.showHeaderButtonLoader = true;\n break;\n }\n case 'ON_SUBMIT_SUCCEEDED': {\n draftState.initialData = pick(action.data, state.fieldsToPick);\n draftState.modifiedData = pick(action.data, state.fieldsToPick);\n draftState.showHeaderButtonLoader = false;\n break;\n }\n case 'SET_ERRORS': {\n draftState.formErrors = action.errors;\n draftState.showHeaderButtonLoader = false;\n break;\n }\n default:\n return draftState;\n }\n });\n\nconst checkFormValidity = async (data: Record<string, unknown>, schema: any) => {\n let errors = null;\n\n try {\n await schema.validate(data, { abortEarly: false });\n } catch (err) {\n if (err instanceof ValidationError) {\n errors = getYupInnerErrors(err);\n }\n }\n\n return errors;\n};\n\n/**\n * TODO: refactor this, it's confusing and hard to read.\n * It's also only used in `Settings/pages/SingleSignOn` so it can\n * probably be deleted and everything written there...\n */\nexport const useSettingsForm = (\n schema: Record<string, unknown>,\n cbSuccess: (data: any) => void,\n fieldsToPick: string[]\n) => {\n const [\n { formErrors, initialData, isLoading, modifiedData, showHeaderButtonLoader, showHeaderLoader },\n dispatch,\n ] = React.useReducer(reducer, { ...initialState, fieldsToPick });\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n\n const { get, put } = useFetchClient();\n\n React.useEffect(() => {\n const getData = async () => {\n try {\n const {\n data: { data },\n } = await get('/admin/providers/options');\n\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n fieldsToPick,\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error' },\n });\n }\n };\n\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleCancel = () => {\n dispatch({\n type: 'ON_CANCEL',\n });\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: string; value?: unknown };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n const setField = (fieldName: string, value: unknown) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: fieldName,\n value,\n });\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n const errors = await checkFormValidity(modifiedData, schema);\n\n dispatch({\n type: 'SET_ERRORS',\n errors: errors || {},\n });\n\n if (!errors) {\n try {\n // @ts-expect-error - context assertation\n lockApp();\n\n dispatch({\n type: 'ON_SUBMIT',\n });\n const cleanedData = omit(modifiedData, ['confirmPassword', 'registrationToken']);\n\n if (cleanedData.roles) {\n // @ts-expect-error hooks needs refactoring anyways\n cleanedData.roles = cleanedData.roles.map((role) => role.id);\n }\n if (cleanedData.ssoLockedRoles) {\n // @ts-expect-error hooks needs refactoring anyways\n cleanedData.ssoLockedRoles = [...new Set(cleanedData.ssoLockedRoles)];\n }\n\n const {\n data: { data },\n } = await put('/admin/providers/options', cleanedData);\n\n cbSuccess(data);\n\n dispatch({\n type: 'ON_SUBMIT_SUCCEEDED',\n data,\n });\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n // @ts-expect-error hooks needs refactoring anyways\n const data = err?.response?.payload ?? { data: {} };\n\n if (!!data?.data && typeof data.data === 'string') {\n toggleNotification({\n type: 'warning',\n message: data.data,\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: data.message,\n });\n }\n\n const apiErrors = formatAPIErrors(data);\n\n dispatch({\n type: 'SET_ERRORS',\n errors: apiErrors,\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n }\n };\n\n return [\n { formErrors, initialData, isLoading, modifiedData, showHeaderButtonLoader, showHeaderLoader },\n dispatch,\n { handleCancel, handleChange, handleSubmit, setField },\n ] as const;\n};\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport default schema;\n","import * as React from 'react';\n\nimport {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFocusWhenNavigate,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useAdminRoles } from '../../../../../../../admin/src/hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../../../../admin/src/selectors';\n\nimport { useSettingsForm } from './hooks/useSettingsForm';\nimport schema from './utils/schema';\n\nexport const SingleSignOn = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings.sso,\n readRoles: permissions.settings.roles.read,\n });\n\n const [\n { formErrors, initialData, isLoading: isLoadingForm, modifiedData, showHeaderButtonLoader },\n ,\n { handleChange, handleSubmit },\n ] = useSettingsForm(schema, () => {}, ['autoRegister', 'defaultRole', 'ssoLockedRoles']);\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n enabled: canReadRoles,\n });\n\n const isLoading = isLoadingPermissions || isLoadingRoles || isLoadingForm;\n // TODO: focus() first error field, but it looks like that requires refactoring from useSettingsForm to Formik\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main tabIndex={-1}>\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Button\n data-testid=\"save-button\"\n disabled={isEqual(initialData, modifiedData)}\n loading={showHeaderButtonLoader}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({ id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isLoading ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} m={6} s={12}>\n <ToggleInput\n aria-label=\"autoRegister\"\n data-testid=\"autoRegister\"\n disabled={!canUpdate}\n checked={modifiedData.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoRegister', value: e.target.checked },\n });\n }}\n />\n </GridItem>\n <GridItem col={6} m={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n formErrors.defaultRole\n ? formatMessage({\n id: formErrors.defaultRole.id,\n defaultMessage: formErrors.defaultRole.id,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) => {\n handleChange({ target: { name: 'defaultRole', value } });\n }}\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={modifiedData.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} m={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n formErrors.ssoLockedRoles\n ? formatMessage({\n id: formErrors.ssoLockedRoles.id,\n defaultMessage: formErrors.ssoLockedRoles.id,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) => {\n handleChange({ target: { name: 'ssoLockedRoles', value } });\n }}\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => {\n handleChange({ target: { name: 'ssoLockedRoles' } });\n }}\n value={modifiedData.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </form>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedSSO = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.sso.main}>\n <SingleSignOn />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedSSO;\n"],"names":["produce","pick","set","schema","ValidationError","getYupInnerErrors","React","useNotification","useOverlayBlocker","useFetchClient","omit","formatAPIErrors","yup","translatedErrors","useFocusWhenNavigate","useIntl","useSelector","selectAdminPermissions","useRBAC","useAdminRoles","Layout","jsx","SettingsPageTitle","Main","jsxs","HeaderLayout","Button","isEqual","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-13a08117.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/hooks/useSettingsForm.ts","../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/utils/schema.js","../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/index.js"],"sourcesContent":["import * as React from 'react';\n\nimport {\n getYupInnerErrors,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport produce from 'immer';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport set from 'lodash/set';\nimport { ValidationError } from 'yup';\n\nimport { formatAPIErrors } from '../../../../../../../../admin/src/utils/formatAPIErrors';\n\ninterface GetDataSucceedAction {\n type: 'GET_DATA_SUCCEEDED';\n data: {\n [key: string]: unknown;\n };\n fieldsToPick: string[];\n}\n\ninterface OnCancelAction {\n type: 'ON_CANCEL';\n}\n\ninterface OnChangeAction {\n type: 'ON_CHANGE';\n keys: string;\n value: unknown;\n}\n\ninterface OnSubmitAction {\n type: 'ON_SUBMIT';\n}\n\ninterface OnSubmitSucceedAction {\n type: 'ON_SUBMIT_SUCCEEDED';\n data: {\n [key: string]: unknown;\n };\n}\n\ninterface SetErrorsAction {\n type: 'SET_ERRORS';\n errors: Record<string, unknown>;\n}\n\ninterface InitialState {\n fieldsToPick: string[];\n formErrors?: Record<string, unknown>;\n initialData: Record<string, unknown>;\n isLoading: boolean;\n modifiedData: Record<string, unknown>;\n showHeaderButtonLoader: boolean;\n showHeaderLoader: boolean;\n}\n\nconst initialState: InitialState = {\n fieldsToPick: [],\n formErrors: {},\n initialData: {},\n isLoading: true,\n modifiedData: {},\n showHeaderButtonLoader: false,\n showHeaderLoader: true,\n};\n\ntype Action =\n | GetDataSucceedAction\n | OnCancelAction\n | OnChangeAction\n | OnSubmitAction\n | OnSubmitSucceedAction\n | SetErrorsAction;\n\nconst reducer = (state: typeof initialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n draftState.isLoading = false;\n draftState.showHeaderLoader = false;\n draftState.initialData = pick(action.data, state.fieldsToPick);\n draftState.modifiedData = pick(action.data, state.fieldsToPick);\n break;\n }\n case 'ON_CANCEL': {\n draftState.modifiedData = state.initialData;\n draftState.formErrors = {};\n break;\n }\n case 'ON_CHANGE': {\n if (action.keys.includes('username') && !action.value) {\n set(draftState.modifiedData, action.keys.split('.'), null);\n } else {\n set(draftState.modifiedData, action.keys.split('.'), action.value);\n }\n break;\n }\n case 'ON_SUBMIT': {\n draftState.showHeaderButtonLoader = true;\n break;\n }\n case 'ON_SUBMIT_SUCCEEDED': {\n draftState.initialData = pick(action.data, state.fieldsToPick);\n draftState.modifiedData = pick(action.data, state.fieldsToPick);\n draftState.showHeaderButtonLoader = false;\n break;\n }\n case 'SET_ERRORS': {\n draftState.formErrors = action.errors;\n draftState.showHeaderButtonLoader = false;\n break;\n }\n default:\n return draftState;\n }\n });\n\nconst checkFormValidity = async (data: Record<string, unknown>, schema: any) => {\n let errors = null;\n\n try {\n await schema.validate(data, { abortEarly: false });\n } catch (err) {\n if (err instanceof ValidationError) {\n errors = getYupInnerErrors(err);\n }\n }\n\n return errors;\n};\n\n/**\n * TODO: refactor this, it's confusing and hard to read.\n * It's also only used in `Settings/pages/SingleSignOn` so it can\n * probably be deleted and everything written there...\n */\nexport const useSettingsForm = (\n schema: Record<string, unknown>,\n cbSuccess: (data: any) => void,\n fieldsToPick: string[]\n) => {\n const [\n { formErrors, initialData, isLoading, modifiedData, showHeaderButtonLoader, showHeaderLoader },\n dispatch,\n ] = React.useReducer(reducer, { ...initialState, fieldsToPick });\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n\n const { get, put } = useFetchClient();\n\n React.useEffect(() => {\n const getData = async () => {\n try {\n const {\n data: { data },\n } = await get('/admin/providers/options');\n\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n fieldsToPick,\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error' },\n });\n }\n };\n\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleCancel = () => {\n dispatch({\n type: 'ON_CANCEL',\n });\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: string; value?: unknown };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n const setField = (fieldName: string, value: unknown) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: fieldName,\n value,\n });\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n const errors = await checkFormValidity(modifiedData, schema);\n\n dispatch({\n type: 'SET_ERRORS',\n errors: errors || {},\n });\n\n if (!errors) {\n try {\n // @ts-expect-error - context assertation\n lockApp();\n\n dispatch({\n type: 'ON_SUBMIT',\n });\n const cleanedData = omit(modifiedData, ['confirmPassword', 'registrationToken']);\n\n if (cleanedData.roles) {\n // @ts-expect-error hooks needs refactoring anyways\n cleanedData.roles = cleanedData.roles.map((role) => role.id);\n }\n if (cleanedData.ssoLockedRoles) {\n // @ts-expect-error hooks needs refactoring anyways\n cleanedData.ssoLockedRoles = [...new Set(cleanedData.ssoLockedRoles)];\n }\n\n const {\n data: { data },\n } = await put('/admin/providers/options', cleanedData);\n\n cbSuccess(data);\n\n dispatch({\n type: 'ON_SUBMIT_SUCCEEDED',\n data,\n });\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n // @ts-expect-error hooks needs refactoring anyways\n const data = err?.response?.payload ?? { data: {} };\n\n if (!!data?.data && typeof data.data === 'string') {\n toggleNotification({\n type: 'warning',\n message: data.data,\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: data.message,\n });\n }\n\n const apiErrors = formatAPIErrors(data);\n\n dispatch({\n type: 'SET_ERRORS',\n errors: apiErrors,\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n }\n };\n\n return [\n { formErrors, initialData, isLoading, modifiedData, showHeaderButtonLoader, showHeaderLoader },\n dispatch,\n { handleCancel, handleChange, handleSubmit, setField },\n ] as const;\n};\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport default schema;\n","import * as React from 'react';\n\nimport {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFocusWhenNavigate,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useAdminRoles } from '../../../../../../../admin/src/hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../../../../admin/src/selectors';\n\nimport { useSettingsForm } from './hooks/useSettingsForm';\nimport schema from './utils/schema';\n\nexport const SingleSignOn = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings.sso,\n readRoles: permissions.settings.roles.read,\n });\n\n const [\n { formErrors, initialData, isLoading: isLoadingForm, modifiedData, showHeaderButtonLoader },\n ,\n { handleChange, handleSubmit },\n ] = useSettingsForm(schema, () => {}, ['autoRegister', 'defaultRole', 'ssoLockedRoles']);\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n enabled: canReadRoles,\n });\n\n const isLoading = isLoadingPermissions || isLoadingRoles || isLoadingForm;\n // TODO: focus() first error field, but it looks like that requires refactoring from useSettingsForm to Formik\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main tabIndex={-1}>\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Button\n data-testid=\"save-button\"\n disabled={isEqual(initialData, modifiedData)}\n loading={showHeaderButtonLoader}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({ id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isLoading ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} m={6} s={12}>\n <ToggleInput\n aria-label=\"autoRegister\"\n data-testid=\"autoRegister\"\n disabled={!canUpdate}\n checked={modifiedData.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoRegister', value: e.target.checked },\n });\n }}\n />\n </GridItem>\n <GridItem col={6} m={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n formErrors.defaultRole\n ? formatMessage({\n id: formErrors.defaultRole.id,\n defaultMessage: formErrors.defaultRole.id,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) => {\n handleChange({ target: { name: 'defaultRole', value } });\n }}\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={modifiedData.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} m={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n formErrors.ssoLockedRoles\n ? formatMessage({\n id: formErrors.ssoLockedRoles.id,\n defaultMessage: formErrors.ssoLockedRoles.id,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) => {\n handleChange({ target: { name: 'ssoLockedRoles', value } });\n }}\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => {\n handleChange({ target: { name: 'ssoLockedRoles' } });\n }}\n value={modifiedData.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </form>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedSSO = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.sso.main}>\n <SingleSignOn />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedSSO;\n"],"names":["produce","pick","set","schema","ValidationError","getYupInnerErrors","React","useNotification","useOverlayBlocker","useFetchClient","omit","formatAPIErrors","yup","translatedErrors","useFocusWhenNavigate","useIntl","useSelector","selectAdminPermissions","useRBAC","useAdminRoles","Layout","jsx","SettingsPageTitle","Main","jsxs","HeaderLayout","Button","isEqual","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,MAAM,eAA6B;AAAA,EACjC,cAAc,CAAC;AAAA,EACf,YAAY,CAAC;AAAA,EACb,aAAa,CAAC;AAAA,EACd,WAAW;AAAA,EACX,cAAc,CAAC;AAAA,EACf,wBAAwB;AAAA,EACxB,kBAAkB;AACpB;AAUA,MAAM,UAAU,CAAC,OAA4B,WAC3CA,iBAAAA,QAAQ,OAAO,CAAC,eAAe;AAC7B,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,sBAAsB;AACzB,iBAAW,YAAY;AACvB,iBAAW,mBAAmB;AAC9B,iBAAW,cAAcC,sBAAK,OAAO,MAAM,MAAM,YAAY;AAC7D,iBAAW,eAAeA,sBAAK,OAAO,MAAM,MAAM,YAAY;AAC9D;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,iBAAW,eAAe,MAAM;AAChC,iBAAW,aAAa;AACxB;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,UAAI,OAAO,KAAK,SAAS,UAAU,KAAK,CAAC,OAAO,OAAO;AACrDC,6BAAI,WAAW,cAAc,OAAO,KAAK,MAAM,GAAG,GAAG,IAAI;AAAA,MAAA,OACpD;AACDA,6BAAA,WAAW,cAAc,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,KAAK;AAAA,MACnE;AACA;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,iBAAW,yBAAyB;AACpC;AAAA,IACF;AAAA,IACA,KAAK,uBAAuB;AAC1B,iBAAW,cAAcD,sBAAK,OAAO,MAAM,MAAM,YAAY;AAC7D,iBAAW,eAAeA,sBAAK,OAAO,MAAM,MAAM,YAAY;AAC9D,iBAAW,yBAAyB;AACpC;AAAA,IACF;AAAA,IACA,KAAK,cAAc;AACjB,iBAAW,aAAa,OAAO;AAC/B,iBAAW,yBAAyB;AACpC;AAAA,IACF;AAAA,IACA;AACS,aAAA;AAAA,EACX;AACF,CAAC;AAEH,MAAM,oBAAoB,OAAO,MAA+BE,YAAgB;AAC9E,MAAI,SAAS;AAET,MAAA;AACF,UAAMA,QAAO,SAAS,MAAM,EAAE,YAAY,OAAO;AAAA,WAC1C,KAAK;AACZ,QAAI,eAAeC,IAAAA,iBAAiB;AAClC,eAASC,aAAAA,kBAAkB,GAAG;AAAA,IAChC;AAAA,EACF;AAEO,SAAA;AACT;AAOO,MAAM,kBAAkB,CAC7BF,SACA,WACA,iBACG;AACG,QAAA;AAAA,IACJ,EAAE,YAAY,aAAa,WAAW,cAAc,wBAAwB,iBAAiB;AAAA,IAC7F;AAAA,EAAA,IACEG,iBAAM,WAAW,SAAS,EAAE,GAAG,cAAc,cAAc;AAC/D,QAAM,qBAAqBC,aAAAA;AAC3B,QAAM,EAAE,SAAS,UAAU,IAAIC,aAAkB,kBAAA;AAEjD,QAAM,EAAE,KAAK,IAAI,IAAIC,aAAe,eAAA;AAEpCH,mBAAM,UAAU,MAAM;AACpB,UAAM,UAAU,YAAY;AACtB,UAAA;AACI,cAAA;AAAA,UACJ,MAAM,EAAE,KAAK;AAAA,QAAA,IACX,MAAM,IAAI,0BAA0B;AAE/B,iBAAA;AAAA,UACP,MAAM;AAAA,UACN;AAAA,UACA;AAAA,QAAA,CACD;AAAA,eACM,KAAK;AACO,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,EAAE,IAAI,qBAAqB;AAAA,QAAA,CACrC;AAAA,MACH;AAAA,IAAA;AAGM;EAEV,GAAG,CAAE,CAAA;AAEL,QAAM,eAAe,MAAM;AAChB,aAAA;AAAA,MACP,MAAM;AAAA,IAAA,CACP;AAAA,EAAA;AAGH,QAAM,eAAe,CAAC;AAAA,IACpB,QAAQ,EAAE,MAAM,MAAM;AAAA,EAAA,MAGlB;AACK,aAAA;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN;AAAA,IAAA,CACD;AAAA,EAAA;AAGG,QAAA,WAAW,CAAC,WAAmB,UAAmB;AAC7C,aAAA;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN;AAAA,IAAA,CACD;AAAA,EAAA;AAGG,QAAA,eAAe,OAAO,MAAuB;AACjD,MAAE,eAAe;AAEjB,UAAM,SAAS,MAAM,kBAAkB,cAAcH,OAAM;AAElD,aAAA;AAAA,MACP,MAAM;AAAA,MACN,QAAQ,UAAU,CAAC;AAAA,IAAA,CACpB;AAED,QAAI,CAAC,QAAQ;AACP,UAAA;AAEM;AAEC,iBAAA;AAAA,UACP,MAAM;AAAA,QAAA,CACP;AACD,cAAM,cAAcO,cAAAA,QAAK,cAAc,CAAC,mBAAmB,mBAAmB,CAAC;AAE/E,YAAI,YAAY,OAAO;AAErB,sBAAY,QAAQ,YAAY,MAAM,IAAI,CAAC,SAAS,KAAK,EAAE;AAAA,QAC7D;AACA,YAAI,YAAY,gBAAgB;AAE9B,sBAAY,iBAAiB,CAAC,GAAG,IAAI,IAAI,YAAY,cAAc,CAAC;AAAA,QACtE;AAEM,cAAA;AAAA,UACJ,MAAM,EAAE,KAAK;AAAA,QACX,IAAA,MAAM,IAAI,4BAA4B,WAAW;AAErD,kBAAU,IAAI;AAEL,iBAAA;AAAA,UACP,MAAM;AAAA,UACN;AAAA,QAAA,CACD;AAEkB,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,EAAE,IAAI,6BAA6B;AAAA,QAAA,CAC7C;AAAA,eACM,KAAK;AAEZ,cAAM,OAAO,KAAK,UAAU,WAAW,EAAE,MAAM,CAAA;AAE/C,YAAI,CAAC,CAAC,MAAM,QAAQ,OAAO,KAAK,SAAS,UAAU;AAC9B,6BAAA;AAAA,YACjB,MAAM;AAAA,YACN,SAAS,KAAK;AAAA,UAAA,CACf;AAAA,QAAA,OACI;AACc,6BAAA;AAAA,YACjB,MAAM;AAAA,YACN,SAAS,KAAK;AAAA,UAAA,CACf;AAAA,QACH;AAEM,cAAA,YAAYC,gCAAgB,IAAI;AAE7B,iBAAA;AAAA,UACP,MAAM;AAAA,UACN,QAAQ;AAAA,QAAA,CACT;AAAA,MAAA,UACD;AAEU;MACZ;AAAA,IACF;AAAA,EAAA;AAGK,SAAA;AAAA,IACL,EAAE,YAAY,aAAa,WAAW,cAAc,wBAAwB,iBAAiB;AAAA,IAC7F;AAAA,IACA,EAAE,cAAc,cAAc,cAAc,SAAS;AAAA,EAAA;AAEzD;ACvRA,MAAM,SAASC,eAAI,OAAO,EAAE,MAAM;AAAA,EAChC,cAAcA,eAAI,KAAA,EAAO,SAASC,aAAAA,iBAAiB,QAAQ;AAAA,EAC3D,aAAaD,eAAI,MAAM,EAAE,KAAK,gBAAgB,CAAC,OAAO,eAAe;AACnE,WAAO,QAAQ,WAAW,SAASC,aAAAA,iBAAiB,QAAQ,IAAI,WAAW;EAAS,CACrF;AAAA,EACD,gBAAgBD,eACb,QACA,SACA,EAAA;AAAA,IACCA,eAAI,MAAM,EAAE,KAAK,kBAAkB,CAAC,OAAO,eAAe;AACxD,aAAO,QAAQ,WAAW,SAASC,aAAAA,iBAAiB,QAAQ,IAAI,WAAW;IAAS,CACrF;AAAA,EACH;AACJ,CAAC;ACoBM,MAAM,eAAe,MAAM;AACXC,eAAAA;AAEf,QAAA,EAAE,kBAAkBC,UAAAA;AACpB,QAAA,cAAcC,uBAAYC,iBAAAA,sBAAsB;AAEhD,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,WAAW,aAAa;AAAA,MACxCC,qBAAQ;AAAA,IACV,GAAG,YAAY,SAAS;AAAA,IACxB,WAAW,YAAY,SAAS,MAAM;AAAA,EAAA,CACvC;AAEK,QAAA;AAAA,IACJ,EAAE,YAAY,aAAa,WAAW,eAAe,cAAc,uBAAuB;AAAA,IAAA;AAAA,IAE1F,EAAE,cAAc,aAAa;AAAA,EAAA,IAC3B,gBAAgB,QAAQ,MAAM;AAAA,EAAI,GAAA,CAAC,gBAAgB,eAAe,gBAAgB,CAAC;AAEvF,QAAM,EAAE,OAAO,WAAW,eAAe,IAAIC,cAAAA,cAAc,QAAW;AAAA,IACpE,SAAS;AAAA,EAAA,CACV;AAEK,QAAA,YAAY,wBAAwB,kBAAkB;AAG5D,yCACGC,qBACC,EAAA,UAAA;AAAA,IAACC,2BAAAA,IAAAC,aAAA,mBAAA,EAAkB,MAAK,MAAM,CAAA;AAAA,mCAC7BC,aAAK,MAAA,EAAA,UAAU,IACd,UAACC,2BAAA,KAAA,QAAA,EAAK,UAAU,cACd,UAAA;AAAA,MAAAH,2BAAA;AAAA,QAACI,aAAA;AAAA,QAAA;AAAA,UACC,eACEJ,2BAAA;AAAA,YAACK,aAAA;AAAA,YAAA;AAAA,cACC,eAAY;AAAA,cACZ,UAAUC,iBAAAA,QAAQ,aAAa,YAAY;AAAA,cAC3C,SAAS;AAAA,cACT,0CAAYC,MAAM,OAAA,EAAA;AAAA,cAClB,MAAK;AAAA,cACL,MAAK;AAAA,cAEJ,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,YAAA;AAAA,UACH;AAAA,UAEF,OAAO,cAAc,EAAE,IAAI,sBAAsB,gBAAgB,kBAAkB;AAAA,UACnF,UAAU,cAAc;AAAA,YACtB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,QAAA;AAAA,MACH;AAAA,MACCP,+BAAAQ,aAAAA,eAAA,EACE,UACC,YAAAR,2BAAAA,IAACS,oCAAqB,CAAA,IAEtBN,2BAAA;AAAA,QAACO,aAAA;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,YAAW;AAAA,UACX,KAAK;AAAA,UACL,YAAW;AAAA,UACX,SAAS;AAAA,UACT,QAAO;AAAA,UACP,WAAS;AAAA,UAET,UAAA;AAAA,YAAAV,+BAACW,aAAAA,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,cACb,IAAI;AAAA,cACJ,gBAAgB;AAAA,YACjB,CAAA,GACH;AAAA,YACAR,2BAAAA,KAACS,aAAAA,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,cAAAZ,+BAACa,aAAAA,YAAS,KAAK,GAAG,GAAG,GAAG,GAAG,IACzB,UAAAb,2BAAA;AAAA,gBAACc,aAAA;AAAA,gBAAA;AAAA,kBACC,cAAW;AAAA,kBACX,eAAY;AAAA,kBACZ,UAAU,CAAC;AAAA,kBACX,SAAS,aAAa;AAAA,kBACtB,MAAM,cAAc;AAAA,oBAClB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,OAAO,cAAc;AAAA,oBACnB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,MAAK;AAAA,kBACL,UAAU,cAAc;AAAA,oBACtB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,SAAS,cAAc;AAAA,oBACrB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,UAAU,CAAC,MAAM;AACF,iCAAA;AAAA,sBACX,QAAQ,EAAE,MAAM,gBAAgB,OAAO,EAAE,OAAO,QAAQ;AAAA,oBAAA,CACzD;AAAA,kBACH;AAAA,gBAAA;AAAA,cAAA,GAEJ;AAAA,6CACCD,aAAAA,UAAS,EAAA,KAAK,GAAG,GAAG,GAAG,GAAG,IACzB,UAAAb,2BAAA;AAAA,gBAACe,aAAA;AAAA,gBAAA;AAAA,kBACC,UAAU,CAAC;AAAA,kBACX,MAAM,cAAc;AAAA,oBAClB,IAAI;AAAA,oBACJ,gBACE;AAAA,kBAAA,CACH;AAAA,kBACD,OACE,WAAW,cACP,cAAc;AAAA,oBACZ,IAAI,WAAW,YAAY;AAAA,oBAC3B,gBAAgB,WAAW,YAAY;AAAA,kBACxC,CAAA,IACD;AAAA,kBAEN,OAAO,cAAc;AAAA,oBACnB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,MAAK;AAAA,kBACL,UAAU,CAAC,UAAU;AACnB,iCAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,SAAS;AAAA,kBACzD;AAAA,kBACA,aAAa,cAAc;AAAA,oBACzB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,OAAO,aAAa;AAAA,kBAEnB,UAAM,MAAA,IAAI,CAAC,EAAE,IAAI,KAAK,MACpBf,+BAAAgB,aAAAA,QAAA,EAAgB,OAAO,GAAG,SACxB,GAAA,UAAA,KAAA,GADU,EAEb,CACD;AAAA,gBAAA;AAAA,cAAA,GAEL;AAAA,6CACCH,aAAAA,UAAS,EAAA,KAAK,GAAG,GAAG,GAAG,GAAG,IACzB,UAAAb,2BAAA;AAAA,gBAACiB,aAAA;AAAA,gBAAA;AAAA,kBACC,UAAU,CAAC;AAAA,kBACX,MAAM,cAAc;AAAA,oBAClB,IAAI;AAAA,oBACJ,gBACE;AAAA,kBAAA,CACH;AAAA,kBACD,OACE,WAAW,iBACP,cAAc;AAAA,oBACZ,IAAI,WAAW,eAAe;AAAA,oBAC9B,gBAAgB,WAAW,eAAe;AAAA,kBAC3C,CAAA,IACD;AAAA,kBAEN,OAAO,cAAc;AAAA,oBACnB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,MAAK;AAAA,kBACL,UAAU,CAAC,UAAU;AACnB,iCAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,SAAS;AAAA,kBAC5D;AAAA,kBACA,aAAa,cAAc;AAAA,oBACzB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,SAAS,MAAM;AACb,iCAAa,EAAE,QAAQ,EAAE,MAAM,iBAAA,EAAoB,CAAA;AAAA,kBACrD;AAAA,kBACA,OAAO,aAAa,kBAAkB,CAAC;AAAA,kBACvC,UAAQ;AAAA,kBAEP,UAAM,MAAA,IAAI,CAAC,EAAE,IAAI,KAAK,MACpBjB,+BAAAkB,aAAAA,mBAAA,EAA2B,OAAO,GAAG,SACnC,GAAA,UAAA,KAAA,GADqB,EAExB,CACD;AAAA,gBAAA;AAAA,cAAA,GAEL;AAAA,YAAA,GACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,GAGN;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;AAEA,MAAM,eAAe,MAAM;AACnB,QAAA,cAAcvB,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAI,2BAAA,IAACmB,qCAAqB,aAAa,YAAY,SAAS,IAAI,MAC1D,UAACnB,2BAAA,IAAA,cAAA,CAAa,CAAA,EAChB,CAAA;AAEJ;;;"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { CheckPagePermissions } from "@strapi/helper-plugin";
|
|
3
3
|
import { useSelector } from "react-redux";
|
|
4
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
5
|
-
import { A as ApiTokenCreateView } from "./index-
|
|
4
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-332b40a8.mjs";
|
|
5
|
+
import { A as ApiTokenCreateView } from "./index-49b41e57.mjs";
|
|
6
6
|
import "react";
|
|
7
7
|
import "react-query";
|
|
8
8
|
import "semver/functions/lt";
|
|
9
9
|
import "semver/functions/valid";
|
|
10
|
-
import "./index-
|
|
10
|
+
import "./index-cd461a87.mjs";
|
|
11
11
|
import "react-dom/client";
|
|
12
12
|
import "@strapi/design-system";
|
|
13
13
|
import "invariant";
|
|
@@ -52,4 +52,4 @@ const ProtectedApiTokenCreateView = () => {
|
|
|
52
52
|
export {
|
|
53
53
|
ProtectedApiTokenCreateView as default
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=index-
|
|
55
|
+
//# sourceMappingURL=index-14462502.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-14462502.mjs","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedCreateView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedApiTokenCreateView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].create}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenCreateView;\n"],"names":["EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,8BAA8B,MAAM;AAClC,QAAA,cAAc,YAAY,sBAAsB;AAGpD,SAAA,oBAAC,sBAAqB,EAAA,aAAa,YAAY,SAAS,YAAY,EAAE,QACpE,UAAC,oBAAAA,oBAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useFocusWhenNavigate, useNotification, useRBAC, useTracking, useGuidedTour, useFetchClient, useAPIErrorHandler, SettingsPageTitle, LinkButton, NoPermissions, NoContent, CheckPagePermissions } from "@strapi/helper-plugin";
|
|
3
3
|
import { useSelector } from "react-redux";
|
|
4
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
4
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-332b40a8.mjs";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { Main, HeaderLayout, ContentLayout } from "@strapi/design-system";
|
|
7
7
|
import { Plus } from "@strapi/icons";
|
|
@@ -13,7 +13,7 @@ import { A as API_TOKEN_TYPE } from "./constants-d3dd8ed6.mjs";
|
|
|
13
13
|
import { T as Table } from "./index-eb67694f.mjs";
|
|
14
14
|
import "semver/functions/lt";
|
|
15
15
|
import "semver/functions/valid";
|
|
16
|
-
import "./index-
|
|
16
|
+
import "./index-cd461a87.mjs";
|
|
17
17
|
import "react-dom/client";
|
|
18
18
|
import "invariant";
|
|
19
19
|
import "lodash/isFunction";
|
|
@@ -229,4 +229,4 @@ const ProtectedApiTokenListView = () => {
|
|
|
229
229
|
export {
|
|
230
230
|
ProtectedApiTokenListView as default
|
|
231
231
|
};
|
|
232
|
-
//# sourceMappingURL=index-
|
|
232
|
+
//# sourceMappingURL=index-22fbd8cc.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-dace55d9.mjs","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedListView/index.js"],"sourcesContent":["const tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport default tableHeaders;\n","import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LinkButton,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport Table from '../../../components/Tokens/Table';\n\nimport tableHeaders from './utils/tableHeaders';\n\nconst ApiTokenListView = () => {\n useFocusWhenNavigate();\n const queryClient = useQueryClient();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions.settings['api-tokens']);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { startSection } = useGuidedTour();\n const startSectionRef = React.useRef(startSection);\n const { get, del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('apiTokens');\n }\n }, []);\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const { data: apiTokens, isLoading: isLoadingTokens } = useQuery(\n ['api-tokens'],\n async () => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n\n const {\n data: { data },\n } = await get(`/admin/api-tokens`);\n\n trackUsage('didAccessTokenList', { number: data.length, tokenType: API_TOKEN_TYPE });\n\n return data;\n },\n {\n cacheTime: 0,\n enabled: canRead,\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n },\n }\n );\n\n const isLoading = isLoadingTokens;\n\n const deleteMutation = useMutation(\n async (id) => {\n await del(`/admin/api-tokens/${id}`);\n },\n {\n async onSuccess() {\n await queryClient.invalidateQueries(['api-tokens']);\n trackUsage('didDeleteToken');\n },\n onError(error) {\n toggleNotification({ type: 'warning', message: formatAPIError(error) });\n },\n }\n );\n\n const hasApiTokens = apiTokens && apiTokens.length > 0;\n const shouldDisplayDynamicTable = canRead && hasApiTokens;\n const shouldDisplayNoContent = canRead && !hasApiTokens && !canCreate;\n const shouldDisplayNoContentWithCreationButton = canRead && !hasApiTokens && canCreate;\n\n return (\n <Main aria-busy={isLoading}>\n {/* TODO: this needs to be translated */}\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {shouldDisplayDynamicTable && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"api-tokens\"\n rows={apiTokens}\n isLoading={isLoading}\n onConfirmDelete={(id) => deleteMutation.mutateAsync(id)}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {shouldDisplayNoContentWithCreationButton && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n }}\n action={\n <LinkButton variant=\"secondary\" startIcon={<Plus />} to=\"/settings/api-tokens/create\">\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n )}\n {shouldDisplayNoContent && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport default ApiTokenListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListView from '../ListView';\n\nconst ProtectedApiTokenListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenListView;\n"],"names":["qs","ListView"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-22fbd8cc.mjs","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedListView/index.js"],"sourcesContent":["const tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport default tableHeaders;\n","import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LinkButton,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport Table from '../../../components/Tokens/Table';\n\nimport tableHeaders from './utils/tableHeaders';\n\nconst ApiTokenListView = () => {\n useFocusWhenNavigate();\n const queryClient = useQueryClient();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions.settings['api-tokens']);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { startSection } = useGuidedTour();\n const startSectionRef = React.useRef(startSection);\n const { get, del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('apiTokens');\n }\n }, []);\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const { data: apiTokens, isLoading: isLoadingTokens } = useQuery(\n ['api-tokens'],\n async () => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n\n const {\n data: { data },\n } = await get(`/admin/api-tokens`);\n\n trackUsage('didAccessTokenList', { number: data.length, tokenType: API_TOKEN_TYPE });\n\n return data;\n },\n {\n cacheTime: 0,\n enabled: canRead,\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n },\n }\n );\n\n const isLoading = isLoadingTokens;\n\n const deleteMutation = useMutation(\n async (id) => {\n await del(`/admin/api-tokens/${id}`);\n },\n {\n async onSuccess() {\n await queryClient.invalidateQueries(['api-tokens']);\n trackUsage('didDeleteToken');\n },\n onError(error) {\n toggleNotification({ type: 'warning', message: formatAPIError(error) });\n },\n }\n );\n\n const hasApiTokens = apiTokens && apiTokens.length > 0;\n const shouldDisplayDynamicTable = canRead && hasApiTokens;\n const shouldDisplayNoContent = canRead && !hasApiTokens && !canCreate;\n const shouldDisplayNoContentWithCreationButton = canRead && !hasApiTokens && canCreate;\n\n return (\n <Main aria-busy={isLoading}>\n {/* TODO: this needs to be translated */}\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {shouldDisplayDynamicTable && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"api-tokens\"\n rows={apiTokens}\n isLoading={isLoading}\n onConfirmDelete={(id) => deleteMutation.mutateAsync(id)}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {shouldDisplayNoContentWithCreationButton && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n }}\n action={\n <LinkButton variant=\"secondary\" startIcon={<Plus />} to=\"/settings/api-tokens/create\">\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n )}\n {shouldDisplayNoContent && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport default ApiTokenListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListView from '../ListView';\n\nconst ProtectedApiTokenListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenListView;\n"],"names":["qs","ListView"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { Plus, Loader as Loader$1, Check, Cross, Play, ArrowLeft } from "@strapi
|
|
|
10
10
|
import { useFormikContext, FieldArray, Field, useFormik, FormikProvider } from "formik";
|
|
11
11
|
import PropTypes from "prop-types";
|
|
12
12
|
import { useIntl } from "react-intl";
|
|
13
|
-
import { p as useEnterprise } from "./index-
|
|
13
|
+
import { p as useEnterprise } from "./index-cd461a87.mjs";
|
|
14
14
|
import styled from "styled-components";
|
|
15
15
|
import * as yup from "yup";
|
|
16
16
|
const formatValue = (value) => value.reduce((acc, curr) => {
|
|
@@ -570,7 +570,7 @@ const WebhookForm = ({
|
|
|
570
570
|
const [showTriggerResponse, setShowTriggerResponse] = useState(false);
|
|
571
571
|
const EventTable2 = useEnterprise(
|
|
572
572
|
EventTableCE,
|
|
573
|
-
async () => (await import("./index-
|
|
573
|
+
async () => (await import("./index-5221021e.mjs")).EventTableEE
|
|
574
574
|
);
|
|
575
575
|
const mapHeaders = (headers) => {
|
|
576
576
|
if (!Object.keys(headers).length) {
|
|
@@ -823,4 +823,4 @@ export {
|
|
|
823
823
|
EditView as E,
|
|
824
824
|
EventTable as a
|
|
825
825
|
};
|
|
826
|
-
//# sourceMappingURL=index-
|
|
826
|
+
//# sourceMappingURL=index-259a5ab3.mjs.map
|