@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
|
@@ -3,13 +3,13 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
5
5
|
const reactRedux = require("react-redux");
|
|
6
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
7
|
-
const index = require("./index-
|
|
6
|
+
const AuthenticatedApp = require("./AuthenticatedApp-26a57d48.js");
|
|
7
|
+
const index = require("./index-5bf8300a.js");
|
|
8
8
|
require("react");
|
|
9
9
|
require("react-query");
|
|
10
10
|
require("semver/functions/lt");
|
|
11
11
|
require("semver/functions/valid");
|
|
12
|
-
require("./index-
|
|
12
|
+
require("./index-0134922e.js");
|
|
13
13
|
require("react-dom/client");
|
|
14
14
|
require("@strapi/design-system");
|
|
15
15
|
require("invariant");
|
|
@@ -44,4 +44,4 @@ const ProtectedEditView = () => {
|
|
|
44
44
|
return /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: permissions.settings.webhooks.update, children: /* @__PURE__ */ jsxRuntime.jsx(index.EditView, {}) });
|
|
45
45
|
};
|
|
46
46
|
exports.default = ProtectedEditView;
|
|
47
|
-
//# sourceMappingURL=index-
|
|
47
|
+
//# sourceMappingURL=index-cdfb1568.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-cdfb1568.js","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedEditView/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 ProtectedEditView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.update}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedEditView;\n"],"names":["useSelector","selectAdminPermissions","jsx","CheckPagePermissions","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAcA,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAC,2BAAA,IAACC,qCAAqB,aAAa,YAAY,SAAS,SAAS,QAC/D,UAACD,2BAAA,IAAAE,MAAA,UAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;;"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
5
5
|
const reactRedux = require("react-redux");
|
|
6
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
6
|
+
const AuthenticatedApp = require("./AuthenticatedApp-26a57d48.js");
|
|
7
7
|
const designSystem = require("@strapi/design-system");
|
|
8
8
|
const reactIntl = require("react-intl");
|
|
9
9
|
const index = require("./index-88298941.js");
|
|
@@ -17,7 +17,7 @@ const Icons = require("@strapi/icons");
|
|
|
17
17
|
require("react");
|
|
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");
|
|
@@ -582,4 +582,4 @@ const ProtectedListPage = () => {
|
|
|
582
582
|
return /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: permissions.settings.auditLogs.main, children: /* @__PURE__ */ jsxRuntime.jsx(ListView, {}) });
|
|
583
583
|
};
|
|
584
584
|
exports.default = ProtectedListPage;
|
|
585
|
-
//# sourceMappingURL=index-
|
|
585
|
+
//# sourceMappingURL=index-cf87a6f0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-7739ddf5.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useFormatTimeStamp.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/getActionTypesDefaultMessages.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/ComboboxFilter/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/tableHeaders.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ProtectedListPage/index.js"],"sourcesContent":["import { useFetchClient, useNotification, useQueryParams } from '@strapi/helper-plugin';\nimport { useQuery } from 'react-query';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../../../../../admin/src/hooks/useAdminUsers';\n\nconst useAuditLogsData = ({ canReadAuditLogs, canReadUsers }) => {\n const { get } = useFetchClient();\n const { search } = useLocation();\n const toggleNotification = useNotification();\n const [{ query }] = useQueryParams();\n\n const queryOptions = {\n keepPreviousData: true,\n retry: false,\n staleTime: 1000 * 20, // 20 seconds\n onError: (error) => toggleNotification({ type: 'warning', message: error.message }),\n };\n\n const {\n users,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n ...queryOptions,\n enabled: canReadUsers,\n staleTime: 2 * (1000 * 60), // 2 minutes\n }\n );\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n } = useQuery(\n ['auditLogs', search],\n async () => {\n const { data } = await get(`/admin/audit-logs`, {\n params: query,\n });\n\n return data;\n },\n {\n ...queryOptions,\n enabled: canReadAuditLogs,\n }\n );\n\n return {\n auditLogs,\n users,\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n\nexport default useAuditLogsData;\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nconst useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n\nexport default useFormatTimeStamp;\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value) => {\n return actionTypes[value] || value;\n};\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\n\nconst ActionItem = ({ actionLabel, actionName }) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n\nActionItem.propTypes = {\n actionLabel: PropTypes.string.isRequired,\n actionName: PropTypes.string.isRequired,\n};\n\nexport default ActionItem;\n","import React from 'react';\n\nimport { Box, Flex, Grid, JSONInput, Loader, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nimport ActionItem from './ActionItem';\n\nconst ActionBody = ({ status, data, formattedDate }) => {\n const { formatMessage } = useIntl();\n\n if (status === 'loading') {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\n};\n\nActionBody.defaultProps = {\n data: {},\n};\n\nActionBody.propTypes = {\n status: PropTypes.oneOf(['idle', 'loading', 'error', 'success']).isRequired,\n data: PropTypes.shape({\n action: PropTypes.string,\n date: PropTypes.string,\n payload: PropTypes.object,\n user: PropTypes.object,\n }),\n formattedDate: PropTypes.string.isRequired,\n};\n\nexport default ActionBody;\n","import React from 'react';\n\nimport { ModalBody, ModalHeader, ModalLayout } from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useFetchClient, useNotification } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\nimport { useQuery } from 'react-query';\n\nimport useFormatTimeStamp from '../hooks/useFormatTimeStamp';\n\nimport ActionBody from './ActionBody';\n\nconst Modal = ({ handleClose, logId }) => {\n const { get } = useFetchClient();\n const toggleNotification = useNotification();\n\n const fetchAuditLog = async (id) => {\n const { data } = await get(`/admin/audit-logs/${id}`);\n\n if (!data) {\n throw new Error('Audit log not found');\n }\n\n return data;\n };\n\n const { data, status } = useQuery(['audit-log', logId], () => fetchAuditLog(logId), {\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n handleClose();\n },\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data ? formatTimeStamp(data.date) : '';\n\n return (\n <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <ModalBody>\n <ActionBody status={status} data={data} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\nModal.propTypes = {\n handleClose: PropTypes.func.isRequired,\n logId: PropTypes.string.isRequired,\n};\n\nexport default Modal;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 50,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\n","import React from 'react';\n\nimport { Flex, IconButton, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Eye } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport useFormatTimeStamp from '../hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nconst TableRows = ({ headers, rows, onOpenModal }) => {\n const { formatMessage } = useIntl();\n const formatTimeStamp = useFormatTimeStamp();\n\n const getCellValue = ({ type, value, model }) => {\n if (type === 'date') {\n return formatTimeStamp(value);\n }\n\n if (type === 'action') {\n return formatMessage(\n {\n id: `Settings.permissions.auditLogs.${value}`,\n defaultMessage: getDefaultMessage(value),\n },\n { model }\n );\n }\n\n return value || '-';\n };\n\n return (\n <Tbody>\n {rows.map((data) => {\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => onOpenModal(data.id),\n })}\n >\n {headers.map(({ key, name, cellFormatter }) => {\n return (\n <Td key={key}>\n <Typography textColor=\"neutral800\">\n {getCellValue({\n type: key,\n value: cellFormatter ? cellFormatter(data[name]) : data[name],\n model: data.payload?.model,\n })}\n </Typography>\n </Td>\n );\n })}\n <Td {...stopPropagation}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => onOpenModal(data.id)}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${data.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n rows: [],\n};\n\nTableRows.propTypes = {\n headers: PropTypes.array.isRequired,\n rows: PropTypes.array,\n onOpenModal: PropTypes.func.isRequired,\n};\n\nexport default TableRows;\n","import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst ComboboxFilter = ({ value, options, onChange }) => {\n const { formatMessage } = useIntl();\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n return (\n <Combobox aria-label={ariaLabel} value={value} onChange={onChange}>\n {options.map(({ label, customValue }) => {\n return (\n <ComboboxOption key={customValue} value={customValue}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nComboboxFilter.defaultProps = {\n value: null,\n};\n\nComboboxFilter.propTypes = {\n value: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n customValue: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default ComboboxFilter;\n","import ComboboxFilter from '../ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nconst customOperators = [\n {\n intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$eq', defaultMessage: 'is' },\n value: '$eq',\n },\n {\n intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' },\n value: '$ne',\n },\n];\n\nconst getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {\n const actionOptions = Object.keys(actionTypes).map((action) => {\n return {\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n customValue: action,\n };\n });\n\n const filters = [\n {\n name: 'action',\n metadatas: {\n customOperators,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n customInput: ComboboxFilter,\n options: actionOptions,\n },\n fieldSchema: { type: 'enumeration' },\n },\n {\n name: 'date',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n },\n fieldSchema: { type: 'datetime' },\n },\n ];\n\n if (canReadUsers && users) {\n const getDisplayNameFromUser = (user) => {\n if (user.username) {\n return user.username;\n }\n\n if (user.firstname && user.lastname) {\n return formatMessage(\n {\n id: 'Settings.permissions.auditLogs.user.fullname',\n defaultMessage: '{firstname} {lastname}',\n },\n {\n firstname: user.firstname,\n lastname: user.lastname,\n }\n );\n }\n\n return user.email;\n };\n\n const userOptions = users.map((user) => {\n return {\n label: getDisplayNameFromUser(user),\n // Combobox expects a string value\n customValue: user.id.toString(),\n };\n });\n\n return [\n ...filters,\n {\n name: 'user',\n metadatas: {\n customOperators,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n options: userOptions,\n customInput: ComboboxFilter,\n },\n fieldSchema: { type: 'relation', mainField: { name: 'id' } },\n },\n ];\n }\n\n return filters;\n};\n\nexport default getDisplayedFilters;\n","const tableHeaders = [\n {\n name: 'action',\n key: 'action',\n metadatas: {\n label: {\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n },\n sortable: true,\n },\n },\n {\n name: 'date',\n key: 'date',\n metadatas: {\n label: {\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n },\n sortable: true,\n },\n },\n {\n key: 'user',\n name: 'user',\n metadatas: {\n label: {\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n },\n sortable: false,\n },\n cellFormatter: (user) => (user ? user.displayName : ''),\n },\n];\n\nexport default tableHeaders;\n","import React from 'react';\n\nimport {\n ActionLayout,\n Box,\n ContentLayout,\n HeaderLayout,\n Layout,\n Main,\n} from '@strapi/design-system';\nimport {\n AnErrorOccurred,\n DynamicTable,\n SettingsPageTitle,\n useFocusWhenNavigate,\n useQueryParams,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport Filters from '../../../../../../../../admin/src/pages/SettingsPage/components/Filters';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\n\nimport useAuditLogsData from './hooks/useAuditLogsData';\nimport Modal from './Modal';\nimport PaginationFooter from './PaginationFooter';\nimport TableRows from './TableRows';\nimport getDisplayedFilters from './utils/getDisplayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n } = useRBAC({\n ...permissions.settings.auditLogs,\n readUsers: permissions.settings.users.read,\n });\n\n const [{ query }, setQuery] = useQueryParams();\n const { auditLogs, users, isLoading, hasError } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n useFocusWhenNavigate();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const title = formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n if (hasError) {\n return (\n <Layout>\n <ContentLayout>\n <Box paddingTop={8}>\n <AnErrorOccurred />\n </Box>\n </ContentLayout>\n </Layout>\n );\n }\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <ActionLayout startActions={<Filters displayedFilters={displayedFilters} />} />\n <ContentLayout canRead={canReadAuditLogs}>\n <DynamicTable\n contentType=\"Audit logs\"\n headers={headers}\n rows={auditLogs?.results || []}\n withBulkActions\n isLoading={isLoading}\n >\n <TableRows\n headers={headers}\n rows={auditLogs?.results || []}\n onOpenModal={(id) => setQuery({ id })}\n />\n </DynamicTable>\n <PaginationFooter pagination={auditLogs?.pagination} />\n </ContentLayout>\n {query?.id && <Modal handleClose={() => setQuery({ id: null }, 'remove')} logId={query.id} />}\n </Main>\n );\n};\n\nexport default ListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport ListView from '../ListView';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.auditLogs.main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["useFetchClient","useLocation","useNotification","useQueryParams","useAdminUsers","useQuery","useIntl","parseISO","Flex","jsx","Typography","PropTypes","Loader","jsxs","Fragment","Box","Grid","JSONInput","data","ModalLayout","ModalHeader","Breadcrumbs","Crumb","ModalBody","PageSizeURLQuery","PaginationURLQuery","Tbody","Tr","onRowClick","Td","stopPropagation","IconButton","Eye","Combobox","ComboboxOption","useSelector","selectAdminPermissions","useRBAC","useFocusWhenNavigate","Layout","ContentLayout","AnErrorOccurred","Main","SettingsPageTitle","HeaderLayout","ActionLayout","Filters","DynamicTable","CheckPagePermissions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-cf87a6f0.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useFormatTimeStamp.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/getActionTypesDefaultMessages.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/ComboboxFilter/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/tableHeaders.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ProtectedListPage/index.js"],"sourcesContent":["import { useFetchClient, useNotification, useQueryParams } from '@strapi/helper-plugin';\nimport { useQuery } from 'react-query';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../../../../../admin/src/hooks/useAdminUsers';\n\nconst useAuditLogsData = ({ canReadAuditLogs, canReadUsers }) => {\n const { get } = useFetchClient();\n const { search } = useLocation();\n const toggleNotification = useNotification();\n const [{ query }] = useQueryParams();\n\n const queryOptions = {\n keepPreviousData: true,\n retry: false,\n staleTime: 1000 * 20, // 20 seconds\n onError: (error) => toggleNotification({ type: 'warning', message: error.message }),\n };\n\n const {\n users,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n ...queryOptions,\n enabled: canReadUsers,\n staleTime: 2 * (1000 * 60), // 2 minutes\n }\n );\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n } = useQuery(\n ['auditLogs', search],\n async () => {\n const { data } = await get(`/admin/audit-logs`, {\n params: query,\n });\n\n return data;\n },\n {\n ...queryOptions,\n enabled: canReadAuditLogs,\n }\n );\n\n return {\n auditLogs,\n users,\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n\nexport default useAuditLogsData;\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nconst useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n\nexport default useFormatTimeStamp;\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value) => {\n return actionTypes[value] || value;\n};\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\n\nconst ActionItem = ({ actionLabel, actionName }) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n\nActionItem.propTypes = {\n actionLabel: PropTypes.string.isRequired,\n actionName: PropTypes.string.isRequired,\n};\n\nexport default ActionItem;\n","import React from 'react';\n\nimport { Box, Flex, Grid, JSONInput, Loader, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nimport ActionItem from './ActionItem';\n\nconst ActionBody = ({ status, data, formattedDate }) => {\n const { formatMessage } = useIntl();\n\n if (status === 'loading') {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\n};\n\nActionBody.defaultProps = {\n data: {},\n};\n\nActionBody.propTypes = {\n status: PropTypes.oneOf(['idle', 'loading', 'error', 'success']).isRequired,\n data: PropTypes.shape({\n action: PropTypes.string,\n date: PropTypes.string,\n payload: PropTypes.object,\n user: PropTypes.object,\n }),\n formattedDate: PropTypes.string.isRequired,\n};\n\nexport default ActionBody;\n","import React from 'react';\n\nimport { ModalBody, ModalHeader, ModalLayout } from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useFetchClient, useNotification } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\nimport { useQuery } from 'react-query';\n\nimport useFormatTimeStamp from '../hooks/useFormatTimeStamp';\n\nimport ActionBody from './ActionBody';\n\nconst Modal = ({ handleClose, logId }) => {\n const { get } = useFetchClient();\n const toggleNotification = useNotification();\n\n const fetchAuditLog = async (id) => {\n const { data } = await get(`/admin/audit-logs/${id}`);\n\n if (!data) {\n throw new Error('Audit log not found');\n }\n\n return data;\n };\n\n const { data, status } = useQuery(['audit-log', logId], () => fetchAuditLog(logId), {\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n handleClose();\n },\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data ? formatTimeStamp(data.date) : '';\n\n return (\n <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <ModalBody>\n <ActionBody status={status} data={data} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\nModal.propTypes = {\n handleClose: PropTypes.func.isRequired,\n logId: PropTypes.string.isRequired,\n};\n\nexport default Modal;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 50,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\n","import React from 'react';\n\nimport { Flex, IconButton, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Eye } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport useFormatTimeStamp from '../hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nconst TableRows = ({ headers, rows, onOpenModal }) => {\n const { formatMessage } = useIntl();\n const formatTimeStamp = useFormatTimeStamp();\n\n const getCellValue = ({ type, value, model }) => {\n if (type === 'date') {\n return formatTimeStamp(value);\n }\n\n if (type === 'action') {\n return formatMessage(\n {\n id: `Settings.permissions.auditLogs.${value}`,\n defaultMessage: getDefaultMessage(value),\n },\n { model }\n );\n }\n\n return value || '-';\n };\n\n return (\n <Tbody>\n {rows.map((data) => {\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => onOpenModal(data.id),\n })}\n >\n {headers.map(({ key, name, cellFormatter }) => {\n return (\n <Td key={key}>\n <Typography textColor=\"neutral800\">\n {getCellValue({\n type: key,\n value: cellFormatter ? cellFormatter(data[name]) : data[name],\n model: data.payload?.model,\n })}\n </Typography>\n </Td>\n );\n })}\n <Td {...stopPropagation}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => onOpenModal(data.id)}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${data.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n rows: [],\n};\n\nTableRows.propTypes = {\n headers: PropTypes.array.isRequired,\n rows: PropTypes.array,\n onOpenModal: PropTypes.func.isRequired,\n};\n\nexport default TableRows;\n","import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst ComboboxFilter = ({ value, options, onChange }) => {\n const { formatMessage } = useIntl();\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n return (\n <Combobox aria-label={ariaLabel} value={value} onChange={onChange}>\n {options.map(({ label, customValue }) => {\n return (\n <ComboboxOption key={customValue} value={customValue}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nComboboxFilter.defaultProps = {\n value: null,\n};\n\nComboboxFilter.propTypes = {\n value: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n customValue: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default ComboboxFilter;\n","import ComboboxFilter from '../ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nconst customOperators = [\n {\n intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$eq', defaultMessage: 'is' },\n value: '$eq',\n },\n {\n intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' },\n value: '$ne',\n },\n];\n\nconst getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {\n const actionOptions = Object.keys(actionTypes).map((action) => {\n return {\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n customValue: action,\n };\n });\n\n const filters = [\n {\n name: 'action',\n metadatas: {\n customOperators,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n customInput: ComboboxFilter,\n options: actionOptions,\n },\n fieldSchema: { type: 'enumeration' },\n },\n {\n name: 'date',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n },\n fieldSchema: { type: 'datetime' },\n },\n ];\n\n if (canReadUsers && users) {\n const getDisplayNameFromUser = (user) => {\n if (user.username) {\n return user.username;\n }\n\n if (user.firstname && user.lastname) {\n return formatMessage(\n {\n id: 'Settings.permissions.auditLogs.user.fullname',\n defaultMessage: '{firstname} {lastname}',\n },\n {\n firstname: user.firstname,\n lastname: user.lastname,\n }\n );\n }\n\n return user.email;\n };\n\n const userOptions = users.map((user) => {\n return {\n label: getDisplayNameFromUser(user),\n // Combobox expects a string value\n customValue: user.id.toString(),\n };\n });\n\n return [\n ...filters,\n {\n name: 'user',\n metadatas: {\n customOperators,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n options: userOptions,\n customInput: ComboboxFilter,\n },\n fieldSchema: { type: 'relation', mainField: { name: 'id' } },\n },\n ];\n }\n\n return filters;\n};\n\nexport default getDisplayedFilters;\n","const tableHeaders = [\n {\n name: 'action',\n key: 'action',\n metadatas: {\n label: {\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n },\n sortable: true,\n },\n },\n {\n name: 'date',\n key: 'date',\n metadatas: {\n label: {\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n },\n sortable: true,\n },\n },\n {\n key: 'user',\n name: 'user',\n metadatas: {\n label: {\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n },\n sortable: false,\n },\n cellFormatter: (user) => (user ? user.displayName : ''),\n },\n];\n\nexport default tableHeaders;\n","import React from 'react';\n\nimport {\n ActionLayout,\n Box,\n ContentLayout,\n HeaderLayout,\n Layout,\n Main,\n} from '@strapi/design-system';\nimport {\n AnErrorOccurred,\n DynamicTable,\n SettingsPageTitle,\n useFocusWhenNavigate,\n useQueryParams,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport Filters from '../../../../../../../../admin/src/pages/SettingsPage/components/Filters';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\n\nimport useAuditLogsData from './hooks/useAuditLogsData';\nimport Modal from './Modal';\nimport PaginationFooter from './PaginationFooter';\nimport TableRows from './TableRows';\nimport getDisplayedFilters from './utils/getDisplayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n } = useRBAC({\n ...permissions.settings.auditLogs,\n readUsers: permissions.settings.users.read,\n });\n\n const [{ query }, setQuery] = useQueryParams();\n const { auditLogs, users, isLoading, hasError } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n useFocusWhenNavigate();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const title = formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n if (hasError) {\n return (\n <Layout>\n <ContentLayout>\n <Box paddingTop={8}>\n <AnErrorOccurred />\n </Box>\n </ContentLayout>\n </Layout>\n );\n }\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <ActionLayout startActions={<Filters displayedFilters={displayedFilters} />} />\n <ContentLayout canRead={canReadAuditLogs}>\n <DynamicTable\n contentType=\"Audit logs\"\n headers={headers}\n rows={auditLogs?.results || []}\n withBulkActions\n isLoading={isLoading}\n >\n <TableRows\n headers={headers}\n rows={auditLogs?.results || []}\n onOpenModal={(id) => setQuery({ id })}\n />\n </DynamicTable>\n <PaginationFooter pagination={auditLogs?.pagination} />\n </ContentLayout>\n {query?.id && <Modal handleClose={() => setQuery({ id: null }, 'remove')} logId={query.id} />}\n </Main>\n );\n};\n\nexport default ListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport ListView from '../ListView';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.auditLogs.main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["useFetchClient","useLocation","useNotification","useQueryParams","useAdminUsers","useQuery","useIntl","parseISO","Flex","jsx","Typography","PropTypes","Loader","jsxs","Fragment","Box","Grid","JSONInput","data","ModalLayout","ModalHeader","Breadcrumbs","Crumb","ModalBody","PageSizeURLQuery","PaginationURLQuery","Tbody","Tr","onRowClick","Td","stopPropagation","IconButton","Eye","Combobox","ComboboxOption","useSelector","selectAdminPermissions","useRBAC","useFocusWhenNavigate","Layout","ContentLayout","AnErrorOccurred","Main","SettingsPageTitle","HeaderLayout","ActionLayout","Filters","DynamicTable","CheckPagePermissions"],"mappings":"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"}
|
|
@@ -6,10 +6,10 @@ import { useRBACProvider, useAppInfo, useStrapiApp, hasPermissions, useTracking,
|
|
|
6
6
|
import { Helmet } from "react-helmet";
|
|
7
7
|
import { useIntl } from "react-intl";
|
|
8
8
|
import { useLocation, NavLink, useParams, Redirect, Switch, Route } from "react-router-dom";
|
|
9
|
-
import { Q as SETTINGS_LINKS_CE, p as useEnterprise, u as useConfiguration, d as createRoute } from "./index-
|
|
9
|
+
import { Q as SETTINGS_LINKS_CE, p as useEnterprise, u as useConfiguration, d as createRoute } from "./index-cd461a87.mjs";
|
|
10
10
|
import sortBy from "lodash/sortBy";
|
|
11
11
|
import { useSelector } from "react-redux";
|
|
12
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
12
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-332b40a8.mjs";
|
|
13
13
|
import { SubNav, SubNavHeader, SubNavSections, SubNavSection, SubNavLink } from "@strapi/design-system/v2";
|
|
14
14
|
import { Lock, PicturePlus, Plus, Refresh, Check, ExternalLink } from "@strapi/icons";
|
|
15
15
|
import PropTypes from "prop-types";
|
|
@@ -198,7 +198,7 @@ SettingsNav.propTypes = {
|
|
|
198
198
|
const ROUTES_CE = [
|
|
199
199
|
{
|
|
200
200
|
async Component() {
|
|
201
|
-
const component = await import("./index-
|
|
201
|
+
const component = await import("./index-5502f0f9.mjs");
|
|
202
202
|
return component;
|
|
203
203
|
},
|
|
204
204
|
to: "/settings/roles",
|
|
@@ -206,7 +206,7 @@ const ROUTES_CE = [
|
|
|
206
206
|
},
|
|
207
207
|
{
|
|
208
208
|
async Component() {
|
|
209
|
-
const component = await import("./index-
|
|
209
|
+
const component = await import("./index-a1c1b833.mjs");
|
|
210
210
|
return component;
|
|
211
211
|
},
|
|
212
212
|
to: "/settings/roles/duplicate/:id",
|
|
@@ -214,7 +214,7 @@ const ROUTES_CE = [
|
|
|
214
214
|
},
|
|
215
215
|
{
|
|
216
216
|
async Component() {
|
|
217
|
-
const component = await import("./index-
|
|
217
|
+
const component = await import("./index-a1c1b833.mjs");
|
|
218
218
|
return component;
|
|
219
219
|
},
|
|
220
220
|
to: "/settings/roles/new",
|
|
@@ -222,7 +222,7 @@ const ROUTES_CE = [
|
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
224
|
async Component() {
|
|
225
|
-
const component = await import("./index-
|
|
225
|
+
const component = await import("./index-6999385d.mjs");
|
|
226
226
|
return component;
|
|
227
227
|
},
|
|
228
228
|
to: "/settings/roles/:id",
|
|
@@ -230,7 +230,7 @@ const ROUTES_CE = [
|
|
|
230
230
|
},
|
|
231
231
|
{
|
|
232
232
|
async Component() {
|
|
233
|
-
const component = await import("./index-
|
|
233
|
+
const component = await import("./index-9e3fc4fe.mjs").then((n) => n.i);
|
|
234
234
|
return component;
|
|
235
235
|
},
|
|
236
236
|
to: "/settings/users",
|
|
@@ -238,7 +238,7 @@ const ROUTES_CE = [
|
|
|
238
238
|
},
|
|
239
239
|
{
|
|
240
240
|
async Component() {
|
|
241
|
-
const component = await import("./index-
|
|
241
|
+
const component = await import("./index-486f5166.mjs");
|
|
242
242
|
return component;
|
|
243
243
|
},
|
|
244
244
|
to: "/settings/users/:id",
|
|
@@ -246,7 +246,7 @@ const ROUTES_CE = [
|
|
|
246
246
|
},
|
|
247
247
|
{
|
|
248
248
|
async Component() {
|
|
249
|
-
const component = await import("./index-
|
|
249
|
+
const component = await import("./index-c9f9b444.mjs");
|
|
250
250
|
return component;
|
|
251
251
|
},
|
|
252
252
|
to: "/settings/webhooks/create",
|
|
@@ -254,7 +254,7 @@ const ROUTES_CE = [
|
|
|
254
254
|
},
|
|
255
255
|
{
|
|
256
256
|
async Component() {
|
|
257
|
-
const component = await import("./index-
|
|
257
|
+
const component = await import("./index-abcea3d3.mjs");
|
|
258
258
|
return component;
|
|
259
259
|
},
|
|
260
260
|
to: "/settings/webhooks/:id",
|
|
@@ -262,7 +262,7 @@ const ROUTES_CE = [
|
|
|
262
262
|
},
|
|
263
263
|
{
|
|
264
264
|
async Component() {
|
|
265
|
-
const component = await import("./index-
|
|
265
|
+
const component = await import("./index-caecca36.mjs");
|
|
266
266
|
return component;
|
|
267
267
|
},
|
|
268
268
|
to: "/settings/webhooks",
|
|
@@ -270,7 +270,7 @@ const ROUTES_CE = [
|
|
|
270
270
|
},
|
|
271
271
|
{
|
|
272
272
|
async Component() {
|
|
273
|
-
const component = await import("./index-
|
|
273
|
+
const component = await import("./index-22fbd8cc.mjs");
|
|
274
274
|
return component;
|
|
275
275
|
},
|
|
276
276
|
to: "/settings/api-tokens",
|
|
@@ -278,7 +278,7 @@ const ROUTES_CE = [
|
|
|
278
278
|
},
|
|
279
279
|
{
|
|
280
280
|
async Component() {
|
|
281
|
-
const component = await import("./index-
|
|
281
|
+
const component = await import("./index-14462502.mjs");
|
|
282
282
|
return component;
|
|
283
283
|
},
|
|
284
284
|
to: "/settings/api-tokens/create",
|
|
@@ -286,7 +286,7 @@ const ROUTES_CE = [
|
|
|
286
286
|
},
|
|
287
287
|
{
|
|
288
288
|
async Component() {
|
|
289
|
-
const component = await import("./index-
|
|
289
|
+
const component = await import("./index-d7bc095b.mjs");
|
|
290
290
|
return component;
|
|
291
291
|
},
|
|
292
292
|
to: "/settings/api-tokens/:id",
|
|
@@ -294,7 +294,7 @@ const ROUTES_CE = [
|
|
|
294
294
|
},
|
|
295
295
|
{
|
|
296
296
|
async Component() {
|
|
297
|
-
const component = await import("./index-
|
|
297
|
+
const component = await import("./index-72195b26.mjs");
|
|
298
298
|
return component;
|
|
299
299
|
},
|
|
300
300
|
to: "/settings/transfer-tokens/create",
|
|
@@ -302,7 +302,7 @@ const ROUTES_CE = [
|
|
|
302
302
|
},
|
|
303
303
|
{
|
|
304
304
|
async Component() {
|
|
305
|
-
const component = await import("./index-
|
|
305
|
+
const component = await import("./index-c202e78f.mjs");
|
|
306
306
|
return component;
|
|
307
307
|
},
|
|
308
308
|
to: "/settings/transfer-tokens",
|
|
@@ -310,7 +310,7 @@ const ROUTES_CE = [
|
|
|
310
310
|
},
|
|
311
311
|
{
|
|
312
312
|
async Component() {
|
|
313
|
-
const component = await import("./index-
|
|
313
|
+
const component = await import("./index-d4473456.mjs");
|
|
314
314
|
return component;
|
|
315
315
|
},
|
|
316
316
|
to: "/settings/transfer-tokens/:id",
|
|
@@ -1189,7 +1189,7 @@ const ApplicationInfosPage = () => {
|
|
|
1189
1189
|
} = useAppInfo();
|
|
1190
1190
|
const AdminSeatInfo = useEnterprise(
|
|
1191
1191
|
AdminSeatInfoCE,
|
|
1192
|
-
async () => (await import("./index-
|
|
1192
|
+
async () => (await import("./index-ef5a0b8f.mjs")).AdminSeatInfoEE
|
|
1193
1193
|
);
|
|
1194
1194
|
const {
|
|
1195
1195
|
allowedActions: { canRead, canUpdate }
|
|
@@ -1386,7 +1386,7 @@ function SettingsPage() {
|
|
|
1386
1386
|
const { isLoading, menu } = useSettingsMenu();
|
|
1387
1387
|
const routes = useEnterprise(
|
|
1388
1388
|
ROUTES_CE,
|
|
1389
|
-
async () => (await import("./constants-
|
|
1389
|
+
async () => (await import("./constants-b9efe215.mjs")).ROUTES_EE,
|
|
1390
1390
|
{
|
|
1391
1391
|
combine(ceRoutes, eeRoutes) {
|
|
1392
1392
|
return [...ceRoutes, ...eeRoutes];
|
|
@@ -1429,4 +1429,4 @@ function SettingsPage() {
|
|
|
1429
1429
|
export {
|
|
1430
1430
|
SettingsPage
|
|
1431
1431
|
};
|
|
1432
|
-
//# sourceMappingURL=index-
|
|
1432
|
+
//# sourceMappingURL=index-d33930a8.mjs.map
|