@strapi/admin 4.12.0-beta.4 → 4.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/ConfirmBulkActionDialog/index.js +2 -0
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/SelectedEntriesModal/index.js +83 -36
- package/admin/src/pages/AuthPage/components/Register/index.js +0 -4
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/Events/index.js +1 -1
- package/admin/src/translations/en.json +1 -0
- package/build/7065.ec811562.chunk.js +114 -0
- package/build/{9806.91360bb6.chunk.js → 9806.aa25371d.chunk.js} +10 -10
- package/build/{Admin-authenticatedApp.24998de8.chunk.js → Admin-authenticatedApp.376233ff.chunk.js} +1 -1
- package/build/{admin-app.c2e4e128.chunk.js → admin-app.1c3f7fd6.chunk.js} +8 -8
- package/build/{content-manager.8772445b.chunk.js → content-manager.e9205db1.chunk.js} +95 -95
- package/build/{en-json.4c733bd1.chunk.js → en-json.e34140fc.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/{main.ef5fb1a8.js → main.1e3b0985.js} +281 -281
- package/build/review-workflows-settings-create-view.05758184.chunk.js +1 -0
- package/build/review-workflows-settings-edit-view.c33f7c58.chunk.js +1 -0
- package/build/{review-workflows-settings-list-view.3ee9190d.chunk.js → review-workflows-settings-list-view.f055e1be.chunk.js} +8 -8
- package/build/{runtime~main.c99f4c36.js → runtime~main.58ec8df6.js} +2 -2
- package/build/sso-settings-page.7c9b2fd9.chunk.js +1 -0
- package/build/{webhook-edit-page.a91f27a1.chunk.js → webhook-edit-page.6cb479ff.chunk.js} +2 -2
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes/WorkflowAttributes.js +85 -9
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +61 -4
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +71 -21
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js +1 -2
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +2 -8
- package/ee/server/bootstrap.js +2 -0
- package/ee/server/services/auth.js +1 -1
- package/ee/server/services/index.js +1 -0
- package/ee/server/services/review-workflows/metrics/index.js +51 -0
- package/ee/server/services/review-workflows/metrics/weekly-metrics.js +76 -0
- package/ee/server/services/review-workflows/workflows/index.js +5 -0
- package/ee/server/validation/authentication.js +6 -1
- package/package.json +9 -9
- package/build/7065.99ca8ab1.chunk.js +0 -112
- package/build/review-workflows-settings-create-view.d4b5dbb8.chunk.js +0 -1
- package/build/review-workflows-settings-edit-view.77299c63.chunk.js +0 -1
- package/build/sso-settings-page.3a1ed8c9.chunk.js +0 -1
- package/ee/server/services/review-workflows/metrics.js +0 -24
|
@@ -104,6 +104,8 @@ const ConfirmDialogPublishAll = ({ isOpen, onToggleDialog, isConfirmButtonLoadin
|
|
|
104
104
|
return data;
|
|
105
105
|
},
|
|
106
106
|
{
|
|
107
|
+
// The API is called everytime you select/deselect an entry, this check avoids us sending a query with bad data
|
|
108
|
+
enabled: selectedEntries.length > 0,
|
|
107
109
|
onError(error) {
|
|
108
110
|
toggleNotification({ type: 'warning', message: formatAPIError(error) });
|
|
109
111
|
},
|
|
@@ -46,11 +46,11 @@ const TypographyMaxWidth = styled(Typography)`
|
|
|
46
46
|
* EntryValidationText
|
|
47
47
|
* -----------------------------------------------------------------------------------------------*/
|
|
48
48
|
|
|
49
|
-
const EntryValidationText = ({
|
|
49
|
+
const EntryValidationText = ({ validationErrors, isPublished }) => {
|
|
50
50
|
const { formatMessage } = useIntl();
|
|
51
51
|
|
|
52
|
-
if (
|
|
53
|
-
const
|
|
52
|
+
if (validationErrors) {
|
|
53
|
+
const validationErrorsMessages = Object.entries(validationErrors)
|
|
54
54
|
.map(([key, value]) =>
|
|
55
55
|
formatMessage(
|
|
56
56
|
{ id: `${value.id}.withField`, defaultMessage: value.defaultMessage },
|
|
@@ -62,9 +62,9 @@ const EntryValidationText = ({ errors, isPublished }) => {
|
|
|
62
62
|
return (
|
|
63
63
|
<Flex gap={2}>
|
|
64
64
|
<Icon color="danger600" as={CrossCircle} />
|
|
65
|
-
<Tooltip description={
|
|
65
|
+
<Tooltip description={validationErrorsMessages}>
|
|
66
66
|
<TypographyMaxWidth textColor="danger600" variant="omega" fontWeight="semiBold" ellipsis>
|
|
67
|
-
{
|
|
67
|
+
{validationErrorsMessages}
|
|
68
68
|
</TypographyMaxWidth>
|
|
69
69
|
</Tooltip>
|
|
70
70
|
</Flex>
|
|
@@ -77,8 +77,8 @@ const EntryValidationText = ({ errors, isPublished }) => {
|
|
|
77
77
|
<Icon color="success600" as={CheckCircle} />
|
|
78
78
|
<Typography textColor="success600" fontWeight="bold">
|
|
79
79
|
{formatMessage({
|
|
80
|
-
id: '
|
|
81
|
-
defaultMessage: 'Published',
|
|
80
|
+
id: 'content-manager.bulk-publish.already-published',
|
|
81
|
+
defaultMessage: 'Already Published',
|
|
82
82
|
})}
|
|
83
83
|
</Typography>
|
|
84
84
|
</Flex>
|
|
@@ -99,12 +99,12 @@ const EntryValidationText = ({ errors, isPublished }) => {
|
|
|
99
99
|
};
|
|
100
100
|
|
|
101
101
|
EntryValidationText.defaultProps = {
|
|
102
|
-
|
|
102
|
+
validationErrors: undefined,
|
|
103
103
|
isPublished: false,
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
EntryValidationText.propTypes = {
|
|
107
|
-
|
|
107
|
+
validationErrors: PropTypes.shape({
|
|
108
108
|
[PropTypes.string]: PropTypes.shape({
|
|
109
109
|
id: PropTypes.string,
|
|
110
110
|
defaultMessage: PropTypes.string,
|
|
@@ -117,7 +117,12 @@ EntryValidationText.propTypes = {
|
|
|
117
117
|
* SelectedEntriesTableContent
|
|
118
118
|
* -----------------------------------------------------------------------------------------------*/
|
|
119
119
|
|
|
120
|
-
const SelectedEntriesTableContent = ({
|
|
120
|
+
const SelectedEntriesTableContent = ({
|
|
121
|
+
isPublishing,
|
|
122
|
+
rowsToDisplay,
|
|
123
|
+
entriesToPublish,
|
|
124
|
+
validationErrors,
|
|
125
|
+
}) => {
|
|
121
126
|
const {
|
|
122
127
|
location: { pathname },
|
|
123
128
|
} = useHistory();
|
|
@@ -149,19 +154,19 @@ const SelectedEntriesTableContent = ({ isPublishing, rowsToDisplay, entriesToPub
|
|
|
149
154
|
</Table.Head>
|
|
150
155
|
<Table.LoadingBody />
|
|
151
156
|
<Table.Body>
|
|
152
|
-
{rowsToDisplay.map((
|
|
153
|
-
<Tr key={
|
|
154
|
-
<Body.CheckboxDataCell rowId={
|
|
157
|
+
{rowsToDisplay.map((row, index) => (
|
|
158
|
+
<Tr key={row.id}>
|
|
159
|
+
<Body.CheckboxDataCell rowId={row.id} index={index} />
|
|
155
160
|
<Td>
|
|
156
|
-
<Typography>{
|
|
161
|
+
<Typography>{row.id}</Typography>
|
|
157
162
|
</Td>
|
|
158
163
|
{shouldDisplayMainField && (
|
|
159
164
|
<Td>
|
|
160
|
-
<Typography>{
|
|
165
|
+
<Typography>{row[mainField]}</Typography>
|
|
161
166
|
</Td>
|
|
162
167
|
)}
|
|
163
168
|
<Td>
|
|
164
|
-
{isPublishing && entriesToPublish.includes(
|
|
169
|
+
{isPublishing && entriesToPublish.includes(row.id) ? (
|
|
165
170
|
<Flex gap={2}>
|
|
166
171
|
<Typography>
|
|
167
172
|
{formatMessage({
|
|
@@ -172,14 +177,17 @@ const SelectedEntriesTableContent = ({ isPublishing, rowsToDisplay, entriesToPub
|
|
|
172
177
|
<Loader small />
|
|
173
178
|
</Flex>
|
|
174
179
|
) : (
|
|
175
|
-
<EntryValidationText
|
|
180
|
+
<EntryValidationText
|
|
181
|
+
validationErrors={validationErrors[row.id]}
|
|
182
|
+
isPublished={row.publishedAt !== null}
|
|
183
|
+
/>
|
|
176
184
|
)}
|
|
177
185
|
</Td>
|
|
178
186
|
<Td>
|
|
179
187
|
<IconButton
|
|
180
188
|
forwardedAs={Link}
|
|
181
189
|
to={{
|
|
182
|
-
pathname: `${pathname}/${
|
|
190
|
+
pathname: `${pathname}/${row.id}`,
|
|
183
191
|
state: { from: pathname },
|
|
184
192
|
}}
|
|
185
193
|
label={formatMessage(
|
|
@@ -188,6 +196,7 @@ const SelectedEntriesTableContent = ({ isPublishing, rowsToDisplay, entriesToPub
|
|
|
188
196
|
)}
|
|
189
197
|
noBorder
|
|
190
198
|
target="_blank"
|
|
199
|
+
marginLeft="auto"
|
|
191
200
|
>
|
|
192
201
|
<Pencil />
|
|
193
202
|
</IconButton>
|
|
@@ -203,12 +212,19 @@ SelectedEntriesTableContent.defaultProps = {
|
|
|
203
212
|
isPublishing: false,
|
|
204
213
|
rowsToDisplay: [],
|
|
205
214
|
entriesToPublish: [],
|
|
215
|
+
validationErrors: {},
|
|
206
216
|
};
|
|
207
217
|
|
|
208
218
|
SelectedEntriesTableContent.propTypes = {
|
|
209
219
|
isPublishing: PropTypes.bool,
|
|
210
220
|
rowsToDisplay: PropTypes.arrayOf(PropTypes.object),
|
|
211
221
|
entriesToPublish: PropTypes.arrayOf(PropTypes.number),
|
|
222
|
+
validationErrors: PropTypes.shape({
|
|
223
|
+
[PropTypes.string]: PropTypes.shape({
|
|
224
|
+
id: PropTypes.string,
|
|
225
|
+
defaultMessage: PropTypes.string,
|
|
226
|
+
}),
|
|
227
|
+
}),
|
|
212
228
|
};
|
|
213
229
|
|
|
214
230
|
/* -------------------------------------------------------------------------------------------------
|
|
@@ -221,7 +237,13 @@ const BoldChunk = (chunks) => <Typography fontWeight="bold">{chunks}</Typography
|
|
|
221
237
|
* SelectedEntriesModalContent
|
|
222
238
|
* -----------------------------------------------------------------------------------------------*/
|
|
223
239
|
|
|
224
|
-
const SelectedEntriesModalContent = ({
|
|
240
|
+
const SelectedEntriesModalContent = ({
|
|
241
|
+
toggleModal,
|
|
242
|
+
refetchModalData,
|
|
243
|
+
setEntriesToFetch,
|
|
244
|
+
setSelectedListViewEntries,
|
|
245
|
+
validationErrors,
|
|
246
|
+
}) => {
|
|
225
247
|
const { formatMessage } = useIntl();
|
|
226
248
|
const { selectedEntries, rows, onSelectRow, isLoading, isFetching } = useTableContext();
|
|
227
249
|
const [isDialogOpen, setIsDialogOpen] = React.useState(false);
|
|
@@ -229,15 +251,15 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
|
|
|
229
251
|
const [publishedCount, setPublishedCount] = React.useState(0);
|
|
230
252
|
|
|
231
253
|
const entriesToPublish = rows
|
|
232
|
-
.filter(({
|
|
233
|
-
.map(({
|
|
254
|
+
.filter(({ id }) => selectedEntries.includes(id) && !validationErrors[id])
|
|
255
|
+
.map(({ id }) => id);
|
|
234
256
|
|
|
235
257
|
const { post } = useFetchClient();
|
|
236
258
|
const toggleNotification = useNotification();
|
|
237
259
|
const { contentType } = useSelector(listViewDomain());
|
|
238
260
|
|
|
239
261
|
const selectedEntriesWithErrorsCount = rowsToDisplay.filter(
|
|
240
|
-
({
|
|
262
|
+
({ id }) => selectedEntries.includes(id) && validationErrors[id]
|
|
241
263
|
).length;
|
|
242
264
|
const selectedEntriesWithNoErrorsCount = selectedEntries.length - selectedEntriesWithErrorsCount;
|
|
243
265
|
|
|
@@ -247,18 +269,21 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
|
|
|
247
269
|
{
|
|
248
270
|
onSuccess() {
|
|
249
271
|
const update = rowsToDisplay.filter((row) => {
|
|
250
|
-
if (entriesToPublish.includes(row.
|
|
272
|
+
if (entriesToPublish.includes(row.id)) {
|
|
251
273
|
// Deselect the entries that have been published from the modal table
|
|
252
|
-
onSelectRow({ name: row.
|
|
274
|
+
onSelectRow({ name: row.id, value: false });
|
|
253
275
|
}
|
|
254
276
|
|
|
255
277
|
// Remove the entries that have been published from the table
|
|
256
|
-
return !entriesToPublish.includes(row.
|
|
278
|
+
return !entriesToPublish.includes(row.id);
|
|
257
279
|
});
|
|
258
280
|
|
|
259
281
|
setRowsToDisplay(update);
|
|
282
|
+
const publishedIds = update.map(({ id }) => id);
|
|
260
283
|
// Set the parent's entries to fetch when clicking refresh
|
|
261
|
-
setEntriesToFetch(
|
|
284
|
+
setEntriesToFetch(publishedIds);
|
|
285
|
+
// Deselect the entries that were published in the list view
|
|
286
|
+
setSelectedListViewEntries(publishedIds);
|
|
262
287
|
|
|
263
288
|
if (update.length === 0) {
|
|
264
289
|
toggleModal();
|
|
@@ -341,6 +366,7 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
|
|
|
341
366
|
isPublishing={bulkPublishMutation.isLoading}
|
|
342
367
|
rowsToDisplay={rowsToDisplay}
|
|
343
368
|
entriesToPublish={entriesToPublish}
|
|
369
|
+
validationErrors={validationErrors}
|
|
344
370
|
/>
|
|
345
371
|
</Box>
|
|
346
372
|
</ModalBody>
|
|
@@ -382,10 +408,21 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
|
|
|
382
408
|
);
|
|
383
409
|
};
|
|
384
410
|
|
|
411
|
+
SelectedEntriesModalContent.defaultProps = {
|
|
412
|
+
validationErrors: {},
|
|
413
|
+
};
|
|
414
|
+
|
|
385
415
|
SelectedEntriesModalContent.propTypes = {
|
|
386
416
|
toggleModal: PropTypes.func.isRequired,
|
|
387
417
|
refetchModalData: PropTypes.func.isRequired,
|
|
388
418
|
setEntriesToFetch: PropTypes.func.isRequired,
|
|
419
|
+
setSelectedListViewEntries: PropTypes.func.isRequired,
|
|
420
|
+
validationErrors: PropTypes.shape({
|
|
421
|
+
[PropTypes.string]: PropTypes.shape({
|
|
422
|
+
id: PropTypes.string,
|
|
423
|
+
defaultMessage: PropTypes.string,
|
|
424
|
+
}),
|
|
425
|
+
}),
|
|
389
426
|
};
|
|
390
427
|
|
|
391
428
|
/* -------------------------------------------------------------------------------------------------
|
|
@@ -393,18 +430,23 @@ SelectedEntriesModalContent.propTypes = {
|
|
|
393
430
|
* -----------------------------------------------------------------------------------------------*/
|
|
394
431
|
|
|
395
432
|
const SelectedEntriesModal = ({ onToggle }) => {
|
|
396
|
-
const {
|
|
433
|
+
const {
|
|
434
|
+
selectedEntries: selectedListViewEntries,
|
|
435
|
+
setSelectedEntries: setSelectedListViewEntries,
|
|
436
|
+
} = useTableContext();
|
|
397
437
|
const { contentType, components } = useSelector(listViewDomain());
|
|
398
438
|
// The child table will update this value based on the entries that were published
|
|
399
439
|
const [entriesToFetch, setEntriesToFetch] = React.useState(selectedListViewEntries);
|
|
400
|
-
|
|
401
440
|
// We want to keep the selected entries order same as the list view
|
|
402
441
|
const [
|
|
403
442
|
{
|
|
404
443
|
query: { sort },
|
|
405
444
|
},
|
|
406
445
|
] = useQueryParams();
|
|
446
|
+
|
|
407
447
|
const queryParams = {
|
|
448
|
+
page: 1,
|
|
449
|
+
pageSize: entriesToFetch.length,
|
|
408
450
|
sort,
|
|
409
451
|
filters: {
|
|
410
452
|
id: {
|
|
@@ -424,38 +466,43 @@ const SelectedEntriesModal = ({ onToggle }) => {
|
|
|
424
466
|
|
|
425
467
|
if (data.results) {
|
|
426
468
|
const schema = createYupSchema(contentType, { components }, { isDraft: false });
|
|
469
|
+
const validationErrors = {};
|
|
427
470
|
const rows = data.results.map((entry) => {
|
|
428
471
|
try {
|
|
429
472
|
schema.validateSync(entry, { abortEarly: false });
|
|
430
473
|
|
|
431
|
-
return
|
|
474
|
+
return entry;
|
|
432
475
|
} catch (e) {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
};
|
|
476
|
+
validationErrors[entry.id] = getYupInnerErrors(e);
|
|
477
|
+
|
|
478
|
+
return entry;
|
|
437
479
|
}
|
|
438
480
|
});
|
|
439
481
|
|
|
440
|
-
return rows;
|
|
482
|
+
return { rows, validationErrors };
|
|
441
483
|
}
|
|
442
484
|
|
|
443
|
-
return
|
|
485
|
+
return {
|
|
486
|
+
rows: [],
|
|
487
|
+
validationErrors: {},
|
|
488
|
+
};
|
|
444
489
|
}
|
|
445
490
|
);
|
|
446
491
|
|
|
447
492
|
return (
|
|
448
493
|
<Table.Root
|
|
449
|
-
rows={data}
|
|
494
|
+
rows={data?.rows}
|
|
450
495
|
defaultSelectedEntries={selectedListViewEntries}
|
|
451
496
|
colCount={4}
|
|
452
497
|
isLoading={isLoading}
|
|
453
498
|
isFetching={isFetching}
|
|
454
499
|
>
|
|
455
500
|
<SelectedEntriesModalContent
|
|
501
|
+
setSelectedListViewEntries={setSelectedListViewEntries}
|
|
456
502
|
setEntriesToFetch={setEntriesToFetch}
|
|
457
503
|
toggleModal={onToggle}
|
|
458
504
|
refetchModalData={refetch}
|
|
505
|
+
validationErrors={data?.validationErrors}
|
|
459
506
|
/>
|
|
460
507
|
</Table.Root>
|
|
461
508
|
);
|
|
@@ -98,10 +98,6 @@ const Register = ({ authType, fieldsToDisable, noSignin, onSubmit, schema }) =>
|
|
|
98
98
|
|
|
99
99
|
if (!['password', 'confirmPassword'].includes(key) && typeof value === 'string') {
|
|
100
100
|
normalizedvalue = normalizedvalue.trim();
|
|
101
|
-
|
|
102
|
-
if (key === 'lastname') {
|
|
103
|
-
normalizedvalue = normalizedvalue || null;
|
|
104
|
-
}
|
|
105
101
|
}
|
|
106
102
|
|
|
107
103
|
acc[key] = normalizedvalue;
|
|
@@ -308,7 +308,7 @@ const EventRow = ({ disabledEvents, name, events, inputValue, handleSelect, hand
|
|
|
308
308
|
</Td>
|
|
309
309
|
);
|
|
310
310
|
})}
|
|
311
|
-
{events.length < targetColumns && <Td colSpan={
|
|
311
|
+
{events.length < targetColumns && <Td colSpan={targetColumns - events.length} />}
|
|
312
312
|
</Tr>
|
|
313
313
|
);
|
|
314
314
|
};
|
|
@@ -678,6 +678,7 @@
|
|
|
678
678
|
"content-manager.components.SettingsViewWrapper.pluginHeader.description.edit-settings": "Customize how the edit view will look like.",
|
|
679
679
|
"content-manager.components.SettingsViewWrapper.pluginHeader.description.list-settings": "Define the settings of the list view.",
|
|
680
680
|
"content-manager.components.SettingsViewWrapper.pluginHeader.title": "Configure the view — {name}",
|
|
681
|
+
"content-manager.bulk-publish.already-published": "Already Published",
|
|
681
682
|
"content-manager.components.TableDelete.delete": "Delete all",
|
|
682
683
|
"content-manager.components.TableDelete.deleteSelected": "Delete selected",
|
|
683
684
|
"content-manager.components.TableDelete.label": "{number, plural, one {# entry} other {# entries}} selected",
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[7065],{61234:function(w,m,e){"use strict";e.d(m,{v:function(){return a}});var t=e(32735),r=e(15062);function a(d,c){const o=(0,r.oR)();(0,t.useEffect)(()=>{o.injectReducer(d,c)},[o,d,c])}},50337:function(w,m,e){"use strict";e.d(m,{pl:function(){return s},aY:function(){return L},q5:function(){return l.q}});var t=e(32735),r=e(19565),a=e(86209),d=e(97889);const c={data:[],isLoading:!0};var y=(M,A)=>(0,d.ZP)(M,g=>{switch(A.type){case"GET_DATA_SUCCEEDED":{g.data=A.data,g.isLoading=!1;break}case"GET_DATA_ERROR":{g.isLoading=!1;break}default:return g}}),s=({ssoEnabled:M})=>{const[A,g]=(0,t.useReducer)(y,c),T=(0,r.lm)(),{get:f}=(0,r.kY)();return(0,t.useEffect)(()=>{(async()=>{try{if(!M){g({type:"GET_DATA_SUCCEEDED",data:[]});return}const{data:R}=await f((0,a.IF)("providers"));g({type:"GET_DATA_SUCCEEDED",data:R})}catch(R){console.error(R),g({type:"GET_DATA_ERROR"}),T({type:"warning",message:{id:"notification.error"}})}})()},[f,M,T]),A},n=e(36866),p=e.n(n),h=e(67879),i=e(53038),l=e(53104);const v="strapi-notification-seat-limit",x="https://cloud.strapi.io/profile/billing",O="https://strapi.io/billing/request-seats";var L=()=>{const{formatMessage:M}=(0,h.Z)();let{license:A,isError:g,isLoading:T}=(0,l.q)();const f=(0,r.lm)(),{pathname:D}=(0,i.TH)(),{enforcementUserCount:R,permittedSeats:W,licenseLimitStatus:I,isHostedOnStrapiCloud:U}=A;(0,t.useEffect)(()=>{if(g||T)return;const $=!p()(W)&&!window.sessionStorage.getItem(`${v}-${D}`)&&(I==="AT_LIMIT"||I==="OVER_LIMIT");let B;I==="OVER_LIMIT"?B="warning":I==="AT_LIMIT"&&(B="softWarning"),$&&f({type:B,message:M({id:"notification.ee.warning.over-.message",defaultMessage:"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app."},{licenseLimitStatus:I}),title:M({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:I,enforcementUserCount:R,permittedSeats:W}),link:{url:U?x:O,label:M({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:U})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${v}-${D}`,!0)}})},[f,A,D,M,T,W,I,R,U,g])}},53104:function(w,m,e){"use strict";e.d(m,{q:function(){return d}});var t=e(32735),r=e(19565),a=e(20108);function d({enabled:c}={enabled:!0}){const{get:o}=(0,r.kY)(),{data:y,isError:u,isLoading:s}=(0,a.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:h}}=await o("/admin/license-limit-information");return h},{enabled:c}),n=y??{},p=t.useCallback(h=>(n?.features??[]).find(l=>l.name===h)?.options??{},[n?.features]);return{license:n,getFeature:p,isError:u,isLoading:s}}},77061:function(w,m,e){"use strict";e.d(m,{CI:function(){return d},FP:function(){return o},Js:function(){return u},_V:function(){return a},fC:function(){return r},rI:function(){return y},xn:function(){return c}});var t=e(2121);function r({status:s,data:n}){return{type:t.qZ,payload:{status:s,workflow:n}}}function a(s){return{type:t.x4,payload:{stageId:s}}}function d(s={}){return{type:t.Ot,payload:s}}function c(s,n){return{type:t.Nj,payload:{stageId:s,...n}}}function o(s,n){return{type:t.$k,payload:{newIndex:n,oldIndex:s}}}function y(s){return{type:t.VS,payload:s}}function u(){return{type:t.gu}}},27187:function(w,m,e){"use strict";e.d(m,{eJ:function(){return g},lx:function(){return M},h4:function(){return T},fC:function(){return A}});var t=e(32735),r=e(96709),a=e(27649),d=e(17e3),c=e(82055),o=e(19565),y=e(29439),u=e(67879),s=e(17379),n=e(2121),p=e(87933),h=e(49372),i=e(16899),l=e(60216),v=e.n(l),x=e(8471);const O=(0,x.ZP)(p.k)`
|
|
2
|
+
svg path {
|
|
3
|
+
fill: ${({theme:f})=>f.colors.neutral600};
|
|
4
|
+
}
|
|
5
|
+
`;function P({name:f}){return t.createElement(p.k,{background:"primary100",borderStyle:"dashed",borderColor:"primary600",borderWidth:"1px",gap:3,hasRadius:!0,padding:3,shadow:"tableShadow",width:(0,o.Q1)(300)},t.createElement(O,{alignItems:"center",background:"neutral200",borderRadius:"50%",height:6,justifyContent:"center",width:6},t.createElement(i.Z,{width:`${8/16}rem`})),t.createElement(h.Z,{fontWeight:"bold"},f))}P.propTypes={name:v().string.isRequired};function L({type:f,item:D}){switch(f){case n.uL.STAGE:return t.createElement(P,{...D});default:return null}}function M(){return t.createElement(s.r,{renderItem:L})}function A({children:f}){return t.createElement(r.A,null,t.createElement(a.o,{tabIndex:-1},t.createElement(d.D,null,f)))}function g({href:f}){const{formatMessage:D}=(0,u.Z)();return t.createElement(o.rU,{startIcon:t.createElement(y.Z,null),to:f},D({id:"global.back",defaultMessage:"Back"}))}function T({title:f,subtitle:D,navigationAction:R,primaryAction:W}){return t.createElement(t.Fragment,null,t.createElement(o.SL,{name:f}),t.createElement(c.T,{navigationAction:R,primaryAction:W,title:f,subtitle:D}))}},90562:function(w,m,e){"use strict";e.d(m,{uT:function(){return L},fC:function(){return g},Dx:function(){return P}});var t=e(32735),r=e(49372),a=e(87933),d=e(85025),c=e(31600),o=e(72850),y=e(50563),u=e(95489),s=e(35331),n=e(60216),p=e.n(n),h=e(67879),i=e(8471),l=e.p+"0cd5f8915b265d5b1856.png";const v="limits-title",x="https://strapi.io/pricing-cloud",O="https://strapi.io/contact-sales";function P({children:T}){return t.createElement(r.Z,{variant:"alpha",id:v},T)}P.propTypes={children:p().node.isRequired};function L({children:T}){return t.createElement(r.Z,{variant:"omega"},T)}L.propTypes={children:p().node.isRequired};function M(){const{formatMessage:T}=(0,h.Z)();return t.createElement(a.k,{gap:2,paddingTop:4},t.createElement(u.Q,{variant:"default",isExternal:!0,href:x},T({id:"Settings.review-workflows.limit.cta.learn",defaultMessage:"Learn more"})),t.createElement(u.Q,{variant:"tertiary",isExternal:!0,href:O},T({id:"Settings.review-workflows.limit.cta.sales",defaultMessage:"Contact Sales"})))}const A=i.ZP.img`
|
|
6
|
+
// Margin top|right reverse the padding of ModalBody
|
|
7
|
+
margin-right: ${({theme:T})=>`-${T.spaces[7]}`};
|
|
8
|
+
margin-top: ${({theme:T})=>`-${T.spaces[7]}`};
|
|
9
|
+
width: 360px;
|
|
10
|
+
`;function g({children:T,isOpen:f,onClose:D}){const{formatMessage:R}=(0,h.Z)();return f?t.createElement(d.P,{labelledBy:v},t.createElement(c.f,null,t.createElement(a.k,{gap:2,paddingLeft:7,position:"relative"},t.createElement(a.k,{alignItems:"start",direction:"column",gap:2,width:"60%"},T,t.createElement(M,null)),t.createElement(a.k,{justifyContent:"end",height:"100%",width:"40%"},t.createElement(A,{src:l,"aria-hidden":!0,alt:"",loading:"lazy"}),t.createElement(o.x,{display:"flex",position:"absolute",right:0,top:0},t.createElement(y.h,{icon:t.createElement(s.Z,null),"aria-label":R({id:"global.close",defaultMessage:"Close"}),onClick:D})))))):null}g.defaultProps={isOpen:!1},g.propTypes={children:p().node.isRequired,isOpen:p().bool,onClose:p().func.isRequired}},45594:function(w,m,e){"use strict";e.d(m,{U:function(){return b}});var t=e(32735),r=e(72850),a=e(87933),d=e(19565),c=e(60216),o=e.n(c),y=e(67879),u=e(15062),s=e(8471),n=e(77061),p=e(49372),h=e(86308);const i=(0,s.ZP)(h.Z)`
|
|
11
|
+
> circle {
|
|
12
|
+
fill: ${({theme:E})=>E.colors.neutral150};
|
|
13
|
+
}
|
|
14
|
+
> path {
|
|
15
|
+
fill: ${({theme:E})=>E.colors.neutral600};
|
|
16
|
+
}
|
|
17
|
+
`,l=(0,s.ZP)(r.x)`
|
|
18
|
+
border-radius: 26px;
|
|
19
|
+
|
|
20
|
+
svg {
|
|
21
|
+
height: ${({theme:E})=>E.spaces[6]};
|
|
22
|
+
width: ${({theme:E})=>E.spaces[6]};
|
|
23
|
+
|
|
24
|
+
> path {
|
|
25
|
+
fill: ${({theme:E})=>E.colors.neutral600};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&:hover {
|
|
30
|
+
color: ${({theme:E})=>E.colors.primary600} !important;
|
|
31
|
+
${p.Z} {
|
|
32
|
+
color: ${({theme:E})=>E.colors.primary600} !important;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
${i} {
|
|
36
|
+
> circle {
|
|
37
|
+
fill: ${({theme:E})=>E.colors.primary600};
|
|
38
|
+
}
|
|
39
|
+
> path {
|
|
40
|
+
fill: ${({theme:E})=>E.colors.neutral100};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&:active {
|
|
46
|
+
${p.Z} {
|
|
47
|
+
color: ${({theme:E})=>E.colors.primary600};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
${i} {
|
|
51
|
+
> circle {
|
|
52
|
+
fill: ${({theme:E})=>E.colors.primary600};
|
|
53
|
+
}
|
|
54
|
+
> path {
|
|
55
|
+
fill: ${({theme:E})=>E.colors.neutral100};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`;function v({children:E,...Z}){return t.createElement(l,{as:"button",background:"neutral0",border:"neutral150",paddingBottom:3,paddingLeft:4,paddingRight:4,paddingTop:3,shadow:"filterShadow",...Z},t.createElement(a.k,{gap:2},t.createElement(i,{"aria-hidden":!0}),t.createElement(p.Z,{variant:"pi",fontWeight:"bold",textColor:"neutral500"},E)))}v.propTypes={children:o().node.isRequired};var x=e(3685),O=e(83828),P=e(61762),L=e(50563),M=e(89966),A=e(15335),g=e(5803),T=e(10369),f=e(77035),D=e(4038),R=e(47081),W=e(92802),I=e(51968),U=e(69242),$=e(97724),B=e(2121),K=e(68886);const V=(0,K.s)();function S(){return t.createElement(r.x,{background:"primary100",borderStyle:"dashed",borderColor:"primary600",borderWidth:"1px",display:"block",hasRadius:!0,padding:6,shadow:"tableShadow"})}function k({id:E,index:Z,canDelete:G,canReorder:ee,canUpdate:H,isOpen:te=!1,stagesCount:z}){const Y=C=>`${C+1} of ${z}`,Q=C=>{J(j({id:"dnd.grab-item",defaultMessage:"{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel."},{item:N.value,position:Y(C)}))},le=C=>{J(j({id:"dnd.drop-item",defaultMessage:"{item}, dropped. Final position in list: {position}."},{item:N.value,position:Y(C)}))},de=()=>{J(j({id:"dnd.cancel-item",defaultMessage:"{item}, dropped. Re-order cancelled."},{item:N.value}))},ce=(C,X)=>{J(j({id:"dnd.reorder",defaultMessage:"{item}, moved. New position in list: {position}."},{item:N.value,position:Y(C)})),q((0,n.FP)(X,C))},[ae,J]=t.useState(null),{formatMessage:j}=(0,y.Z)(),{trackUsage:ue}=(0,d.rS)(),q=(0,u.I0)(),[ne,me]=t.useState(te),[N,re,fe]=(0,W.U$)(`stages.${Z}.name`),[_,oe,ge]=(0,W.U$)(`stages.${Z}.color`),[{handlerId:pe,isDragging:ve,handleKeyDown:he},Ee,ye,Te,se]=(0,U.Y9)(ee,{index:Z,item:{name:N.value},onGrabItem:Q,onDropItem:le,onMoveItem:ce,onCancel:de,type:B.uL.STAGE}),Se=(0,$.FE)(Ee,ye),we=V.map(({hex:C,name:X})=>({value:C,label:j({id:"Settings.review-workflows.stage.color.name",defaultMessage:"{name}"},{name:X}),color:C}));t.useEffect(()=>{se((0,I.rX)(),{captureDraggingState:!1})},[se,Z]);const{themeColorName:Me}=(0,K.k)(_.value)??{};return t.createElement(r.x,{ref:Se},ae&&t.createElement(x.T,{"aria-live":"assertive"},ae),ve?t.createElement(S,null):t.createElement(O.U,{size:"S",variant:"primary",onToggle:()=>{me(!ne),ne||ue("willEditStage")},expanded:ne,shadow:"tableShadow",error:re.error??oe?.error??!1,hasErrorMessage:!1},t.createElement(P.B,{title:N.value,togglePosition:"left",action:t.createElement(a.k,null,G&&t.createElement(L.h,{background:"transparent",icon:t.createElement(D.Z,null),label:j({id:"Settings.review-workflows.stage.delete",defaultMessage:"Delete stage"}),noBorder:!0,onClick:()=>q((0,n._V)(E))}),t.createElement(L.h,{background:"transparent",disabled:!H,forwardedAs:"div",role:"button",noBorder:!0,tabIndex:0,"data-handler-id":pe,ref:Te,label:j({id:"Settings.review-workflows.stage.drag",defaultMessage:"Drag"}),onClick:C=>C.stopPropagation(),onKeyDown:he},t.createElement(R.Z,null)))}),t.createElement(M.v,{padding:6,background:"neutral0",hasRadius:!0},t.createElement(A.r,{gap:4},t.createElement(g.P,{col:6},t.createElement(T.o,{...N,id:N.name,disabled:!H,label:j({id:"Settings.review-workflows.stage.name.label",defaultMessage:"Stage name"}),error:re.error??!1,onChange:C=>{fe.setValue(C.target.value),q((0,n.xn)(E,{name:C.target.value}))},required:!0})),t.createElement(g.P,{col:6},t.createElement(f.q4,{disabled:!H,error:oe?.error??!1,id:_.name,required:!0,label:j({id:"content-manager.reviewWorkflows.stage.color",defaultMessage:"Color"}),onChange:C=>{ge.setValue(C),q((0,n.xn)(E,{color:C}))},value:_.value.toUpperCase(),startIcon:t.createElement(a.k,{as:"span",height:2,background:_.value,borderColor:Me==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2})},we.map(({value:C,label:X,color:ie})=>{const{themeColorName:xe}=(0,K.k)(ie);return t.createElement(f.ag,{value:C,key:C,startIcon:t.createElement(a.k,{as:"span",height:2,background:ie,borderColor:xe==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2})},X)})))))))}k.propTypes=o().shape({id:o().number.isRequired,color:o().string.isRequired,canDelete:o().bool.isRequired,canReorder:o().bool.isRequired,canUpdate:o().bool.isRequired,stagesCount:o().number.isRequired}).isRequired;const F=(0,s.ZP)(r.x)`
|
|
60
|
+
transform: translateX(-50%);
|
|
61
|
+
`;function b({canDelete:E,canUpdate:Z,stages:G}){const{formatMessage:ee}=(0,y.Z)(),H=(0,u.I0)(),{trackUsage:te}=(0,d.rS)();return t.createElement(a.k,{direction:"column",gap:6,width:"100%"},t.createElement(r.x,{position:"relative",spacing:4,width:"100%"},t.createElement(F,{background:"neutral200",height:"100%",left:"50%",position:"absolute",top:"0",width:2,zIndex:1}),t.createElement(a.k,{direction:"column",alignItems:"stretch",gap:6,zIndex:2,position:"relative",as:"ol"},G.map((z,Y)=>{const Q=z?.id??z.__temp_key__;return t.createElement(r.x,{key:`stage-${Q}`,as:"li"},t.createElement(k,{id:Q,index:Y,isOpen:!z.id,canDelete:G.length>1&&E,canReorder:G.length>1,canUpdate:Z,stagesCount:G.length}))}))),Z&&t.createElement(v,{type:"button",onClick:()=>{H((0,n.CI)({name:""})),te("willCreateStage")}},ee({id:"Settings.review-workflows.stage.add",defaultMessage:"Add new stage"})))}b.defaultProps={canDelete:!0,canUpdate:!0,stages:[]},b.propTypes={canDelete:o().bool,canUpdate:o().bool,stages:o().arrayOf(o().shape({id:o().number,__temp_key__:o().number,name:o().string.isRequired}))}},165:function(w,m,e){"use strict";e.d(m,{Y:function(){return O}});var t=e(32735),r=e(6407),a=e(49372),d=e(15335),c=e(5803),o=e(10369),y=e(19565),u=e(92802),s=e(60216),n=e.n(s),p=e(67879),h=e(15062),i=e(8471),l=e(77061);const v=(0,i.ZP)(r.ML)`
|
|
62
|
+
padding-left: ${({theme:L})=>L.spaces[7]};
|
|
63
|
+
`,x=(0,i.ZP)(a.Z)`
|
|
64
|
+
font-style: italic;
|
|
65
|
+
`;function O({canUpdate:L,contentTypes:{collectionTypes:M,singleTypes:A},currentWorkflow:g,workflows:T}){const{formatMessage:f,locale:D}=(0,p.Z)(),R=(0,h.I0)(),[W,I,U]=(0,u.U$)("name"),[$,B,K]=(0,u.U$)("contentTypes"),V=(0,y.Xe)(D,{sensitivity:"base"});return t.createElement(d.r,{background:"neutral0",hasRadius:!0,gap:4,padding:6,shadow:"tableShadow"},t.createElement(c.P,{col:6},t.createElement(o.o,{...W,id:W.name,disabled:!L,label:f({id:"Settings.review-workflows.workflow.name.label",defaultMessage:"Workflow Name"}),error:I.error??!1,onChange:S=>{R((0,l.rI)({name:S.target.value})),U.setValue(S.target.value)},required:!0})),t.createElement(c.P,{col:6},t.createElement(r.NU,{...$,customizeContent:S=>f({id:"Settings.review-workflows.workflow.contentTypes.displayValue",defaultMessage:"{count} {count, plural, one {content type} other {content types}} selected"},{count:S.length}),disabled:!L,error:B.error??!1,id:$.name,label:f({id:"Settings.review-workflows.workflow.contentTypes.label",defaultMessage:"Associated to"}),onChange:S=>{R((0,l.rI)({contentTypes:S})),K.setValue(S)},placeholder:f({id:"Settings.review-workflows.workflow.contentTypes.placeholder",defaultMessage:"Select"})},[...M.length>0?[{label:f({id:"Settings.review-workflows.workflow.contentTypes.collectionTypes.label",defaultMessage:"Collection Types"}),children:M.sort((S,k)=>V.compare(S.info.displayName,k.info.displayName)).map(S=>({label:S.info.displayName,value:S.uid}))}]:[],...A.length>0?[{label:f({id:"Settings.review-workflows.workflow.contentTypes.singleTypes.label",defaultMessage:"Single Types"}),children:A.map(S=>({label:S.info.displayName,value:S.uid}))}]:[]].map(S=>"children"in S?t.createElement(r.Ab,{key:S.label,label:S.label,values:S.children.map(k=>k.value.toString())},S.children.map(k=>{const{name:F}=T.find(b=>(g&&b.id!==g.id||!g)&&b.contentTypes.includes(k.value))??{};return t.createElement(v,{key:k.value,value:k.value},f({id:"Settings.review-workflows.workflow.contentTypes.assigned.notice",defaultMessage:"{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}"},{label:k.label,name:F,em:(...b)=>t.createElement(a.Z,{as:"em",fontWeight:"bold"},b),i:(...b)=>t.createElement(x,null,b)}))})):t.createElement(r.ML,{key:S.value,value:S.value},S.label)))))}const P=n().shape({uid:n().string.isRequired,info:n().shape({displayName:n().string.isRequired}).isRequired});O.defaultProps={canUpdate:!0,currentWorkflow:void 0},O.propTypes={canUpdate:n().bool,contentTypes:n().shape({collectionTypes:n().arrayOf(P).isRequired,singleTypes:n().arrayOf(P).isRequired}).isRequired,currentWorkflow:n().object,workflows:n().array.isRequired}},2121:function(w,m,e){"use strict";e.d(m,{$k:function(){return u},Ef:function(){return i},FT:function(){return p},Nj:function(){return y},Ot:function(){return o},VS:function(){return s},_X:function(){return l},gu:function(){return a},lv:function(){return n},qZ:function(){return d},sN:function(){return r},uL:function(){return h},x4:function(){return c}});var t=e(12301);const r="settings_review-workflows",a="Settings/Review_Workflows/RESET_WORKFLOW",d="Settings/Review_Workflows/SET_WORKFLOW",c="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",o="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",y="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",u="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE_POSITION",s="Settings/Review_Workflows/WORKFLOW_UPDATE",n={primary600:"Blue",primary200:"Lilac",alternative600:"Violet",alternative200:"Lavender",success600:"Green",success200:"Pale Green",danger500:"Cherry",danger200:"Pink",warning600:"Orange",warning200:"Yellow",secondary600:"Teal",secondary200:"Baby Blue",neutral400:"Gray",neutral0:"White"},p=t.W.colors.primary600,h={STAGE:"stage"},i="numberOfWorkflows",l="stagesPerWorkflow"},32329:function(w,m,e){"use strict";e.d(m,{n:function(){return a}});var t=e(19565),r=e(20108);function a(d={}){const{get:c}=(0,t.kY)(),{id:o="",...y}=d,u={populate:"stages"},{data:s,isLoading:n,status:p,refetch:h}=(0,r.useQuery)(["review-workflows","workflows",o],async()=>(await c(`/admin/review-workflows/workflows/${o}`,{params:{...u,...y}})).data);let i=[];return o&&s?.data?i=[s.data]:Array.isArray(s?.data)&&(i=s.data),{meta:s?.meta??{},workflows:i,isLoading:n,status:p,refetch:h}}},79989:function(w,m,e){"use strict";e.d(m,{E:function(){return c},I:function(){return o}});var t=e(97889),r=e(89793),a=e.n(r),d=e(2121);const c={status:"loading",serverState:{workflow:null},clientState:{currentWorkflow:{data:{name:"",contentTypes:[],stages:[]},isDirty:!1,hasDeletedServerStages:!1}}};function o(u=c,s){return(0,t.Uy)(u,n=>{const{payload:p}=s;switch(s.type){case d.qZ:{const{status:h,workflow:i}=p;n.status=h,i&&(n.serverState.workflow=i,n.clientState.currentWorkflow.data={...i,stages:i.stages.map(l=>({...l,color:l?.color??d.FT}))}),n.clientState.currentWorkflow.hasDeletedServerStages=!1;break}case d.gu:{n.clientState.currentWorkflow.data=c.clientState.currentWorkflow.data,n.serverState=c.serverState;break}case d.x4:{const{stageId:h}=p,{currentWorkflow:i}=u.clientState;n.clientState.currentWorkflow.data.stages=i.data.stages.filter(l=>(l?.id??l.__temp_key__)!==h),i.hasDeletedServerStages||(n.clientState.currentWorkflow.hasDeletedServerStages=!!(u.serverState.workflow?.stages??[]).find(l=>l.id===h));break}case d.Ot:{const{currentWorkflow:h}=u.clientState;h.data||(n.clientState.currentWorkflow.data={stages:[]});const i=y(n.clientState.currentWorkflow.data.stages);n.clientState.currentWorkflow.data.stages.push({...p,color:p?.color??d.FT,__temp_key__:i});break}case d.Nj:{const{currentWorkflow:h}=u.clientState,{stageId:i,...l}=p;n.clientState.currentWorkflow.data.stages=h.data.stages.map(v=>(v.id??v.__temp_key__)===i?{...v,...l}:v);break}case d.$k:{const{currentWorkflow:{data:{stages:h}}}=u.clientState,{newIndex:i,oldIndex:l}=p;if(i>=0&&i<h.length){const v=h[l];let x=[...h];x.splice(l,1),x.splice(i,0,v),n.clientState.currentWorkflow.data.stages=x}break}case d.VS:{n.clientState.currentWorkflow.data={...n.clientState.currentWorkflow.data,...p};break}default:break}u.clientState.currentWorkflow.data&&n.serverState.workflow?n.clientState.currentWorkflow.isDirty=!a()((0,t.Vk)(n.clientState.currentWorkflow).data,n.serverState.workflow):n.clientState.currentWorkflow.isDirty=!0})}const y=(u=[])=>{const s=u.map(n=>n.id??n.__temp_key__);return Math.max(...s,-1)+1}},68886:function(w,m,e){"use strict";e.d(m,{k:function(){return a},s:function(){return d}});var t=e(12301),r=e(2121);function a(c){if(!c)return null;const y=Object.entries(t.W.colors).filter(([,u])=>u.toUpperCase()===c.toUpperCase()).reduce((u,[s])=>(r.lv?.[s]&&(u=s),u),null);return y?{themeColorName:y,name:r.lv[y]}:null}function d(){return Object.entries(r.lv).map(([c,o])=>({hex:t.W.colors[c].toUpperCase(),name:o}))}},82920:function(w,m,e){"use strict";e.d(m,{V:function(){return d}});var t=e(3040),r=e.n(t),a=e(24346);async function d({values:c,formatMessage:o}){const y=a.Ry({contentTypes:a.IX().of(a.Z_()),name:a.Z_().max(255,o({id:"Settings.review-workflows.validation.name.max-length",defaultMessage:"Name can not be longer than 255 characters"})).required(),stages:a.IX().of(a.Ry().shape({name:a.Z_().required(o({id:"Settings.review-workflows.validation.stage.name",defaultMessage:"Name is required"})).max(255,o({id:"Settings.review-workflows.validation.stage.max-length",defaultMessage:"Name can not be longer than 255 characters"})).test("unique-name",o({id:"Settings.review-workflows.validation.stage.duplicate",defaultMessage:"Stage name must be unique"}),function(u){const{options:{context:s}}=this;return s.stages.filter(n=>n.name===u).length===1}),color:a.Z_().required(o({id:"Settings.review-workflows.validation.stage.color",defaultMessage:"Color is required"})).matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i)})).min(1)});try{return await y.validate(c,{abortEarly:!1,context:c}),!0}catch(u){let s={};return u instanceof a.p8&&u.inner.forEach(n=>{r()(s,n.path,n.message)}),s}}},51355:function(w,m,e){var t=e(94318),r=e(3387),a="[object Boolean]";function d(c){return c===!0||c===!1||r(c)&&t(c)==a}w.exports=d},95919:function(w,m,e){var t=e(80022);function r(a){return t(a)&&a!=+a}w.exports=r},80022:function(w,m,e){var t=e(94318),r=e(3387),a="[object Number]";function d(c){return typeof c=="number"||r(c)&&t(c)==a}w.exports=d},59578:function(w,m,e){var t=e(41119);function r(a){return t(a).toLowerCase()}w.exports=r},83828:function(w,m,e){"use strict";e.d(m,{U:function(){return h},y:function(){return n}});var t=e(74512),r=e(32735),a=e(8471),d=e(91045),c=e(74971),o=e(49372),y=e(87933),u=e(72850);const s=({theme:i,expanded:l,variant:v,disabled:x,error:O})=>O?`1px solid ${i.colors.danger600} !important`:x?`1px solid ${i.colors.neutral150}`:l?`1px solid ${i.colors.primary600}`:v==="primary"?`1px solid ${i.colors.neutral0}`:`1px solid ${i.colors.neutral100}`,n=(0,a.ZP)(o.Z)``,p=(0,a.ZP)(u.x)`
|
|
66
|
+
border: ${s};
|
|
67
|
+
|
|
68
|
+
&:hover:not([aria-disabled='true']) {
|
|
69
|
+
border: 1px solid ${({theme:i})=>i.colors.primary600};
|
|
70
|
+
|
|
71
|
+
${n} {
|
|
72
|
+
color: ${({theme:i,expanded:l})=>l?void 0:i.colors.primary700};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
${o.Z} {
|
|
76
|
+
color: ${({theme:i,expanded:l})=>l?void 0:i.colors.primary600};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
& > ${y.k} {
|
|
80
|
+
background: ${({theme:i})=>i.colors.primary100};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[data-strapi-dropdown='true'] {
|
|
84
|
+
background: ${({theme:i})=>i.colors.primary200};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
`,h=({children:i,disabled:l=!1,error:v,expanded:x=!1,hasErrorMessage:O=!0,id:P,onToggle:L,toggle:M,size:A="M",variant:g="primary",shadow:T})=>{const f=(0,c.M)(P),D=r.useMemo(()=>({expanded:x,onToggle:L,toggle:M,id:f,size:A,variant:g,disabled:l}),[l,x,f,L,A,M,g]);return(0,t.jsxs)(d.S.Provider,{value:D,children:[(0,t.jsx)(p,{"data-strapi-expanded":x,disabled:l,"aria-disabled":l,expanded:x,hasRadius:!0,variant:g,error:v,shadow:T,children:i}),v&&O&&(0,t.jsx)(u.x,{paddingTop:1,children:(0,t.jsx)(o.Z,{variant:"pi",textColor:"danger600",children:v})})]})}},89966:function(w,m,e){"use strict";e.d(m,{v:function(){return d}});var t=e(74512),r=e(91045),a=e(72850);const d=({children:c,...o})=>{const{expanded:y,id:u}=(0,r.A)();if(!y)return null;const s=`accordion-content-${u}`,n=`accordion-label-${u}`,p=`accordion-desc-${u}`;return(0,t.jsx)(a.x,{role:"region",id:s,"aria-labelledby":n,"aria-describedby":p,...o,children:c})}},91045:function(w,m,e){"use strict";e.d(m,{A:function(){return a},S:function(){return r}});var t=e(32735);const r=(0,t.createContext)({disabled:!1,expanded:!1,id:"",size:"M",variant:"primary"}),a=()=>(0,t.useContext)(r)},61762:function(w,m,e){"use strict";e.d(m,{B:function(){return i}});var t=e(74512),r=e(16899),a=e(8471),d=e(83828),c=e(91045);const o=({expanded:l,disabled:v,variant:x})=>{let O="neutral100";return l?O="primary100":v?O="neutral150":x==="primary"&&(O="neutral0"),O};var y=e(7563),u=e(99140),s=e(87933),n=e(49372);const p=(0,a.ZP)(y.A)`
|
|
88
|
+
text-align: left;
|
|
89
|
+
|
|
90
|
+
// necessary to make the ellipsis prop work on the title
|
|
91
|
+
> span {
|
|
92
|
+
max-width: 100%;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
svg {
|
|
96
|
+
width: ${14/16}rem;
|
|
97
|
+
height: ${14/16}rem;
|
|
98
|
+
|
|
99
|
+
path {
|
|
100
|
+
fill: ${({theme:l,expanded:v})=>v?l.colors.primary600:l.colors.neutral500};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
`,h=(0,a.ZP)(s.k)`
|
|
104
|
+
min-height: ${({theme:l,size:v})=>l.sizes.accordions[v]};
|
|
105
|
+
border-radius: ${({theme:l,expanded:v})=>v?`${l.borderRadius} ${l.borderRadius} 0 0`:l.borderRadius};
|
|
106
|
+
|
|
107
|
+
&:hover {
|
|
108
|
+
svg {
|
|
109
|
+
path {
|
|
110
|
+
fill: ${({theme:l})=>l.colors.primary600};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
`,i=({title:l,description:v,as:x="span",togglePosition:O="right",action:P,...L})=>{const{onToggle:M,toggle:A,expanded:g,id:T,size:f,variant:D,disabled:R}=(0,c.A)(),W=`accordion-content-${T}`,I=`accordion-label-${T}`,U=`accordion-desc-${T}`,$=f==="M"?6:4,B=f==="M"?$:$-2,K=o({expanded:g,disabled:R,variant:D}),V={as:x,fontWeight:f==="S"?"bold":void 0,id:I,textColor:g?"primary600":"neutral700",ellipsis:!0,variant:f==="M"?"delta":void 0},S=g?"primary600":"neutral600",k=g?"primary200":"neutral200",F=f==="M"?`${32/16}rem`:`${24/16}rem`,b=()=>{R||(A&&!M?(console.warn('Deprecation warning: Usage of "toggle" prop in Accordion component is deprecated. This is discouraged and will be removed in the next major release. Please use "onToggle" instead'),A()):M&&M())},E=(0,t.jsx)(s.k,{justifyContent:"center",borderRadius:"50%",height:F,width:F,transform:g?"rotate(180deg)":void 0,"data-strapi-dropdown":!0,"aria-hidden":!0,as:"span",background:k,cursor:R?"not-allowed":"pointer",onClick:b,shrink:0,children:(0,t.jsx)(u.J,{as:r.Z,width:f==="M"?`${11/16}rem`:`${8/16}rem`,color:g?"primary600":"neutral600"})});return(0,t.jsx)(h,{paddingBottom:B,paddingLeft:$,paddingRight:$,paddingTop:B,background:K,expanded:g,size:f,justifyContent:"space-between",cursor:R?"not-allowed":"",children:(0,t.jsxs)(s.k,{gap:3,flex:1,maxWidth:"100%",children:[O==="left"&&E,(0,t.jsx)(p,{onClick:b,"aria-disabled":R,"aria-expanded":g,"aria-controls":W,"aria-labelledby":I,"data-strapi-accordion-toggle":!0,expanded:g,type:"button",flex:1,minWidth:0,...L,children:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.y,{...V,children:l}),v&&(0,t.jsx)(n.Z,{as:"p",id:U,textColor:S,children:v})]})}),O==="right"&&(0,t.jsxs)(s.k,{gap:3,children:[E,P]}),O==="left"&&P]})})}},29439:function(w,m,e){"use strict";e.d(m,{Z:function(){return a}});var t=e(74512);const r=d=>(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...d,children:(0,t.jsx)("path",{fill:"#212134",d:"M24 13.3a.2.2 0 0 1-.2.2H5.74l8.239 8.239a.2.2 0 0 1 0 .282L12.14 23.86a.2.2 0 0 1-.282 0L.14 12.14a.2.2 0 0 1 0-.282L11.86.14a.2.2 0 0 1 .282 0L13.98 1.98a.2.2 0 0 1 0 .282L5.74 10.5H23.8c.11 0 .2.09.2.2v2.6Z"})}),a=r},47081:function(w,m,e){"use strict";e.d(m,{Z:function(){return a}});var t=e(74512);const r=d=>(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...d,children:[(0,t.jsx)("path",{fill:"#212134",d:"M16.563 5.587a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M18.487 3.083c-.012.788-.487 1.513-1.229 1.797a1.954 1.954 0 0 1-2.184-.574A1.943 1.943 0 0 1 14.9 2.11c.4-.684 1.2-1.066 1.981-.927a1.954 1.954 0 0 1 1.606 1.9c.011.748 1.17.748 1.158 0A3.138 3.138 0 0 0 17.565.17c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.674 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.006ZM16.563 14.372a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M18.487 11.867c-.012.789-.487 1.513-1.229 1.797a1.954 1.954 0 0 1-2.184-.574 1.943 1.943 0 0 1-.174-2.196c.4-.684 1.2-1.066 1.981-.927.928.156 1.588.968 1.606 1.9.011.748 1.17.748 1.158 0a3.138 3.138 0 0 0-2.08-2.914c-1.176-.423-2.567-.029-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.675 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.005ZM16.563 23.392a2.503 2.503 0 1 0 0-5.006 2.503 2.503 0 0 0 0 5.006Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M18.487 20.89c-.012.787-.487 1.512-1.229 1.796a1.954 1.954 0 0 1-2.184-.574 1.943 1.943 0 0 1-.174-2.196c.4-.684 1.2-1.066 1.981-.927.928.156 1.588.967 1.606 1.9.011.748 1.17.748 1.158 0a3.138 3.138 0 0 0-2.08-2.914c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.674 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.006ZM7.378 5.622a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M9.302 3.119c-.011.788-.486 1.512-1.228 1.796a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927a1.943 1.943 0 0 1 1.605 1.9c.012.748 1.17.748 1.16 0A3.138 3.138 0 0 0 8.38.205c-1.176-.423-2.567-.029-3.36.933-.83 1.002-.968 2.45-.285 3.575.678 1.124 1.994 1.675 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.159-.005ZM7.378 14.406a2.503 2.503 0 1 0 0-5.006 2.503 2.503 0 0 0 0 5.006Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M9.302 11.902c-.011.788-.486 1.513-1.228 1.797a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927a1.943 1.943 0 0 1 1.605 1.9c.012.748 1.17.748 1.16 0A3.138 3.138 0 0 0 8.38 8.988c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.285 3.575.678 1.124 1.994 1.674 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.159-.006ZM7.378 23.427a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M9.302 20.924c-.011.788-.486 1.513-1.228 1.797a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927.933.156 1.594.967 1.605 1.9.012.748 1.17.748 1.16 0A3.139 3.139 0 0 0 8.38 18.01c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.285 3.569.678 1.124 1.994 1.675 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.747-1.147-.747-1.159 0Z"})]}),a=r},86308:function(w,m,e){"use strict";e.d(m,{Z:function(){return a}});var t=e(74512);const r=d=>(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...d,children:[(0,t.jsx)("circle",{cx:12,cy:12,r:12,fill:"#212134"}),(0,t.jsx)("path",{fill:"#F6F6F9",d:"M17 12.569c0 .124-.1.224-.225.224h-3.981v3.982c0 .124-.101.225-.226.225h-1.136a.225.225 0 0 1-.226-.225v-3.981H7.226A.225.225 0 0 1 7 12.567v-1.136c0-.125.1-.226.225-.226h3.982V7.226c0-.124.1-.225.224-.225h1.138c.124 0 .224.1.224.225v3.982h3.982c.124 0 .225.1.225.224v1.138Z"})]}),a=r}}]);
|