@strapi/admin 4.15.5-alpha.4 → 4.15.5-alpha.6
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-31e6418d.js → AuthenticatedApp-052b1f3f.js} +21 -21
- package/dist/_chunks/{AuthenticatedApp-31e6418d.js.map → AuthenticatedApp-052b1f3f.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-52d37e32.mjs → AuthenticatedApp-4cc69f67.mjs} +21 -21
- package/dist/_chunks/{AuthenticatedApp-52d37e32.mjs.map → AuthenticatedApp-4cc69f67.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-0f953b49.js → HomePage-2e941916.js} +4 -4
- package/dist/_chunks/{HomePage-0f953b49.js.map → HomePage-2e941916.js.map} +1 -1
- package/dist/_chunks/{HomePage-1e7b2e66.mjs → HomePage-64aa34e8.mjs} +4 -4
- package/dist/_chunks/{HomePage-1e7b2e66.mjs.map → HomePage-64aa34e8.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-a2c12504.mjs → HomePage-7a55e445.mjs} +4 -4
- package/dist/_chunks/{HomePage-a2c12504.mjs.map → HomePage-7a55e445.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-d0f7fc69.js → HomePage-8cb64a1d.js} +4 -4
- package/dist/_chunks/{HomePage-d0f7fc69.js.map → HomePage-8cb64a1d.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-46e14507.js → InstalledPluginsPage-5209e974.js} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-46e14507.js.map → InstalledPluginsPage-5209e974.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-3fc71003.mjs → InstalledPluginsPage-dff1be98.mjs} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-3fc71003.mjs.map → InstalledPluginsPage-dff1be98.mjs.map} +1 -1
- package/dist/_chunks/{Login-550366a9.js → Login-e0373d0e.js} +2 -2
- package/dist/_chunks/{Login-550366a9.js.map → Login-e0373d0e.js.map} +1 -1
- package/dist/_chunks/{Login-57e0fd9c.mjs → Login-f60d0115.mjs} +2 -2
- package/dist/_chunks/{Login-57e0fd9c.mjs.map → Login-f60d0115.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-2505749a.mjs → MarketplacePage-602fc4ee.mjs} +3 -3
- package/dist/_chunks/{MarketplacePage-2505749a.mjs.map → MarketplacePage-602fc4ee.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-138e7b39.js → MarketplacePage-62570c61.js} +3 -3
- package/dist/_chunks/{MarketplacePage-138e7b39.js.map → MarketplacePage-62570c61.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-bd50b4f3.mjs → ProfilePage-1d607e48.mjs} +3 -3
- package/dist/_chunks/{ProfilePage-bd50b4f3.mjs.map → ProfilePage-1d607e48.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-23b8a29f.js → ProfilePage-e7c7f60a.js} +3 -3
- package/dist/_chunks/{ProfilePage-23b8a29f.js.map → ProfilePage-e7c7f60a.js.map} +1 -1
- package/dist/_chunks/{constants-362e760f.mjs → constants-0215e710.mjs} +6 -6
- package/dist/_chunks/{constants-362e760f.mjs.map → constants-0215e710.mjs.map} +1 -1
- package/dist/_chunks/{constants-88f9d2a0.js → constants-1aae728c.js} +3 -3
- package/dist/_chunks/{constants-88f9d2a0.js.map → constants-1aae728c.js.map} +1 -1
- package/dist/_chunks/{constants-6dcb43aa.mjs → constants-428b48c7.mjs} +2 -2
- package/dist/_chunks/{constants-6dcb43aa.mjs.map → constants-428b48c7.mjs.map} +1 -1
- package/dist/_chunks/{constants-e2c67ec8.mjs → constants-6128de70.mjs} +5 -5
- package/dist/_chunks/{constants-e2c67ec8.mjs.map → constants-6128de70.mjs.map} +1 -1
- package/dist/_chunks/{constants-59bcff2e.mjs → constants-6e912136.mjs} +3 -3
- package/dist/_chunks/{constants-59bcff2e.mjs.map → constants-6e912136.mjs.map} +1 -1
- package/dist/_chunks/{constants-ac7899ed.js → constants-873f0b02.js} +5 -5
- package/dist/_chunks/{constants-ac7899ed.js.map → constants-873f0b02.js.map} +1 -1
- package/dist/_chunks/{constants-4539f7ac.js → constants-c29c58fe.js} +6 -6
- package/dist/_chunks/{constants-4539f7ac.js.map → constants-c29c58fe.js.map} +1 -1
- package/dist/_chunks/{constants-06897e38.js → constants-dde6f1d0.js} +2 -2
- package/dist/_chunks/{constants-06897e38.js.map → constants-dde6f1d0.js.map} +1 -1
- package/dist/_chunks/{index-be02d51c.js → index-011c80df.js} +20 -20
- package/dist/_chunks/{index-be02d51c.js.map → index-011c80df.js.map} +1 -1
- package/dist/_chunks/{index-70189e76.mjs → index-098cfdc0.mjs} +3 -3
- package/dist/_chunks/{index-70189e76.mjs.map → index-098cfdc0.mjs.map} +1 -1
- package/dist/_chunks/{index-aceb13c1.mjs → index-09f50ad7.mjs} +4 -4
- package/dist/_chunks/{index-aceb13c1.mjs.map → index-09f50ad7.mjs.map} +1 -1
- package/dist/_chunks/{index-19b1984d.js → index-0dcf223b.js} +2 -2
- package/dist/_chunks/{index-19b1984d.js.map → index-0dcf223b.js.map} +1 -1
- package/dist/_chunks/{index-23925f10.mjs → index-0dd93c2e.mjs} +2 -2
- package/dist/_chunks/{index-23925f10.mjs.map → index-0dd93c2e.mjs.map} +1 -1
- package/dist/_chunks/{index-ce41b6f0.mjs → index-0e6b3168.mjs} +4 -4
- package/dist/_chunks/{index-ce41b6f0.mjs.map → index-0e6b3168.mjs.map} +1 -1
- package/dist/_chunks/{index-dc4938ad.mjs → index-18c52895.mjs} +5 -5
- package/dist/_chunks/{index-dc4938ad.mjs.map → index-18c52895.mjs.map} +1 -1
- package/dist/_chunks/{index-133699a3.js → index-19517b07.js} +4 -4
- package/dist/_chunks/{index-133699a3.js.map → index-19517b07.js.map} +1 -1
- package/dist/_chunks/{index-bb22dbbc.mjs → index-19bf0d84.mjs} +3 -3
- package/dist/_chunks/{index-bb22dbbc.mjs.map → index-19bf0d84.mjs.map} +1 -1
- package/dist/_chunks/{index-36a7c525.js → index-22d25b03.js} +3 -3
- package/dist/_chunks/{index-36a7c525.js.map → index-22d25b03.js.map} +1 -1
- package/dist/_chunks/{index-3a96c79f.mjs → index-25f64a5b.mjs} +3 -3
- package/dist/_chunks/{index-3a96c79f.mjs.map → index-25f64a5b.mjs.map} +1 -1
- package/dist/_chunks/{index-628c5937.js → index-2ee9157f.js} +8 -8
- package/dist/_chunks/{index-628c5937.js.map → index-2ee9157f.js.map} +1 -1
- package/dist/_chunks/{index-cd6b99a8.js → index-347f52cd.js} +5 -5
- package/dist/_chunks/{index-cd6b99a8.js.map → index-347f52cd.js.map} +1 -1
- package/dist/_chunks/{index-c36d6802.js → index-3890a641.js} +3 -3
- package/dist/_chunks/{index-c36d6802.js.map → index-3890a641.js.map} +1 -1
- package/dist/_chunks/{index-a0af8beb.js → index-3b7eba5f.js} +3 -3
- package/dist/_chunks/{index-a0af8beb.js.map → index-3b7eba5f.js.map} +1 -1
- package/dist/_chunks/{index-1a7cc203.mjs → index-3fdbcbff.mjs} +3 -3
- package/dist/_chunks/{index-1a7cc203.mjs.map → index-3fdbcbff.mjs.map} +1 -1
- package/dist/_chunks/{index-898ba1c6.js → index-3fe35214.js} +3 -3
- package/dist/_chunks/{index-898ba1c6.js.map → index-3fe35214.js.map} +1 -1
- package/dist/_chunks/{index-0b787ac1.js → index-423d7707.js} +5 -5
- package/dist/_chunks/{index-0b787ac1.js.map → index-423d7707.js.map} +1 -1
- package/dist/_chunks/{index-2c76e5e2.js → index-48824a39.js} +3 -3
- package/dist/_chunks/{index-2c76e5e2.js.map → index-48824a39.js.map} +1 -1
- package/dist/_chunks/{index-ff9d30ef.js → index-4c9d7545.js} +5 -5
- package/dist/_chunks/{index-ff9d30ef.js.map → index-4c9d7545.js.map} +1 -1
- package/dist/_chunks/{index-2b48526d.mjs → index-50a55783.mjs} +5 -5
- package/dist/_chunks/{index-2b48526d.mjs.map → index-50a55783.mjs.map} +1 -1
- package/dist/_chunks/{index-1a3e997a.mjs → index-55321986.mjs} +8 -8
- package/dist/_chunks/{index-1a3e997a.mjs.map → index-55321986.mjs.map} +1 -1
- package/dist/_chunks/{index-3be46ca9.mjs → index-56931941.mjs} +3 -3
- package/dist/_chunks/{index-3be46ca9.mjs.map → index-56931941.mjs.map} +1 -1
- package/dist/_chunks/{index-03e8b9e3.mjs → index-58bbc57f.mjs} +3 -3
- package/dist/_chunks/{index-03e8b9e3.mjs.map → index-58bbc57f.mjs.map} +1 -1
- package/dist/_chunks/{index-4b8c01d4.js → index-65f3f3b1.js} +2 -2
- package/dist/_chunks/{index-4b8c01d4.js.map → index-65f3f3b1.js.map} +1 -1
- package/dist/_chunks/{index-6db2b431.js → index-70a326dc.js} +5 -5
- package/dist/_chunks/{index-6db2b431.js.map → index-70a326dc.js.map} +1 -1
- package/dist/_chunks/{index-148939b0.js → index-72c7683c.js} +4 -4
- package/dist/_chunks/{index-148939b0.js.map → index-72c7683c.js.map} +1 -1
- package/dist/_chunks/{index-6e44aef9.js → index-753c6b59.js} +3 -3
- package/dist/_chunks/{index-6e44aef9.js.map → index-753c6b59.js.map} +1 -1
- package/dist/_chunks/{index-fae4b277.mjs → index-75a43800.mjs} +4 -4
- package/dist/_chunks/{index-fae4b277.mjs.map → index-75a43800.mjs.map} +1 -1
- package/dist/_chunks/{index-d63b0b91.js → index-77e6bb8d.js} +4 -4
- package/dist/_chunks/{index-d63b0b91.js.map → index-77e6bb8d.js.map} +1 -1
- package/dist/_chunks/{index-5113c6be.mjs → index-7f8a49c1.mjs} +2 -2
- package/dist/_chunks/{index-5113c6be.mjs.map → index-7f8a49c1.mjs.map} +1 -1
- package/dist/_chunks/{index-994d2c5d.mjs → index-84c3bfeb.mjs} +2 -2
- package/dist/_chunks/{index-994d2c5d.mjs.map → index-84c3bfeb.mjs.map} +1 -1
- package/dist/_chunks/{index-5c19f439.js → index-85026f16.js} +5 -5
- package/dist/_chunks/{index-5c19f439.js.map → index-85026f16.js.map} +1 -1
- package/dist/_chunks/{index-c9e68296.mjs → index-86db271c.mjs} +5 -5
- package/dist/_chunks/{index-c9e68296.mjs.map → index-86db271c.mjs.map} +1 -1
- package/dist/_chunks/{index-be8eb534.js → index-88a630d3.js} +3 -3
- package/dist/_chunks/{index-be8eb534.js.map → index-88a630d3.js.map} +1 -1
- package/dist/_chunks/{index-91ef29b3.mjs → index-8c49ec55.mjs} +3 -3
- package/dist/_chunks/{index-91ef29b3.mjs.map → index-8c49ec55.mjs.map} +1 -1
- package/dist/_chunks/{index-15c76f0b.mjs → index-8ddc40ed.mjs} +4 -4
- package/dist/_chunks/{index-15c76f0b.mjs.map → index-8ddc40ed.mjs.map} +1 -1
- package/dist/_chunks/{index-24b626a6.js → index-9214b657.js} +3 -3
- package/dist/_chunks/{index-24b626a6.js.map → index-9214b657.js.map} +1 -1
- package/dist/_chunks/{index-58ffc071.js → index-95aa46db.js} +3 -3
- package/dist/_chunks/{index-58ffc071.js.map → index-95aa46db.js.map} +1 -1
- package/dist/_chunks/{index-8bca9e4c.mjs → index-a9047c13.mjs} +4 -4
- package/dist/_chunks/{index-8bca9e4c.mjs.map → index-a9047c13.mjs.map} +1 -1
- package/dist/_chunks/{index-4fef292a.mjs → index-ab4e350f.mjs} +3 -3
- package/dist/_chunks/{index-4fef292a.mjs.map → index-ab4e350f.mjs.map} +1 -1
- package/dist/_chunks/{index-9195720c.js → index-ac37ca84.js} +5 -5
- package/dist/_chunks/{index-9195720c.js.map → index-ac37ca84.js.map} +1 -1
- package/dist/_chunks/{index-aee95cda.js → index-ae4b769d.js} +3 -3
- package/dist/_chunks/{index-aee95cda.js.map → index-ae4b769d.js.map} +1 -1
- package/dist/_chunks/{index-4544af4c.mjs → index-af4b6c84.mjs} +20 -20
- package/dist/_chunks/{index-4544af4c.mjs.map → index-af4b6c84.mjs.map} +1 -1
- package/dist/_chunks/{index-9f8605e5.mjs → index-b0989259.mjs} +3 -3
- package/dist/_chunks/{index-9f8605e5.mjs.map → index-b0989259.mjs.map} +1 -1
- package/dist/_chunks/{index-64a156de.js → index-b45bf5b8.js} +3 -3
- package/dist/_chunks/{index-64a156de.js.map → index-b45bf5b8.js.map} +1 -1
- package/dist/_chunks/{index-610889c4.mjs → index-b8295ba1.mjs} +4 -4
- package/dist/_chunks/{index-610889c4.mjs.map → index-b8295ba1.mjs.map} +1 -1
- package/dist/_chunks/{index-b17c7874.mjs → index-c3f0206f.mjs} +3 -3
- package/dist/_chunks/{index-b17c7874.mjs.map → index-c3f0206f.mjs.map} +1 -1
- package/dist/_chunks/{index-074a5de8.js → index-c4cdb3d2.js} +2 -2
- package/dist/_chunks/{index-074a5de8.js.map → index-c4cdb3d2.js.map} +1 -1
- package/dist/_chunks/{index-6b1148f6.js → index-cb321951.js} +4 -4
- package/dist/_chunks/{index-6b1148f6.js.map → index-cb321951.js.map} +1 -1
- package/dist/_chunks/{index-13ab14ec.mjs → index-cce3ffb3.mjs} +3 -3
- package/dist/_chunks/{index-13ab14ec.mjs.map → index-cce3ffb3.mjs.map} +1 -1
- package/dist/_chunks/{index-9deb8ccb.js → index-cdaa6174.js} +4 -4
- package/dist/_chunks/{index-9deb8ccb.js.map → index-cdaa6174.js.map} +1 -1
- package/dist/_chunks/{index-eb59cabf.js → index-d155c4c0.js} +3 -3
- package/dist/_chunks/{index-eb59cabf.js.map → index-d155c4c0.js.map} +1 -1
- package/dist/_chunks/{index-67a35378.mjs → index-d81aa061.mjs} +3 -3
- package/dist/_chunks/{index-67a35378.mjs.map → index-d81aa061.mjs.map} +1 -1
- package/dist/_chunks/{index-8cafda81.js → index-d95b6d21.js} +4 -4
- package/dist/_chunks/{index-8cafda81.js.map → index-d95b6d21.js.map} +1 -1
- package/dist/_chunks/{index-d3dea80c.js → index-dd0a8ff3.js} +6 -6
- package/dist/_chunks/{index-d3dea80c.js.map → index-dd0a8ff3.js.map} +1 -1
- package/dist/_chunks/{index-ea43b165.mjs → index-dddefc45.mjs} +5 -5
- package/dist/_chunks/{index-ea43b165.mjs.map → index-dddefc45.mjs.map} +1 -1
- package/dist/_chunks/{index-c59a117e.mjs → index-e1e11ca2.mjs} +3 -3
- package/dist/_chunks/{index-c59a117e.mjs.map → index-e1e11ca2.mjs.map} +1 -1
- package/dist/_chunks/{index-c45d5f19.mjs → index-e38dc1b2.mjs} +4 -4
- package/dist/_chunks/{index-c45d5f19.mjs.map → index-e38dc1b2.mjs.map} +1 -1
- package/dist/_chunks/{index-0778959c.mjs → index-e9697692.mjs} +6 -6
- package/dist/_chunks/{index-0778959c.mjs.map → index-e9697692.mjs.map} +1 -1
- package/dist/_chunks/{index-02064a74.js → index-eefc7852.js} +3 -3
- package/dist/_chunks/{index-02064a74.js.map → index-eefc7852.js.map} +1 -1
- package/dist/_chunks/{index-9eb4c34d.mjs → index-f4138f76.mjs} +5 -5
- package/dist/_chunks/{index-9eb4c34d.mjs.map → index-f4138f76.mjs.map} +1 -1
- package/dist/_chunks/{index-86172b2d.js → index-fc62e1c6.js} +4 -4
- package/dist/_chunks/{index-86172b2d.js.map → index-fc62e1c6.js.map} +1 -1
- package/dist/_chunks/{index-59880344.mjs → index-fd85d188.mjs} +5 -5
- package/dist/_chunks/{index-59880344.mjs.map → index-fd85d188.mjs.map} +1 -1
- package/dist/_chunks/{schema-e3080441.js → schema-93c4fc79.js} +2 -2
- package/dist/_chunks/{schema-e3080441.js.map → schema-93c4fc79.js.map} +1 -1
- package/dist/_chunks/{schema-549f8236.mjs → schema-db83441c.mjs} +2 -2
- package/dist/_chunks/{schema-549f8236.mjs.map → schema-db83441c.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-7bff41ac.mjs → validateWorkflow-1dc51587.mjs} +3 -3
- package/dist/_chunks/{validateWorkflow-7bff41ac.mjs.map → validateWorkflow-1dc51587.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-a7311af1.js → validateWorkflow-8581e095.js} +3 -3
- package/dist/_chunks/{validateWorkflow-a7311af1.js.map → validateWorkflow-8581e095.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +12 -12
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const index = require("./index-
|
|
4
|
+
const index = require("./index-dd0a8ff3.js");
|
|
5
5
|
const useLicenseLimitNotification = require("./useLicenseLimitNotification-8a4d7fc1.js");
|
|
6
6
|
require("@strapi/helper-plugin");
|
|
7
7
|
require("react-redux");
|
|
8
|
-
require("./AuthenticatedApp-
|
|
8
|
+
require("./AuthenticatedApp-052b1f3f.js");
|
|
9
9
|
require("react");
|
|
10
10
|
require("react-query");
|
|
11
11
|
require("semver/functions/lt");
|
|
12
12
|
require("semver/functions/valid");
|
|
13
|
-
require("./index-
|
|
13
|
+
require("./index-19517b07.js");
|
|
14
14
|
require("react-dom/client");
|
|
15
15
|
require("@strapi/design-system");
|
|
16
16
|
require("invariant");
|
|
@@ -40,7 +40,7 @@ require("lodash/cloneDeep");
|
|
|
40
40
|
require("./useAdminUsers-05d6b26a.js");
|
|
41
41
|
require("./index-88298941.js");
|
|
42
42
|
require("prop-types");
|
|
43
|
-
require("./index-
|
|
43
|
+
require("./index-c4cdb3d2.js");
|
|
44
44
|
require("lodash/isNil");
|
|
45
45
|
require("./useLicenseLimits-81ef3cce.js");
|
|
46
46
|
function UserListPageEE() {
|
|
@@ -48,4 +48,4 @@ function UserListPageEE() {
|
|
|
48
48
|
return /* @__PURE__ */ jsxRuntime.jsx(index.UserListPageCE, {});
|
|
49
49
|
}
|
|
50
50
|
exports.UserListPageEE = UserListPageEE;
|
|
51
|
-
//# sourceMappingURL=index-
|
|
51
|
+
//# sourceMappingURL=index-347f52cd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-347f52cd.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js"],"sourcesContent":["import * as React from 'react';\n\n// eslint-disable-next-line import/no-cycle\nimport { UserListPageCE } from '../../../../../../../../admin/src/pages/SettingsPage/pages/Users/ListPage';\nimport { useLicenseLimitNotification } from '../../../../../hooks/useLicenseLimitNotification';\n\nexport function UserListPageEE() {\n useLicenseLimitNotification();\n\n return <UserListPageCE />;\n}\n"],"names":["useLicenseLimitNotification","UserListPageCE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,SAAS,iBAAiB;AACHA,8BAAAA;AAE5B,wCAAQC,sBAAe,CAAA,CAAA;AACzB;;"}
|
|
@@ -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-052b1f3f.js");
|
|
7
7
|
const React = require("react");
|
|
8
8
|
const designSystem = require("@strapi/design-system");
|
|
9
9
|
const Icons = require("@strapi/icons");
|
|
@@ -15,7 +15,7 @@ const constants = require("./constants-da2542a3.js");
|
|
|
15
15
|
const index = require("./index-fc700e52.js");
|
|
16
16
|
require("semver/functions/lt");
|
|
17
17
|
require("semver/functions/valid");
|
|
18
|
-
require("./index-
|
|
18
|
+
require("./index-19517b07.js");
|
|
19
19
|
require("react-dom/client");
|
|
20
20
|
require("invariant");
|
|
21
21
|
require("lodash/isFunction");
|
|
@@ -250,4 +250,4 @@ const ProtectedApiTokenListView = () => {
|
|
|
250
250
|
return /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: permissions.settings["api-tokens"].main, children: /* @__PURE__ */ jsxRuntime.jsx(ApiTokenListView, {}) });
|
|
251
251
|
};
|
|
252
252
|
exports.default = ProtectedApiTokenListView;
|
|
253
|
-
//# sourceMappingURL=index-
|
|
253
|
+
//# sourceMappingURL=index-3890a641.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-c36d6802.js","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":["useFocusWhenNavigate","useQueryClient","useIntl","useNotification","useSelector","selectAdminPermissions","useRBAC","useHistory","useTracking","useGuidedTour","React","useFetchClient","useAPIErrorHandler","qs","useQuery","API_TOKEN_TYPE","useMutation","jsxs","Main","jsx","SettingsPageTitle","HeaderLayout","LinkButton","Plus","ContentLayout","NoPermissions","Table","NoContent","CheckPagePermissions","ListView"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-3890a641.js","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":["useFocusWhenNavigate","useQueryClient","useIntl","useNotification","useSelector","selectAdminPermissions","useRBAC","useHistory","useTracking","useGuidedTour","React","useFetchClient","useAPIErrorHandler","qs","useQuery","API_TOKEN_TYPE","useMutation","jsxs","Main","jsx","SettingsPageTitle","HeaderLayout","LinkButton","Plus","ContentLayout","NoPermissions","Table","NoContent","CheckPagePermissions","ListView"],"mappings":"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"}
|
|
@@ -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-052b1f3f.js");
|
|
7
7
|
const React = require("react");
|
|
8
8
|
const designSystem = require("@strapi/design-system");
|
|
9
9
|
const Icons = require("@strapi/icons");
|
|
@@ -19,7 +19,7 @@ const constants = require("./constants-85da8cc4.js");
|
|
|
19
19
|
const useReviewWorkflows = require("./useReviewWorkflows-799e0305.js");
|
|
20
20
|
require("semver/functions/lt");
|
|
21
21
|
require("semver/functions/valid");
|
|
22
|
-
require("./index-
|
|
22
|
+
require("./index-19517b07.js");
|
|
23
23
|
require("react-dom/client");
|
|
24
24
|
require("invariant");
|
|
25
25
|
require("lodash/isFunction");
|
|
@@ -308,4 +308,4 @@ function index() {
|
|
|
308
308
|
return /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: permissions.settings["review-workflows"].main, children: /* @__PURE__ */ jsxRuntime.jsx(ReviewWorkflowsListView, {}) });
|
|
309
309
|
}
|
|
310
310
|
exports.default = index;
|
|
311
|
-
//# sourceMappingURL=index-
|
|
311
|
+
//# sourceMappingURL=index-3b7eba5f.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-a0af8beb.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Flex,\n IconButton,\n Loader,\n Table,\n Thead,\n Tbody,\n Tr,\n Td,\n TFooter,\n Th,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n Link,\n LinkButton,\n onRowClick,\n pxToRem,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\n\nconst ActionLink = styled(Link)`\n align-items: center;\n height: ${pxToRem(32)};\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}}`};\n width: ${pxToRem(32)};\n\n svg {\n height: ${pxToRem(12)};\n width: ${pxToRem(12)};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nexport function ReviewWorkflowsListView() {\n const { formatMessage } = useIntl();\n const { push } = useHistory();\n const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();\n const { meta, workflows, isLoading, refetch } = useReviewWorkflows();\n const [workflowToDelete, setWorkflowToDelete] = React.useState(null);\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const { del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { trackUsage } = useTracking();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete },\n } = useRBAC(permissions.settings['review-workflows']);\n\n const limits = getFeature('review-workflows');\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflowId, stages }) => {\n const {\n data: { data },\n } = await del(`/admin/review-workflows/workflows/${workflowId}`, {\n data: stages,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.deleted', defaultMessage: 'Deleted' },\n });\n },\n }\n );\n\n const getContentTypeDisplayName = (uid) => {\n const contentType = [...collectionTypes, ...singleTypes].find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType.info.displayName;\n };\n\n const handleDeleteWorkflow = (workflowId) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n try {\n const res = await mutateAsync({ workflowId: workflowToDelete });\n\n await refetch();\n setWorkflowToDelete(null);\n\n return res;\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, limits, meta?.workflowCount, meta.workflowsTotal]);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate && (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n to=\"/settings/review-workflows/create\"\n onClick={(event) => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n )\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n {isLoading || isLoadingModels ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.list.isLoading',\n defaultMessage: 'Workflows are loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Table\n colCount={3}\n footer={\n // TODO: we should be able to use a link here instead of an (inaccessible onClick) handler\n canCreate && (\n <TFooter\n icon={<Plus />}\n onClick={() => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >=\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n } else {\n push('/settings/review-workflows/create');\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n )\n }\n rowCount={1}\n >\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.actions.title',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n\n <Tbody>\n {workflows.map((workflow) => (\n <Tr\n {...onRowClick({\n fn(event) {\n // Abort row onClick event when the user click on the delete button\n if (event.target.nodeName === 'BUTTON') {\n return;\n }\n\n push(`/settings/review-workflows/${workflow.id}`);\n },\n })}\n key={`workflow-${workflow.id}`}\n >\n <Td width={pxToRem(250)}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {(workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(', ')}\n </Typography>\n </Td>\n <Td>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n <ActionLink\n to={`/settings/review-workflows/${workflow.id}`}\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n >\n <Pencil />\n </ActionLink>\n\n {workflows.length > 1 && canDelete && (\n <IconButton\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n icon={<Trash />}\n noBorder\n onClick={() => {\n handleDeleteWorkflow(workflow.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n )}\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n }}\n isConfirmButtonLoading={isLoadingMutation}\n isOpen={!!workflowToDelete}\n onToggleDialog={toggleConfirmDeleteDialog}\n onConfirm={handleConfirmDeleteDialog}\n />\n\n <LimitsModal.Root isOpen={showLimitModal} onClose={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n}\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\n\nimport { ReviewWorkflowsListView } from './ListView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsListView />\n </CheckPagePermissions>\n );\n}\n"],"names":["styled","Link","pxToRem","useIntl","useHistory","useContentTypes","useReviewWorkflows","React","useFetchClient","useAPIErrorHandler","useNotification","useLicenseLimits","useTracking","useSelector","selectAdminPermissions","useRBAC","useMutation","contentType","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","jsxs","Fragment","jsx","Layout.Header","LinkButton","Plus","Layout.Root","Flex","Loader","Table","TFooter","Thead","Tr","Th","Typography","VisuallyHidden","Tbody","createElement","onRowClick","Td","Pencil","IconButton","Trash","ConfirmDialog","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body","CheckPagePermissions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-3b7eba5f.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Flex,\n IconButton,\n Loader,\n Table,\n Thead,\n Tbody,\n Tr,\n Td,\n TFooter,\n Th,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n Link,\n LinkButton,\n onRowClick,\n pxToRem,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\n\nconst ActionLink = styled(Link)`\n align-items: center;\n height: ${pxToRem(32)};\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}}`};\n width: ${pxToRem(32)};\n\n svg {\n height: ${pxToRem(12)};\n width: ${pxToRem(12)};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nexport function ReviewWorkflowsListView() {\n const { formatMessage } = useIntl();\n const { push } = useHistory();\n const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();\n const { meta, workflows, isLoading, refetch } = useReviewWorkflows();\n const [workflowToDelete, setWorkflowToDelete] = React.useState(null);\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const { del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { trackUsage } = useTracking();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete },\n } = useRBAC(permissions.settings['review-workflows']);\n\n const limits = getFeature('review-workflows');\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflowId, stages }) => {\n const {\n data: { data },\n } = await del(`/admin/review-workflows/workflows/${workflowId}`, {\n data: stages,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.deleted', defaultMessage: 'Deleted' },\n });\n },\n }\n );\n\n const getContentTypeDisplayName = (uid) => {\n const contentType = [...collectionTypes, ...singleTypes].find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType.info.displayName;\n };\n\n const handleDeleteWorkflow = (workflowId) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n try {\n const res = await mutateAsync({ workflowId: workflowToDelete });\n\n await refetch();\n setWorkflowToDelete(null);\n\n return res;\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, limits, meta?.workflowCount, meta.workflowsTotal]);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate && (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n to=\"/settings/review-workflows/create\"\n onClick={(event) => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n )\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n {isLoading || isLoadingModels ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.list.isLoading',\n defaultMessage: 'Workflows are loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Table\n colCount={3}\n footer={\n // TODO: we should be able to use a link here instead of an (inaccessible onClick) handler\n canCreate && (\n <TFooter\n icon={<Plus />}\n onClick={() => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >=\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n } else {\n push('/settings/review-workflows/create');\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n )\n }\n rowCount={1}\n >\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.actions.title',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n\n <Tbody>\n {workflows.map((workflow) => (\n <Tr\n {...onRowClick({\n fn(event) {\n // Abort row onClick event when the user click on the delete button\n if (event.target.nodeName === 'BUTTON') {\n return;\n }\n\n push(`/settings/review-workflows/${workflow.id}`);\n },\n })}\n key={`workflow-${workflow.id}`}\n >\n <Td width={pxToRem(250)}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {(workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(', ')}\n </Typography>\n </Td>\n <Td>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n <ActionLink\n to={`/settings/review-workflows/${workflow.id}`}\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n >\n <Pencil />\n </ActionLink>\n\n {workflows.length > 1 && canDelete && (\n <IconButton\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n icon={<Trash />}\n noBorder\n onClick={() => {\n handleDeleteWorkflow(workflow.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n )}\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n }}\n isConfirmButtonLoading={isLoadingMutation}\n isOpen={!!workflowToDelete}\n onToggleDialog={toggleConfirmDeleteDialog}\n onConfirm={handleConfirmDeleteDialog}\n />\n\n <LimitsModal.Root isOpen={showLimitModal} onClose={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n}\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\n\nimport { ReviewWorkflowsListView } from './ListView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsListView />\n </CheckPagePermissions>\n );\n}\n"],"names":["styled","Link","pxToRem","useIntl","useHistory","useContentTypes","useReviewWorkflows","React","useFetchClient","useAPIErrorHandler","useNotification","useLicenseLimits","useTracking","useSelector","selectAdminPermissions","useRBAC","useMutation","contentType","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","jsxs","Fragment","jsx","Layout.Header","LinkButton","Plus","Layout.Root","Flex","Loader","Table","TFooter","Thead","Tr","Th","Typography","VisuallyHidden","Tbody","createElement","onRowClick","Td","Pencil","IconButton","Trash","ConfirmDialog","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body","CheckPagePermissions"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
3
|
import { useIntl } from "react-intl";
|
|
4
|
-
import { T as getBasename } from "./index-
|
|
5
|
-
import { a as MagicLinkWrapper } from "./index-
|
|
4
|
+
import { T as getBasename } from "./index-0e6b3168.mjs";
|
|
5
|
+
import { a as MagicLinkWrapper } from "./index-7f8a49c1.mjs";
|
|
6
6
|
import "@strapi/helper-plugin";
|
|
7
7
|
import "react-dom/client";
|
|
8
8
|
import "@strapi/design-system";
|
|
@@ -57,4 +57,4 @@ MagicLinkEE.propTypes = {
|
|
|
57
57
|
export {
|
|
58
58
|
MagicLinkEE
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=index-
|
|
60
|
+
//# sourceMappingURL=index-3fdbcbff.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-3fdbcbff.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js"],"sourcesContent":["import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../../../../admin/src/core/utils/basename';\nimport MagicLinkWrapper from '../../../../../../../../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper';\n\n// FIXME replace with parts compo when ready\nexport const MagicLinkEE = ({ registrationToken }) => {\n const { formatMessage } = useIntl();\n\n if (registrationToken) {\n return (\n <MagicLinkWrapper\n target={`${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`}\n >\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n }\n\n return (\n <MagicLinkWrapper target={`${window.location.origin}${getBasename()}auth/login`}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect.sso',\n defaultMessage:\n 'Send this link to the user, the first login can be made via a SSO provider.',\n })}\n </MagicLinkWrapper>\n );\n};\n\nMagicLinkEE.defaultProps = {\n registrationToken: '',\n};\n\nMagicLinkEE.propTypes = {\n registrationToken: PropTypes.string,\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,cAAc,CAAC,EAAE,wBAAwB;AAC9C,QAAA,EAAE,kBAAkB;AAE1B,MAAI,mBAAmB;AAEnB,WAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,QAAQ,GACN,OAAO,SAAS,MAClB,GAAG,YAAa,CAAA,oCAAoC,iBAAiB;AAAA,QAEpE,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAGE,SAAA,oBAAC,kBAAiB,EAAA,QAAQ,GAAG,OAAO,SAAS,MAAM,GAAG,YAAa,CAAA,cAChE,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBACE;AAAA,EACH,CAAA,EACH,CAAA;AAEJ;AAEA,YAAY,eAAe;AAAA,EACzB,mBAAmB;AACrB;AAEA,YAAY,YAAY;AAAA,EACtB,mBAAmB,UAAU;AAC/B;"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const PropTypes = require("prop-types");
|
|
5
5
|
const reactIntl = require("react-intl");
|
|
6
|
-
const index$1 = require("./index-
|
|
7
|
-
const index = require("./index-
|
|
6
|
+
const index$1 = require("./index-19517b07.js");
|
|
7
|
+
const index = require("./index-c4cdb3d2.js");
|
|
8
8
|
require("@strapi/helper-plugin");
|
|
9
9
|
require("react-dom/client");
|
|
10
10
|
require("@strapi/design-system");
|
|
@@ -59,4 +59,4 @@ MagicLinkEE.propTypes = {
|
|
|
59
59
|
registrationToken: PropTypes__default.default.string
|
|
60
60
|
};
|
|
61
61
|
exports.MagicLinkEE = MagicLinkEE;
|
|
62
|
-
//# sourceMappingURL=index-
|
|
62
|
+
//# sourceMappingURL=index-3fe35214.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-3fe35214.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js"],"sourcesContent":["import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../../../../admin/src/core/utils/basename';\nimport MagicLinkWrapper from '../../../../../../../../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper';\n\n// FIXME replace with parts compo when ready\nexport const MagicLinkEE = ({ registrationToken }) => {\n const { formatMessage } = useIntl();\n\n if (registrationToken) {\n return (\n <MagicLinkWrapper\n target={`${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`}\n >\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n }\n\n return (\n <MagicLinkWrapper target={`${window.location.origin}${getBasename()}auth/login`}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect.sso',\n defaultMessage:\n 'Send this link to the user, the first login can be made via a SSO provider.',\n })}\n </MagicLinkWrapper>\n );\n};\n\nMagicLinkEE.defaultProps = {\n registrationToken: '',\n};\n\nMagicLinkEE.propTypes = {\n registrationToken: PropTypes.string,\n};\n"],"names":["useIntl","jsx","MagicLinkWrapper","getBasename","PropTypes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,cAAc,CAAC,EAAE,wBAAwB;AAC9C,QAAA,EAAE,kBAAkBA,UAAAA;AAE1B,MAAI,mBAAmB;AAEnB,WAAAC,2BAAA;AAAA,MAACC,MAAA;AAAA,MAAA;AAAA,QACC,QAAQ,GACN,OAAO,SAAS,MAClB,GAAGC,oBAAa,CAAA,oCAAoC,iBAAiB;AAAA,QAEpE,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAGE,SAAAF,2BAAA,IAACC,MAAiB,kBAAA,EAAA,QAAQ,GAAG,OAAO,SAAS,MAAM,GAAGC,QAAAA,YAAa,CAAA,cAChE,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBACE;AAAA,EACH,CAAA,EACH,CAAA;AAEJ;AAEA,YAAY,eAAe;AAAA,EACzB,mBAAmB;AACrB;AAEA,YAAY,YAAY;AAAA,EACtB,mBAAmBC,mBAAU,QAAA;AAC/B;;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
5
|
-
const index = require("./index-
|
|
5
|
+
const index = require("./index-2ee9157f.js");
|
|
6
6
|
const designSystem = require("@strapi/design-system");
|
|
7
7
|
const reactIntl = require("react-intl");
|
|
8
8
|
const reactQuery = require("react-query");
|
|
@@ -11,11 +11,11 @@ require("lodash/cloneDeep");
|
|
|
11
11
|
require("lodash/get");
|
|
12
12
|
require("lodash/omit");
|
|
13
13
|
require("lodash/isNaN");
|
|
14
|
-
require("./schema-
|
|
14
|
+
require("./schema-93c4fc79.js");
|
|
15
15
|
require("lodash/merge");
|
|
16
16
|
require("lodash/set");
|
|
17
17
|
const useAdminUsers = require("./useAdminUsers-05d6b26a.js");
|
|
18
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
18
|
+
const AuthenticatedApp = require("./AuthenticatedApp-052b1f3f.js");
|
|
19
19
|
const constants = require("./constants-d5d67ca8.js");
|
|
20
20
|
const React = require("react");
|
|
21
21
|
const useLicenseLimits = require("./useLicenseLimits-81ef3cce.js");
|
|
@@ -39,7 +39,7 @@ require("lodash/upperFirst");
|
|
|
39
39
|
require("@strapi/design-system/v2");
|
|
40
40
|
require("react-dnd-html5-backend");
|
|
41
41
|
require("styled-components");
|
|
42
|
-
require("./index-
|
|
42
|
+
require("./index-19517b07.js");
|
|
43
43
|
require("react-dom/client");
|
|
44
44
|
require("invariant");
|
|
45
45
|
require("lodash/isFunction");
|
|
@@ -415,4 +415,4 @@ function InformationBoxEE() {
|
|
|
415
415
|
] });
|
|
416
416
|
}
|
|
417
417
|
exports.InformationBoxEE = InformationBoxEE;
|
|
418
|
-
//# sourceMappingURL=index-
|
|
418
|
+
//# sourceMappingURL=index-423d7707.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-0b787ac1.js","sources":["../../ee/admin/src/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/AssigneeSelect.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages.js","../../ee/admin/src/content-manager/pages/EditView/InformationBox/components/StageSelect/StageSelect.js","../../ee/admin/src/content-manager/pages/EditView/InformationBox/InformationBoxEE.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Combobox, ComboboxOption, Field, Flex } from '@strapi/design-system';\nimport {\n useCMEditViewDataManager,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\n\nimport { getDisplayName } from '../../../../../../../../../admin/src/content-manager/utils';\nimport { useAdminUsers } from '../../../../../../../../../admin/src/hooks/useAdminUsers';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { ASSIGNEE_ATTRIBUTE_NAME } from '../../constants';\n\nexport function AssigneeSelect() {\n const {\n initialData,\n layout: { uid },\n isSingleType,\n onChange,\n } = useCMEditViewDataManager();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { put } = useFetchClient();\n const {\n allowedActions: { canReadUsers },\n isLoading: isLoadingPermissions,\n } = useRBAC({\n readUsers: permissions.settings.users.read,\n });\n const { users, isLoading, isError } = useAdminUsers(\n {},\n {\n enabled: !isLoadingPermissions && canReadUsers,\n }\n );\n\n const currentAssignee = initialData?.[ASSIGNEE_ATTRIBUTE_NAME] ?? null;\n\n const handleChange = async ({ value: assigneeId }) => {\n mutation.mutate({\n entityId: initialData.id,\n assigneeId: parseInt(assigneeId, 10),\n uid,\n });\n };\n\n const mutation = useMutation(\n async ({ entityId, assigneeId, uid }) => {\n const typeSlug = isSingleType ? 'single-types' : 'collection-types';\n\n const {\n data: { data: createdEntity },\n } = await put(`/admin/content-manager/${typeSlug}/${uid}/${entityId}/assignee`, {\n data: { id: assigneeId },\n });\n\n // initialData and modifiedData have to stay in sync, otherwise the entity would be flagged\n // as modified, which is what the boolean flag is for\n onChange(\n {\n target: { name: ASSIGNEE_ATTRIBUTE_NAME, value: createdEntity[ASSIGNEE_ATTRIBUTE_NAME] },\n },\n true\n );\n\n return createdEntity;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: {\n id: 'content-manager.reviewWorkflows.assignee.notification.saved',\n defaultMessage: 'Assignee updated',\n },\n });\n },\n }\n );\n\n return (\n <Field name={ASSIGNEE_ATTRIBUTE_NAME} id={ASSIGNEE_ATTRIBUTE_NAME}>\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\">\n <Combobox\n clearLabel={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.clear',\n defaultMessage: 'Clear assignee',\n })}\n error={\n (isError &&\n canReadUsers &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.error',\n defaultMessage: 'An error occurred while fetching users',\n })) ||\n (mutation.error && formatAPIError(mutation.error))\n }\n disabled={!isLoadingPermissions && !isLoading && users.length === 0}\n name={ASSIGNEE_ATTRIBUTE_NAME}\n id={ASSIGNEE_ATTRIBUTE_NAME}\n value={currentAssignee ? currentAssignee.id : null}\n onChange={(value) => handleChange({ value })}\n onClear={() => handleChange({ value: null })}\n placeholder={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select …',\n })}\n label={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.label',\n defaultMessage: 'Assignee',\n })}\n loading={isLoading || isLoadingPermissions || mutation.isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption\n key={user.id}\n value={user.id}\n textValue={getDisplayName(user, formatMessage)}\n >\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n </Flex>\n </Field>\n );\n}\n","import * as React from 'react';\n\nimport { useFetchClient } from '@strapi/helper-plugin';\nimport { useQuery } from 'react-query';\n\nexport function useReviewWorkflowsStages({ id, layout } = {}, queryOptions = {}) {\n const { kind, uid } = layout;\n const slug = kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const { get } = useFetchClient();\n\n const { data, isLoading, refetch } = useQuery(\n ['content-manager', slug, layout.uid, id, 'stages'],\n async () => {\n const { data } = await get(`/admin/content-manager/${slug}/${uid}/${id}/stages`);\n\n return data;\n },\n queryOptions\n );\n\n // these return values need to be memoized, because the default value\n // would lead to infinite rendering loops when used in a dependency array\n // on an effect\n const meta = React.useMemo(() => data?.meta ?? {}, [data?.meta]);\n const stages = React.useMemo(() => data?.data ?? [], [data?.data]);\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n stages,\n isLoading,\n refetch,\n };\n}\n","import * as React from 'react';\n\nimport {\n SingleSelect,\n SingleSelectOption,\n Field,\n FieldError,\n FieldHint,\n Flex,\n Loader,\n Typography,\n} from '@strapi/design-system';\nimport {\n useCMEditViewDataManager,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as LimitsModal from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal';\nimport {\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n} from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';\nimport { useReviewWorkflowsStages } from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages';\nimport { getStageColorByHex } from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\nimport { STAGE_ATTRIBUTE_NAME } from '../../constants';\n\nexport function StageSelect() {\n const { initialData, layout: contentType, isSingleType, onChange } = useCMEditViewDataManager();\n const { put } = useFetchClient();\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { meta, stages, isLoading, refetch } = useReviewWorkflowsStages(\n { id: initialData.id, layout: contentType },\n {\n enabled: !!initialData?.id,\n }\n );\n const { getFeature } = useLicenseLimits();\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n\n const limits = getFeature('review-workflows');\n // it is possible to rely on initialData here, because it always will\n // be updated at the same time when modifiedData is updated, otherwise\n // the entity is flagged as modified\n const activeWorkflowStage = initialData?.[STAGE_ATTRIBUTE_NAME] ?? null;\n\n const mutation = useMutation(\n async ({ entityId, stageId, uid }) => {\n const typeSlug = isSingleType ? 'single-types' : 'collection-types';\n\n const {\n data: { data: createdEntity },\n } = await put(`/admin/content-manager/${typeSlug}/${uid}/${entityId}/stage`, {\n data: { id: stageId },\n });\n\n // initialData and modifiedData have to stay in sync, otherwise the entity would be flagged\n // as modified, which is what the boolean flag is for\n onChange(\n { target: { name: STAGE_ATTRIBUTE_NAME, value: createdEntity[STAGE_ATTRIBUTE_NAME] } },\n true\n );\n\n await refetch();\n\n return createdEntity;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: {\n id: 'content-manager.reviewWorkflows.stage.notification.saved',\n defaultMessage: 'Review stage updated',\n },\n });\n },\n }\n );\n\n const handleChange = async ({ value: stageId }) => {\n try {\n /**\n * If the current license has a limit:\n * check if the total count of workflows exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10) < meta.workflowCount\n ) {\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit:\n * check if the total count of stages exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) < stages.length\n ) {\n setShowLimitModal('stage');\n } else {\n mutation.mutateAsync({\n entityId: initialData.id,\n stageId,\n uid: contentType.uid,\n });\n }\n } catch (error) {\n // react-query@v3: the error doesn't have to be handled here\n // see: https://github.com/TanStack/query/issues/121\n }\n };\n\n const { themeColorName } = activeWorkflowStage?.color\n ? getStageColorByHex(activeWorkflowStage?.color)\n : {};\n\n return (\n <>\n <Field\n hint={\n stages.length === 0 &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.stages.no-transition',\n defaultMessage: 'You don’t have the permission to update this stage.',\n })\n }\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n >\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\">\n <SingleSelect\n disabled={stages.length === 0}\n error={(mutation.error && formatAPIError(mutation.error)) || null}\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n value={activeWorkflowStage?.id}\n onChange={(value) => handleChange({ value })}\n label={formatMessage({\n id: 'content-manager.reviewWorkflows.stage.label',\n defaultMessage: 'Review stage',\n })}\n startIcon={\n activeWorkflowStage && (\n <Flex\n as=\"span\"\n height={2}\n background={activeWorkflowStage?.color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n marginRight=\"-3px\"\n />\n )\n }\n // eslint-disable-next-line react/no-unstable-nested-components\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {activeWorkflowStage?.name ?? ''}\n </Typography>\n {isLoading ? (\n <Loader small style={{ display: 'flex' }} data-testid=\"loader\" />\n ) : null}\n </Flex>\n )}\n >\n {stages.map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={id}\n textValue={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <FieldHint />\n <FieldError />\n </Flex>\n </Field>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'stage'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.stages.limit.title',\n defaultMessage: 'You have reached the limit of stages for this workflow in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.stages.limit.body',\n defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </>\n );\n}\n","import React from 'react';\n\nimport { useCMEditViewDataManager } from '@strapi/helper-plugin';\n\nimport { Information } from '../../../../../../../admin/src/content-manager/pages/EditView/Information';\n\nimport { AssigneeSelect } from './components/AssigneeSelect';\nimport { StageSelect } from './components/StageSelect';\n\nexport function InformationBoxEE() {\n const {\n isCreatingEntry,\n layout: { options },\n } = useCMEditViewDataManager();\n\n const hasReviewWorkflowsEnabled = options?.reviewWorkflows ?? false;\n\n return (\n <Information.Root>\n <Information.Title />\n {hasReviewWorkflowsEnabled && !isCreatingEntry && (\n <>\n <StageSelect />\n <AssigneeSelect />\n </>\n )}\n <Information.Body />\n </Information.Root>\n );\n}\n"],"names":["useCMEditViewDataManager","useSelector","selectAdminPermissions","useIntl","useAPIErrorHandler","useNotification","useFetchClient","useRBAC","useAdminUsers","ASSIGNEE_ATTRIBUTE_NAME","useMutation","uid","jsx","Field","Flex","Combobox","ComboboxOption","getDisplayName","useQuery","data","React","useLicenseLimits","STAGE_ATTRIBUTE_NAME","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME","getStageColorByHex","jsxs","Fragment","SingleSelect","Typography","Loader","themeColorName","SingleSelectOption","FieldHint","FieldError","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body","Information"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-423d7707.js","sources":["../../ee/admin/src/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/AssigneeSelect.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages.js","../../ee/admin/src/content-manager/pages/EditView/InformationBox/components/StageSelect/StageSelect.js","../../ee/admin/src/content-manager/pages/EditView/InformationBox/InformationBoxEE.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Combobox, ComboboxOption, Field, Flex } from '@strapi/design-system';\nimport {\n useCMEditViewDataManager,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\n\nimport { getDisplayName } from '../../../../../../../../../admin/src/content-manager/utils';\nimport { useAdminUsers } from '../../../../../../../../../admin/src/hooks/useAdminUsers';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { ASSIGNEE_ATTRIBUTE_NAME } from '../../constants';\n\nexport function AssigneeSelect() {\n const {\n initialData,\n layout: { uid },\n isSingleType,\n onChange,\n } = useCMEditViewDataManager();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { put } = useFetchClient();\n const {\n allowedActions: { canReadUsers },\n isLoading: isLoadingPermissions,\n } = useRBAC({\n readUsers: permissions.settings.users.read,\n });\n const { users, isLoading, isError } = useAdminUsers(\n {},\n {\n enabled: !isLoadingPermissions && canReadUsers,\n }\n );\n\n const currentAssignee = initialData?.[ASSIGNEE_ATTRIBUTE_NAME] ?? null;\n\n const handleChange = async ({ value: assigneeId }) => {\n mutation.mutate({\n entityId: initialData.id,\n assigneeId: parseInt(assigneeId, 10),\n uid,\n });\n };\n\n const mutation = useMutation(\n async ({ entityId, assigneeId, uid }) => {\n const typeSlug = isSingleType ? 'single-types' : 'collection-types';\n\n const {\n data: { data: createdEntity },\n } = await put(`/admin/content-manager/${typeSlug}/${uid}/${entityId}/assignee`, {\n data: { id: assigneeId },\n });\n\n // initialData and modifiedData have to stay in sync, otherwise the entity would be flagged\n // as modified, which is what the boolean flag is for\n onChange(\n {\n target: { name: ASSIGNEE_ATTRIBUTE_NAME, value: createdEntity[ASSIGNEE_ATTRIBUTE_NAME] },\n },\n true\n );\n\n return createdEntity;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: {\n id: 'content-manager.reviewWorkflows.assignee.notification.saved',\n defaultMessage: 'Assignee updated',\n },\n });\n },\n }\n );\n\n return (\n <Field name={ASSIGNEE_ATTRIBUTE_NAME} id={ASSIGNEE_ATTRIBUTE_NAME}>\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\">\n <Combobox\n clearLabel={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.clear',\n defaultMessage: 'Clear assignee',\n })}\n error={\n (isError &&\n canReadUsers &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.error',\n defaultMessage: 'An error occurred while fetching users',\n })) ||\n (mutation.error && formatAPIError(mutation.error))\n }\n disabled={!isLoadingPermissions && !isLoading && users.length === 0}\n name={ASSIGNEE_ATTRIBUTE_NAME}\n id={ASSIGNEE_ATTRIBUTE_NAME}\n value={currentAssignee ? currentAssignee.id : null}\n onChange={(value) => handleChange({ value })}\n onClear={() => handleChange({ value: null })}\n placeholder={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select …',\n })}\n label={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.label',\n defaultMessage: 'Assignee',\n })}\n loading={isLoading || isLoadingPermissions || mutation.isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption\n key={user.id}\n value={user.id}\n textValue={getDisplayName(user, formatMessage)}\n >\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n </Flex>\n </Field>\n );\n}\n","import * as React from 'react';\n\nimport { useFetchClient } from '@strapi/helper-plugin';\nimport { useQuery } from 'react-query';\n\nexport function useReviewWorkflowsStages({ id, layout } = {}, queryOptions = {}) {\n const { kind, uid } = layout;\n const slug = kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const { get } = useFetchClient();\n\n const { data, isLoading, refetch } = useQuery(\n ['content-manager', slug, layout.uid, id, 'stages'],\n async () => {\n const { data } = await get(`/admin/content-manager/${slug}/${uid}/${id}/stages`);\n\n return data;\n },\n queryOptions\n );\n\n // these return values need to be memoized, because the default value\n // would lead to infinite rendering loops when used in a dependency array\n // on an effect\n const meta = React.useMemo(() => data?.meta ?? {}, [data?.meta]);\n const stages = React.useMemo(() => data?.data ?? [], [data?.data]);\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n stages,\n isLoading,\n refetch,\n };\n}\n","import * as React from 'react';\n\nimport {\n SingleSelect,\n SingleSelectOption,\n Field,\n FieldError,\n FieldHint,\n Flex,\n Loader,\n Typography,\n} from '@strapi/design-system';\nimport {\n useCMEditViewDataManager,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as LimitsModal from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal';\nimport {\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n} from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';\nimport { useReviewWorkflowsStages } from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages';\nimport { getStageColorByHex } from '../../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\nimport { STAGE_ATTRIBUTE_NAME } from '../../constants';\n\nexport function StageSelect() {\n const { initialData, layout: contentType, isSingleType, onChange } = useCMEditViewDataManager();\n const { put } = useFetchClient();\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { meta, stages, isLoading, refetch } = useReviewWorkflowsStages(\n { id: initialData.id, layout: contentType },\n {\n enabled: !!initialData?.id,\n }\n );\n const { getFeature } = useLicenseLimits();\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n\n const limits = getFeature('review-workflows');\n // it is possible to rely on initialData here, because it always will\n // be updated at the same time when modifiedData is updated, otherwise\n // the entity is flagged as modified\n const activeWorkflowStage = initialData?.[STAGE_ATTRIBUTE_NAME] ?? null;\n\n const mutation = useMutation(\n async ({ entityId, stageId, uid }) => {\n const typeSlug = isSingleType ? 'single-types' : 'collection-types';\n\n const {\n data: { data: createdEntity },\n } = await put(`/admin/content-manager/${typeSlug}/${uid}/${entityId}/stage`, {\n data: { id: stageId },\n });\n\n // initialData and modifiedData have to stay in sync, otherwise the entity would be flagged\n // as modified, which is what the boolean flag is for\n onChange(\n { target: { name: STAGE_ATTRIBUTE_NAME, value: createdEntity[STAGE_ATTRIBUTE_NAME] } },\n true\n );\n\n await refetch();\n\n return createdEntity;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: {\n id: 'content-manager.reviewWorkflows.stage.notification.saved',\n defaultMessage: 'Review stage updated',\n },\n });\n },\n }\n );\n\n const handleChange = async ({ value: stageId }) => {\n try {\n /**\n * If the current license has a limit:\n * check if the total count of workflows exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10) < meta.workflowCount\n ) {\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit:\n * check if the total count of stages exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) < stages.length\n ) {\n setShowLimitModal('stage');\n } else {\n mutation.mutateAsync({\n entityId: initialData.id,\n stageId,\n uid: contentType.uid,\n });\n }\n } catch (error) {\n // react-query@v3: the error doesn't have to be handled here\n // see: https://github.com/TanStack/query/issues/121\n }\n };\n\n const { themeColorName } = activeWorkflowStage?.color\n ? getStageColorByHex(activeWorkflowStage?.color)\n : {};\n\n return (\n <>\n <Field\n hint={\n stages.length === 0 &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.stages.no-transition',\n defaultMessage: 'You don’t have the permission to update this stage.',\n })\n }\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n >\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\">\n <SingleSelect\n disabled={stages.length === 0}\n error={(mutation.error && formatAPIError(mutation.error)) || null}\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n value={activeWorkflowStage?.id}\n onChange={(value) => handleChange({ value })}\n label={formatMessage({\n id: 'content-manager.reviewWorkflows.stage.label',\n defaultMessage: 'Review stage',\n })}\n startIcon={\n activeWorkflowStage && (\n <Flex\n as=\"span\"\n height={2}\n background={activeWorkflowStage?.color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n marginRight=\"-3px\"\n />\n )\n }\n // eslint-disable-next-line react/no-unstable-nested-components\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {activeWorkflowStage?.name ?? ''}\n </Typography>\n {isLoading ? (\n <Loader small style={{ display: 'flex' }} data-testid=\"loader\" />\n ) : null}\n </Flex>\n )}\n >\n {stages.map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={id}\n textValue={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <FieldHint />\n <FieldError />\n </Flex>\n </Field>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'stage'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.stages.limit.title',\n defaultMessage: 'You have reached the limit of stages for this workflow in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.stages.limit.body',\n defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </>\n );\n}\n","import React from 'react';\n\nimport { useCMEditViewDataManager } from '@strapi/helper-plugin';\n\nimport { Information } from '../../../../../../../admin/src/content-manager/pages/EditView/Information';\n\nimport { AssigneeSelect } from './components/AssigneeSelect';\nimport { StageSelect } from './components/StageSelect';\n\nexport function InformationBoxEE() {\n const {\n isCreatingEntry,\n layout: { options },\n } = useCMEditViewDataManager();\n\n const hasReviewWorkflowsEnabled = options?.reviewWorkflows ?? false;\n\n return (\n <Information.Root>\n <Information.Title />\n {hasReviewWorkflowsEnabled && !isCreatingEntry && (\n <>\n <StageSelect />\n <AssigneeSelect />\n </>\n )}\n <Information.Body />\n </Information.Root>\n );\n}\n"],"names":["useCMEditViewDataManager","useSelector","selectAdminPermissions","useIntl","useAPIErrorHandler","useNotification","useFetchClient","useRBAC","useAdminUsers","ASSIGNEE_ATTRIBUTE_NAME","useMutation","uid","jsx","Field","Flex","Combobox","ComboboxOption","getDisplayName","useQuery","data","React","useLicenseLimits","STAGE_ATTRIBUTE_NAME","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME","getStageColorByHex","jsxs","Fragment","SingleSelect","Typography","Loader","themeColorName","SingleSelectOption","FieldHint","FieldError","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body","Information"],"mappings":"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"}
|
|
@@ -12,13 +12,13 @@ const reactIntl = require("react-intl");
|
|
|
12
12
|
const reactRedux = require("react-redux");
|
|
13
13
|
const reactRouterDom = require("react-router-dom");
|
|
14
14
|
const styled = require("styled-components");
|
|
15
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
15
|
+
const AuthenticatedApp = require("./AuthenticatedApp-052b1f3f.js");
|
|
16
16
|
const useAdminRolePermissions = require("./useAdminRolePermissions-cb1a3ee2.js");
|
|
17
17
|
const yup = require("yup");
|
|
18
18
|
require("react-query");
|
|
19
19
|
require("semver/functions/lt");
|
|
20
20
|
require("semver/functions/valid");
|
|
21
|
-
require("./index-
|
|
21
|
+
require("./index-19517b07.js");
|
|
22
22
|
require("react-dom/client");
|
|
23
23
|
require("invariant");
|
|
24
24
|
require("lodash/isFunction");
|
|
@@ -263,4 +263,4 @@ function index() {
|
|
|
263
263
|
}
|
|
264
264
|
exports.CreatePage = CreatePage;
|
|
265
265
|
exports.default = index;
|
|
266
|
-
//# sourceMappingURL=index-
|
|
266
|
+
//# sourceMappingURL=index-48824a39.js.map
|