@strapi/review-workflows 0.0.0-experimental.d954d57341a6623992a0d211daaec8e245c3517d → 0.0.0-experimental.da0467de7eccc163e893e9b332505a79a5d52ec7

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.
Files changed (121) hide show
  1. package/LICENSE +12 -17
  2. package/dist/admin/chunks/Layout-COWXwu3C.js +290 -0
  3. package/dist/admin/chunks/Layout-COWXwu3C.js.map +1 -0
  4. package/dist/admin/chunks/Layout-CsShRydy.mjs +265 -0
  5. package/dist/admin/chunks/Layout-CsShRydy.mjs.map +1 -0
  6. package/dist/admin/chunks/en-BNGiWajd.js +20 -0
  7. package/dist/admin/chunks/en-BNGiWajd.js.map +1 -0
  8. package/dist/admin/chunks/en-BrZXFtVv.mjs +18 -0
  9. package/dist/admin/chunks/en-BrZXFtVv.mjs.map +1 -0
  10. package/dist/admin/chunks/id-D8zbh_Y8.js +1442 -0
  11. package/dist/admin/chunks/id-D8zbh_Y8.js.map +1 -0
  12. package/dist/admin/chunks/id-afdVynVx.mjs +1420 -0
  13. package/dist/admin/chunks/id-afdVynVx.mjs.map +1 -0
  14. package/dist/admin/chunks/index-2VGAYchq.mjs +1081 -0
  15. package/dist/admin/chunks/index-2VGAYchq.mjs.map +1 -0
  16. package/dist/admin/chunks/index-7Tk-SHLf.js +293 -0
  17. package/dist/admin/chunks/index-7Tk-SHLf.js.map +1 -0
  18. package/dist/admin/chunks/index-BXlkcM4s.mjs +271 -0
  19. package/dist/admin/chunks/index-BXlkcM4s.mjs.map +1 -0
  20. package/dist/admin/chunks/index-CEABZUwQ.js +1115 -0
  21. package/dist/admin/chunks/index-CEABZUwQ.js.map +1 -0
  22. package/dist/admin/chunks/purchase-review-workflows-BJkm1_Dd.mjs +180 -0
  23. package/dist/admin/chunks/purchase-review-workflows-BJkm1_Dd.mjs.map +1 -0
  24. package/dist/admin/chunks/purchase-review-workflows-BQL0PbmB.js +182 -0
  25. package/dist/admin/chunks/purchase-review-workflows-BQL0PbmB.js.map +1 -0
  26. package/dist/admin/chunks/router-Cc8VcSCc.js +30 -0
  27. package/dist/admin/chunks/router-Cc8VcSCc.js.map +1 -0
  28. package/dist/admin/chunks/router-JyFAzv9_.mjs +28 -0
  29. package/dist/admin/chunks/router-JyFAzv9_.mjs.map +1 -0
  30. package/dist/admin/chunks/uk-CbRUr1I7.js +16 -0
  31. package/dist/admin/chunks/uk-CbRUr1I7.js.map +1 -0
  32. package/dist/admin/chunks/uk-DLlzEBUF.mjs +14 -0
  33. package/dist/admin/chunks/uk-DLlzEBUF.mjs.map +1 -0
  34. package/dist/admin/index.js +17 -2
  35. package/dist/admin/index.js.map +1 -1
  36. package/dist/admin/index.mjs +12 -4
  37. package/dist/admin/index.mjs.map +1 -1
  38. package/dist/admin/src/routes/content-manager/model/id/components/AssigneeSelect.d.ts +4 -0
  39. package/dist/admin/src/routes/content-manager/model/id/components/Header.d.ts +5 -0
  40. package/dist/admin/src/routes/content-manager/model/id/components/StageSelect.d.ts +3 -0
  41. package/dist/admin/src/services/admin.d.ts +1 -1
  42. package/dist/admin/src/services/api.d.ts +1 -1
  43. package/dist/admin/src/services/content-manager.d.ts +4 -4
  44. package/dist/admin/src/services/settings.d.ts +1739 -9
  45. package/dist/server/index.js +2110 -8013
  46. package/dist/server/index.js.map +1 -1
  47. package/dist/server/index.mjs +2116 -8022
  48. package/dist/server/index.mjs.map +1 -1
  49. package/dist/server/src/bootstrap.d.ts.map +1 -1
  50. package/dist/server/src/constants/workflows.d.ts +1 -0
  51. package/dist/server/src/constants/workflows.d.ts.map +1 -1
  52. package/dist/server/src/content-types/index.d.ts +6 -0
  53. package/dist/server/src/content-types/index.d.ts.map +1 -1
  54. package/dist/server/src/content-types/workflow/index.d.ts +6 -0
  55. package/dist/server/src/content-types/workflow/index.d.ts.map +1 -1
  56. package/dist/server/src/controllers/assignees.d.ts.map +1 -1
  57. package/dist/server/src/controllers/index.d.ts +0 -1
  58. package/dist/server/src/controllers/index.d.ts.map +1 -1
  59. package/dist/server/src/controllers/stages.d.ts.map +1 -1
  60. package/dist/server/src/controllers/workflows.d.ts +0 -7
  61. package/dist/server/src/controllers/workflows.d.ts.map +1 -1
  62. package/dist/server/src/index.d.ts +28 -7
  63. package/dist/server/src/index.d.ts.map +1 -1
  64. package/dist/server/src/register.d.ts.map +1 -1
  65. package/dist/server/src/routes/review-workflows.d.ts.map +1 -1
  66. package/dist/server/src/services/assignees.d.ts +8 -4
  67. package/dist/server/src/services/assignees.d.ts.map +1 -1
  68. package/dist/server/src/services/document-service-middleware.d.ts +2 -1
  69. package/dist/server/src/services/document-service-middleware.d.ts.map +1 -1
  70. package/dist/server/src/services/index.d.ts +16 -6
  71. package/dist/server/src/services/index.d.ts.map +1 -1
  72. package/dist/server/src/services/metrics/index.d.ts +4 -4
  73. package/dist/server/src/services/metrics/index.d.ts.map +1 -1
  74. package/dist/server/src/services/metrics/weekly-metrics.d.ts.map +1 -1
  75. package/dist/server/src/services/stages.d.ts +7 -7
  76. package/dist/server/src/services/stages.d.ts.map +1 -1
  77. package/dist/server/src/services/workflows.d.ts.map +1 -1
  78. package/dist/server/src/validation/review-workflows.d.ts +4 -0
  79. package/dist/server/src/validation/review-workflows.d.ts.map +1 -1
  80. package/dist/shared/contracts/review-workflows.d.ts +9 -18
  81. package/dist/shared/contracts/review-workflows.d.ts.map +1 -1
  82. package/package.json +17 -16
  83. package/dist/_chunks/Layout-BDKzgDbH.mjs +0 -234
  84. package/dist/_chunks/Layout-BDKzgDbH.mjs.map +0 -1
  85. package/dist/_chunks/Layout-y4m6QHjX.js +0 -252
  86. package/dist/_chunks/Layout-y4m6QHjX.js.map +0 -1
  87. package/dist/_chunks/_id-CB3lqKgb.js +0 -1274
  88. package/dist/_chunks/_id-CB3lqKgb.js.map +0 -1
  89. package/dist/_chunks/_id-yOfUu1Rs.mjs +0 -1254
  90. package/dist/_chunks/_id-yOfUu1Rs.mjs.map +0 -1
  91. package/dist/_chunks/en-D9ZrQAV6.mjs +0 -12
  92. package/dist/_chunks/en-D9ZrQAV6.mjs.map +0 -1
  93. package/dist/_chunks/en-xcewH2pC.js +0 -12
  94. package/dist/_chunks/en-xcewH2pC.js.map +0 -1
  95. package/dist/_chunks/index--7HYUi67.mjs +0 -234
  96. package/dist/_chunks/index--7HYUi67.mjs.map +0 -1
  97. package/dist/_chunks/index-Bj7gelY1.js +0 -819
  98. package/dist/_chunks/index-Bj7gelY1.js.map +0 -1
  99. package/dist/_chunks/index-Bx0Y1GZR.mjs +0 -801
  100. package/dist/_chunks/index-Bx0Y1GZR.mjs.map +0 -1
  101. package/dist/_chunks/index-CNKQvAnM.js +0 -253
  102. package/dist/_chunks/index-CNKQvAnM.js.map +0 -1
  103. package/dist/_chunks/purchase-review-workflows-BN-5Ube7.mjs +0 -52
  104. package/dist/_chunks/purchase-review-workflows-BN-5Ube7.mjs.map +0 -1
  105. package/dist/_chunks/purchase-review-workflows-DlCDg0fD.js +0 -52
  106. package/dist/_chunks/purchase-review-workflows-DlCDg0fD.js.map +0 -1
  107. package/dist/_chunks/router-LZ2xbb95.js +0 -24
  108. package/dist/_chunks/router-LZ2xbb95.js.map +0 -1
  109. package/dist/_chunks/router-t6Nj4F0T.mjs +0 -24
  110. package/dist/_chunks/router-t6Nj4F0T.mjs.map +0 -1
  111. package/dist/admin/src/routes/content-manager/[model]/[id]/components/AssigneeSelect.d.ts +0 -2
  112. package/dist/admin/src/routes/content-manager/[model]/[id]/components/StageSelect.d.ts +0 -1
  113. package/strapi-server.js +0 -3
  114. /package/dist/admin/src/routes/content-manager/{[model] → model}/components/AssigneeFilter.d.ts +0 -0
  115. /package/dist/admin/src/routes/content-manager/{[model] → model}/components/StageFilter.d.ts +0 -0
  116. /package/dist/admin/src/routes/content-manager/{[model] → model}/components/TableColumns.d.ts +0 -0
  117. /package/dist/admin/src/routes/content-manager/{[model] → model}/configure/constants.d.ts +0 -0
  118. /package/dist/admin/src/routes/content-manager/{[model] → model}/constants.d.ts +0 -0
  119. /package/dist/admin/src/routes/content-manager/{[model]/[id] → model/id}/components/Panel.d.ts +0 -0
  120. /package/dist/admin/src/routes/content-manager/{[model]/[id] → model/id}/components/constants.d.ts +0 -0
  121. /package/dist/admin/src/routes/settings/{:id.d.ts → id.d.ts} +0 -0
