@strapi/admin 4.16.1 → 4.16.2
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-7e646400.js → AuthenticatedApp-342bf22f.js} +21 -21
- package/dist/_chunks/{AuthenticatedApp-7e646400.js.map → AuthenticatedApp-342bf22f.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-722b2e84.mjs → AuthenticatedApp-bb31f306.mjs} +21 -21
- package/dist/_chunks/{AuthenticatedApp-722b2e84.mjs.map → AuthenticatedApp-bb31f306.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-8c98b31f.mjs → HomePage-0c7717c0.mjs} +4 -4
- package/dist/_chunks/{HomePage-8c98b31f.mjs.map → HomePage-0c7717c0.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-0e0dc215.js → HomePage-175f79c7.js} +4 -4
- package/dist/_chunks/{HomePage-0e0dc215.js.map → HomePage-175f79c7.js.map} +1 -1
- package/dist/_chunks/{HomePage-76bcd0cd.mjs → HomePage-246cc590.mjs} +4 -4
- package/dist/_chunks/{HomePage-76bcd0cd.mjs.map → HomePage-246cc590.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-ef787733.js → HomePage-6ff9e578.js} +4 -4
- package/dist/_chunks/{HomePage-ef787733.js.map → HomePage-6ff9e578.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-67b5f9c2.mjs → InstalledPluginsPage-170aff77.mjs} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-67b5f9c2.mjs.map → InstalledPluginsPage-170aff77.mjs.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-6f0897e8.js → InstalledPluginsPage-3ae5dbb6.js} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-6f0897e8.js.map → InstalledPluginsPage-3ae5dbb6.js.map} +1 -1
- package/dist/_chunks/{Login-5b447dd2.js → Login-576bbc11.js} +2 -2
- package/dist/_chunks/{Login-5b447dd2.js.map → Login-576bbc11.js.map} +1 -1
- package/dist/_chunks/{Login-8ade15b8.mjs → Login-d627bb0a.mjs} +2 -2
- package/dist/_chunks/{Login-8ade15b8.mjs.map → Login-d627bb0a.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-58fc8a9a.mjs → MarketplacePage-1cbfa8fd.mjs} +3 -3
- package/dist/_chunks/{MarketplacePage-58fc8a9a.mjs.map → MarketplacePage-1cbfa8fd.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-1c954f9d.js → MarketplacePage-e7cd973b.js} +3 -3
- package/dist/_chunks/{MarketplacePage-1c954f9d.js.map → MarketplacePage-e7cd973b.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-a68483d3.js → ProfilePage-52844daa.js} +3 -3
- package/dist/_chunks/{ProfilePage-a68483d3.js.map → ProfilePage-52844daa.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-a2f0366d.mjs → ProfilePage-ef400907.mjs} +3 -3
- package/dist/_chunks/{ProfilePage-a2f0366d.mjs.map → ProfilePage-ef400907.mjs.map} +1 -1
- package/dist/_chunks/{constants-155022af.js → constants-4aca55b6.js} +3 -3
- package/dist/_chunks/{constants-155022af.js.map → constants-4aca55b6.js.map} +1 -1
- package/dist/_chunks/{constants-3967338c.js → constants-6c68e9a0.js} +5 -5
- package/dist/_chunks/{constants-3967338c.js.map → constants-6c68e9a0.js.map} +1 -1
- package/dist/_chunks/{constants-da1ff847.mjs → constants-74b8a935.mjs} +6 -6
- package/dist/_chunks/{constants-da1ff847.mjs.map → constants-74b8a935.mjs.map} +1 -1
- package/dist/_chunks/{constants-ecad1e20.mjs → constants-a6fd64fc.mjs} +2 -2
- package/dist/_chunks/{constants-ecad1e20.mjs.map → constants-a6fd64fc.mjs.map} +1 -1
- package/dist/_chunks/{constants-6bf1c3c2.mjs → constants-ae0b83df.mjs} +5 -5
- package/dist/_chunks/{constants-6bf1c3c2.mjs.map → constants-ae0b83df.mjs.map} +1 -1
- package/dist/_chunks/{constants-32d352b6.mjs → constants-c1f1f698.mjs} +3 -3
- package/dist/_chunks/{constants-32d352b6.mjs.map → constants-c1f1f698.mjs.map} +1 -1
- package/dist/_chunks/{constants-eb77e47a.js → constants-ddd2d586.js} +2 -2
- package/dist/_chunks/{constants-eb77e47a.js.map → constants-ddd2d586.js.map} +1 -1
- package/dist/_chunks/{constants-d097f266.js → constants-e05f06d4.js} +6 -6
- package/dist/_chunks/{constants-d097f266.js.map → constants-e05f06d4.js.map} +1 -1
- package/dist/_chunks/{index-d47fc57d.mjs → index-10a05917.mjs} +4 -4
- package/dist/_chunks/{index-d47fc57d.mjs.map → index-10a05917.mjs.map} +1 -1
- package/dist/_chunks/{index-be9a9d91.mjs → index-115d317b.mjs} +3 -3
- package/dist/_chunks/{index-be9a9d91.mjs.map → index-115d317b.mjs.map} +1 -1
- package/dist/_chunks/{index-19bd1210.js → index-171715e4.js} +6 -6
- package/dist/_chunks/{index-19bd1210.js.map → index-171715e4.js.map} +1 -1
- package/dist/_chunks/{index-b3ad6e5f.js → index-1bac5263.js} +3 -3
- package/dist/_chunks/{index-b3ad6e5f.js.map → index-1bac5263.js.map} +1 -1
- package/dist/_chunks/{index-2064cfaf.js → index-200c5a6a.js} +3 -3
- package/dist/_chunks/{index-2064cfaf.js.map → index-200c5a6a.js.map} +1 -1
- package/dist/_chunks/{index-cc38421b.mjs → index-215b5421.mjs} +5 -5
- package/dist/_chunks/{index-cc38421b.mjs.map → index-215b5421.mjs.map} +1 -1
- package/dist/_chunks/{index-d9aae905.js → index-23401c29.js} +5 -5
- package/dist/_chunks/{index-d9aae905.js.map → index-23401c29.js.map} +1 -1
- package/dist/_chunks/{index-ceacb143.js → index-242c859c.js} +5 -5
- package/dist/_chunks/{index-ceacb143.js.map → index-242c859c.js.map} +1 -1
- package/dist/_chunks/{index-061947f1.mjs → index-26fcb3ca.mjs} +20 -20
- package/dist/_chunks/{index-061947f1.mjs.map → index-26fcb3ca.mjs.map} +1 -1
- package/dist/_chunks/{index-391891ba.mjs → index-28dd9303.mjs} +3 -3
- package/dist/_chunks/{index-391891ba.mjs.map → index-28dd9303.mjs.map} +1 -1
- package/dist/_chunks/{index-d844fbda.mjs → index-296c14bf.mjs} +3 -3
- package/dist/_chunks/{index-d844fbda.mjs.map → index-296c14bf.mjs.map} +1 -1
- package/dist/_chunks/{index-819443df.js → index-2de06c32.js} +4 -4
- package/dist/_chunks/{index-819443df.js.map → index-2de06c32.js.map} +1 -1
- package/dist/_chunks/{index-aad003e4.mjs → index-2eb69b5d.mjs} +5 -5
- package/dist/_chunks/{index-aad003e4.mjs.map → index-2eb69b5d.mjs.map} +1 -1
- package/dist/_chunks/{index-b6b2a306.js → index-2f61e3ae.js} +3 -3
- package/dist/_chunks/{index-b6b2a306.js.map → index-2f61e3ae.js.map} +1 -1
- package/dist/_chunks/{index-707e89df.mjs → index-308b73ba.mjs} +3 -3
- package/dist/_chunks/{index-707e89df.mjs.map → index-308b73ba.mjs.map} +1 -1
- package/dist/_chunks/{index-c6c83bb3.js → index-34e41e15.js} +2 -2
- package/dist/_chunks/{index-c6c83bb3.js.map → index-34e41e15.js.map} +1 -1
- package/dist/_chunks/{index-97c03ee2.mjs → index-383efae4.mjs} +4 -4
- package/dist/_chunks/{index-97c03ee2.mjs.map → index-383efae4.mjs.map} +1 -1
- package/dist/_chunks/{index-c8b6afca.js → index-3b426575.js} +4 -4
- package/dist/_chunks/{index-c8b6afca.js.map → index-3b426575.js.map} +1 -1
- package/dist/_chunks/{index-ecfaf6c1.js → index-47af1603.js} +3 -3
- package/dist/_chunks/{index-ecfaf6c1.js.map → index-47af1603.js.map} +1 -1
- package/dist/_chunks/{index-ad0512f0.js → index-4d9b2cb9.js} +4 -4
- package/dist/_chunks/{index-ad0512f0.js.map → index-4d9b2cb9.js.map} +1 -1
- package/dist/_chunks/{index-8f8eaed6.js → index-4de70b5d.js} +4 -4
- package/dist/_chunks/{index-8f8eaed6.js.map → index-4de70b5d.js.map} +1 -1
- package/dist/_chunks/{index-cdcf1a78.js → index-59b1f604.js} +5 -5
- package/dist/_chunks/{index-cdcf1a78.js.map → index-59b1f604.js.map} +1 -1
- package/dist/_chunks/{index-209cca35.mjs → index-5a5217e0.mjs} +3 -3
- package/dist/_chunks/{index-209cca35.mjs.map → index-5a5217e0.mjs.map} +1 -1
- package/dist/_chunks/{index-b5eec5e2.js → index-5da07c41.js} +5 -5
- package/dist/_chunks/{index-b5eec5e2.js.map → index-5da07c41.js.map} +1 -1
- package/dist/_chunks/{index-6731bae9.js → index-600cb5dd.js} +5 -5
- package/dist/_chunks/{index-6731bae9.js.map → index-600cb5dd.js.map} +1 -1
- package/dist/_chunks/{index-82fca9fd.mjs → index-608d8d10.mjs} +3 -3
- package/dist/_chunks/{index-82fca9fd.mjs.map → index-608d8d10.mjs.map} +1 -1
- package/dist/_chunks/{index-73971882.js → index-7d578921.js} +3 -3
- package/dist/_chunks/{index-73971882.js.map → index-7d578921.js.map} +1 -1
- package/dist/_chunks/{index-3aab6b0f.mjs → index-8109fa91.mjs} +6 -6
- package/dist/_chunks/{index-3aab6b0f.mjs.map → index-8109fa91.mjs.map} +1 -1
- package/dist/_chunks/{index-57f9a06f.js → index-82c7a120.js} +8 -8
- package/dist/_chunks/{index-57f9a06f.js.map → index-82c7a120.js.map} +1 -1
- package/dist/_chunks/{index-91726188.js → index-83d53962.js} +3 -3
- package/dist/_chunks/{index-91726188.js.map → index-83d53962.js.map} +1 -1
- package/dist/_chunks/{index-3c67c00b.mjs → index-8933483b.mjs} +4 -4
- package/dist/_chunks/{index-3c67c00b.mjs.map → index-8933483b.mjs.map} +1 -1
- package/dist/_chunks/{index-24c2627d.mjs → index-91df57b1.mjs} +3 -3
- package/dist/_chunks/{index-24c2627d.mjs.map → index-91df57b1.mjs.map} +1 -1
- package/dist/_chunks/{index-d1219a93.mjs → index-989bbeec.mjs} +3 -3
- package/dist/_chunks/{index-d1219a93.mjs.map → index-989bbeec.mjs.map} +1 -1
- package/dist/_chunks/{index-ec2d87cb.js → index-9910dda4.js} +4 -4
- package/dist/_chunks/{index-ec2d87cb.js.map → index-9910dda4.js.map} +1 -1
- package/dist/_chunks/{index-78f4851e.js → index-9afb163a.js} +3 -3
- package/dist/_chunks/{index-78f4851e.js.map → index-9afb163a.js.map} +1 -1
- package/dist/_chunks/{index-1502dedd.js → index-9f61bef8.js} +4 -4
- package/dist/_chunks/{index-1502dedd.js.map → index-9f61bef8.js.map} +1 -1
- package/dist/_chunks/{index-86a4fbbf.mjs → index-ab31623a.mjs} +3 -3
- package/dist/_chunks/{index-86a4fbbf.mjs.map → index-ab31623a.mjs.map} +1 -1
- package/dist/_chunks/{index-cea88049.mjs → index-ac85118a.mjs} +4 -4
- package/dist/_chunks/{index-cea88049.mjs.map → index-ac85118a.mjs.map} +1 -1
- package/dist/_chunks/{index-55155d83.mjs → index-ad8e55c0.mjs} +2 -2
- package/dist/_chunks/{index-55155d83.mjs.map → index-ad8e55c0.mjs.map} +1 -1
- package/dist/_chunks/{index-6a8a1f1d.js → index-aedeaf5a.js} +3 -3
- package/dist/_chunks/{index-6a8a1f1d.js.map → index-aedeaf5a.js.map} +1 -1
- package/dist/_chunks/{index-724169b2.js → index-bbac142a.js} +3 -3
- package/dist/_chunks/{index-724169b2.js.map → index-bbac142a.js.map} +1 -1
- package/dist/_chunks/{index-8609fab4.mjs → index-bd18f803.mjs} +8 -8
- package/dist/_chunks/{index-8609fab4.mjs.map → index-bd18f803.mjs.map} +1 -1
- package/dist/_chunks/{index-06e97c47.mjs → index-c8b8a2ee.mjs} +5 -5
- package/dist/_chunks/{index-06e97c47.mjs.map → index-c8b8a2ee.mjs.map} +1 -1
- package/dist/_chunks/{index-7b174d49.js → index-c97f5820.js} +20 -20
- package/dist/_chunks/{index-7b174d49.js.map → index-c97f5820.js.map} +1 -1
- package/dist/_chunks/{index-c5fa9006.mjs → index-cb6a72d2.mjs} +5 -5
- package/dist/_chunks/{index-c5fa9006.mjs.map → index-cb6a72d2.mjs.map} +1 -1
- package/dist/_chunks/{index-6685e5a8.js → index-cbc7c054.js} +3 -3
- package/dist/_chunks/{index-6685e5a8.js.map → index-cbc7c054.js.map} +1 -1
- package/dist/_chunks/{index-9b2501ca.mjs → index-ce5995cd.mjs} +2 -2
- package/dist/_chunks/{index-9b2501ca.mjs.map → index-ce5995cd.mjs.map} +1 -1
- package/dist/_chunks/{index-b247e702.js → index-d1152896.js} +3 -3
- package/dist/_chunks/{index-b247e702.js.map → index-d1152896.js.map} +1 -1
- package/dist/_chunks/{index-272d8fb9.js → index-d1dd825b.js} +3 -3
- package/dist/_chunks/{index-272d8fb9.js.map → index-d1dd825b.js.map} +1 -1
- package/dist/_chunks/{index-2cf8d1f6.mjs → index-d2d9df41.mjs} +3 -3
- package/dist/_chunks/{index-2cf8d1f6.mjs.map → index-d2d9df41.mjs.map} +1 -1
- package/dist/_chunks/{index-61852c7a.mjs → index-d4517ac4.mjs} +3 -3
- package/dist/_chunks/{index-61852c7a.mjs.map → index-d4517ac4.mjs.map} +1 -1
- package/dist/_chunks/{index-caab4b20.js → index-d49fa655.js} +2 -2
- package/dist/_chunks/{index-caab4b20.js.map → index-d49fa655.js.map} +1 -1
- package/dist/_chunks/{index-dd897afb.mjs → index-d6694cab.mjs} +3 -3
- package/dist/_chunks/{index-dd897afb.mjs.map → index-d6694cab.mjs.map} +1 -1
- package/dist/_chunks/{index-3939f07e.mjs → index-e117c643.mjs} +4 -4
- package/dist/_chunks/{index-3939f07e.mjs.map → index-e117c643.mjs.map} +1 -1
- package/dist/_chunks/{index-48c35356.mjs → index-e1b90981.mjs} +5 -5
- package/dist/_chunks/{index-48c35356.mjs.map → index-e1b90981.mjs.map} +1 -1
- package/dist/_chunks/{index-1482f542.js → index-e24df0bf.js} +2 -2
- package/dist/_chunks/{index-1482f542.js.map → index-e24df0bf.js.map} +1 -1
- package/dist/_chunks/{index-7a797b0f.mjs → index-e2d2f58e.mjs} +4 -4
- package/dist/_chunks/{index-7a797b0f.mjs.map → index-e2d2f58e.mjs.map} +1 -1
- package/dist/_chunks/{index-674778e2.mjs → index-e369d741.mjs} +2 -2
- package/dist/_chunks/{index-674778e2.mjs.map → index-e369d741.mjs.map} +1 -1
- package/dist/_chunks/{index-14887b9d.mjs → index-e79b2b9e.mjs} +3 -3
- package/dist/_chunks/{index-14887b9d.mjs.map → index-e79b2b9e.mjs.map} +1 -1
- package/dist/_chunks/{index-35c3f9f1.mjs → index-ea18ff22.mjs} +4 -4
- package/dist/_chunks/{index-35c3f9f1.mjs.map → index-ea18ff22.mjs.map} +1 -1
- package/dist/_chunks/{index-4a019067.js → index-ed3696ec.js} +3 -3
- package/dist/_chunks/{index-4a019067.js.map → index-ed3696ec.js.map} +1 -1
- package/dist/_chunks/{index-24d1e175.js → index-ee1ea38b.js} +5 -5
- package/dist/_chunks/{index-24d1e175.js.map → index-ee1ea38b.js.map} +1 -1
- package/dist/_chunks/{index-dab453d2.js → index-efc967f5.js} +4 -4
- package/dist/_chunks/{index-dab453d2.js.map → index-efc967f5.js.map} +1 -1
- package/dist/_chunks/{index-ff4fb44c.mjs → index-fd4e5616.mjs} +5 -5
- package/dist/_chunks/{index-ff4fb44c.mjs.map → index-fd4e5616.mjs.map} +1 -1
- package/dist/_chunks/{schema-336f4dd6.js → schema-260fec28.js} +2 -2
- package/dist/_chunks/{schema-336f4dd6.js.map → schema-260fec28.js.map} +1 -1
- package/dist/_chunks/{schema-60d9880c.mjs → schema-6bd8bd85.mjs} +2 -2
- package/dist/_chunks/{schema-60d9880c.mjs.map → schema-6bd8bd85.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-7f76e43f.js → validateWorkflow-5693ea2d.js} +3 -3
- package/dist/_chunks/{validateWorkflow-7f76e43f.js.map → validateWorkflow-5693ea2d.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-022b5005.mjs → validateWorkflow-7a2b6ab8.mjs} +3 -3
- package/dist/_chunks/{validateWorkflow-022b5005.mjs.map → validateWorkflow-7a2b6ab8.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +12 -12
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useFetchClient, useAPIErrorHandler, useNotification, useRBAC, ConfirmDialog, CheckPagePermissions } from "@strapi/helper-plugin";
|
|
3
3
|
import { useSelector, useDispatch } from "react-redux";
|
|
4
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
4
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-bb31f306.mjs";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { Button, Flex, Loader, Typography } from "@strapi/design-system";
|
|
7
7
|
import { Check } from "@strapi/icons";
|
|
@@ -12,7 +12,7 @@ import { useMutation } from "react-query";
|
|
|
12
12
|
import { useParams } from "react-router-dom";
|
|
13
13
|
import { u as useAdminRoles } from "./useAdminRoles-7ab5d521.mjs";
|
|
14
14
|
import { u as useContentTypes } from "./useContentTypes-53b449bb.mjs";
|
|
15
|
-
import { j as selectServerState, a as selectIsWorkflowDirty, b as selectCurrentWorkflow, k as selectHasDeletedServerStages, c as selectRoles, s as selectIsLoading, v as validateWorkflow, u as useInjectReducer, l as setWorkflow, d as setWorkflows, e as setContentTypes, f as setRoles, g as setIsLoading, r as resetWorkflow, W as WorkflowAttributes, S as Stages, i as reducer } from "./validateWorkflow-
|
|
15
|
+
import { j as selectServerState, a as selectIsWorkflowDirty, b as selectCurrentWorkflow, k as selectHasDeletedServerStages, c as selectRoles, s as selectIsLoading, v as validateWorkflow, u as useInjectReducer, l as setWorkflow, d as setWorkflows, e as setContentTypes, f as setRoles, g as setIsLoading, r as resetWorkflow, W as WorkflowAttributes, S as Stages, i as reducer } from "./validateWorkflow-7a2b6ab8.mjs";
|
|
16
16
|
import { u as useLicenseLimits } from "./useLicenseLimits-13a102d3.mjs";
|
|
17
17
|
import { D as DragLayerRendered, H as Header, B as Back, R as Root } from "./Layout-72fa2ace.mjs";
|
|
18
18
|
import { L as LimitsModal, T as Title, B as Body } from "./LimitsModal-da04700e.mjs";
|
|
@@ -20,7 +20,7 @@ import { C as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME, a as CHARGEBEE_STAGES_PER_WOR
|
|
|
20
20
|
import { u as useReviewWorkflows } from "./useReviewWorkflows-9e6b8986.mjs";
|
|
21
21
|
import "semver/functions/lt";
|
|
22
22
|
import "semver/functions/valid";
|
|
23
|
-
import "./index-
|
|
23
|
+
import "./index-8933483b.mjs";
|
|
24
24
|
import "react-dom/client";
|
|
25
25
|
import "invariant";
|
|
26
26
|
import "lodash/isFunction";
|
|
@@ -43,7 +43,7 @@ import "react-dnd-html5-backend";
|
|
|
43
43
|
import "lodash/cloneDeep";
|
|
44
44
|
import "axios";
|
|
45
45
|
import "prop-types";
|
|
46
|
-
import "./schema-
|
|
46
|
+
import "./schema-6bd8bd85.mjs";
|
|
47
47
|
import "lodash/isBoolean";
|
|
48
48
|
import "lodash/isEmpty";
|
|
49
49
|
import "lodash/isNaN";
|
|
@@ -356,4 +356,4 @@ function index() {
|
|
|
356
356
|
export {
|
|
357
357
|
index as default
|
|
358
358
|
};
|
|
359
|
-
//# sourceMappingURL=index-
|
|
359
|
+
//# sourceMappingURL=index-c8b8a2ee.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-06e97c47.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/index.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, Loader, Typography } from '@strapi/design-system';\nimport {\n ConfirmDialog,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { useFormik, Form, FormikProvider } from 'formik';\nimport set from 'lodash/set';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useParams } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../../../../../admin/src/hooks/useAdminRoles';\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { useInjectReducer } from '../../../../../../../../../admin/src/hooks/useInjectReducer';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport {\n resetWorkflow,\n setIsLoading,\n setWorkflow,\n setContentTypes,\n setRoles,\n setWorkflows,\n} from '../../actions';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { Stages } from '../../components/Stages';\nimport { WorkflowAttributes } from '../../components/WorkflowAttributes';\nimport {\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n REDUX_NAMESPACE,\n} from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\nimport { reducer } from '../../reducer';\nimport {\n selectIsWorkflowDirty,\n selectCurrentWorkflow,\n selectHasDeletedServerStages,\n selectIsLoading,\n selectRoles,\n selectServerState,\n} from '../../selectors';\nimport { validateWorkflow } from '../../utils/validateWorkflow';\n\nexport function ReviewWorkflowsEditView() {\n const { workflowId } = useParams();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const dispatch = useDispatch();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { isLoading: isLoadingWorkflow, meta, workflows, refetch } = useReviewWorkflows();\n const { collectionTypes, singleTypes, isLoading: isLoadingContentTypes } = useContentTypes();\n const serverState = useSelector(selectServerState);\n const currentWorkflowIsDirty = useSelector(selectIsWorkflowDirty);\n const currentWorkflow = useSelector(selectCurrentWorkflow);\n const hasDeletedServerStages = useSelector(selectHasDeletedServerStages);\n const roles = useSelector(selectRoles);\n const isLoading = useSelector(selectIsLoading);\n const {\n allowedActions: { canDelete, canUpdate },\n } = useRBAC(permissions.settings['review-workflows']);\n const [savePrompts, setSavePrompts] = React.useState({});\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { isLoading: isLoadingRoles, roles: serverRoles } = useAdminRoles(undefined, {\n retry: false,\n });\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const [initialErrors, setInitialErrors] = React.useState(null);\n\n const workflow = workflows.find((workflow) => workflow.id === parseInt(workflowId, 10));\n const contentTypesFromOtherWorkflows = workflows\n .filter((workflow) => workflow.id !== parseInt(workflowId, 10))\n .flatMap((workflow) => workflow.contentTypes);\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflow }) => {\n const {\n data: { data },\n } = await put(`/admin/review-workflows/workflows/${workflow.id}`, {\n data: workflow,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved', defaultMessage: 'Saved' },\n });\n },\n }\n );\n\n const updateWorkflow = async (workflow) => {\n // reset the error messages\n setInitialErrors(null);\n\n try {\n const res = await mutateAsync({\n workflow: {\n ...workflow,\n\n // compare permissions of stages and only submit them if at least one has\n // changed; this enables partial updates e.g. for users who don't have\n // permissions to see roles\n stages: workflow.stages.map((stage) => {\n let hasUpdatedPermissions = true;\n const serverStage = serverState.workflow.stages.find(\n (serverStage) => serverStage.id === stage?.id\n );\n\n if (serverStage) {\n hasUpdatedPermissions =\n serverStage.permissions?.length !== stage.permission?.length ||\n !serverStage.permissions.every(\n (serverPermission) =>\n !!stage.permissions.find(\n (permission) => permission.role === serverPermission.role\n )\n );\n }\n\n return {\n ...stage,\n permissions: hasUpdatedPermissions ? stage.permissions : undefined,\n };\n }),\n },\n });\n\n return res;\n } catch (error) {\n // TODO: this would benefit from a utility to get a formik error\n // representation from an API error\n if (\n error.response.data?.error?.name === 'ValidationError' &&\n error.response.data?.error?.details?.errors?.length > 0\n ) {\n setInitialErrors(\n error.response.data?.error?.details?.errors.reduce((acc, error) => {\n set(acc, error.path, error.message);\n\n return acc;\n }, {})\n );\n }\n\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\n };\n\n const submitForm = async () => {\n await updateWorkflow(currentWorkflow);\n await refetch();\n\n setSavePrompts({});\n };\n\n const handleConfirmDeleteDialog = async () => {\n await submitForm();\n };\n\n const handleConfirmClose = () => {\n setSavePrompts({});\n };\n\n const formik = useFormik({\n enableReinitialize: true,\n initialErrors,\n initialValues: currentWorkflow,\n async onSubmit() {\n const isContentTypeReassignment = currentWorkflow.contentTypes.some((contentType) =>\n contentTypesFromOtherWorkflows.includes(contentType)\n );\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n /**\n * If the current license has a limit, check if the total count of workflows\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit, check if the total count of stages\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n currentWorkflow.stages.length >\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('stage');\n } else if (hasDeletedServerStages || isContentTypeReassignment) {\n if (hasDeletedServerStages) {\n setSavePrompts((prev) => ({ ...prev, hasDeletedServerStages: true }));\n }\n\n if (isContentTypeReassignment) {\n setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));\n }\n } else {\n submitForm();\n }\n },\n validate(values) {\n return validateWorkflow({ values, formatMessage });\n },\n });\n\n useInjectReducer(REDUX_NAMESPACE, reducer);\n\n const limits = getFeature('review-workflows');\n\n React.useEffect(() => {\n if (!isLoadingWorkflow) {\n dispatch(setWorkflow({ workflow }));\n dispatch(setWorkflows({ workflows }));\n }\n\n if (!isLoadingContentTypes) {\n dispatch(setContentTypes({ collectionTypes, singleTypes }));\n }\n\n if (!isLoadingRoles) {\n dispatch(setRoles(serverRoles));\n }\n\n dispatch(setIsLoading(isLoadingWorkflow || isLoadingContentTypes || isLoadingRoles));\n\n // reset the state to the initial state to avoid flashes if a user\n // navigates from an edit-view to a create-view\n return () => {\n dispatch(resetWorkflow());\n };\n }, [\n collectionTypes,\n dispatch,\n isLoadingContentTypes,\n isLoadingWorkflow,\n isLoadingRoles,\n serverRoles,\n singleTypes,\n workflow,\n workflows,\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 (!isLoadingWorkflow && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('workflow');\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n currentWorkflow.stages.length >\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('stage');\n }\n }\n }, [\n currentWorkflow.stages.length,\n isLicenseLoading,\n isLoadingWorkflow,\n limits,\n meta?.workflowCount,\n meta.workflowsTotal,\n ]);\n\n React.useEffect(() => {\n if (!isLoading && roles.length === 0) {\n toggleNotification({\n blockTransition: true,\n type: 'warning',\n message: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification]);\n\n // TODO: redirect back to list-view if workflow is not found?\n\n return (\n <>\n <Layout.DragLayerRendered />\n\n <FormikProvider value={formik}>\n <Form onSubmit={formik.handleSubmit}>\n <Layout.Header\n navigationAction={<Layout.Back href=\"/settings/review-workflows\" />}\n primaryAction={\n canUpdate && (\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"M\"\n disabled={!currentWorkflowIsDirty}\n // if the confirm dialog is open the loading state is on\n // the confirm button already\n loading={!Object.keys(savePrompts).length > 0 && isLoadingMutation}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n subtitle={\n !isLoading &&\n formatMessage(\n {\n id: 'Settings.review-workflows.page.subtitle',\n defaultMessage: '{count, plural, one {# stage} other {# stages}}',\n },\n { count: currentWorkflow.stages.length }\n )\n }\n title={currentWorkflow.name}\n />\n\n <Layout.Root>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.isLoading',\n defaultMessage: 'Workflow is loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={7}>\n <WorkflowAttributes canUpdate={canUpdate} />\n <Stages\n canDelete={canDelete}\n canUpdate={canUpdate}\n stages={formik.values?.stages}\n />\n </Flex>\n )}\n </Layout.Root>\n </Form>\n </FormikProvider>\n\n <ConfirmDialog.Root\n isConfirmButtonLoading={isLoading}\n isOpen={Object.keys(savePrompts).length > 0}\n onToggleDialog={handleConfirmClose}\n onConfirm={handleConfirmDeleteDialog}\n >\n <ConfirmDialog.Body>\n <Flex direction=\"column\" gap={5}>\n {savePrompts.hasDeletedServerStages && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.stages.body',\n defaultMessage:\n 'All entries assigned to deleted stages will be moved to the previous stage.',\n })}\n </Typography>\n )}\n\n {savePrompts.hasReassignedContentTypes && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage(\n {\n id: 'Settings.review-workflows.page.delete.confirm.contentType.body',\n defaultMessage:\n '{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',\n },\n {\n count: contentTypesFromOtherWorkflows.filter((contentType) =>\n currentWorkflow.contentTypes.includes(contentType)\n ).length,\n }\n )}\n </Typography>\n )}\n\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.confirm',\n defaultMessage: 'Are you sure you want to save?',\n })}\n </Typography>\n </Flex>\n </ConfirmDialog.Body>\n </ConfirmDialog.Root>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.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.edit.page.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: 'Settings.review-workflows.edit.page.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: 'Settings.review-workflows.edit.page.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 { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\n\nimport { ReviewWorkflowsEditView } from './EditView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsEditView />\n </CheckPagePermissions>\n );\n}\n"],"names":["workflow","serverStage","error","Layout.DragLayerRendered","Layout.Header","Layout.Back","Layout.Root","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-c8b8a2ee.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/index.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, Loader, Typography } from '@strapi/design-system';\nimport {\n ConfirmDialog,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { useFormik, Form, FormikProvider } from 'formik';\nimport set from 'lodash/set';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useParams } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../../../../../admin/src/hooks/useAdminRoles';\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { useInjectReducer } from '../../../../../../../../../admin/src/hooks/useInjectReducer';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport {\n resetWorkflow,\n setIsLoading,\n setWorkflow,\n setContentTypes,\n setRoles,\n setWorkflows,\n} from '../../actions';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { Stages } from '../../components/Stages';\nimport { WorkflowAttributes } from '../../components/WorkflowAttributes';\nimport {\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n REDUX_NAMESPACE,\n} from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\nimport { reducer } from '../../reducer';\nimport {\n selectIsWorkflowDirty,\n selectCurrentWorkflow,\n selectHasDeletedServerStages,\n selectIsLoading,\n selectRoles,\n selectServerState,\n} from '../../selectors';\nimport { validateWorkflow } from '../../utils/validateWorkflow';\n\nexport function ReviewWorkflowsEditView() {\n const { workflowId } = useParams();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const dispatch = useDispatch();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { isLoading: isLoadingWorkflow, meta, workflows, refetch } = useReviewWorkflows();\n const { collectionTypes, singleTypes, isLoading: isLoadingContentTypes } = useContentTypes();\n const serverState = useSelector(selectServerState);\n const currentWorkflowIsDirty = useSelector(selectIsWorkflowDirty);\n const currentWorkflow = useSelector(selectCurrentWorkflow);\n const hasDeletedServerStages = useSelector(selectHasDeletedServerStages);\n const roles = useSelector(selectRoles);\n const isLoading = useSelector(selectIsLoading);\n const {\n allowedActions: { canDelete, canUpdate },\n } = useRBAC(permissions.settings['review-workflows']);\n const [savePrompts, setSavePrompts] = React.useState({});\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { isLoading: isLoadingRoles, roles: serverRoles } = useAdminRoles(undefined, {\n retry: false,\n });\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const [initialErrors, setInitialErrors] = React.useState(null);\n\n const workflow = workflows.find((workflow) => workflow.id === parseInt(workflowId, 10));\n const contentTypesFromOtherWorkflows = workflows\n .filter((workflow) => workflow.id !== parseInt(workflowId, 10))\n .flatMap((workflow) => workflow.contentTypes);\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflow }) => {\n const {\n data: { data },\n } = await put(`/admin/review-workflows/workflows/${workflow.id}`, {\n data: workflow,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved', defaultMessage: 'Saved' },\n });\n },\n }\n );\n\n const updateWorkflow = async (workflow) => {\n // reset the error messages\n setInitialErrors(null);\n\n try {\n const res = await mutateAsync({\n workflow: {\n ...workflow,\n\n // compare permissions of stages and only submit them if at least one has\n // changed; this enables partial updates e.g. for users who don't have\n // permissions to see roles\n stages: workflow.stages.map((stage) => {\n let hasUpdatedPermissions = true;\n const serverStage = serverState.workflow.stages.find(\n (serverStage) => serverStage.id === stage?.id\n );\n\n if (serverStage) {\n hasUpdatedPermissions =\n serverStage.permissions?.length !== stage.permission?.length ||\n !serverStage.permissions.every(\n (serverPermission) =>\n !!stage.permissions.find(\n (permission) => permission.role === serverPermission.role\n )\n );\n }\n\n return {\n ...stage,\n permissions: hasUpdatedPermissions ? stage.permissions : undefined,\n };\n }),\n },\n });\n\n return res;\n } catch (error) {\n // TODO: this would benefit from a utility to get a formik error\n // representation from an API error\n if (\n error.response.data?.error?.name === 'ValidationError' &&\n error.response.data?.error?.details?.errors?.length > 0\n ) {\n setInitialErrors(\n error.response.data?.error?.details?.errors.reduce((acc, error) => {\n set(acc, error.path, error.message);\n\n return acc;\n }, {})\n );\n }\n\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\n };\n\n const submitForm = async () => {\n await updateWorkflow(currentWorkflow);\n await refetch();\n\n setSavePrompts({});\n };\n\n const handleConfirmDeleteDialog = async () => {\n await submitForm();\n };\n\n const handleConfirmClose = () => {\n setSavePrompts({});\n };\n\n const formik = useFormik({\n enableReinitialize: true,\n initialErrors,\n initialValues: currentWorkflow,\n async onSubmit() {\n const isContentTypeReassignment = currentWorkflow.contentTypes.some((contentType) =>\n contentTypesFromOtherWorkflows.includes(contentType)\n );\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n /**\n * If the current license has a limit, check if the total count of workflows\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit, check if the total count of stages\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n currentWorkflow.stages.length >\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('stage');\n } else if (hasDeletedServerStages || isContentTypeReassignment) {\n if (hasDeletedServerStages) {\n setSavePrompts((prev) => ({ ...prev, hasDeletedServerStages: true }));\n }\n\n if (isContentTypeReassignment) {\n setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));\n }\n } else {\n submitForm();\n }\n },\n validate(values) {\n return validateWorkflow({ values, formatMessage });\n },\n });\n\n useInjectReducer(REDUX_NAMESPACE, reducer);\n\n const limits = getFeature('review-workflows');\n\n React.useEffect(() => {\n if (!isLoadingWorkflow) {\n dispatch(setWorkflow({ workflow }));\n dispatch(setWorkflows({ workflows }));\n }\n\n if (!isLoadingContentTypes) {\n dispatch(setContentTypes({ collectionTypes, singleTypes }));\n }\n\n if (!isLoadingRoles) {\n dispatch(setRoles(serverRoles));\n }\n\n dispatch(setIsLoading(isLoadingWorkflow || isLoadingContentTypes || isLoadingRoles));\n\n // reset the state to the initial state to avoid flashes if a user\n // navigates from an edit-view to a create-view\n return () => {\n dispatch(resetWorkflow());\n };\n }, [\n collectionTypes,\n dispatch,\n isLoadingContentTypes,\n isLoadingWorkflow,\n isLoadingRoles,\n serverRoles,\n singleTypes,\n workflow,\n workflows,\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 (!isLoadingWorkflow && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('workflow');\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n currentWorkflow.stages.length >\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal('stage');\n }\n }\n }, [\n currentWorkflow.stages.length,\n isLicenseLoading,\n isLoadingWorkflow,\n limits,\n meta?.workflowCount,\n meta.workflowsTotal,\n ]);\n\n React.useEffect(() => {\n if (!isLoading && roles.length === 0) {\n toggleNotification({\n blockTransition: true,\n type: 'warning',\n message: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification]);\n\n // TODO: redirect back to list-view if workflow is not found?\n\n return (\n <>\n <Layout.DragLayerRendered />\n\n <FormikProvider value={formik}>\n <Form onSubmit={formik.handleSubmit}>\n <Layout.Header\n navigationAction={<Layout.Back href=\"/settings/review-workflows\" />}\n primaryAction={\n canUpdate && (\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"M\"\n disabled={!currentWorkflowIsDirty}\n // if the confirm dialog is open the loading state is on\n // the confirm button already\n loading={!Object.keys(savePrompts).length > 0 && isLoadingMutation}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n subtitle={\n !isLoading &&\n formatMessage(\n {\n id: 'Settings.review-workflows.page.subtitle',\n defaultMessage: '{count, plural, one {# stage} other {# stages}}',\n },\n { count: currentWorkflow.stages.length }\n )\n }\n title={currentWorkflow.name}\n />\n\n <Layout.Root>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.isLoading',\n defaultMessage: 'Workflow is loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={7}>\n <WorkflowAttributes canUpdate={canUpdate} />\n <Stages\n canDelete={canDelete}\n canUpdate={canUpdate}\n stages={formik.values?.stages}\n />\n </Flex>\n )}\n </Layout.Root>\n </Form>\n </FormikProvider>\n\n <ConfirmDialog.Root\n isConfirmButtonLoading={isLoading}\n isOpen={Object.keys(savePrompts).length > 0}\n onToggleDialog={handleConfirmClose}\n onConfirm={handleConfirmDeleteDialog}\n >\n <ConfirmDialog.Body>\n <Flex direction=\"column\" gap={5}>\n {savePrompts.hasDeletedServerStages && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.stages.body',\n defaultMessage:\n 'All entries assigned to deleted stages will be moved to the previous stage.',\n })}\n </Typography>\n )}\n\n {savePrompts.hasReassignedContentTypes && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage(\n {\n id: 'Settings.review-workflows.page.delete.confirm.contentType.body',\n defaultMessage:\n '{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',\n },\n {\n count: contentTypesFromOtherWorkflows.filter((contentType) =>\n currentWorkflow.contentTypes.includes(contentType)\n ).length,\n }\n )}\n </Typography>\n )}\n\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.confirm',\n defaultMessage: 'Are you sure you want to save?',\n })}\n </Typography>\n </Flex>\n </ConfirmDialog.Body>\n </ConfirmDialog.Root>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(false)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.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.edit.page.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: 'Settings.review-workflows.edit.page.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: 'Settings.review-workflows.edit.page.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 { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\n\nimport { ReviewWorkflowsEditView } from './EditView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsEditView />\n </CheckPagePermissions>\n );\n}\n"],"names":["workflow","serverStage","error","Layout.DragLayerRendered","Layout.Header","Layout.Back","Layout.Root","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body"],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ const helperPlugin = require("@strapi/helper-plugin");
|
|
|
7
7
|
const reactHelmet = require("react-helmet");
|
|
8
8
|
const reactIntl = require("react-intl");
|
|
9
9
|
const reactRouterDom = require("react-router-dom");
|
|
10
|
-
const index = require("./index-
|
|
10
|
+
const index = require("./index-4de70b5d.js");
|
|
11
11
|
const sortBy = require("lodash/sortBy");
|
|
12
12
|
const reactRedux = require("react-redux");
|
|
13
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
13
|
+
const AuthenticatedApp = require("./AuthenticatedApp-342bf22f.js");
|
|
14
14
|
const v2 = require("@strapi/design-system/v2");
|
|
15
15
|
const Icons = require("@strapi/icons");
|
|
16
16
|
const PropTypes = require("prop-types");
|
|
@@ -224,7 +224,7 @@ SettingsNav.propTypes = {
|
|
|
224
224
|
const ROUTES_CE = [
|
|
225
225
|
{
|
|
226
226
|
async Component() {
|
|
227
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
227
|
+
const component = await Promise.resolve().then(() => require("./index-d1dd825b.js"));
|
|
228
228
|
return component;
|
|
229
229
|
},
|
|
230
230
|
to: "/settings/roles",
|
|
@@ -232,7 +232,7 @@ const ROUTES_CE = [
|
|
|
232
232
|
},
|
|
233
233
|
{
|
|
234
234
|
async Component() {
|
|
235
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
235
|
+
const component = await Promise.resolve().then(() => require("./index-cbc7c054.js"));
|
|
236
236
|
return component;
|
|
237
237
|
},
|
|
238
238
|
to: "/settings/roles/duplicate/:id",
|
|
@@ -240,7 +240,7 @@ const ROUTES_CE = [
|
|
|
240
240
|
},
|
|
241
241
|
{
|
|
242
242
|
async Component() {
|
|
243
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
243
|
+
const component = await Promise.resolve().then(() => require("./index-cbc7c054.js"));
|
|
244
244
|
return component;
|
|
245
245
|
},
|
|
246
246
|
to: "/settings/roles/new",
|
|
@@ -248,7 +248,7 @@ const ROUTES_CE = [
|
|
|
248
248
|
},
|
|
249
249
|
{
|
|
250
250
|
async Component() {
|
|
251
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
251
|
+
const component = await Promise.resolve().then(() => require("./index-d1152896.js"));
|
|
252
252
|
return component;
|
|
253
253
|
},
|
|
254
254
|
to: "/settings/roles/:id",
|
|
@@ -256,7 +256,7 @@ const ROUTES_CE = [
|
|
|
256
256
|
},
|
|
257
257
|
{
|
|
258
258
|
async Component() {
|
|
259
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
259
|
+
const component = await Promise.resolve().then(() => require("./index-171715e4.js")).then((n) => n.index);
|
|
260
260
|
return component;
|
|
261
261
|
},
|
|
262
262
|
to: "/settings/users",
|
|
@@ -264,7 +264,7 @@ const ROUTES_CE = [
|
|
|
264
264
|
},
|
|
265
265
|
{
|
|
266
266
|
async Component() {
|
|
267
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
267
|
+
const component = await Promise.resolve().then(() => require("./index-23401c29.js"));
|
|
268
268
|
return component;
|
|
269
269
|
},
|
|
270
270
|
to: "/settings/users/:id",
|
|
@@ -272,7 +272,7 @@ const ROUTES_CE = [
|
|
|
272
272
|
},
|
|
273
273
|
{
|
|
274
274
|
async Component() {
|
|
275
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
275
|
+
const component = await Promise.resolve().then(() => require("./index-4d9b2cb9.js"));
|
|
276
276
|
return component;
|
|
277
277
|
},
|
|
278
278
|
to: "/settings/webhooks/create",
|
|
@@ -280,7 +280,7 @@ const ROUTES_CE = [
|
|
|
280
280
|
},
|
|
281
281
|
{
|
|
282
282
|
async Component() {
|
|
283
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
283
|
+
const component = await Promise.resolve().then(() => require("./index-3b426575.js"));
|
|
284
284
|
return component;
|
|
285
285
|
},
|
|
286
286
|
to: "/settings/webhooks/:id",
|
|
@@ -288,7 +288,7 @@ const ROUTES_CE = [
|
|
|
288
288
|
},
|
|
289
289
|
{
|
|
290
290
|
async Component() {
|
|
291
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
291
|
+
const component = await Promise.resolve().then(() => require("./index-1bac5263.js"));
|
|
292
292
|
return component;
|
|
293
293
|
},
|
|
294
294
|
to: "/settings/webhooks",
|
|
@@ -296,7 +296,7 @@ const ROUTES_CE = [
|
|
|
296
296
|
},
|
|
297
297
|
{
|
|
298
298
|
async Component() {
|
|
299
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
299
|
+
const component = await Promise.resolve().then(() => require("./index-47af1603.js"));
|
|
300
300
|
return component;
|
|
301
301
|
},
|
|
302
302
|
to: "/settings/api-tokens",
|
|
@@ -304,7 +304,7 @@ const ROUTES_CE = [
|
|
|
304
304
|
},
|
|
305
305
|
{
|
|
306
306
|
async Component() {
|
|
307
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
307
|
+
const component = await Promise.resolve().then(() => require("./index-efc967f5.js"));
|
|
308
308
|
return component;
|
|
309
309
|
},
|
|
310
310
|
to: "/settings/api-tokens/create",
|
|
@@ -312,7 +312,7 @@ const ROUTES_CE = [
|
|
|
312
312
|
},
|
|
313
313
|
{
|
|
314
314
|
async Component() {
|
|
315
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
315
|
+
const component = await Promise.resolve().then(() => require("./index-9910dda4.js"));
|
|
316
316
|
return component;
|
|
317
317
|
},
|
|
318
318
|
to: "/settings/api-tokens/:id",
|
|
@@ -320,7 +320,7 @@ const ROUTES_CE = [
|
|
|
320
320
|
},
|
|
321
321
|
{
|
|
322
322
|
async Component() {
|
|
323
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
323
|
+
const component = await Promise.resolve().then(() => require("./index-9f61bef8.js"));
|
|
324
324
|
return component;
|
|
325
325
|
},
|
|
326
326
|
to: "/settings/transfer-tokens/create",
|
|
@@ -328,7 +328,7 @@ const ROUTES_CE = [
|
|
|
328
328
|
},
|
|
329
329
|
{
|
|
330
330
|
async Component() {
|
|
331
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
331
|
+
const component = await Promise.resolve().then(() => require("./index-ed3696ec.js"));
|
|
332
332
|
return component;
|
|
333
333
|
},
|
|
334
334
|
to: "/settings/transfer-tokens",
|
|
@@ -336,7 +336,7 @@ const ROUTES_CE = [
|
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
async Component() {
|
|
339
|
-
const component = await Promise.resolve().then(() => require("./index-
|
|
339
|
+
const component = await Promise.resolve().then(() => require("./index-2de06c32.js"));
|
|
340
340
|
return component;
|
|
341
341
|
},
|
|
342
342
|
to: "/settings/transfer-tokens/:id",
|
|
@@ -1215,7 +1215,7 @@ const ApplicationInfosPage = () => {
|
|
|
1215
1215
|
} = helperPlugin.useAppInfo();
|
|
1216
1216
|
const AdminSeatInfo = index.useEnterprise(
|
|
1217
1217
|
AdminSeatInfoCE,
|
|
1218
|
-
async () => (await Promise.resolve().then(() => require("./index-
|
|
1218
|
+
async () => (await Promise.resolve().then(() => require("./index-bbac142a.js"))).AdminSeatInfoEE
|
|
1219
1219
|
);
|
|
1220
1220
|
const {
|
|
1221
1221
|
allowedActions: { canRead, canUpdate }
|
|
@@ -1412,7 +1412,7 @@ function SettingsPage() {
|
|
|
1412
1412
|
const { isLoading, menu } = useSettingsMenu();
|
|
1413
1413
|
const routes = index.useEnterprise(
|
|
1414
1414
|
ROUTES_CE,
|
|
1415
|
-
async () => (await Promise.resolve().then(() => require("./constants-
|
|
1415
|
+
async () => (await Promise.resolve().then(() => require("./constants-e05f06d4.js"))).ROUTES_EE,
|
|
1416
1416
|
{
|
|
1417
1417
|
combine(ceRoutes, eeRoutes) {
|
|
1418
1418
|
return [...ceRoutes, ...eeRoutes];
|
|
@@ -1453,4 +1453,4 @@ function SettingsPage() {
|
|
|
1453
1453
|
] });
|
|
1454
1454
|
}
|
|
1455
1455
|
exports.SettingsPage = SettingsPage;
|
|
1456
|
-
//# sourceMappingURL=index-
|
|
1456
|
+
//# sourceMappingURL=index-c97f5820.js.map
|