@@ -1,234 +0,0 @@
1
- import * as React from "react";
2
- import { useNotification, useAPIErrorHandler, Page, Layouts } from "@strapi/admin/strapi-admin";
3
- import { useIntl } from "react-intl";
4
- import { c as useGetWorkflowsQuery, d as useCreateWorkflowMutation, e as useUpdateWorkflowMutation, f as useDeleteWorkflowMutation } from "./index-Bx0Y1GZR.mjs";
5
- import { jsxs, jsx, Fragment } from "react/jsx-runtime";
6
- import { Flex, Typography, Box } from "@strapi/design-system";
7
- import { useDragLayer } from "react-dnd";
8
- import { CaretDown } from "@strapi/icons";
9
- const DEFAULT_UNEXPECTED_ERROR_MSG = {
10
- id: "notification.error",
11
- defaultMessage: "An error occurred, please try again"
12
- };
13
- const useReviewWorkflows = (params = {}) => {
14
- const { toggleNotification } = useNotification();
15
- const { formatMessage } = useIntl();
16
- const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
17
- const { id = "", skip = false, ...queryParams } = params;
18
- const { data, isLoading, error } = useGetWorkflowsQuery(
19
- {
20
- id,
21
- populate: "stages",
22
- ...queryParams
23
- },
24
- {
25
- skip
26
- }
27
- );
28
- React.useEffect(() => {
29
- if (error) {
30
- toggleNotification({
31
- type: "danger",
32
- message: formatAPIError(error)
33
- });
34
- }
35
- }, [error, formatAPIError, toggleNotification]);
36
- const [createWorkflow] = useCreateWorkflowMutation();
37
- const create = React.useCallback(
38
- async (data2) => {
39
- try {
40
- const res = await createWorkflow({ data: data2 });
41
- if ("error" in res) {
42
- toggleNotification({
43
- type: "danger",
44
- message: formatAPIError(res.error)
45
- });
46
- return res;
47
- }
48
- toggleNotification({
49
- type: "success",
50
- message: formatMessage({ id: "actions.created", defaultMessage: "Created workflow" })
51
- });
52
- return res;
53
- } catch (err) {
54
- toggleNotification({
55
- type: "danger",
56
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
57
- });
58
- throw err;
59
- }
60
- },
61
- [createWorkflow, formatAPIError, formatMessage, toggleNotification]
62
- );
63
- const [updateWorkflow] = useUpdateWorkflowMutation();
64
- const update = React.useCallback(
65
- async (id2, data2) => {
66
- try {
67
- const res = await updateWorkflow({ id: id2, data: data2 });
68
- if ("error" in res) {
69
- toggleNotification({
70
- type: "danger",
71
- message: formatAPIError(res.error)
72
- });
73
- return res;
74
- }
75
- toggleNotification({
76
- type: "success",
77
- message: formatMessage({ id: "actions.updated", defaultMessage: "Updated workflow" })
78
- });
79
- return res;
80
- } catch (err) {
81
- toggleNotification({
82
- type: "danger",
83
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
84
- });
85
- throw err;
86
- }
87
- },
88
- [formatAPIError, formatMessage, toggleNotification, updateWorkflow]
89
- );
90
- const [deleteWorkflow] = useDeleteWorkflowMutation();
91
- const deleteAction = React.useCallback(
92
- async (id2) => {
93
- try {
94
- const res = await deleteWorkflow({ id: id2 });
95
- if ("error" in res) {
96
- toggleNotification({
97
- type: "danger",
98
- message: formatAPIError(res.error)
99
- });
100
- return;
101
- }
102
- toggleNotification({
103
- type: "success",
104
- message: formatMessage({ id: "actions.deleted", defaultMessage: "Deleted workflow" })
105
- });
106
- return res.data;
107
- } catch (err) {
108
- toggleNotification({
109
- type: "danger",
110
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
111
- });
112
- throw err;
113
- }
114
- },
115
- [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]
116
- );
117
- const { workflows = [], meta } = data ?? {};
118
- return {
119
- // meta contains e.g. the total of all workflows. we can not use
120
- // the pagination object here, because the list is not paginated.
121
- meta,
122
- workflows,
123
- isLoading,
124
- error,
125
- create,
126
- delete: deleteAction,
127
- update
128
- };
129
- };
130
- const DRAG_DROP_TYPES = {
131
- STAGE: "stage"
132
- };
133
- const StageDragPreview = ({ name }) => {
134
- return /* @__PURE__ */ jsxs(
135
- Flex,
136
- {
137
- background: "primary100",
138
- borderStyle: "dashed",
139
- borderColor: "primary600",
140
- borderWidth: "1px",
141
- gap: 3,
142
- hasRadius: true,
143
- padding: 3,
144
- shadow: "tableShadow",
145
- width: "30rem",
146
- children: [
147
- /* @__PURE__ */ jsx(
148
- Flex,
149
- {
150
- alignItems: "center",
151
- background: "neutral200",
152
- borderRadius: "50%",
153
- height: 6,
154
- justifyContent: "center",
155
- width: 6,
156
- children: /* @__PURE__ */ jsx(CaretDown, { width: "0.8rem", fill: "neutral600" })
157
- }
158
- ),
159
- /* @__PURE__ */ jsx(Typography, { fontWeight: "bold", children: name })
160
- ]
161
- }
162
- );
163
- };
164
- function getStyle(initialOffset, currentOffset, mouseOffset) {
165
- if (!initialOffset || !currentOffset || !mouseOffset) {
166
- return { display: "none" };
167
- }
168
- const { x, y } = mouseOffset;
169
- return {
170
- transform: `translate(${x}px, ${y}px)`
171
- };
172
- }
173
- const DragLayerRendered = () => {
174
- const { itemType, isDragging, item, initialOffset, currentOffset, mouseOffset } = useDragLayer(
175
- (monitor) => ({
176
- item: monitor.getItem(),
177
- itemType: monitor.getItemType(),
178
- initialOffset: monitor.getInitialSourceClientOffset(),
179
- currentOffset: monitor.getSourceClientOffset(),
180
- isDragging: monitor.isDragging(),
181
- mouseOffset: monitor.getClientOffset()
182
- })
183
- );
184
- if (!isDragging || itemType !== DRAG_DROP_TYPES.STAGE) {
185
- return null;
186
- }
187
- return /* @__PURE__ */ jsx(
188
- Box,
189
- {
190
- height: "100%",
191
- left: 0,
192
- position: "fixed",
193
- pointerEvents: "none",
194
- top: 0,
195
- zIndex: 100,
196
- width: "100%",
197
- children: /* @__PURE__ */ jsxs(Box, { style: getStyle(initialOffset, currentOffset, mouseOffset), children: [
198
- /* @__PURE__ */ jsx(StageDragPreview, { name: typeof item.item === "string" ? item.item : null }),
199
- ";"
200
- ] })
201
- }
202
- );
203
- };
204
- const Root = ({ children }) => {
205
- return /* @__PURE__ */ jsx(Page.Main, { children: /* @__PURE__ */ jsx(Layouts.Content, { children }) });
206
- };
207
- const Header = ({ title, subtitle, navigationAction, primaryAction }) => {
208
- const { formatMessage } = useIntl();
209
- return /* @__PURE__ */ jsxs(Fragment, { children: [
210
- /* @__PURE__ */ jsx(Page.Title, { children: formatMessage(
211
- { id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
212
- {
213
- name: title
214
- }
215
- ) }),
216
- /* @__PURE__ */ jsx(
217
- Layouts.Header,
218
- {
219
- navigationAction,
220
- primaryAction,
221
- title,
222
- subtitle
223
- }
224
- )
225
- ] });
226
- };
227
- export {
228
- DRAG_DROP_TYPES as D,
229
- Header as H,
230
- Root as R,
231
- DragLayerRendered as a,
232
- useReviewWorkflows as u
233
- };
234
- //# sourceMappingURL=Layout-BDKzgDbH.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout-BDKzgDbH.mjs","sources":["../../admin/src/routes/settings/hooks/useReviewWorkflows.ts","../../admin/src/routes/settings/constants.ts","../../admin/src/routes/settings/components/StageDragPreview.tsx","../../admin/src/routes/settings/components/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { type MessageDescriptor, useIntl } from 'react-intl';\n\nimport {\n GetWorkflowsParams,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useGetWorkflowsQuery,\n useUpdateWorkflowMutation,\n} from '../../../services/settings';\n\nimport type { Create, Update } from '../../../../../shared/contracts/review-workflows';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype UseReviewWorkflowsArgs = GetWorkflowsParams & {\n skip?: boolean;\n};\n\nconst useReviewWorkflows = (params: UseReviewWorkflowsArgs = {}) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { id = '', skip = false, ...queryParams } = params;\n\n const { data, isLoading, error } = useGetWorkflowsQuery(\n {\n id,\n populate: 'stages',\n ...queryParams,\n },\n {\n skip,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [createWorkflow] = useCreateWorkflowMutation();\n const create = React.useCallback(\n async (data: Create.Request['body']['data']) => {\n try {\n const res = await createWorkflow({ data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.created', defaultMessage: 'Created workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [createWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const update = React.useCallback(\n async (id: string, data: Update.Request['body']['data']) => {\n try {\n const res = await updateWorkflow({ id, data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.updated', defaultMessage: 'Updated workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [formatAPIError, formatMessage, toggleNotification, updateWorkflow]\n );\n\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n const deleteAction = React.useCallback(\n async (id: string) => {\n try {\n const res = await deleteWorkflow({ id });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.deleted', defaultMessage: 'Deleted workflow' }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const { workflows = [], meta } = 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 workflows,\n isLoading,\n error,\n create,\n delete: deleteAction,\n update,\n };\n};\n\nexport { useReviewWorkflows };\n","export type DragDropTypes = 'stage';\n\nexport const DRAG_DROP_TYPES: Record<Uppercase<DragDropTypes>, DragDropTypes> = {\n STAGE: 'stage',\n};\n","import { Flex, Typography } from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\n\ninterface StageDragPreviewType {\n name: string | null;\n}\n\nconst StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width=\"30rem\"\n >\n <Flex\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CaretDown width=\"0.8rem\" fill=\"neutral600\" />\n </Flex>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n\nexport { StageDragPreview };\nexport type { StageDragPreviewType };\n","import * as React from 'react';\n\nimport { Page, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport { XYCoord, useDragLayer } from 'react-dnd';\nimport { useIntl } from 'react-intl';\n\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nfunction getStyle(\n initialOffset: XYCoord | null,\n currentOffset: XYCoord | null,\n mouseOffset: XYCoord | null\n) {\n if (!initialOffset || !currentOffset || !mouseOffset) {\n return { display: 'none' };\n }\n\n const { x, y } = mouseOffset;\n\n return {\n transform: `translate(${x}px, ${y}px)`,\n };\n}\n\nconst DragLayerRendered = () => {\n const { itemType, isDragging, item, initialOffset, currentOffset, mouseOffset } = useDragLayer(\n (monitor) => ({\n item: monitor.getItem(),\n itemType: monitor.getItemType(),\n initialOffset: monitor.getInitialSourceClientOffset(),\n currentOffset: monitor.getSourceClientOffset(),\n isDragging: monitor.isDragging(),\n mouseOffset: monitor.getClientOffset(),\n })\n );\n\n if (!isDragging || itemType !== DRAG_DROP_TYPES.STAGE) {\n return null;\n }\n\n return (\n <Box\n height=\"100%\"\n left={0}\n position=\"fixed\"\n pointerEvents=\"none\"\n top={0}\n zIndex={100}\n width=\"100%\"\n >\n <Box style={getStyle(initialOffset, currentOffset, mouseOffset)}>\n <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n </Box>\n </Box>\n );\n};\n\nconst Root: React.FC<React.PropsWithChildren> = ({ children }) => {\n return (\n <Page.Main>\n <Layouts.Content>{children}</Layouts.Content>\n </Page.Main>\n );\n};\n\ninterface HeaderProps {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n}\n\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n const { formatMessage } = useIntl();\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: title,\n }\n )}\n </Page.Title>\n <Layouts.Header\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { DragLayerRendered, Header, Root };\n"],"names":["data","id"],"mappings":"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"}
@@ -1,252 +0,0 @@
1
- "use strict";
2
- const React = require("react");
3
- const strapiAdmin = require("@strapi/admin/strapi-admin");
4
- const reactIntl = require("react-intl");
5
- const index = require("./index-Bj7gelY1.js");
6
- const jsxRuntime = require("react/jsx-runtime");
7
- const designSystem = require("@strapi/design-system");
8
- const reactDnd = require("react-dnd");
9
- const icons = require("@strapi/icons");
10
- function _interopNamespace(e) {
11
- if (e && e.__esModule)
12
- return e;
13
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
14
- if (e) {
15
- for (const k in e) {
16
- if (k !== "default") {
17
- const d = Object.getOwnPropertyDescriptor(e, k);
18
- Object.defineProperty(n, k, d.get ? d : {
19
- enumerable: true,
20
- get: () => e[k]
21
- });
22
- }
23
- }
24
- }
25
- n.default = e;
26
- return Object.freeze(n);
27
- }
28
- const React__namespace = /* @__PURE__ */ _interopNamespace(React);
29
- const DEFAULT_UNEXPECTED_ERROR_MSG = {
30
- id: "notification.error",
31
- defaultMessage: "An error occurred, please try again"
32
- };
33
- const useReviewWorkflows = (params = {}) => {
34
- const { toggleNotification } = strapiAdmin.useNotification();
35
- const { formatMessage } = reactIntl.useIntl();
36
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
37
- const { id = "", skip = false, ...queryParams } = params;
38
- const { data, isLoading, error } = index.useGetWorkflowsQuery(
39
- {
40
- id,
41
- populate: "stages",
42
- ...queryParams
43
- },
44
- {
45
- skip
46
- }
47
- );
48
- React__namespace.useEffect(() => {
49
- if (error) {
50
- toggleNotification({
51
- type: "danger",
52
- message: formatAPIError(error)
53
- });
54
- }
55
- }, [error, formatAPIError, toggleNotification]);
56
- const [createWorkflow] = index.useCreateWorkflowMutation();
57
- const create = React__namespace.useCallback(
58
- async (data2) => {
59
- try {
60
- const res = await createWorkflow({ data: data2 });
61
- if ("error" in res) {
62
- toggleNotification({
63
- type: "danger",
64
- message: formatAPIError(res.error)
65
- });
66
- return res;
67
- }
68
- toggleNotification({
69
- type: "success",
70
- message: formatMessage({ id: "actions.created", defaultMessage: "Created workflow" })
71
- });
72
- return res;
73
- } catch (err) {
74
- toggleNotification({
75
- type: "danger",
76
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
77
- });
78
- throw err;
79
- }
80
- },
81
- [createWorkflow, formatAPIError, formatMessage, toggleNotification]
82
- );
83
- const [updateWorkflow] = index.useUpdateWorkflowMutation();
84
- const update = React__namespace.useCallback(
85
- async (id2, data2) => {
86
- try {
87
- const res = await updateWorkflow({ id: id2, data: data2 });
88
- if ("error" in res) {
89
- toggleNotification({
90
- type: "danger",
91
- message: formatAPIError(res.error)
92
- });
93
- return res;
94
- }
95
- toggleNotification({
96
- type: "success",
97
- message: formatMessage({ id: "actions.updated", defaultMessage: "Updated workflow" })
98
- });
99
- return res;
100
- } catch (err) {
101
- toggleNotification({
102
- type: "danger",
103
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
104
- });
105
- throw err;
106
- }
107
- },
108
- [formatAPIError, formatMessage, toggleNotification, updateWorkflow]
109
- );
110
- const [deleteWorkflow] = index.useDeleteWorkflowMutation();
111
- const deleteAction = React__namespace.useCallback(
112
- async (id2) => {
113
- try {
114
- const res = await deleteWorkflow({ id: id2 });
115
- if ("error" in res) {
116
- toggleNotification({
117
- type: "danger",
118
- message: formatAPIError(res.error)
119
- });
120
- return;
121
- }
122
- toggleNotification({
123
- type: "success",
124
- message: formatMessage({ id: "actions.deleted", defaultMessage: "Deleted workflow" })
125
- });
126
- return res.data;
127
- } catch (err) {
128
- toggleNotification({
129
- type: "danger",
130
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
131
- });
132
- throw err;
133
- }
134
- },
135
- [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]
136
- );
137
- const { workflows = [], meta } = data ?? {};
138
- return {
139
- // meta contains e.g. the total of all workflows. we can not use
140
- // the pagination object here, because the list is not paginated.
141
- meta,
142
- workflows,
143
- isLoading,
144
- error,
145
- create,
146
- delete: deleteAction,
147
- update
148
- };
149
- };
150
- const DRAG_DROP_TYPES = {
151
- STAGE: "stage"
152
- };
153
- const StageDragPreview = ({ name }) => {
154
- return /* @__PURE__ */ jsxRuntime.jsxs(
155
- designSystem.Flex,
156
- {
157
- background: "primary100",
158
- borderStyle: "dashed",
159
- borderColor: "primary600",
160
- borderWidth: "1px",
161
- gap: 3,
162
- hasRadius: true,
163
- padding: 3,
164
- shadow: "tableShadow",
165
- width: "30rem",
166
- children: [
167
- /* @__PURE__ */ jsxRuntime.jsx(
168
- designSystem.Flex,
169
- {
170
- alignItems: "center",
171
- background: "neutral200",
172
- borderRadius: "50%",
173
- height: 6,
174
- justifyContent: "center",
175
- width: 6,
176
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.CaretDown, { width: "0.8rem", fill: "neutral600" })
177
- }
178
- ),
179
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", children: name })
180
- ]
181
- }
182
- );
183
- };
184
- function getStyle(initialOffset, currentOffset, mouseOffset) {
185
- if (!initialOffset || !currentOffset || !mouseOffset) {
186
- return { display: "none" };
187
- }
188
- const { x, y } = mouseOffset;
189
- return {
190
- transform: `translate(${x}px, ${y}px)`
191
- };
192
- }
193
- const DragLayerRendered = () => {
194
- const { itemType, isDragging, item, initialOffset, currentOffset, mouseOffset } = reactDnd.useDragLayer(
195
- (monitor) => ({
196
- item: monitor.getItem(),
197
- itemType: monitor.getItemType(),
198
- initialOffset: monitor.getInitialSourceClientOffset(),
199
- currentOffset: monitor.getSourceClientOffset(),
200
- isDragging: monitor.isDragging(),
201
- mouseOffset: monitor.getClientOffset()
202
- })
203
- );
204
- if (!isDragging || itemType !== DRAG_DROP_TYPES.STAGE) {
205
- return null;
206
- }
207
- return /* @__PURE__ */ jsxRuntime.jsx(
208
- designSystem.Box,
209
- {
210
- height: "100%",
211
- left: 0,
212
- position: "fixed",
213
- pointerEvents: "none",
214
- top: 0,
215
- zIndex: 100,
216
- width: "100%",
217
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { style: getStyle(initialOffset, currentOffset, mouseOffset), children: [
218
- /* @__PURE__ */ jsxRuntime.jsx(StageDragPreview, { name: typeof item.item === "string" ? item.item : null }),
219
- ";"
220
- ] })
221
- }
222
- );
223
- };
224
- const Root = ({ children }) => {
225
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Main, { children: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Layouts.Content, { children }) });
226
- };
227
- const Header = ({ title, subtitle, navigationAction, primaryAction }) => {
228
- const { formatMessage } = reactIntl.useIntl();
229
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
230
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Title, { children: formatMessage(
231
- { id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
232
- {
233
- name: title
234
- }
235
- ) }),
236
- /* @__PURE__ */ jsxRuntime.jsx(
237
- strapiAdmin.Layouts.Header,
238
- {
239
- navigationAction,
240
- primaryAction,
241
- title,
242
- subtitle
243
- }
244
- )
245
- ] });
246
- };
247
- exports.DRAG_DROP_TYPES = DRAG_DROP_TYPES;
248
- exports.DragLayerRendered = DragLayerRendered;
249
- exports.Header = Header;
250
- exports.Root = Root;
251
- exports.useReviewWorkflows = useReviewWorkflows;
252
- //# sourceMappingURL=Layout-y4m6QHjX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout-y4m6QHjX.js","sources":["../../admin/src/routes/settings/hooks/useReviewWorkflows.ts","../../admin/src/routes/settings/constants.ts","../../admin/src/routes/settings/components/StageDragPreview.tsx","../../admin/src/routes/settings/components/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { type MessageDescriptor, useIntl } from 'react-intl';\n\nimport {\n GetWorkflowsParams,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useGetWorkflowsQuery,\n useUpdateWorkflowMutation,\n} from '../../../services/settings';\n\nimport type { Create, Update } from '../../../../../shared/contracts/review-workflows';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype UseReviewWorkflowsArgs = GetWorkflowsParams & {\n skip?: boolean;\n};\n\nconst useReviewWorkflows = (params: UseReviewWorkflowsArgs = {}) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { id = '', skip = false, ...queryParams } = params;\n\n const { data, isLoading, error } = useGetWorkflowsQuery(\n {\n id,\n populate: 'stages',\n ...queryParams,\n },\n {\n skip,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [createWorkflow] = useCreateWorkflowMutation();\n const create = React.useCallback(\n async (data: Create.Request['body']['data']) => {\n try {\n const res = await createWorkflow({ data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.created', defaultMessage: 'Created workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [createWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const update = React.useCallback(\n async (id: string, data: Update.Request['body']['data']) => {\n try {\n const res = await updateWorkflow({ id, data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.updated', defaultMessage: 'Updated workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [formatAPIError, formatMessage, toggleNotification, updateWorkflow]\n );\n\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n const deleteAction = React.useCallback(\n async (id: string) => {\n try {\n const res = await deleteWorkflow({ id });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.deleted', defaultMessage: 'Deleted workflow' }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const { workflows = [], meta } = 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 workflows,\n isLoading,\n error,\n create,\n delete: deleteAction,\n update,\n };\n};\n\nexport { useReviewWorkflows };\n","export type DragDropTypes = 'stage';\n\nexport const DRAG_DROP_TYPES: Record<Uppercase<DragDropTypes>, DragDropTypes> = {\n STAGE: 'stage',\n};\n","import { Flex, Typography } from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\n\ninterface StageDragPreviewType {\n name: string | null;\n}\n\nconst StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width=\"30rem\"\n >\n <Flex\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CaretDown width=\"0.8rem\" fill=\"neutral600\" />\n </Flex>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n\nexport { StageDragPreview };\nexport type { StageDragPreviewType };\n","import * as React from 'react';\n\nimport { Page, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport { XYCoord, useDragLayer } from 'react-dnd';\nimport { useIntl } from 'react-intl';\n\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nfunction getStyle(\n initialOffset: XYCoord | null,\n currentOffset: XYCoord | null,\n mouseOffset: XYCoord | null\n) {\n if (!initialOffset || !currentOffset || !mouseOffset) {\n return { display: 'none' };\n }\n\n const { x, y } = mouseOffset;\n\n return {\n transform: `translate(${x}px, ${y}px)`,\n };\n}\n\nconst DragLayerRendered = () => {\n const { itemType, isDragging, item, initialOffset, currentOffset, mouseOffset } = useDragLayer(\n (monitor) => ({\n item: monitor.getItem(),\n itemType: monitor.getItemType(),\n initialOffset: monitor.getInitialSourceClientOffset(),\n currentOffset: monitor.getSourceClientOffset(),\n isDragging: monitor.isDragging(),\n mouseOffset: monitor.getClientOffset(),\n })\n );\n\n if (!isDragging || itemType !== DRAG_DROP_TYPES.STAGE) {\n return null;\n }\n\n return (\n <Box\n height=\"100%\"\n left={0}\n position=\"fixed\"\n pointerEvents=\"none\"\n top={0}\n zIndex={100}\n width=\"100%\"\n >\n <Box style={getStyle(initialOffset, currentOffset, mouseOffset)}>\n <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n </Box>\n </Box>\n );\n};\n\nconst Root: React.FC<React.PropsWithChildren> = ({ children }) => {\n return (\n <Page.Main>\n <Layouts.Content>{children}</Layouts.Content>\n </Page.Main>\n );\n};\n\ninterface HeaderProps {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n}\n\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n const { formatMessage } = useIntl();\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: title,\n }\n )}\n </Page.Title>\n <Layouts.Header\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { DragLayerRendered, Header, Root };\n"],"names":["useNotification","useIntl","useAPIErrorHandler","useGetWorkflowsQuery","React","useCreateWorkflowMutation","data","useUpdateWorkflowMutation","id","useDeleteWorkflowMutation","jsxs","Flex","jsx","CaretDown","Typography","useDragLayer","Box","Page","Layouts","Fragment"],"mappings":"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"}