@strapi/review-workflows 5.31.1 → 5.31.3
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/admin/routes/purchase-review-workflows.js +2 -2
- package/dist/admin/routes/purchase-review-workflows.js.map +1 -1
- package/dist/admin/routes/purchase-review-workflows.mjs +2 -2
- package/dist/admin/routes/purchase-review-workflows.mjs.map +1 -1
- package/dist/admin/routes/settings/components/Stages.js +1 -0
- package/dist/admin/routes/settings/components/Stages.js.map +1 -1
- package/dist/admin/routes/settings/components/Stages.mjs +1 -0
- package/dist/admin/routes/settings/components/Stages.mjs.map +1 -1
- package/dist/admin/routes/settings/components/WorkflowAttributes.js +3 -0
- package/dist/admin/routes/settings/components/WorkflowAttributes.js.map +1 -1
- package/dist/admin/routes/settings/components/WorkflowAttributes.mjs +3 -0
- package/dist/admin/routes/settings/components/WorkflowAttributes.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -34,7 +34,7 @@ const PurchaseReviewWorkflows = ()=>{
|
|
|
34
34
|
children: [
|
|
35
35
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
36
36
|
col: 6,
|
|
37
|
-
|
|
37
|
+
xs: 12,
|
|
38
38
|
alignItems: 'flex-start',
|
|
39
39
|
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
40
40
|
direction: "column",
|
|
@@ -156,7 +156,7 @@ const PurchaseReviewWorkflows = ()=>{
|
|
|
156
156
|
}),
|
|
157
157
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
158
158
|
col: 6,
|
|
159
|
-
|
|
159
|
+
xs: 12,
|
|
160
160
|
background: "primary100",
|
|
161
161
|
minHeight: '280px',
|
|
162
162
|
children: /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purchase-review-workflows.js","sources":["../../../admin/src/routes/purchase-review-workflows.tsx"],"sourcesContent":["import { Layouts, RESPONSIVE_DEFAULT_SPACING } from '@strapi/admin/strapi-admin';\nimport { Box, Main, Flex, Typography, Grid, LinkButton } from '@strapi/design-system';\nimport { ExternalLink, Check, SealCheck } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport darkIllustration from '../assets/purchase-page-illustration-dark.svg';\nimport lightIllustration from '../assets/purchase-page-illustration-light.svg';\nimport { useTypedSelector } from '../modules/hooks';\n\nconst PurchaseReviewWorkflows = () => {\n const { formatMessage } = useIntl();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n\n const illustration = currentTheme === 'light' ? lightIllustration : darkIllustration;\n return (\n <>\n <Main>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n <Box\n marginLeft={RESPONSIVE_DEFAULT_SPACING}\n marginRight={RESPONSIVE_DEFAULT_SPACING}\n shadow=\"filterShadow\"\n hasRadius\n background=\"neutral0\"\n borderColor={'neutral150'}\n overflow={'hidden'}\n >\n <Grid.Root>\n <Grid.Item col={6} s={12} alignItems={'flex-start'}>\n <Flex direction=\"column\" alignItems=\"flex-start\" padding={7} width={'100%'}>\n <Flex>\n <SealCheck fill=\"primary600\" width={`24px`} height={`24px`} />\n </Flex>\n <Flex paddingTop={3} paddingBottom={4}>\n <Typography variant=\"beta\" fontWeight=\"bold\">\n {formatMessage({\n id: 'settings.page.purchase.description',\n defaultMessage: 'Manage your content review process',\n })}\n </Typography>\n </Flex>\n\n <Flex direction=\"column\" alignItems={'flex-start'} gap={2}>\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks1',\n defaultMessage: 'Customizable review stages',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks2',\n defaultMessage: 'Manage user permissions',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks3',\n defaultMessage: 'Support for webhooks',\n })}\n </Typography>\n </Flex>\n </Flex>\n\n <Flex gap={2} marginTop={7}>\n <LinkButton\n variant=\"default\"\n href=\"https://strapi.io/pricing-self-hosted?utm_campaign=In-Product-CTA&utm_source=Review%20Workflows\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.upgrade.cta',\n defaultMessage: 'Upgrade',\n })}\n </LinkButton>\n <LinkButton\n variant=\"tertiary\"\n endIcon={<ExternalLink />}\n href=\"https://strapi.io/features/review-workflow?utm_campaign=In-Product-CTA&utm_source=Review%20Workflows\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.learn-more.cta',\n defaultMessage: 'Learn more',\n })}\n </LinkButton>\n </Flex>\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} s={12} background=\"primary100\" minHeight={'280px'}>\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <img\n src={illustration}\n alt=\"purchase-page-review-workflows-illustration\"\n width=\"100%\"\n height=\"100%\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'bottom left',\n }}\n />\n </div>\n </Grid.Item>\n </Grid.Root>\n </Box>\n </Main>\n </>\n );\n};\n\nexport { PurchaseReviewWorkflows };\n"],"names":["PurchaseReviewWorkflows","formatMessage","useIntl","currentTheme","useTypedSelector","state","admin_app","theme","illustration","lightIllustration","darkIllustration","_jsx","_Fragment","_jsxs","Main","Layouts","Header","title","id","defaultMessage","Box","marginLeft","RESPONSIVE_DEFAULT_SPACING","marginRight","shadow","hasRadius","background","borderColor","overflow","Grid","Root","Item","col","s","alignItems","Flex","direction","padding","width","SealCheck","fill","height","paddingTop","paddingBottom","Typography","variant","fontWeight","gap","Check","style","flexShrink","textColor","marginTop","LinkButton","href","endIcon","ExternalLink","minHeight","div","position","img","src","alt","top","left","objectFit","objectPosition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"purchase-review-workflows.js","sources":["../../../admin/src/routes/purchase-review-workflows.tsx"],"sourcesContent":["import { Layouts, RESPONSIVE_DEFAULT_SPACING } from '@strapi/admin/strapi-admin';\nimport { Box, Main, Flex, Typography, Grid, LinkButton } from '@strapi/design-system';\nimport { ExternalLink, Check, SealCheck } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport darkIllustration from '../assets/purchase-page-illustration-dark.svg';\nimport lightIllustration from '../assets/purchase-page-illustration-light.svg';\nimport { useTypedSelector } from '../modules/hooks';\n\nconst PurchaseReviewWorkflows = () => {\n const { formatMessage } = useIntl();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n\n const illustration = currentTheme === 'light' ? lightIllustration : darkIllustration;\n return (\n <>\n <Main>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n <Box\n marginLeft={RESPONSIVE_DEFAULT_SPACING}\n marginRight={RESPONSIVE_DEFAULT_SPACING}\n shadow=\"filterShadow\"\n hasRadius\n background=\"neutral0\"\n borderColor={'neutral150'}\n overflow={'hidden'}\n >\n <Grid.Root>\n <Grid.Item col={6} xs={12} alignItems={'flex-start'}>\n <Flex direction=\"column\" alignItems=\"flex-start\" padding={7} width={'100%'}>\n <Flex>\n <SealCheck fill=\"primary600\" width={`24px`} height={`24px`} />\n </Flex>\n <Flex paddingTop={3} paddingBottom={4}>\n <Typography variant=\"beta\" fontWeight=\"bold\">\n {formatMessage({\n id: 'settings.page.purchase.description',\n defaultMessage: 'Manage your content review process',\n })}\n </Typography>\n </Flex>\n\n <Flex direction=\"column\" alignItems={'flex-start'} gap={2}>\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks1',\n defaultMessage: 'Customizable review stages',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks2',\n defaultMessage: 'Manage user permissions',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks3',\n defaultMessage: 'Support for webhooks',\n })}\n </Typography>\n </Flex>\n </Flex>\n\n <Flex gap={2} marginTop={7}>\n <LinkButton\n variant=\"default\"\n href=\"https://strapi.io/pricing-self-hosted?utm_campaign=In-Product-CTA&utm_source=Review%20Workflows\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.upgrade.cta',\n defaultMessage: 'Upgrade',\n })}\n </LinkButton>\n <LinkButton\n variant=\"tertiary\"\n endIcon={<ExternalLink />}\n href=\"https://strapi.io/features/review-workflow?utm_campaign=In-Product-CTA&utm_source=Review%20Workflows\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.learn-more.cta',\n defaultMessage: 'Learn more',\n })}\n </LinkButton>\n </Flex>\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} xs={12} background=\"primary100\" minHeight={'280px'}>\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <img\n src={illustration}\n alt=\"purchase-page-review-workflows-illustration\"\n width=\"100%\"\n height=\"100%\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'bottom left',\n }}\n />\n </div>\n </Grid.Item>\n </Grid.Root>\n </Box>\n </Main>\n </>\n );\n};\n\nexport { PurchaseReviewWorkflows };\n"],"names":["PurchaseReviewWorkflows","formatMessage","useIntl","currentTheme","useTypedSelector","state","admin_app","theme","illustration","lightIllustration","darkIllustration","_jsx","_Fragment","_jsxs","Main","Layouts","Header","title","id","defaultMessage","Box","marginLeft","RESPONSIVE_DEFAULT_SPACING","marginRight","shadow","hasRadius","background","borderColor","overflow","Grid","Root","Item","col","xs","alignItems","Flex","direction","padding","width","SealCheck","fill","height","paddingTop","paddingBottom","Typography","variant","fontWeight","gap","Check","style","flexShrink","textColor","marginTop","LinkButton","href","endIcon","ExternalLink","minHeight","div","position","img","src","alt","top","left","objectFit","objectPosition"],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ const PurchaseReviewWorkflows = ()=>{
|
|
|
32
32
|
children: [
|
|
33
33
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
34
34
|
col: 6,
|
|
35
|
-
|
|
35
|
+
xs: 12,
|
|
36
36
|
alignItems: 'flex-start',
|
|
37
37
|
children: /*#__PURE__*/ jsxs(Flex, {
|
|
38
38
|
direction: "column",
|
|
@@ -154,7 +154,7 @@ const PurchaseReviewWorkflows = ()=>{
|
|
|
154
154
|
}),
|
|
155
155
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
156
156
|
col: 6,
|
|
157
|
-
|
|
157
|
+
xs: 12,
|
|
158
158
|
background: "primary100",
|
|
159
159
|
minHeight: '280px',
|
|
160
160
|
children: /*#__PURE__*/ jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purchase-review-workflows.mjs","sources":["../../../admin/src/routes/purchase-review-workflows.tsx"],"sourcesContent":["import { Layouts, RESPONSIVE_DEFAULT_SPACING } from '@strapi/admin/strapi-admin';\nimport { Box, Main, Flex, Typography, Grid, LinkButton } from '@strapi/design-system';\nimport { ExternalLink, Check, SealCheck } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport darkIllustration from '../assets/purchase-page-illustration-dark.svg';\nimport lightIllustration from '../assets/purchase-page-illustration-light.svg';\nimport { useTypedSelector } from '../modules/hooks';\n\nconst PurchaseReviewWorkflows = () => {\n const { formatMessage } = useIntl();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n\n const illustration = currentTheme === 'light' ? lightIllustration : darkIllustration;\n return (\n <>\n <Main>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n <Box\n marginLeft={RESPONSIVE_DEFAULT_SPACING}\n marginRight={RESPONSIVE_DEFAULT_SPACING}\n shadow=\"filterShadow\"\n hasRadius\n background=\"neutral0\"\n borderColor={'neutral150'}\n overflow={'hidden'}\n >\n <Grid.Root>\n <Grid.Item col={6} s={12} alignItems={'flex-start'}>\n <Flex direction=\"column\" alignItems=\"flex-start\" padding={7} width={'100%'}>\n <Flex>\n <SealCheck fill=\"primary600\" width={`24px`} height={`24px`} />\n </Flex>\n <Flex paddingTop={3} paddingBottom={4}>\n <Typography variant=\"beta\" fontWeight=\"bold\">\n {formatMessage({\n id: 'settings.page.purchase.description',\n defaultMessage: 'Manage your content review process',\n })}\n </Typography>\n </Flex>\n\n <Flex direction=\"column\" alignItems={'flex-start'} gap={2}>\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks1',\n defaultMessage: 'Customizable review stages',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks2',\n defaultMessage: 'Manage user permissions',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks3',\n defaultMessage: 'Support for webhooks',\n })}\n </Typography>\n </Flex>\n </Flex>\n\n <Flex gap={2} marginTop={7}>\n <LinkButton\n variant=\"default\"\n href=\"https://strapi.io/pricing-self-hosted?utm_campaign=In-Product-CTA&utm_source=Review%20Workflows\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.upgrade.cta',\n defaultMessage: 'Upgrade',\n })}\n </LinkButton>\n <LinkButton\n variant=\"tertiary\"\n endIcon={<ExternalLink />}\n href=\"https://strapi.io/features/review-workflow?utm_campaign=In-Product-CTA&utm_source=Review%20Workflows\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.learn-more.cta',\n defaultMessage: 'Learn more',\n })}\n </LinkButton>\n </Flex>\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} s={12} background=\"primary100\" minHeight={'280px'}>\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <img\n src={illustration}\n alt=\"purchase-page-review-workflows-illustration\"\n width=\"100%\"\n height=\"100%\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'bottom left',\n }}\n />\n </div>\n </Grid.Item>\n </Grid.Root>\n </Box>\n </Main>\n </>\n );\n};\n\nexport { PurchaseReviewWorkflows };\n"],"names":["PurchaseReviewWorkflows","formatMessage","useIntl","currentTheme","useTypedSelector","state","admin_app","theme","illustration","lightIllustration","darkIllustration","_jsx","_Fragment","_jsxs","Main","Layouts","Header","title","id","defaultMessage","Box","marginLeft","RESPONSIVE_DEFAULT_SPACING","marginRight","shadow","hasRadius","background","borderColor","overflow","Grid","Root","Item","col","s","alignItems","Flex","direction","padding","width","SealCheck","fill","height","paddingTop","paddingBottom","Typography","variant","fontWeight","gap","Check","style","flexShrink","textColor","marginTop","LinkButton","href","endIcon","ExternalLink","minHeight","div","position","img","src","alt","top","left","objectFit","objectPosition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"purchase-review-workflows.mjs","sources":["../../../admin/src/routes/purchase-review-workflows.tsx"],"sourcesContent":["import { Layouts, RESPONSIVE_DEFAULT_SPACING } from '@strapi/admin/strapi-admin';\nimport { Box, Main, Flex, Typography, Grid, LinkButton } from '@strapi/design-system';\nimport { ExternalLink, Check, SealCheck } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport darkIllustration from '../assets/purchase-page-illustration-dark.svg';\nimport lightIllustration from '../assets/purchase-page-illustration-light.svg';\nimport { useTypedSelector } from '../modules/hooks';\n\nconst PurchaseReviewWorkflows = () => {\n const { formatMessage } = useIntl();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n\n const illustration = currentTheme === 'light' ? lightIllustration : darkIllustration;\n return (\n <>\n <Main>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n <Box\n marginLeft={RESPONSIVE_DEFAULT_SPACING}\n marginRight={RESPONSIVE_DEFAULT_SPACING}\n shadow=\"filterShadow\"\n hasRadius\n background=\"neutral0\"\n borderColor={'neutral150'}\n overflow={'hidden'}\n >\n <Grid.Root>\n <Grid.Item col={6} xs={12} alignItems={'flex-start'}>\n <Flex direction=\"column\" alignItems=\"flex-start\" padding={7} width={'100%'}>\n <Flex>\n <SealCheck fill=\"primary600\" width={`24px`} height={`24px`} />\n </Flex>\n <Flex paddingTop={3} paddingBottom={4}>\n <Typography variant=\"beta\" fontWeight=\"bold\">\n {formatMessage({\n id: 'settings.page.purchase.description',\n defaultMessage: 'Manage your content review process',\n })}\n </Typography>\n </Flex>\n\n <Flex direction=\"column\" alignItems={'flex-start'} gap={2}>\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks1',\n defaultMessage: 'Customizable review stages',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks2',\n defaultMessage: 'Manage user permissions',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'settings.page.purchase.perks3',\n defaultMessage: 'Support for webhooks',\n })}\n </Typography>\n </Flex>\n </Flex>\n\n <Flex gap={2} marginTop={7}>\n <LinkButton\n variant=\"default\"\n href=\"https://strapi.io/pricing-self-hosted?utm_campaign=In-Product-CTA&utm_source=Review%20Workflows\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.upgrade.cta',\n defaultMessage: 'Upgrade',\n })}\n </LinkButton>\n <LinkButton\n variant=\"tertiary\"\n endIcon={<ExternalLink />}\n href=\"https://strapi.io/features/review-workflow?utm_campaign=In-Product-CTA&utm_source=Review%20Workflows\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.learn-more.cta',\n defaultMessage: 'Learn more',\n })}\n </LinkButton>\n </Flex>\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} xs={12} background=\"primary100\" minHeight={'280px'}>\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <img\n src={illustration}\n alt=\"purchase-page-review-workflows-illustration\"\n width=\"100%\"\n height=\"100%\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'bottom left',\n }}\n />\n </div>\n </Grid.Item>\n </Grid.Root>\n </Box>\n </Main>\n </>\n );\n};\n\nexport { PurchaseReviewWorkflows };\n"],"names":["PurchaseReviewWorkflows","formatMessage","useIntl","currentTheme","useTypedSelector","state","admin_app","theme","illustration","lightIllustration","darkIllustration","_jsx","_Fragment","_jsxs","Main","Layouts","Header","title","id","defaultMessage","Box","marginLeft","RESPONSIVE_DEFAULT_SPACING","marginRight","shadow","hasRadius","background","borderColor","overflow","Grid","Root","Item","col","xs","alignItems","Flex","direction","padding","width","SealCheck","fill","height","paddingTop","paddingBottom","Typography","variant","fontWeight","gap","Check","style","flexShrink","textColor","marginTop","LinkButton","href","endIcon","ExternalLink","minHeight","div","position","img","src","alt","top","left","objectFit","objectPosition"],"mappings":"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"}
|
|
@@ -317,6 +317,7 @@ const Stage = ({ index, canDelete = false, canReorder = false, canUpdate = false
|
|
|
317
317
|
}
|
|
318
318
|
].map(({ size, ...field })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
319
319
|
col: size,
|
|
320
|
+
xs: 12,
|
|
320
321
|
direction: "column",
|
|
321
322
|
alignItems: "stretch",
|
|
322
323
|
children: /*#__PURE__*/ jsxRuntime.jsx(InputRenderer, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stages.js","sources":["../../../../../admin/src/routes/settings/components/Stages.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useField,\n useForm,\n useTracking,\n ConfirmDialog,\n useNotification,\n InputRenderer as AdminInputRenderer,\n InputProps,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n MultiSelectOption,\n Accordion,\n Grid,\n IconButton,\n MultiSelect,\n MultiSelectGroup,\n SingleSelect,\n SingleSelectOption,\n TextInput,\n VisuallyHidden,\n useComposedRefs,\n Menu,\n Field,\n Dialog,\n} from '@strapi/design-system';\nimport { Duplicate, Drag, More, EyeStriked } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { Stage as IStage, StagePermission } from '../../../../../shared/contracts/review-workflows';\nimport { useGetAdminRolesQuery } from '../../../services/admin';\nimport { AVAILABLE_COLORS, getStageColorByHex } from '../../../utils/colors';\nimport { DRAG_DROP_TYPES } from '../constants';\nimport { useDragAndDrop } from '../hooks/useDragAndDrop';\n\nimport { AddStage } from './AddStage';\n\ninterface WorkflowStage extends Pick<IStage, 'id' | 'name' | 'permissions' | 'color'> {\n __temp_key__: string;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Stages\n * -----------------------------------------------------------------------------------------------*/\ninterface StagesProps {\n canDelete?: boolean;\n canUpdate?: boolean;\n isCreating?: boolean;\n}\n\nconst Stages = ({ canDelete = true, canUpdate = true, isCreating }: StagesProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const addFieldRow = useForm('Stages', (state) => state.addFieldRow);\n const { value: stages = [] } = useField<WorkflowStage[]>('stages');\n\n return (\n <Flex direction=\"column\" gap={6} width=\"100%\">\n <Box position=\"relative\" width=\"100%\">\n <Background\n background=\"neutral200\"\n height=\"100%\"\n left=\"50%\"\n position=\"absolute\"\n top=\"0\"\n width={2}\n />\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\" tag=\"ol\">\n {stages.map((stage, index) => {\n return (\n <Box key={stage.__temp_key__} tag=\"li\">\n <Stage\n index={index}\n canDelete={stages.length > 1 && canDelete}\n canReorder={stages.length > 1}\n canUpdate={canUpdate}\n stagesCount={stages.length}\n defaultOpen={!stage.id}\n {...stage}\n />\n </Box>\n );\n })}\n </Flex>\n </Box>\n\n {canUpdate && (\n <AddStage\n type=\"button\"\n onClick={() => {\n addFieldRow('stages', { name: '' });\n trackUsage('willCreateStage');\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.stage.add',\n defaultMessage: 'Add new stage',\n })}\n </AddStage>\n )}\n </Flex>\n );\n};\n\nconst Background = styled(Box)`\n transform: translateX(-50%);\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Stage\n * -----------------------------------------------------------------------------------------------*/\ninterface StageProps extends WorkflowStage {\n canDelete?: boolean;\n canReorder?: boolean;\n canUpdate?: boolean;\n index: number;\n stagesCount: number;\n defaultOpen?: boolean;\n}\n\nconst Stage = ({\n index,\n canDelete = false,\n canReorder = false,\n canUpdate = false,\n stagesCount,\n name,\n permissions,\n color,\n defaultOpen,\n}: StageProps) => {\n const [liveText, setLiveText] = React.useState<string>();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const stageErrors = useForm('Stages', (state) => state.errors.stages as object[]);\n const error = stageErrors?.[index];\n const addFieldRow = useForm('Stage', (state) => state.addFieldRow);\n const moveFieldRow = useForm('Stage', (state) => state.moveFieldRow);\n const removeFieldRow = useForm('Stage', (state) => state.removeFieldRow);\n\n const getItemPos = (index: number) => `${index + 1} of ${stagesCount}`;\n\n const handleGrabStage = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.grab-item',\n defaultMessage: `{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.`,\n },\n {\n item: name,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleDropStage = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.drop-item',\n defaultMessage: `{item}, dropped. Final position in list: {position}.`,\n },\n {\n item: name,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleCancelDragStage = () => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.cancel-item',\n defaultMessage: '{item}, dropped. Re-order cancelled.',\n },\n {\n item: name,\n }\n )\n );\n };\n\n const handleMoveStage = (newIndex: number, oldIndex: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.reorder',\n defaultMessage: '{item}, moved. New position in list: {position}.',\n },\n {\n item: name,\n position: getItemPos(newIndex),\n }\n )\n );\n\n moveFieldRow('stages', oldIndex, newIndex);\n };\n\n const [{ handlerId, isDragging, handleKeyDown }, stageRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(canReorder, {\n index,\n item: {\n index,\n name,\n },\n onGrabItem: handleGrabStage,\n onDropItem: handleDropStage,\n onMoveItem: handleMoveStage,\n onCancel: handleCancelDragStage,\n type: DRAG_DROP_TYPES.STAGE,\n });\n\n // @ts-expect-error – the stageRef is incorrectly typed.\n const composedRef = useComposedRefs<HTMLDivElement>(stageRef, dropRef);\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n const handleCloneClick = () => {\n addFieldRow('stages', { name, color, permissions });\n };\n\n const id = React.useId();\n\n return (\n <Box ref={composedRef} shadow=\"tableShadow\">\n {liveText && <VisuallyHidden aria-live=\"assertive\">{liveText}</VisuallyHidden>}\n\n {isDragging ? (\n <Box\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n display=\"block\"\n hasRadius\n padding={6}\n />\n ) : (\n <AccordionRoot\n onValueChange={(value) => {\n if (value) {\n trackUsage('willEditStage');\n }\n }}\n defaultValue={defaultOpen ? id : undefined}\n $error={Object.values(error ?? {}).length > 0}\n >\n <Accordion.Item value={id}>\n <Accordion.Header>\n <Accordion.Trigger>{name}</Accordion.Trigger>\n <Accordion.Actions>\n {canDelete || canUpdate ? (\n <>\n <Menu.Root>\n <ContextMenuTrigger size=\"S\" endIcon={null} paddingLeft={2} paddingRight={2}>\n <More aria-hidden focusable={false} />\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: '[tbdb].components.DynamicZone.more-actions',\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </ContextMenuTrigger>\n {/* z-index needs to be as big as the one defined for the wrapper in Stages, otherwise the menu\n * disappears behind the accordion\n */}\n <Menu.Content popoverPlacement=\"bottom-end\" zIndex={2}>\n <Menu.SubRoot>\n {canUpdate && (\n <Menu.Item onClick={handleCloneClick}>\n {formatMessage({\n id: 'Settings.review-workflows.stage.delete',\n defaultMessage: 'Duplicate stage',\n })}\n </Menu.Item>\n )}\n\n {canDelete && (\n <Menu.Item\n onClick={() => removeFieldRow('stages', index)}\n variant=\"danger\"\n >\n {formatMessage({\n id: 'Settings.review-workflows.stage.delete',\n defaultMessage: 'Delete',\n })}\n </Menu.Item>\n )}\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n\n {canUpdate && (\n <IconButton\n background=\"transparent\"\n hasRadius\n variant=\"ghost\"\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: 'Settings.review-workflows.stage.drag',\n defaultMessage: 'Drag',\n })}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n )}\n </>\n ) : null}\n </Accordion.Actions>\n </Accordion.Header>\n <Accordion.Content>\n <Grid.Root gap={4} padding={6}>\n {[\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.name.label',\n defaultMessage: 'Stage name',\n }),\n name: `stages.${index}.name`,\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'content-manager.reviewWorkflows.stage.color',\n defaultMessage: 'Color',\n }),\n name: `stages.${index}.color`,\n required: true,\n size: 6,\n type: 'color' as const,\n },\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n }),\n name: `stages.${index}.permissions`,\n placeholder: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.placeholder',\n defaultMessage: 'Select a role',\n }),\n required: true,\n size: 6,\n type: 'permissions' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Accordion.Content>\n </Accordion.Item>\n </AccordionRoot>\n )}\n </Box>\n );\n};\n\nconst AccordionRoot = styled(Accordion.Root)<{ $error?: boolean }>`\n border: 1px solid\n ${({ theme, $error }) => ($error ? theme.colors.danger600 : theme.colors.neutral200)};\n`;\n\n// Removing the font-size from the child-span aligns the\n// more icon vertically\nconst ContextMenuTrigger = styled(Menu.Trigger)`\n :hover,\n :focus {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n\n > span {\n font-size: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * InputRenderer\n * -----------------------------------------------------------------------------------------------*/\n\ntype InputRendererProps = InputProps | ColorSelectorProps | PermissionsFieldProps;\n\nconst InputRenderer = (props: InputRendererProps) => {\n switch (props.type) {\n case 'color':\n return <ColorSelector {...props} />;\n case 'permissions':\n return <PermissionsField {...props} />;\n default:\n return <AdminInputRenderer {...props} />;\n }\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ColorSelector\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ColorSelectorProps\n extends Omit<Extract<InputProps, { type: 'enumeration' }>, 'type' | 'options'> {\n type: 'color';\n}\n\nconst ColorSelector = ({ disabled, label, name, required }: ColorSelectorProps) => {\n const { formatMessage } = useIntl();\n const { value, error, onChange } = useField<string>(name);\n\n const colorOptions = AVAILABLE_COLORS.map(({ hex, name }) => ({\n value: hex,\n label: formatMessage(\n {\n id: 'Settings.review-workflows.stage.color.name',\n defaultMessage: '{name}',\n },\n { name }\n ),\n color: hex,\n }));\n\n const { themeColorName } = getStageColorByHex(value) ?? {};\n\n return (\n <Field.Root error={error} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n onChange={(v) => {\n onChange(name, v.toString());\n }}\n value={value?.toUpperCase()}\n startIcon={\n <Flex\n tag=\"span\"\n height={2}\n background={value}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n >\n {colorOptions.map(({ value, label, color }) => {\n const { themeColorName } = getStageColorByHex(color) || {};\n\n return (\n <SingleSelectOption\n value={value}\n key={value}\n startIcon={\n <Flex\n tag=\"span\"\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n >\n {label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PermissionsField\n * -----------------------------------------------------------------------------------------------*/\ninterface PermissionsFieldProps\n extends Omit<Extract<InputProps, { type: 'enumeration' }>, 'type' | 'options'> {\n type: 'permissions';\n}\n\nconst PermissionsField = ({ disabled, name, placeholder, required }: PermissionsFieldProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const [isApplyAllConfirmationOpen, setIsApplyAllConfirmationOpen] = React.useState(false);\n const { value = [], error, onChange } = useField<StagePermission[]>(name);\n const allStages = useForm<WorkflowStage[]>('PermissionsField', (state) => state.values.stages);\n const onFormValueChange = useForm('PermissionsField', (state) => state.onChange);\n const rolesErrorCount = React.useRef(0);\n\n const { data: roles = [], isLoading, error: getRolesError } = useGetAdminRolesQuery();\n\n // Super admins always have permissions to do everything and therefore\n // there is no point for this role to show up in the role combobox\n const filteredRoles = roles?.filter((role) => role.code !== 'strapi-super-admin') ?? [];\n\n React.useEffect(() => {\n if (\n !isLoading &&\n getRolesError &&\n 'status' in getRolesError &&\n getRolesError.status == 403 &&\n rolesErrorCount.current === 0\n ) {\n rolesErrorCount.current = 1;\n\n toggleNotification({\n blockTransition: true,\n type: 'danger',\n message: formatMessage({\n id: 'review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles. Contact your administrator.',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification, getRolesError]);\n\n if (!isLoading && filteredRoles.length === 0) {\n return (\n <Field.Root\n name={name}\n hint={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n })}\n required={required}\n >\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n })}\n </Field.Label>\n <TextInput\n disabled\n placeholder={formatMessage({\n id: 'components.NotAllowedInput.text',\n defaultMessage: 'No permissions to see this field',\n })}\n startAction={<EyeStriked fill=\"neutral600\" />}\n type=\"text\"\n value=\"\"\n />\n <Field.Hint />\n </Field.Root>\n );\n }\n\n return (\n <>\n <Flex alignItems=\"flex-end\" gap={3}>\n <PermissionWrapper grow={1}>\n <Field.Root error={error} name={name} required>\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(values) => {\n // Because the select components expects strings for values, but\n // the yup schema validates we are sending full permission objects to the API,\n // we must coerce the string value back to an object\n const permissions = values.map((value) => ({\n role: parseInt(value, 10),\n action: 'admin::review-workflows.stage.transition',\n }));\n\n onChange(name, permissions);\n }}\n placeholder={placeholder}\n // The Select component expects strings for values\n value={value.map((permission) => `${permission.role}`)}\n withTags\n >\n <MultiSelectGroup\n label={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.allRoles.label',\n defaultMessage: 'All roles',\n })}\n values={filteredRoles.map((r) => `${r.id}`)}\n >\n {filteredRoles.map((role) => {\n return (\n <NestedOption key={role.id} value={`${role.id}`}>\n {role.name}\n </NestedOption>\n );\n })}\n </MultiSelectGroup>\n </MultiSelect>\n <Field.Error />\n </Field.Root>\n </PermissionWrapper>\n <Dialog.Root open={isApplyAllConfirmationOpen} onOpenChange={setIsApplyAllConfirmationOpen}>\n <Dialog.Trigger>\n <IconButton\n disabled={disabled}\n label={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.apply.label',\n defaultMessage: 'Apply to all stages',\n })}\n size=\"L\"\n >\n <Duplicate />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog\n onConfirm={() => {\n onFormValueChange(\n 'stages',\n allStages.map((stage) => ({\n ...stage,\n permissions: value,\n }))\n );\n\n setIsApplyAllConfirmationOpen(false);\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success',\n defaultMessage: 'Applied roles to all other stages of the workflow',\n }),\n });\n }}\n variant=\"default\"\n >\n {formatMessage({\n id: 'Settings.review-workflows.page.edit.confirm.stages.permissions.copy',\n defaultMessage:\n 'Roles that can change that stage will be applied to all the other stages.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n </>\n );\n};\n\nconst NestedOption = styled(MultiSelectOption)`\n padding-left: ${({ theme }) => theme.spaces[7]};\n`;\n\n// Grow the size of the permission Select\nconst PermissionWrapper = styled(Flex)`\n > * {\n flex-grow: 1;\n }\n`;\n\nexport { Stages };\nexport type { StagesProps, WorkflowStage };\n"],"names":["Stages","canDelete","canUpdate","isCreating","formatMessage","useIntl","trackUsage","useTracking","addFieldRow","useForm","state","value","stages","useField","_jsxs","Flex","direction","gap","width","Box","position","_jsx","Background","background","height","left","top","alignItems","tag","map","stage","index","Stage","length","canReorder","stagesCount","defaultOpen","id","__temp_key__","AddStage","type","onClick","name","defaultMessage","styled","permissions","color","liveText","setLiveText","React","useState","stageErrors","errors","error","moveFieldRow","removeFieldRow","getItemPos","handleGrabStage","item","handleDropStage","handleCancelDragStage","handleMoveStage","newIndex","oldIndex","handlerId","isDragging","handleKeyDown","stageRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","onGrabItem","onDropItem","onMoveItem","onCancel","DRAG_DROP_TYPES","STAGE","composedRef","useComposedRefs","useEffect","getEmptyImage","captureDraggingState","handleCloneClick","useId","ref","shadow","VisuallyHidden","aria-live","borderStyle","borderColor","borderWidth","display","hasRadius","padding","AccordionRoot","onValueChange","defaultValue","undefined","$error","Object","values","Accordion","Item","Header","Trigger","Actions","_Fragment","Menu","Root","ContextMenuTrigger","size","endIcon","paddingLeft","paddingRight","More","aria-hidden","focusable","Content","popoverPlacement","zIndex","SubRoot","variant","IconButton","data-handler-id","label","e","stopPropagation","onKeyDown","Drag","Grid","disabled","required","placeholder","field","col","InputRenderer","theme","colors","danger600","neutral200","neutral100","props","ColorSelector","PermissionsField","AdminInputRenderer","onChange","colorOptions","AVAILABLE_COLORS","hex","themeColorName","getStageColorByHex","Field","Label","SingleSelect","v","toString","toUpperCase","startIcon","shrink","SingleSelectOption","Error","toggleNotification","useNotification","isApplyAllConfirmationOpen","setIsApplyAllConfirmationOpen","allStages","onFormValueChange","rolesErrorCount","useRef","data","roles","isLoading","getRolesError","useGetAdminRolesQuery","filteredRoles","filter","role","code","status","current","blockTransition","message","hint","TextInput","startAction","EyeStriked","fill","Hint","PermissionWrapper","grow","MultiSelect","parseInt","action","permission","withTags","MultiSelectGroup","r","NestedOption","Dialog","open","onOpenChange","Duplicate","ConfirmDialog","onConfirm","MultiSelectOption","spaces"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Stages.js","sources":["../../../../../admin/src/routes/settings/components/Stages.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useField,\n useForm,\n useTracking,\n ConfirmDialog,\n useNotification,\n InputRenderer as AdminInputRenderer,\n InputProps,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n MultiSelectOption,\n Accordion,\n Grid,\n IconButton,\n MultiSelect,\n MultiSelectGroup,\n SingleSelect,\n SingleSelectOption,\n TextInput,\n VisuallyHidden,\n useComposedRefs,\n Menu,\n Field,\n Dialog,\n} from '@strapi/design-system';\nimport { Duplicate, Drag, More, EyeStriked } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { Stage as IStage, StagePermission } from '../../../../../shared/contracts/review-workflows';\nimport { useGetAdminRolesQuery } from '../../../services/admin';\nimport { AVAILABLE_COLORS, getStageColorByHex } from '../../../utils/colors';\nimport { DRAG_DROP_TYPES } from '../constants';\nimport { useDragAndDrop } from '../hooks/useDragAndDrop';\n\nimport { AddStage } from './AddStage';\n\ninterface WorkflowStage extends Pick<IStage, 'id' | 'name' | 'permissions' | 'color'> {\n __temp_key__: string;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Stages\n * -----------------------------------------------------------------------------------------------*/\ninterface StagesProps {\n canDelete?: boolean;\n canUpdate?: boolean;\n isCreating?: boolean;\n}\n\nconst Stages = ({ canDelete = true, canUpdate = true, isCreating }: StagesProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const addFieldRow = useForm('Stages', (state) => state.addFieldRow);\n const { value: stages = [] } = useField<WorkflowStage[]>('stages');\n\n return (\n <Flex direction=\"column\" gap={6} width=\"100%\">\n <Box position=\"relative\" width=\"100%\">\n <Background\n background=\"neutral200\"\n height=\"100%\"\n left=\"50%\"\n position=\"absolute\"\n top=\"0\"\n width={2}\n />\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\" tag=\"ol\">\n {stages.map((stage, index) => {\n return (\n <Box key={stage.__temp_key__} tag=\"li\">\n <Stage\n index={index}\n canDelete={stages.length > 1 && canDelete}\n canReorder={stages.length > 1}\n canUpdate={canUpdate}\n stagesCount={stages.length}\n defaultOpen={!stage.id}\n {...stage}\n />\n </Box>\n );\n })}\n </Flex>\n </Box>\n\n {canUpdate && (\n <AddStage\n type=\"button\"\n onClick={() => {\n addFieldRow('stages', { name: '' });\n trackUsage('willCreateStage');\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.stage.add',\n defaultMessage: 'Add new stage',\n })}\n </AddStage>\n )}\n </Flex>\n );\n};\n\nconst Background = styled(Box)`\n transform: translateX(-50%);\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Stage\n * -----------------------------------------------------------------------------------------------*/\ninterface StageProps extends WorkflowStage {\n canDelete?: boolean;\n canReorder?: boolean;\n canUpdate?: boolean;\n index: number;\n stagesCount: number;\n defaultOpen?: boolean;\n}\n\nconst Stage = ({\n index,\n canDelete = false,\n canReorder = false,\n canUpdate = false,\n stagesCount,\n name,\n permissions,\n color,\n defaultOpen,\n}: StageProps) => {\n const [liveText, setLiveText] = React.useState<string>();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const stageErrors = useForm('Stages', (state) => state.errors.stages as object[]);\n const error = stageErrors?.[index];\n const addFieldRow = useForm('Stage', (state) => state.addFieldRow);\n const moveFieldRow = useForm('Stage', (state) => state.moveFieldRow);\n const removeFieldRow = useForm('Stage', (state) => state.removeFieldRow);\n\n const getItemPos = (index: number) => `${index + 1} of ${stagesCount}`;\n\n const handleGrabStage = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.grab-item',\n defaultMessage: `{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.`,\n },\n {\n item: name,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleDropStage = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.drop-item',\n defaultMessage: `{item}, dropped. Final position in list: {position}.`,\n },\n {\n item: name,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleCancelDragStage = () => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.cancel-item',\n defaultMessage: '{item}, dropped. Re-order cancelled.',\n },\n {\n item: name,\n }\n )\n );\n };\n\n const handleMoveStage = (newIndex: number, oldIndex: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.reorder',\n defaultMessage: '{item}, moved. New position in list: {position}.',\n },\n {\n item: name,\n position: getItemPos(newIndex),\n }\n )\n );\n\n moveFieldRow('stages', oldIndex, newIndex);\n };\n\n const [{ handlerId, isDragging, handleKeyDown }, stageRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(canReorder, {\n index,\n item: {\n index,\n name,\n },\n onGrabItem: handleGrabStage,\n onDropItem: handleDropStage,\n onMoveItem: handleMoveStage,\n onCancel: handleCancelDragStage,\n type: DRAG_DROP_TYPES.STAGE,\n });\n\n // @ts-expect-error – the stageRef is incorrectly typed.\n const composedRef = useComposedRefs<HTMLDivElement>(stageRef, dropRef);\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n const handleCloneClick = () => {\n addFieldRow('stages', { name, color, permissions });\n };\n\n const id = React.useId();\n\n return (\n <Box ref={composedRef} shadow=\"tableShadow\">\n {liveText && <VisuallyHidden aria-live=\"assertive\">{liveText}</VisuallyHidden>}\n\n {isDragging ? (\n <Box\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n display=\"block\"\n hasRadius\n padding={6}\n />\n ) : (\n <AccordionRoot\n onValueChange={(value) => {\n if (value) {\n trackUsage('willEditStage');\n }\n }}\n defaultValue={defaultOpen ? id : undefined}\n $error={Object.values(error ?? {}).length > 0}\n >\n <Accordion.Item value={id}>\n <Accordion.Header>\n <Accordion.Trigger>{name}</Accordion.Trigger>\n <Accordion.Actions>\n {canDelete || canUpdate ? (\n <>\n <Menu.Root>\n <ContextMenuTrigger size=\"S\" endIcon={null} paddingLeft={2} paddingRight={2}>\n <More aria-hidden focusable={false} />\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: '[tbdb].components.DynamicZone.more-actions',\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </ContextMenuTrigger>\n {/* z-index needs to be as big as the one defined for the wrapper in Stages, otherwise the menu\n * disappears behind the accordion\n */}\n <Menu.Content popoverPlacement=\"bottom-end\" zIndex={2}>\n <Menu.SubRoot>\n {canUpdate && (\n <Menu.Item onClick={handleCloneClick}>\n {formatMessage({\n id: 'Settings.review-workflows.stage.delete',\n defaultMessage: 'Duplicate stage',\n })}\n </Menu.Item>\n )}\n\n {canDelete && (\n <Menu.Item\n onClick={() => removeFieldRow('stages', index)}\n variant=\"danger\"\n >\n {formatMessage({\n id: 'Settings.review-workflows.stage.delete',\n defaultMessage: 'Delete',\n })}\n </Menu.Item>\n )}\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n\n {canUpdate && (\n <IconButton\n background=\"transparent\"\n hasRadius\n variant=\"ghost\"\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: 'Settings.review-workflows.stage.drag',\n defaultMessage: 'Drag',\n })}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n )}\n </>\n ) : null}\n </Accordion.Actions>\n </Accordion.Header>\n <Accordion.Content>\n <Grid.Root gap={4} padding={6}>\n {[\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.name.label',\n defaultMessage: 'Stage name',\n }),\n name: `stages.${index}.name`,\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'content-manager.reviewWorkflows.stage.color',\n defaultMessage: 'Color',\n }),\n name: `stages.${index}.color`,\n required: true,\n size: 6,\n type: 'color' as const,\n },\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n }),\n name: `stages.${index}.permissions`,\n placeholder: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.placeholder',\n defaultMessage: 'Select a role',\n }),\n required: true,\n size: 6,\n type: 'permissions' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Accordion.Content>\n </Accordion.Item>\n </AccordionRoot>\n )}\n </Box>\n );\n};\n\nconst AccordionRoot = styled(Accordion.Root)<{ $error?: boolean }>`\n border: 1px solid\n ${({ theme, $error }) => ($error ? theme.colors.danger600 : theme.colors.neutral200)};\n`;\n\n// Removing the font-size from the child-span aligns the\n// more icon vertically\nconst ContextMenuTrigger = styled(Menu.Trigger)`\n :hover,\n :focus {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n\n > span {\n font-size: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * InputRenderer\n * -----------------------------------------------------------------------------------------------*/\n\ntype InputRendererProps = InputProps | ColorSelectorProps | PermissionsFieldProps;\n\nconst InputRenderer = (props: InputRendererProps) => {\n switch (props.type) {\n case 'color':\n return <ColorSelector {...props} />;\n case 'permissions':\n return <PermissionsField {...props} />;\n default:\n return <AdminInputRenderer {...props} />;\n }\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ColorSelector\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ColorSelectorProps\n extends Omit<Extract<InputProps, { type: 'enumeration' }>, 'type' | 'options'> {\n type: 'color';\n}\n\nconst ColorSelector = ({ disabled, label, name, required }: ColorSelectorProps) => {\n const { formatMessage } = useIntl();\n const { value, error, onChange } = useField<string>(name);\n\n const colorOptions = AVAILABLE_COLORS.map(({ hex, name }) => ({\n value: hex,\n label: formatMessage(\n {\n id: 'Settings.review-workflows.stage.color.name',\n defaultMessage: '{name}',\n },\n { name }\n ),\n color: hex,\n }));\n\n const { themeColorName } = getStageColorByHex(value) ?? {};\n\n return (\n <Field.Root error={error} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n onChange={(v) => {\n onChange(name, v.toString());\n }}\n value={value?.toUpperCase()}\n startIcon={\n <Flex\n tag=\"span\"\n height={2}\n background={value}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n >\n {colorOptions.map(({ value, label, color }) => {\n const { themeColorName } = getStageColorByHex(color) || {};\n\n return (\n <SingleSelectOption\n value={value}\n key={value}\n startIcon={\n <Flex\n tag=\"span\"\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n >\n {label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PermissionsField\n * -----------------------------------------------------------------------------------------------*/\ninterface PermissionsFieldProps\n extends Omit<Extract<InputProps, { type: 'enumeration' }>, 'type' | 'options'> {\n type: 'permissions';\n}\n\nconst PermissionsField = ({ disabled, name, placeholder, required }: PermissionsFieldProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const [isApplyAllConfirmationOpen, setIsApplyAllConfirmationOpen] = React.useState(false);\n const { value = [], error, onChange } = useField<StagePermission[]>(name);\n const allStages = useForm<WorkflowStage[]>('PermissionsField', (state) => state.values.stages);\n const onFormValueChange = useForm('PermissionsField', (state) => state.onChange);\n const rolesErrorCount = React.useRef(0);\n\n const { data: roles = [], isLoading, error: getRolesError } = useGetAdminRolesQuery();\n\n // Super admins always have permissions to do everything and therefore\n // there is no point for this role to show up in the role combobox\n const filteredRoles = roles?.filter((role) => role.code !== 'strapi-super-admin') ?? [];\n\n React.useEffect(() => {\n if (\n !isLoading &&\n getRolesError &&\n 'status' in getRolesError &&\n getRolesError.status == 403 &&\n rolesErrorCount.current === 0\n ) {\n rolesErrorCount.current = 1;\n\n toggleNotification({\n blockTransition: true,\n type: 'danger',\n message: formatMessage({\n id: 'review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles. Contact your administrator.',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification, getRolesError]);\n\n if (!isLoading && filteredRoles.length === 0) {\n return (\n <Field.Root\n name={name}\n hint={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n })}\n required={required}\n >\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n })}\n </Field.Label>\n <TextInput\n disabled\n placeholder={formatMessage({\n id: 'components.NotAllowedInput.text',\n defaultMessage: 'No permissions to see this field',\n })}\n startAction={<EyeStriked fill=\"neutral600\" />}\n type=\"text\"\n value=\"\"\n />\n <Field.Hint />\n </Field.Root>\n );\n }\n\n return (\n <>\n <Flex alignItems=\"flex-end\" gap={3}>\n <PermissionWrapper grow={1}>\n <Field.Root error={error} name={name} required>\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(values) => {\n // Because the select components expects strings for values, but\n // the yup schema validates we are sending full permission objects to the API,\n // we must coerce the string value back to an object\n const permissions = values.map((value) => ({\n role: parseInt(value, 10),\n action: 'admin::review-workflows.stage.transition',\n }));\n\n onChange(name, permissions);\n }}\n placeholder={placeholder}\n // The Select component expects strings for values\n value={value.map((permission) => `${permission.role}`)}\n withTags\n >\n <MultiSelectGroup\n label={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.allRoles.label',\n defaultMessage: 'All roles',\n })}\n values={filteredRoles.map((r) => `${r.id}`)}\n >\n {filteredRoles.map((role) => {\n return (\n <NestedOption key={role.id} value={`${role.id}`}>\n {role.name}\n </NestedOption>\n );\n })}\n </MultiSelectGroup>\n </MultiSelect>\n <Field.Error />\n </Field.Root>\n </PermissionWrapper>\n <Dialog.Root open={isApplyAllConfirmationOpen} onOpenChange={setIsApplyAllConfirmationOpen}>\n <Dialog.Trigger>\n <IconButton\n disabled={disabled}\n label={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.apply.label',\n defaultMessage: 'Apply to all stages',\n })}\n size=\"L\"\n >\n <Duplicate />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog\n onConfirm={() => {\n onFormValueChange(\n 'stages',\n allStages.map((stage) => ({\n ...stage,\n permissions: value,\n }))\n );\n\n setIsApplyAllConfirmationOpen(false);\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success',\n defaultMessage: 'Applied roles to all other stages of the workflow',\n }),\n });\n }}\n variant=\"default\"\n >\n {formatMessage({\n id: 'Settings.review-workflows.page.edit.confirm.stages.permissions.copy',\n defaultMessage:\n 'Roles that can change that stage will be applied to all the other stages.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n </>\n );\n};\n\nconst NestedOption = styled(MultiSelectOption)`\n padding-left: ${({ theme }) => theme.spaces[7]};\n`;\n\n// Grow the size of the permission Select\nconst PermissionWrapper = styled(Flex)`\n > * {\n flex-grow: 1;\n }\n`;\n\nexport { Stages };\nexport type { StagesProps, WorkflowStage };\n"],"names":["Stages","canDelete","canUpdate","isCreating","formatMessage","useIntl","trackUsage","useTracking","addFieldRow","useForm","state","value","stages","useField","_jsxs","Flex","direction","gap","width","Box","position","_jsx","Background","background","height","left","top","alignItems","tag","map","stage","index","Stage","length","canReorder","stagesCount","defaultOpen","id","__temp_key__","AddStage","type","onClick","name","defaultMessage","styled","permissions","color","liveText","setLiveText","React","useState","stageErrors","errors","error","moveFieldRow","removeFieldRow","getItemPos","handleGrabStage","item","handleDropStage","handleCancelDragStage","handleMoveStage","newIndex","oldIndex","handlerId","isDragging","handleKeyDown","stageRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","onGrabItem","onDropItem","onMoveItem","onCancel","DRAG_DROP_TYPES","STAGE","composedRef","useComposedRefs","useEffect","getEmptyImage","captureDraggingState","handleCloneClick","useId","ref","shadow","VisuallyHidden","aria-live","borderStyle","borderColor","borderWidth","display","hasRadius","padding","AccordionRoot","onValueChange","defaultValue","undefined","$error","Object","values","Accordion","Item","Header","Trigger","Actions","_Fragment","Menu","Root","ContextMenuTrigger","size","endIcon","paddingLeft","paddingRight","More","aria-hidden","focusable","Content","popoverPlacement","zIndex","SubRoot","variant","IconButton","data-handler-id","label","e","stopPropagation","onKeyDown","Drag","Grid","disabled","required","placeholder","field","col","xs","InputRenderer","theme","colors","danger600","neutral200","neutral100","props","ColorSelector","PermissionsField","AdminInputRenderer","onChange","colorOptions","AVAILABLE_COLORS","hex","themeColorName","getStageColorByHex","Field","Label","SingleSelect","v","toString","toUpperCase","startIcon","shrink","SingleSelectOption","Error","toggleNotification","useNotification","isApplyAllConfirmationOpen","setIsApplyAllConfirmationOpen","allStages","onFormValueChange","rolesErrorCount","useRef","data","roles","isLoading","getRolesError","useGetAdminRolesQuery","filteredRoles","filter","role","code","status","current","blockTransition","message","hint","TextInput","startAction","EyeStriked","fill","Hint","PermissionWrapper","grow","MultiSelect","parseInt","action","permission","withTags","MultiSelectGroup","r","NestedOption","Dialog","open","onOpenChange","Duplicate","ConfirmDialog","onConfirm","MultiSelectOption","spaces"],"mappings":"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"}
|
|
@@ -296,6 +296,7 @@ const Stage = ({ index, canDelete = false, canReorder = false, canUpdate = false
|
|
|
296
296
|
}
|
|
297
297
|
].map(({ size, ...field })=>/*#__PURE__*/ jsx(Grid.Item, {
|
|
298
298
|
col: size,
|
|
299
|
+
xs: 12,
|
|
299
300
|
direction: "column",
|
|
300
301
|
alignItems: "stretch",
|
|
301
302
|
children: /*#__PURE__*/ jsx(InputRenderer, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stages.mjs","sources":["../../../../../admin/src/routes/settings/components/Stages.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useField,\n useForm,\n useTracking,\n ConfirmDialog,\n useNotification,\n InputRenderer as AdminInputRenderer,\n InputProps,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n MultiSelectOption,\n Accordion,\n Grid,\n IconButton,\n MultiSelect,\n MultiSelectGroup,\n SingleSelect,\n SingleSelectOption,\n TextInput,\n VisuallyHidden,\n useComposedRefs,\n Menu,\n Field,\n Dialog,\n} from '@strapi/design-system';\nimport { Duplicate, Drag, More, EyeStriked } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { Stage as IStage, StagePermission } from '../../../../../shared/contracts/review-workflows';\nimport { useGetAdminRolesQuery } from '../../../services/admin';\nimport { AVAILABLE_COLORS, getStageColorByHex } from '../../../utils/colors';\nimport { DRAG_DROP_TYPES } from '../constants';\nimport { useDragAndDrop } from '../hooks/useDragAndDrop';\n\nimport { AddStage } from './AddStage';\n\ninterface WorkflowStage extends Pick<IStage, 'id' | 'name' | 'permissions' | 'color'> {\n __temp_key__: string;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Stages\n * -----------------------------------------------------------------------------------------------*/\ninterface StagesProps {\n canDelete?: boolean;\n canUpdate?: boolean;\n isCreating?: boolean;\n}\n\nconst Stages = ({ canDelete = true, canUpdate = true, isCreating }: StagesProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const addFieldRow = useForm('Stages', (state) => state.addFieldRow);\n const { value: stages = [] } = useField<WorkflowStage[]>('stages');\n\n return (\n <Flex direction=\"column\" gap={6} width=\"100%\">\n <Box position=\"relative\" width=\"100%\">\n <Background\n background=\"neutral200\"\n height=\"100%\"\n left=\"50%\"\n position=\"absolute\"\n top=\"0\"\n width={2}\n />\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\" tag=\"ol\">\n {stages.map((stage, index) => {\n return (\n <Box key={stage.__temp_key__} tag=\"li\">\n <Stage\n index={index}\n canDelete={stages.length > 1 && canDelete}\n canReorder={stages.length > 1}\n canUpdate={canUpdate}\n stagesCount={stages.length}\n defaultOpen={!stage.id}\n {...stage}\n />\n </Box>\n );\n })}\n </Flex>\n </Box>\n\n {canUpdate && (\n <AddStage\n type=\"button\"\n onClick={() => {\n addFieldRow('stages', { name: '' });\n trackUsage('willCreateStage');\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.stage.add',\n defaultMessage: 'Add new stage',\n })}\n </AddStage>\n )}\n </Flex>\n );\n};\n\nconst Background = styled(Box)`\n transform: translateX(-50%);\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Stage\n * -----------------------------------------------------------------------------------------------*/\ninterface StageProps extends WorkflowStage {\n canDelete?: boolean;\n canReorder?: boolean;\n canUpdate?: boolean;\n index: number;\n stagesCount: number;\n defaultOpen?: boolean;\n}\n\nconst Stage = ({\n index,\n canDelete = false,\n canReorder = false,\n canUpdate = false,\n stagesCount,\n name,\n permissions,\n color,\n defaultOpen,\n}: StageProps) => {\n const [liveText, setLiveText] = React.useState<string>();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const stageErrors = useForm('Stages', (state) => state.errors.stages as object[]);\n const error = stageErrors?.[index];\n const addFieldRow = useForm('Stage', (state) => state.addFieldRow);\n const moveFieldRow = useForm('Stage', (state) => state.moveFieldRow);\n const removeFieldRow = useForm('Stage', (state) => state.removeFieldRow);\n\n const getItemPos = (index: number) => `${index + 1} of ${stagesCount}`;\n\n const handleGrabStage = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.grab-item',\n defaultMessage: `{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.`,\n },\n {\n item: name,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleDropStage = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.drop-item',\n defaultMessage: `{item}, dropped. Final position in list: {position}.`,\n },\n {\n item: name,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleCancelDragStage = () => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.cancel-item',\n defaultMessage: '{item}, dropped. Re-order cancelled.',\n },\n {\n item: name,\n }\n )\n );\n };\n\n const handleMoveStage = (newIndex: number, oldIndex: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.reorder',\n defaultMessage: '{item}, moved. New position in list: {position}.',\n },\n {\n item: name,\n position: getItemPos(newIndex),\n }\n )\n );\n\n moveFieldRow('stages', oldIndex, newIndex);\n };\n\n const [{ handlerId, isDragging, handleKeyDown }, stageRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(canReorder, {\n index,\n item: {\n index,\n name,\n },\n onGrabItem: handleGrabStage,\n onDropItem: handleDropStage,\n onMoveItem: handleMoveStage,\n onCancel: handleCancelDragStage,\n type: DRAG_DROP_TYPES.STAGE,\n });\n\n // @ts-expect-error – the stageRef is incorrectly typed.\n const composedRef = useComposedRefs<HTMLDivElement>(stageRef, dropRef);\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n const handleCloneClick = () => {\n addFieldRow('stages', { name, color, permissions });\n };\n\n const id = React.useId();\n\n return (\n <Box ref={composedRef} shadow=\"tableShadow\">\n {liveText && <VisuallyHidden aria-live=\"assertive\">{liveText}</VisuallyHidden>}\n\n {isDragging ? (\n <Box\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n display=\"block\"\n hasRadius\n padding={6}\n />\n ) : (\n <AccordionRoot\n onValueChange={(value) => {\n if (value) {\n trackUsage('willEditStage');\n }\n }}\n defaultValue={defaultOpen ? id : undefined}\n $error={Object.values(error ?? {}).length > 0}\n >\n <Accordion.Item value={id}>\n <Accordion.Header>\n <Accordion.Trigger>{name}</Accordion.Trigger>\n <Accordion.Actions>\n {canDelete || canUpdate ? (\n <>\n <Menu.Root>\n <ContextMenuTrigger size=\"S\" endIcon={null} paddingLeft={2} paddingRight={2}>\n <More aria-hidden focusable={false} />\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: '[tbdb].components.DynamicZone.more-actions',\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </ContextMenuTrigger>\n {/* z-index needs to be as big as the one defined for the wrapper in Stages, otherwise the menu\n * disappears behind the accordion\n */}\n <Menu.Content popoverPlacement=\"bottom-end\" zIndex={2}>\n <Menu.SubRoot>\n {canUpdate && (\n <Menu.Item onClick={handleCloneClick}>\n {formatMessage({\n id: 'Settings.review-workflows.stage.delete',\n defaultMessage: 'Duplicate stage',\n })}\n </Menu.Item>\n )}\n\n {canDelete && (\n <Menu.Item\n onClick={() => removeFieldRow('stages', index)}\n variant=\"danger\"\n >\n {formatMessage({\n id: 'Settings.review-workflows.stage.delete',\n defaultMessage: 'Delete',\n })}\n </Menu.Item>\n )}\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n\n {canUpdate && (\n <IconButton\n background=\"transparent\"\n hasRadius\n variant=\"ghost\"\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: 'Settings.review-workflows.stage.drag',\n defaultMessage: 'Drag',\n })}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n )}\n </>\n ) : null}\n </Accordion.Actions>\n </Accordion.Header>\n <Accordion.Content>\n <Grid.Root gap={4} padding={6}>\n {[\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.name.label',\n defaultMessage: 'Stage name',\n }),\n name: `stages.${index}.name`,\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'content-manager.reviewWorkflows.stage.color',\n defaultMessage: 'Color',\n }),\n name: `stages.${index}.color`,\n required: true,\n size: 6,\n type: 'color' as const,\n },\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n }),\n name: `stages.${index}.permissions`,\n placeholder: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.placeholder',\n defaultMessage: 'Select a role',\n }),\n required: true,\n size: 6,\n type: 'permissions' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Accordion.Content>\n </Accordion.Item>\n </AccordionRoot>\n )}\n </Box>\n );\n};\n\nconst AccordionRoot = styled(Accordion.Root)<{ $error?: boolean }>`\n border: 1px solid\n ${({ theme, $error }) => ($error ? theme.colors.danger600 : theme.colors.neutral200)};\n`;\n\n// Removing the font-size from the child-span aligns the\n// more icon vertically\nconst ContextMenuTrigger = styled(Menu.Trigger)`\n :hover,\n :focus {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n\n > span {\n font-size: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * InputRenderer\n * -----------------------------------------------------------------------------------------------*/\n\ntype InputRendererProps = InputProps | ColorSelectorProps | PermissionsFieldProps;\n\nconst InputRenderer = (props: InputRendererProps) => {\n switch (props.type) {\n case 'color':\n return <ColorSelector {...props} />;\n case 'permissions':\n return <PermissionsField {...props} />;\n default:\n return <AdminInputRenderer {...props} />;\n }\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ColorSelector\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ColorSelectorProps\n extends Omit<Extract<InputProps, { type: 'enumeration' }>, 'type' | 'options'> {\n type: 'color';\n}\n\nconst ColorSelector = ({ disabled, label, name, required }: ColorSelectorProps) => {\n const { formatMessage } = useIntl();\n const { value, error, onChange } = useField<string>(name);\n\n const colorOptions = AVAILABLE_COLORS.map(({ hex, name }) => ({\n value: hex,\n label: formatMessage(\n {\n id: 'Settings.review-workflows.stage.color.name',\n defaultMessage: '{name}',\n },\n { name }\n ),\n color: hex,\n }));\n\n const { themeColorName } = getStageColorByHex(value) ?? {};\n\n return (\n <Field.Root error={error} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n onChange={(v) => {\n onChange(name, v.toString());\n }}\n value={value?.toUpperCase()}\n startIcon={\n <Flex\n tag=\"span\"\n height={2}\n background={value}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n >\n {colorOptions.map(({ value, label, color }) => {\n const { themeColorName } = getStageColorByHex(color) || {};\n\n return (\n <SingleSelectOption\n value={value}\n key={value}\n startIcon={\n <Flex\n tag=\"span\"\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n >\n {label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PermissionsField\n * -----------------------------------------------------------------------------------------------*/\ninterface PermissionsFieldProps\n extends Omit<Extract<InputProps, { type: 'enumeration' }>, 'type' | 'options'> {\n type: 'permissions';\n}\n\nconst PermissionsField = ({ disabled, name, placeholder, required }: PermissionsFieldProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const [isApplyAllConfirmationOpen, setIsApplyAllConfirmationOpen] = React.useState(false);\n const { value = [], error, onChange } = useField<StagePermission[]>(name);\n const allStages = useForm<WorkflowStage[]>('PermissionsField', (state) => state.values.stages);\n const onFormValueChange = useForm('PermissionsField', (state) => state.onChange);\n const rolesErrorCount = React.useRef(0);\n\n const { data: roles = [], isLoading, error: getRolesError } = useGetAdminRolesQuery();\n\n // Super admins always have permissions to do everything and therefore\n // there is no point for this role to show up in the role combobox\n const filteredRoles = roles?.filter((role) => role.code !== 'strapi-super-admin') ?? [];\n\n React.useEffect(() => {\n if (\n !isLoading &&\n getRolesError &&\n 'status' in getRolesError &&\n getRolesError.status == 403 &&\n rolesErrorCount.current === 0\n ) {\n rolesErrorCount.current = 1;\n\n toggleNotification({\n blockTransition: true,\n type: 'danger',\n message: formatMessage({\n id: 'review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles. Contact your administrator.',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification, getRolesError]);\n\n if (!isLoading && filteredRoles.length === 0) {\n return (\n <Field.Root\n name={name}\n hint={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n })}\n required={required}\n >\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n })}\n </Field.Label>\n <TextInput\n disabled\n placeholder={formatMessage({\n id: 'components.NotAllowedInput.text',\n defaultMessage: 'No permissions to see this field',\n })}\n startAction={<EyeStriked fill=\"neutral600\" />}\n type=\"text\"\n value=\"\"\n />\n <Field.Hint />\n </Field.Root>\n );\n }\n\n return (\n <>\n <Flex alignItems=\"flex-end\" gap={3}>\n <PermissionWrapper grow={1}>\n <Field.Root error={error} name={name} required>\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(values) => {\n // Because the select components expects strings for values, but\n // the yup schema validates we are sending full permission objects to the API,\n // we must coerce the string value back to an object\n const permissions = values.map((value) => ({\n role: parseInt(value, 10),\n action: 'admin::review-workflows.stage.transition',\n }));\n\n onChange(name, permissions);\n }}\n placeholder={placeholder}\n // The Select component expects strings for values\n value={value.map((permission) => `${permission.role}`)}\n withTags\n >\n <MultiSelectGroup\n label={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.allRoles.label',\n defaultMessage: 'All roles',\n })}\n values={filteredRoles.map((r) => `${r.id}`)}\n >\n {filteredRoles.map((role) => {\n return (\n <NestedOption key={role.id} value={`${role.id}`}>\n {role.name}\n </NestedOption>\n );\n })}\n </MultiSelectGroup>\n </MultiSelect>\n <Field.Error />\n </Field.Root>\n </PermissionWrapper>\n <Dialog.Root open={isApplyAllConfirmationOpen} onOpenChange={setIsApplyAllConfirmationOpen}>\n <Dialog.Trigger>\n <IconButton\n disabled={disabled}\n label={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.apply.label',\n defaultMessage: 'Apply to all stages',\n })}\n size=\"L\"\n >\n <Duplicate />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog\n onConfirm={() => {\n onFormValueChange(\n 'stages',\n allStages.map((stage) => ({\n ...stage,\n permissions: value,\n }))\n );\n\n setIsApplyAllConfirmationOpen(false);\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success',\n defaultMessage: 'Applied roles to all other stages of the workflow',\n }),\n });\n }}\n variant=\"default\"\n >\n {formatMessage({\n id: 'Settings.review-workflows.page.edit.confirm.stages.permissions.copy',\n defaultMessage:\n 'Roles that can change that stage will be applied to all the other stages.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n </>\n );\n};\n\nconst NestedOption = styled(MultiSelectOption)`\n padding-left: ${({ theme }) => theme.spaces[7]};\n`;\n\n// Grow the size of the permission Select\nconst PermissionWrapper = styled(Flex)`\n > * {\n flex-grow: 1;\n }\n`;\n\nexport { Stages };\nexport type { StagesProps, WorkflowStage };\n"],"names":["Stages","canDelete","canUpdate","isCreating","formatMessage","useIntl","trackUsage","useTracking","addFieldRow","useForm","state","value","stages","useField","_jsxs","Flex","direction","gap","width","Box","position","_jsx","Background","background","height","left","top","alignItems","tag","map","stage","index","Stage","length","canReorder","stagesCount","defaultOpen","id","__temp_key__","AddStage","type","onClick","name","defaultMessage","styled","permissions","color","liveText","setLiveText","React","useState","stageErrors","errors","error","moveFieldRow","removeFieldRow","getItemPos","handleGrabStage","item","handleDropStage","handleCancelDragStage","handleMoveStage","newIndex","oldIndex","handlerId","isDragging","handleKeyDown","stageRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","onGrabItem","onDropItem","onMoveItem","onCancel","DRAG_DROP_TYPES","STAGE","composedRef","useComposedRefs","useEffect","getEmptyImage","captureDraggingState","handleCloneClick","useId","ref","shadow","VisuallyHidden","aria-live","borderStyle","borderColor","borderWidth","display","hasRadius","padding","AccordionRoot","onValueChange","defaultValue","undefined","$error","Object","values","Accordion","Item","Header","Trigger","Actions","_Fragment","Menu","Root","ContextMenuTrigger","size","endIcon","paddingLeft","paddingRight","More","aria-hidden","focusable","Content","popoverPlacement","zIndex","SubRoot","variant","IconButton","data-handler-id","label","e","stopPropagation","onKeyDown","Drag","Grid","disabled","required","placeholder","field","col","InputRenderer","theme","colors","danger600","neutral200","neutral100","props","ColorSelector","PermissionsField","AdminInputRenderer","onChange","colorOptions","AVAILABLE_COLORS","hex","themeColorName","getStageColorByHex","Field","Label","SingleSelect","v","toString","toUpperCase","startIcon","shrink","SingleSelectOption","Error","toggleNotification","useNotification","isApplyAllConfirmationOpen","setIsApplyAllConfirmationOpen","allStages","onFormValueChange","rolesErrorCount","useRef","data","roles","isLoading","getRolesError","useGetAdminRolesQuery","filteredRoles","filter","role","code","status","current","blockTransition","message","hint","TextInput","startAction","EyeStriked","fill","Hint","PermissionWrapper","grow","MultiSelect","parseInt","action","permission","withTags","MultiSelectGroup","r","NestedOption","Dialog","open","onOpenChange","Duplicate","ConfirmDialog","onConfirm","MultiSelectOption","spaces"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Stages.mjs","sources":["../../../../../admin/src/routes/settings/components/Stages.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useField,\n useForm,\n useTracking,\n ConfirmDialog,\n useNotification,\n InputRenderer as AdminInputRenderer,\n InputProps,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n MultiSelectOption,\n Accordion,\n Grid,\n IconButton,\n MultiSelect,\n MultiSelectGroup,\n SingleSelect,\n SingleSelectOption,\n TextInput,\n VisuallyHidden,\n useComposedRefs,\n Menu,\n Field,\n Dialog,\n} from '@strapi/design-system';\nimport { Duplicate, Drag, More, EyeStriked } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { Stage as IStage, StagePermission } from '../../../../../shared/contracts/review-workflows';\nimport { useGetAdminRolesQuery } from '../../../services/admin';\nimport { AVAILABLE_COLORS, getStageColorByHex } from '../../../utils/colors';\nimport { DRAG_DROP_TYPES } from '../constants';\nimport { useDragAndDrop } from '../hooks/useDragAndDrop';\n\nimport { AddStage } from './AddStage';\n\ninterface WorkflowStage extends Pick<IStage, 'id' | 'name' | 'permissions' | 'color'> {\n __temp_key__: string;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Stages\n * -----------------------------------------------------------------------------------------------*/\ninterface StagesProps {\n canDelete?: boolean;\n canUpdate?: boolean;\n isCreating?: boolean;\n}\n\nconst Stages = ({ canDelete = true, canUpdate = true, isCreating }: StagesProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const addFieldRow = useForm('Stages', (state) => state.addFieldRow);\n const { value: stages = [] } = useField<WorkflowStage[]>('stages');\n\n return (\n <Flex direction=\"column\" gap={6} width=\"100%\">\n <Box position=\"relative\" width=\"100%\">\n <Background\n background=\"neutral200\"\n height=\"100%\"\n left=\"50%\"\n position=\"absolute\"\n top=\"0\"\n width={2}\n />\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} position=\"relative\" tag=\"ol\">\n {stages.map((stage, index) => {\n return (\n <Box key={stage.__temp_key__} tag=\"li\">\n <Stage\n index={index}\n canDelete={stages.length > 1 && canDelete}\n canReorder={stages.length > 1}\n canUpdate={canUpdate}\n stagesCount={stages.length}\n defaultOpen={!stage.id}\n {...stage}\n />\n </Box>\n );\n })}\n </Flex>\n </Box>\n\n {canUpdate && (\n <AddStage\n type=\"button\"\n onClick={() => {\n addFieldRow('stages', { name: '' });\n trackUsage('willCreateStage');\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.stage.add',\n defaultMessage: 'Add new stage',\n })}\n </AddStage>\n )}\n </Flex>\n );\n};\n\nconst Background = styled(Box)`\n transform: translateX(-50%);\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Stage\n * -----------------------------------------------------------------------------------------------*/\ninterface StageProps extends WorkflowStage {\n canDelete?: boolean;\n canReorder?: boolean;\n canUpdate?: boolean;\n index: number;\n stagesCount: number;\n defaultOpen?: boolean;\n}\n\nconst Stage = ({\n index,\n canDelete = false,\n canReorder = false,\n canUpdate = false,\n stagesCount,\n name,\n permissions,\n color,\n defaultOpen,\n}: StageProps) => {\n const [liveText, setLiveText] = React.useState<string>();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const stageErrors = useForm('Stages', (state) => state.errors.stages as object[]);\n const error = stageErrors?.[index];\n const addFieldRow = useForm('Stage', (state) => state.addFieldRow);\n const moveFieldRow = useForm('Stage', (state) => state.moveFieldRow);\n const removeFieldRow = useForm('Stage', (state) => state.removeFieldRow);\n\n const getItemPos = (index: number) => `${index + 1} of ${stagesCount}`;\n\n const handleGrabStage = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.grab-item',\n defaultMessage: `{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.`,\n },\n {\n item: name,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleDropStage = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.drop-item',\n defaultMessage: `{item}, dropped. Final position in list: {position}.`,\n },\n {\n item: name,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleCancelDragStage = () => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.cancel-item',\n defaultMessage: '{item}, dropped. Re-order cancelled.',\n },\n {\n item: name,\n }\n )\n );\n };\n\n const handleMoveStage = (newIndex: number, oldIndex: number) => {\n setLiveText(\n formatMessage(\n {\n id: 'dnd.reorder',\n defaultMessage: '{item}, moved. New position in list: {position}.',\n },\n {\n item: name,\n position: getItemPos(newIndex),\n }\n )\n );\n\n moveFieldRow('stages', oldIndex, newIndex);\n };\n\n const [{ handlerId, isDragging, handleKeyDown }, stageRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(canReorder, {\n index,\n item: {\n index,\n name,\n },\n onGrabItem: handleGrabStage,\n onDropItem: handleDropStage,\n onMoveItem: handleMoveStage,\n onCancel: handleCancelDragStage,\n type: DRAG_DROP_TYPES.STAGE,\n });\n\n // @ts-expect-error – the stageRef is incorrectly typed.\n const composedRef = useComposedRefs<HTMLDivElement>(stageRef, dropRef);\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n const handleCloneClick = () => {\n addFieldRow('stages', { name, color, permissions });\n };\n\n const id = React.useId();\n\n return (\n <Box ref={composedRef} shadow=\"tableShadow\">\n {liveText && <VisuallyHidden aria-live=\"assertive\">{liveText}</VisuallyHidden>}\n\n {isDragging ? (\n <Box\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n display=\"block\"\n hasRadius\n padding={6}\n />\n ) : (\n <AccordionRoot\n onValueChange={(value) => {\n if (value) {\n trackUsage('willEditStage');\n }\n }}\n defaultValue={defaultOpen ? id : undefined}\n $error={Object.values(error ?? {}).length > 0}\n >\n <Accordion.Item value={id}>\n <Accordion.Header>\n <Accordion.Trigger>{name}</Accordion.Trigger>\n <Accordion.Actions>\n {canDelete || canUpdate ? (\n <>\n <Menu.Root>\n <ContextMenuTrigger size=\"S\" endIcon={null} paddingLeft={2} paddingRight={2}>\n <More aria-hidden focusable={false} />\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: '[tbdb].components.DynamicZone.more-actions',\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </ContextMenuTrigger>\n {/* z-index needs to be as big as the one defined for the wrapper in Stages, otherwise the menu\n * disappears behind the accordion\n */}\n <Menu.Content popoverPlacement=\"bottom-end\" zIndex={2}>\n <Menu.SubRoot>\n {canUpdate && (\n <Menu.Item onClick={handleCloneClick}>\n {formatMessage({\n id: 'Settings.review-workflows.stage.delete',\n defaultMessage: 'Duplicate stage',\n })}\n </Menu.Item>\n )}\n\n {canDelete && (\n <Menu.Item\n onClick={() => removeFieldRow('stages', index)}\n variant=\"danger\"\n >\n {formatMessage({\n id: 'Settings.review-workflows.stage.delete',\n defaultMessage: 'Delete',\n })}\n </Menu.Item>\n )}\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n\n {canUpdate && (\n <IconButton\n background=\"transparent\"\n hasRadius\n variant=\"ghost\"\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: 'Settings.review-workflows.stage.drag',\n defaultMessage: 'Drag',\n })}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n )}\n </>\n ) : null}\n </Accordion.Actions>\n </Accordion.Header>\n <Accordion.Content>\n <Grid.Root gap={4} padding={6}>\n {[\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.name.label',\n defaultMessage: 'Stage name',\n }),\n name: `stages.${index}.name`,\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'content-manager.reviewWorkflows.stage.color',\n defaultMessage: 'Color',\n }),\n name: `stages.${index}.color`,\n required: true,\n size: 6,\n type: 'color' as const,\n },\n {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n }),\n name: `stages.${index}.permissions`,\n placeholder: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.placeholder',\n defaultMessage: 'Select a role',\n }),\n required: true,\n size: 6,\n type: 'permissions' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Accordion.Content>\n </Accordion.Item>\n </AccordionRoot>\n )}\n </Box>\n );\n};\n\nconst AccordionRoot = styled(Accordion.Root)<{ $error?: boolean }>`\n border: 1px solid\n ${({ theme, $error }) => ($error ? theme.colors.danger600 : theme.colors.neutral200)};\n`;\n\n// Removing the font-size from the child-span aligns the\n// more icon vertically\nconst ContextMenuTrigger = styled(Menu.Trigger)`\n :hover,\n :focus {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n\n > span {\n font-size: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * InputRenderer\n * -----------------------------------------------------------------------------------------------*/\n\ntype InputRendererProps = InputProps | ColorSelectorProps | PermissionsFieldProps;\n\nconst InputRenderer = (props: InputRendererProps) => {\n switch (props.type) {\n case 'color':\n return <ColorSelector {...props} />;\n case 'permissions':\n return <PermissionsField {...props} />;\n default:\n return <AdminInputRenderer {...props} />;\n }\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ColorSelector\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ColorSelectorProps\n extends Omit<Extract<InputProps, { type: 'enumeration' }>, 'type' | 'options'> {\n type: 'color';\n}\n\nconst ColorSelector = ({ disabled, label, name, required }: ColorSelectorProps) => {\n const { formatMessage } = useIntl();\n const { value, error, onChange } = useField<string>(name);\n\n const colorOptions = AVAILABLE_COLORS.map(({ hex, name }) => ({\n value: hex,\n label: formatMessage(\n {\n id: 'Settings.review-workflows.stage.color.name',\n defaultMessage: '{name}',\n },\n { name }\n ),\n color: hex,\n }));\n\n const { themeColorName } = getStageColorByHex(value) ?? {};\n\n return (\n <Field.Root error={error} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n onChange={(v) => {\n onChange(name, v.toString());\n }}\n value={value?.toUpperCase()}\n startIcon={\n <Flex\n tag=\"span\"\n height={2}\n background={value}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n >\n {colorOptions.map(({ value, label, color }) => {\n const { themeColorName } = getStageColorByHex(color) || {};\n\n return (\n <SingleSelectOption\n value={value}\n key={value}\n startIcon={\n <Flex\n tag=\"span\"\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n >\n {label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PermissionsField\n * -----------------------------------------------------------------------------------------------*/\ninterface PermissionsFieldProps\n extends Omit<Extract<InputProps, { type: 'enumeration' }>, 'type' | 'options'> {\n type: 'permissions';\n}\n\nconst PermissionsField = ({ disabled, name, placeholder, required }: PermissionsFieldProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const [isApplyAllConfirmationOpen, setIsApplyAllConfirmationOpen] = React.useState(false);\n const { value = [], error, onChange } = useField<StagePermission[]>(name);\n const allStages = useForm<WorkflowStage[]>('PermissionsField', (state) => state.values.stages);\n const onFormValueChange = useForm('PermissionsField', (state) => state.onChange);\n const rolesErrorCount = React.useRef(0);\n\n const { data: roles = [], isLoading, error: getRolesError } = useGetAdminRolesQuery();\n\n // Super admins always have permissions to do everything and therefore\n // there is no point for this role to show up in the role combobox\n const filteredRoles = roles?.filter((role) => role.code !== 'strapi-super-admin') ?? [];\n\n React.useEffect(() => {\n if (\n !isLoading &&\n getRolesError &&\n 'status' in getRolesError &&\n getRolesError.status == 403 &&\n rolesErrorCount.current === 0\n ) {\n rolesErrorCount.current = 1;\n\n toggleNotification({\n blockTransition: true,\n type: 'danger',\n message: formatMessage({\n id: 'review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles. Contact your administrator.',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification, getRolesError]);\n\n if (!isLoading && filteredRoles.length === 0) {\n return (\n <Field.Root\n name={name}\n hint={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n })}\n required={required}\n >\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n })}\n </Field.Label>\n <TextInput\n disabled\n placeholder={formatMessage({\n id: 'components.NotAllowedInput.text',\n defaultMessage: 'No permissions to see this field',\n })}\n startAction={<EyeStriked fill=\"neutral600\" />}\n type=\"text\"\n value=\"\"\n />\n <Field.Hint />\n </Field.Root>\n );\n }\n\n return (\n <>\n <Flex alignItems=\"flex-end\" gap={3}>\n <PermissionWrapper grow={1}>\n <Field.Root error={error} name={name} required>\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.stage.permissions.label',\n defaultMessage: 'Roles that can change this stage',\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(values) => {\n // Because the select components expects strings for values, but\n // the yup schema validates we are sending full permission objects to the API,\n // we must coerce the string value back to an object\n const permissions = values.map((value) => ({\n role: parseInt(value, 10),\n action: 'admin::review-workflows.stage.transition',\n }));\n\n onChange(name, permissions);\n }}\n placeholder={placeholder}\n // The Select component expects strings for values\n value={value.map((permission) => `${permission.role}`)}\n withTags\n >\n <MultiSelectGroup\n label={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.allRoles.label',\n defaultMessage: 'All roles',\n })}\n values={filteredRoles.map((r) => `${r.id}`)}\n >\n {filteredRoles.map((role) => {\n return (\n <NestedOption key={role.id} value={`${role.id}`}>\n {role.name}\n </NestedOption>\n );\n })}\n </MultiSelectGroup>\n </MultiSelect>\n <Field.Error />\n </Field.Root>\n </PermissionWrapper>\n <Dialog.Root open={isApplyAllConfirmationOpen} onOpenChange={setIsApplyAllConfirmationOpen}>\n <Dialog.Trigger>\n <IconButton\n disabled={disabled}\n label={formatMessage({\n id: 'Settings.review-workflows.stage.permissions.apply.label',\n defaultMessage: 'Apply to all stages',\n })}\n size=\"L\"\n >\n <Duplicate />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog\n onConfirm={() => {\n onFormValueChange(\n 'stages',\n allStages.map((stage) => ({\n ...stage,\n permissions: value,\n }))\n );\n\n setIsApplyAllConfirmationOpen(false);\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success',\n defaultMessage: 'Applied roles to all other stages of the workflow',\n }),\n });\n }}\n variant=\"default\"\n >\n {formatMessage({\n id: 'Settings.review-workflows.page.edit.confirm.stages.permissions.copy',\n defaultMessage:\n 'Roles that can change that stage will be applied to all the other stages.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n </>\n );\n};\n\nconst NestedOption = styled(MultiSelectOption)`\n padding-left: ${({ theme }) => theme.spaces[7]};\n`;\n\n// Grow the size of the permission Select\nconst PermissionWrapper = styled(Flex)`\n > * {\n flex-grow: 1;\n }\n`;\n\nexport { Stages };\nexport type { StagesProps, WorkflowStage };\n"],"names":["Stages","canDelete","canUpdate","isCreating","formatMessage","useIntl","trackUsage","useTracking","addFieldRow","useForm","state","value","stages","useField","_jsxs","Flex","direction","gap","width","Box","position","_jsx","Background","background","height","left","top","alignItems","tag","map","stage","index","Stage","length","canReorder","stagesCount","defaultOpen","id","__temp_key__","AddStage","type","onClick","name","defaultMessage","styled","permissions","color","liveText","setLiveText","React","useState","stageErrors","errors","error","moveFieldRow","removeFieldRow","getItemPos","handleGrabStage","item","handleDropStage","handleCancelDragStage","handleMoveStage","newIndex","oldIndex","handlerId","isDragging","handleKeyDown","stageRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","onGrabItem","onDropItem","onMoveItem","onCancel","DRAG_DROP_TYPES","STAGE","composedRef","useComposedRefs","useEffect","getEmptyImage","captureDraggingState","handleCloneClick","useId","ref","shadow","VisuallyHidden","aria-live","borderStyle","borderColor","borderWidth","display","hasRadius","padding","AccordionRoot","onValueChange","defaultValue","undefined","$error","Object","values","Accordion","Item","Header","Trigger","Actions","_Fragment","Menu","Root","ContextMenuTrigger","size","endIcon","paddingLeft","paddingRight","More","aria-hidden","focusable","Content","popoverPlacement","zIndex","SubRoot","variant","IconButton","data-handler-id","label","e","stopPropagation","onKeyDown","Drag","Grid","disabled","required","placeholder","field","col","xs","InputRenderer","theme","colors","danger600","neutral200","neutral100","props","ColorSelector","PermissionsField","AdminInputRenderer","onChange","colorOptions","AVAILABLE_COLORS","hex","themeColorName","getStageColorByHex","Field","Label","SingleSelect","v","toString","toUpperCase","startIcon","shrink","SingleSelectOption","Error","toggleNotification","useNotification","isApplyAllConfirmationOpen","setIsApplyAllConfirmationOpen","allStages","onFormValueChange","rolesErrorCount","useRef","data","roles","isLoading","getRolesError","useGetAdminRolesQuery","filteredRoles","filter","role","code","status","current","blockTransition","message","hint","TextInput","startAction","EyeStriked","fill","Hint","PermissionWrapper","grow","MultiSelect","parseInt","action","permission","withTags","MultiSelectGroup","r","NestedOption","Dialog","open","onOpenChange","Duplicate","ConfirmDialog","onConfirm","MultiSelectOption","spaces"],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ const WorkflowAttributes = ({ canUpdate = true })=>{
|
|
|
19
19
|
children: [
|
|
20
20
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
21
21
|
col: 6,
|
|
22
|
+
xs: 12,
|
|
22
23
|
direction: "column",
|
|
23
24
|
alignItems: "stretch",
|
|
24
25
|
children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.InputRenderer, {
|
|
@@ -34,6 +35,7 @@ const WorkflowAttributes = ({ canUpdate = true })=>{
|
|
|
34
35
|
}),
|
|
35
36
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
36
37
|
col: 6,
|
|
38
|
+
xs: 12,
|
|
37
39
|
direction: "column",
|
|
38
40
|
alignItems: "stretch",
|
|
39
41
|
children: /*#__PURE__*/ jsxRuntime.jsx(ContentTypesSelector, {
|
|
@@ -42,6 +44,7 @@ const WorkflowAttributes = ({ canUpdate = true })=>{
|
|
|
42
44
|
}),
|
|
43
45
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
44
46
|
col: 6,
|
|
47
|
+
xs: 12,
|
|
45
48
|
direction: "column",
|
|
46
49
|
alignItems: "stretch",
|
|
47
50
|
children: /*#__PURE__*/ jsxRuntime.jsx(StageSelector, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowAttributes.js","sources":["../../../../../admin/src/routes/settings/components/WorkflowAttributes.tsx"],"sourcesContent":["import { InputRenderer, useField, useForm } from '@strapi/admin/strapi-admin';\nimport {\n Field,\n Grid,\n MultiSelect,\n MultiSelectGroup,\n MultiSelectOption,\n Typography,\n useCollator,\n SingleSelect,\n SingleSelectOption,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetContentTypesQuery } from '../../../services/content-manager';\nimport { useReviewWorkflows } from '../hooks/useReviewWorkflows';\n\nimport type { WorkflowStage } from './Stages';\n\n/* -------------------------------------------------------------------------------------------------\n * WorkflowAttributes\n * -----------------------------------------------------------------------------------------------*/\ninterface WorkflowAttributesProps {\n canUpdate?: boolean;\n}\n\nconst WorkflowAttributes = ({ canUpdate = true }: WorkflowAttributesProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Grid.Root background=\"neutral0\" hasRadius gap={4} padding={6} shadow=\"tableShadow\">\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n disabled={!canUpdate}\n label={formatMessage({\n id: 'Settings.review-workflows.workflow.name.label',\n defaultMessage: 'Workflow Name',\n })}\n name=\"name\"\n required\n type=\"text\"\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <ContentTypesSelector disabled={!canUpdate} />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <StageSelector disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypesSelector\n * -----------------------------------------------------------------------------------------------*/\ninterface ContentTypesSelectorProps {\n disabled?: boolean;\n}\n\nconst ContentTypesSelector = ({ disabled }: ContentTypesSelectorProps) => {\n const { formatMessage, locale } = useIntl();\n const { data: contentTypes, isLoading } = useGetContentTypesQuery();\n const { workflows } = useReviewWorkflows();\n const currentWorkflow = useForm('ContentTypesSelector', (state) => state.values);\n\n const { error, value, onChange } = useField('contentTypes');\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isDisabled =\n disabled ||\n isLoading ||\n !contentTypes ||\n (contentTypes.collectionType.length === 0 && contentTypes.singleType.length === 0);\n\n const collectionTypes = (contentTypes?.collectionType ?? [])\n .toSorted((a, b) => formatter.compare(a.info.displayName, b.info.displayName))\n .map((contentType) => ({\n label: contentType.info.displayName,\n value: contentType.uid,\n }));\n\n const singleTypes = (contentTypes?.singleType ?? []).map((contentType) => ({\n label: contentType.info.displayName,\n value: contentType.uid,\n }));\n\n return (\n <Field.Root error={error} name={'contentTypes'}>\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.label',\n defaultMessage: 'Associated to',\n })}\n </Field.Label>\n <MultiSelect\n customizeContent={(value) =>\n formatMessage(\n {\n id: 'Settings.review-workflows.workflow.contentTypes.displayValue',\n defaultMessage:\n '{count} {count, plural, one {content type} other {content types}} selected',\n },\n { count: value?.length }\n )\n }\n disabled={isDisabled}\n onChange={(values) => {\n onChange('contentTypes', values);\n }}\n value={value}\n placeholder={formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.placeholder',\n defaultMessage: 'Select',\n })}\n >\n {[\n ...(collectionTypes.length > 0\n ? [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.collectionTypes.label',\n defaultMessage: 'Collection Types',\n }),\n children: collectionTypes,\n },\n ]\n : []),\n\n ...(singleTypes.length > 0\n ? [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.singleTypes.label',\n defaultMessage: 'Single Types',\n }),\n children: singleTypes,\n },\n ]\n : []),\n ].map((opt) => {\n return (\n <MultiSelectGroup\n key={opt.label}\n label={opt.label}\n values={opt.children.map((child) => child.value.toString())}\n >\n {opt.children.map((child) => {\n const { name: assignedWorkflowName } =\n workflows?.find(\n (workflow) =>\n ((currentWorkflow && workflow.id !== currentWorkflow.id) ||\n !currentWorkflow) &&\n workflow.contentTypes.includes(child.value)\n ) ?? {};\n\n return (\n <NestedOption key={child.value} value={child.value}>\n <Typography>\n {\n // @ts-expect-error - formatMessage options doesn't expect to be a React component but that's what we need actually for the <i> and <em> components\n formatMessage(\n {\n id: 'Settings.review-workflows.workflow.contentTypes.assigned.notice',\n defaultMessage:\n '{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}',\n },\n {\n label: child.label,\n name: assignedWorkflowName,\n em: (...children) => (\n <Typography tag=\"em\" fontWeight=\"bold\">\n {children}\n </Typography>\n ),\n i: (...children) => (\n <ContentTypeTakeNotice>{children}</ContentTypeTakeNotice>\n ),\n }\n )\n }\n </Typography>\n </NestedOption>\n );\n })}\n </MultiSelectGroup>\n );\n })}\n </MultiSelect>\n </Field.Root>\n );\n};\n\nconst NestedOption = styled(MultiSelectOption)`\n padding-left: ${({ theme }) => theme.spaces[7]};\n`;\n\nconst ContentTypeTakeNotice = styled(Typography)`\n font-style: italic;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * StageSelector\n * -----------------------------------------------------------------------------------------------*/\ninterface StageSelectorProps {\n disabled?: boolean;\n}\n\nconst StageSelector = ({ disabled }: StageSelectorProps) => {\n const { value: stages = [] } = useField<WorkflowStage[]>('stages');\n const { formatMessage } = useIntl();\n\n const { error, value, onChange } = useField('stageRequiredToPublish');\n\n // stages with empty names are not valid, so we avoid them from being used to avoid errors\n const validStages = stages.filter((stage) => stage.name);\n\n return (\n <Field.Root\n error={error}\n name=\"stageRequiredToPublish\"\n hint={formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.hint',\n defaultMessage:\n 'Prevents entries from being published if they are not at the required stage.',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.label',\n defaultMessage: 'Required stage for publishing',\n })}\n </Field.Label>\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange('stageRequiredToPublish', value);\n }}\n value={value}\n >\n <SingleSelectOption value={''}>\n {formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.any',\n defaultMessage: 'Any stage',\n })}\n </SingleSelectOption>\n {validStages.map((stage, i) => (\n <SingleSelectOption\n key={`requiredToPublishStage-${stage.id || stage.__temp_key__}`}\n value={stage.id?.toString() || stage.__temp_key__}\n >\n {stage.name}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { WorkflowAttributes };\nexport type { WorkflowAttributesProps };\n"],"names":["WorkflowAttributes","canUpdate","formatMessage","useIntl","_jsxs","Grid","Root","background","hasRadius","gap","padding","shadow","_jsx","Item","col","direction","alignItems","InputRenderer","disabled","label","id","defaultMessage","name","required","type","ContentTypesSelector","StageSelector","locale","data","contentTypes","isLoading","useGetContentTypesQuery","workflows","useReviewWorkflows","currentWorkflow","useForm","state","values","error","value","onChange","useField","formatter","useCollator","sensitivity","isDisabled","collectionType","length","singleType","collectionTypes","toSorted","a","b","compare","info","displayName","map","contentType","uid","singleTypes","Field","Label","MultiSelect","customizeContent","count","placeholder","children","opt","MultiSelectGroup","child","toString","assignedWorkflowName","find","workflow","includes","NestedOption","Typography","em","tag","fontWeight","i","ContentTypeTakeNotice","styled","MultiSelectOption","theme","spaces","stages","validStages","filter","stage","hint","SingleSelect","SingleSelectOption","__temp_key__","Hint"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowAttributes.js","sources":["../../../../../admin/src/routes/settings/components/WorkflowAttributes.tsx"],"sourcesContent":["import { InputRenderer, useField, useForm } from '@strapi/admin/strapi-admin';\nimport {\n Field,\n Grid,\n MultiSelect,\n MultiSelectGroup,\n MultiSelectOption,\n Typography,\n useCollator,\n SingleSelect,\n SingleSelectOption,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetContentTypesQuery } from '../../../services/content-manager';\nimport { useReviewWorkflows } from '../hooks/useReviewWorkflows';\n\nimport type { WorkflowStage } from './Stages';\n\n/* -------------------------------------------------------------------------------------------------\n * WorkflowAttributes\n * -----------------------------------------------------------------------------------------------*/\ninterface WorkflowAttributesProps {\n canUpdate?: boolean;\n}\n\nconst WorkflowAttributes = ({ canUpdate = true }: WorkflowAttributesProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Grid.Root background=\"neutral0\" hasRadius gap={4} padding={6} shadow=\"tableShadow\">\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n disabled={!canUpdate}\n label={formatMessage({\n id: 'Settings.review-workflows.workflow.name.label',\n defaultMessage: 'Workflow Name',\n })}\n name=\"name\"\n required\n type=\"text\"\n />\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <ContentTypesSelector disabled={!canUpdate} />\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <StageSelector disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypesSelector\n * -----------------------------------------------------------------------------------------------*/\ninterface ContentTypesSelectorProps {\n disabled?: boolean;\n}\n\nconst ContentTypesSelector = ({ disabled }: ContentTypesSelectorProps) => {\n const { formatMessage, locale } = useIntl();\n const { data: contentTypes, isLoading } = useGetContentTypesQuery();\n const { workflows } = useReviewWorkflows();\n const currentWorkflow = useForm('ContentTypesSelector', (state) => state.values);\n\n const { error, value, onChange } = useField('contentTypes');\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isDisabled =\n disabled ||\n isLoading ||\n !contentTypes ||\n (contentTypes.collectionType.length === 0 && contentTypes.singleType.length === 0);\n\n const collectionTypes = (contentTypes?.collectionType ?? [])\n .toSorted((a, b) => formatter.compare(a.info.displayName, b.info.displayName))\n .map((contentType) => ({\n label: contentType.info.displayName,\n value: contentType.uid,\n }));\n\n const singleTypes = (contentTypes?.singleType ?? []).map((contentType) => ({\n label: contentType.info.displayName,\n value: contentType.uid,\n }));\n\n return (\n <Field.Root error={error} name={'contentTypes'}>\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.label',\n defaultMessage: 'Associated to',\n })}\n </Field.Label>\n <MultiSelect\n customizeContent={(value) =>\n formatMessage(\n {\n id: 'Settings.review-workflows.workflow.contentTypes.displayValue',\n defaultMessage:\n '{count} {count, plural, one {content type} other {content types}} selected',\n },\n { count: value?.length }\n )\n }\n disabled={isDisabled}\n onChange={(values) => {\n onChange('contentTypes', values);\n }}\n value={value}\n placeholder={formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.placeholder',\n defaultMessage: 'Select',\n })}\n >\n {[\n ...(collectionTypes.length > 0\n ? [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.collectionTypes.label',\n defaultMessage: 'Collection Types',\n }),\n children: collectionTypes,\n },\n ]\n : []),\n\n ...(singleTypes.length > 0\n ? [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.singleTypes.label',\n defaultMessage: 'Single Types',\n }),\n children: singleTypes,\n },\n ]\n : []),\n ].map((opt) => {\n return (\n <MultiSelectGroup\n key={opt.label}\n label={opt.label}\n values={opt.children.map((child) => child.value.toString())}\n >\n {opt.children.map((child) => {\n const { name: assignedWorkflowName } =\n workflows?.find(\n (workflow) =>\n ((currentWorkflow && workflow.id !== currentWorkflow.id) ||\n !currentWorkflow) &&\n workflow.contentTypes.includes(child.value)\n ) ?? {};\n\n return (\n <NestedOption key={child.value} value={child.value}>\n <Typography>\n {\n // @ts-expect-error - formatMessage options doesn't expect to be a React component but that's what we need actually for the <i> and <em> components\n formatMessage(\n {\n id: 'Settings.review-workflows.workflow.contentTypes.assigned.notice',\n defaultMessage:\n '{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}',\n },\n {\n label: child.label,\n name: assignedWorkflowName,\n em: (...children) => (\n <Typography tag=\"em\" fontWeight=\"bold\">\n {children}\n </Typography>\n ),\n i: (...children) => (\n <ContentTypeTakeNotice>{children}</ContentTypeTakeNotice>\n ),\n }\n )\n }\n </Typography>\n </NestedOption>\n );\n })}\n </MultiSelectGroup>\n );\n })}\n </MultiSelect>\n </Field.Root>\n );\n};\n\nconst NestedOption = styled(MultiSelectOption)`\n padding-left: ${({ theme }) => theme.spaces[7]};\n`;\n\nconst ContentTypeTakeNotice = styled(Typography)`\n font-style: italic;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * StageSelector\n * -----------------------------------------------------------------------------------------------*/\ninterface StageSelectorProps {\n disabled?: boolean;\n}\n\nconst StageSelector = ({ disabled }: StageSelectorProps) => {\n const { value: stages = [] } = useField<WorkflowStage[]>('stages');\n const { formatMessage } = useIntl();\n\n const { error, value, onChange } = useField('stageRequiredToPublish');\n\n // stages with empty names are not valid, so we avoid them from being used to avoid errors\n const validStages = stages.filter((stage) => stage.name);\n\n return (\n <Field.Root\n error={error}\n name=\"stageRequiredToPublish\"\n hint={formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.hint',\n defaultMessage:\n 'Prevents entries from being published if they are not at the required stage.',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.label',\n defaultMessage: 'Required stage for publishing',\n })}\n </Field.Label>\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange('stageRequiredToPublish', value);\n }}\n value={value}\n >\n <SingleSelectOption value={''}>\n {formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.any',\n defaultMessage: 'Any stage',\n })}\n </SingleSelectOption>\n {validStages.map((stage, i) => (\n <SingleSelectOption\n key={`requiredToPublishStage-${stage.id || stage.__temp_key__}`}\n value={stage.id?.toString() || stage.__temp_key__}\n >\n {stage.name}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { WorkflowAttributes };\nexport type { WorkflowAttributesProps };\n"],"names":["WorkflowAttributes","canUpdate","formatMessage","useIntl","_jsxs","Grid","Root","background","hasRadius","gap","padding","shadow","_jsx","Item","col","xs","direction","alignItems","InputRenderer","disabled","label","id","defaultMessage","name","required","type","ContentTypesSelector","StageSelector","locale","data","contentTypes","isLoading","useGetContentTypesQuery","workflows","useReviewWorkflows","currentWorkflow","useForm","state","values","error","value","onChange","useField","formatter","useCollator","sensitivity","isDisabled","collectionType","length","singleType","collectionTypes","toSorted","a","b","compare","info","displayName","map","contentType","uid","singleTypes","Field","Label","MultiSelect","customizeContent","count","placeholder","children","opt","MultiSelectGroup","child","toString","assignedWorkflowName","find","workflow","includes","NestedOption","Typography","em","tag","fontWeight","i","ContentTypeTakeNotice","styled","MultiSelectOption","theme","spaces","stages","validStages","filter","stage","hint","SingleSelect","SingleSelectOption","__temp_key__","Hint"],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ const WorkflowAttributes = ({ canUpdate = true })=>{
|
|
|
17
17
|
children: [
|
|
18
18
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
19
19
|
col: 6,
|
|
20
|
+
xs: 12,
|
|
20
21
|
direction: "column",
|
|
21
22
|
alignItems: "stretch",
|
|
22
23
|
children: /*#__PURE__*/ jsx(InputRenderer, {
|
|
@@ -32,6 +33,7 @@ const WorkflowAttributes = ({ canUpdate = true })=>{
|
|
|
32
33
|
}),
|
|
33
34
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
34
35
|
col: 6,
|
|
36
|
+
xs: 12,
|
|
35
37
|
direction: "column",
|
|
36
38
|
alignItems: "stretch",
|
|
37
39
|
children: /*#__PURE__*/ jsx(ContentTypesSelector, {
|
|
@@ -40,6 +42,7 @@ const WorkflowAttributes = ({ canUpdate = true })=>{
|
|
|
40
42
|
}),
|
|
41
43
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
42
44
|
col: 6,
|
|
45
|
+
xs: 12,
|
|
43
46
|
direction: "column",
|
|
44
47
|
alignItems: "stretch",
|
|
45
48
|
children: /*#__PURE__*/ jsx(StageSelector, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowAttributes.mjs","sources":["../../../../../admin/src/routes/settings/components/WorkflowAttributes.tsx"],"sourcesContent":["import { InputRenderer, useField, useForm } from '@strapi/admin/strapi-admin';\nimport {\n Field,\n Grid,\n MultiSelect,\n MultiSelectGroup,\n MultiSelectOption,\n Typography,\n useCollator,\n SingleSelect,\n SingleSelectOption,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetContentTypesQuery } from '../../../services/content-manager';\nimport { useReviewWorkflows } from '../hooks/useReviewWorkflows';\n\nimport type { WorkflowStage } from './Stages';\n\n/* -------------------------------------------------------------------------------------------------\n * WorkflowAttributes\n * -----------------------------------------------------------------------------------------------*/\ninterface WorkflowAttributesProps {\n canUpdate?: boolean;\n}\n\nconst WorkflowAttributes = ({ canUpdate = true }: WorkflowAttributesProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Grid.Root background=\"neutral0\" hasRadius gap={4} padding={6} shadow=\"tableShadow\">\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n disabled={!canUpdate}\n label={formatMessage({\n id: 'Settings.review-workflows.workflow.name.label',\n defaultMessage: 'Workflow Name',\n })}\n name=\"name\"\n required\n type=\"text\"\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <ContentTypesSelector disabled={!canUpdate} />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <StageSelector disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypesSelector\n * -----------------------------------------------------------------------------------------------*/\ninterface ContentTypesSelectorProps {\n disabled?: boolean;\n}\n\nconst ContentTypesSelector = ({ disabled }: ContentTypesSelectorProps) => {\n const { formatMessage, locale } = useIntl();\n const { data: contentTypes, isLoading } = useGetContentTypesQuery();\n const { workflows } = useReviewWorkflows();\n const currentWorkflow = useForm('ContentTypesSelector', (state) => state.values);\n\n const { error, value, onChange } = useField('contentTypes');\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isDisabled =\n disabled ||\n isLoading ||\n !contentTypes ||\n (contentTypes.collectionType.length === 0 && contentTypes.singleType.length === 0);\n\n const collectionTypes = (contentTypes?.collectionType ?? [])\n .toSorted((a, b) => formatter.compare(a.info.displayName, b.info.displayName))\n .map((contentType) => ({\n label: contentType.info.displayName,\n value: contentType.uid,\n }));\n\n const singleTypes = (contentTypes?.singleType ?? []).map((contentType) => ({\n label: contentType.info.displayName,\n value: contentType.uid,\n }));\n\n return (\n <Field.Root error={error} name={'contentTypes'}>\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.label',\n defaultMessage: 'Associated to',\n })}\n </Field.Label>\n <MultiSelect\n customizeContent={(value) =>\n formatMessage(\n {\n id: 'Settings.review-workflows.workflow.contentTypes.displayValue',\n defaultMessage:\n '{count} {count, plural, one {content type} other {content types}} selected',\n },\n { count: value?.length }\n )\n }\n disabled={isDisabled}\n onChange={(values) => {\n onChange('contentTypes', values);\n }}\n value={value}\n placeholder={formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.placeholder',\n defaultMessage: 'Select',\n })}\n >\n {[\n ...(collectionTypes.length > 0\n ? [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.collectionTypes.label',\n defaultMessage: 'Collection Types',\n }),\n children: collectionTypes,\n },\n ]\n : []),\n\n ...(singleTypes.length > 0\n ? [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.singleTypes.label',\n defaultMessage: 'Single Types',\n }),\n children: singleTypes,\n },\n ]\n : []),\n ].map((opt) => {\n return (\n <MultiSelectGroup\n key={opt.label}\n label={opt.label}\n values={opt.children.map((child) => child.value.toString())}\n >\n {opt.children.map((child) => {\n const { name: assignedWorkflowName } =\n workflows?.find(\n (workflow) =>\n ((currentWorkflow && workflow.id !== currentWorkflow.id) ||\n !currentWorkflow) &&\n workflow.contentTypes.includes(child.value)\n ) ?? {};\n\n return (\n <NestedOption key={child.value} value={child.value}>\n <Typography>\n {\n // @ts-expect-error - formatMessage options doesn't expect to be a React component but that's what we need actually for the <i> and <em> components\n formatMessage(\n {\n id: 'Settings.review-workflows.workflow.contentTypes.assigned.notice',\n defaultMessage:\n '{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}',\n },\n {\n label: child.label,\n name: assignedWorkflowName,\n em: (...children) => (\n <Typography tag=\"em\" fontWeight=\"bold\">\n {children}\n </Typography>\n ),\n i: (...children) => (\n <ContentTypeTakeNotice>{children}</ContentTypeTakeNotice>\n ),\n }\n )\n }\n </Typography>\n </NestedOption>\n );\n })}\n </MultiSelectGroup>\n );\n })}\n </MultiSelect>\n </Field.Root>\n );\n};\n\nconst NestedOption = styled(MultiSelectOption)`\n padding-left: ${({ theme }) => theme.spaces[7]};\n`;\n\nconst ContentTypeTakeNotice = styled(Typography)`\n font-style: italic;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * StageSelector\n * -----------------------------------------------------------------------------------------------*/\ninterface StageSelectorProps {\n disabled?: boolean;\n}\n\nconst StageSelector = ({ disabled }: StageSelectorProps) => {\n const { value: stages = [] } = useField<WorkflowStage[]>('stages');\n const { formatMessage } = useIntl();\n\n const { error, value, onChange } = useField('stageRequiredToPublish');\n\n // stages with empty names are not valid, so we avoid them from being used to avoid errors\n const validStages = stages.filter((stage) => stage.name);\n\n return (\n <Field.Root\n error={error}\n name=\"stageRequiredToPublish\"\n hint={formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.hint',\n defaultMessage:\n 'Prevents entries from being published if they are not at the required stage.',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.label',\n defaultMessage: 'Required stage for publishing',\n })}\n </Field.Label>\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange('stageRequiredToPublish', value);\n }}\n value={value}\n >\n <SingleSelectOption value={''}>\n {formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.any',\n defaultMessage: 'Any stage',\n })}\n </SingleSelectOption>\n {validStages.map((stage, i) => (\n <SingleSelectOption\n key={`requiredToPublishStage-${stage.id || stage.__temp_key__}`}\n value={stage.id?.toString() || stage.__temp_key__}\n >\n {stage.name}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { WorkflowAttributes };\nexport type { WorkflowAttributesProps };\n"],"names":["WorkflowAttributes","canUpdate","formatMessage","useIntl","_jsxs","Grid","Root","background","hasRadius","gap","padding","shadow","_jsx","Item","col","direction","alignItems","InputRenderer","disabled","label","id","defaultMessage","name","required","type","ContentTypesSelector","StageSelector","locale","data","contentTypes","isLoading","useGetContentTypesQuery","workflows","useReviewWorkflows","currentWorkflow","useForm","state","values","error","value","onChange","useField","formatter","useCollator","sensitivity","isDisabled","collectionType","length","singleType","collectionTypes","toSorted","a","b","compare","info","displayName","map","contentType","uid","singleTypes","Field","Label","MultiSelect","customizeContent","count","placeholder","children","opt","MultiSelectGroup","child","toString","assignedWorkflowName","find","workflow","includes","NestedOption","Typography","em","tag","fontWeight","i","ContentTypeTakeNotice","styled","MultiSelectOption","theme","spaces","stages","validStages","filter","stage","hint","SingleSelect","SingleSelectOption","__temp_key__","Hint"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowAttributes.mjs","sources":["../../../../../admin/src/routes/settings/components/WorkflowAttributes.tsx"],"sourcesContent":["import { InputRenderer, useField, useForm } from '@strapi/admin/strapi-admin';\nimport {\n Field,\n Grid,\n MultiSelect,\n MultiSelectGroup,\n MultiSelectOption,\n Typography,\n useCollator,\n SingleSelect,\n SingleSelectOption,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetContentTypesQuery } from '../../../services/content-manager';\nimport { useReviewWorkflows } from '../hooks/useReviewWorkflows';\n\nimport type { WorkflowStage } from './Stages';\n\n/* -------------------------------------------------------------------------------------------------\n * WorkflowAttributes\n * -----------------------------------------------------------------------------------------------*/\ninterface WorkflowAttributesProps {\n canUpdate?: boolean;\n}\n\nconst WorkflowAttributes = ({ canUpdate = true }: WorkflowAttributesProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Grid.Root background=\"neutral0\" hasRadius gap={4} padding={6} shadow=\"tableShadow\">\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n disabled={!canUpdate}\n label={formatMessage({\n id: 'Settings.review-workflows.workflow.name.label',\n defaultMessage: 'Workflow Name',\n })}\n name=\"name\"\n required\n type=\"text\"\n />\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <ContentTypesSelector disabled={!canUpdate} />\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <StageSelector disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContentTypesSelector\n * -----------------------------------------------------------------------------------------------*/\ninterface ContentTypesSelectorProps {\n disabled?: boolean;\n}\n\nconst ContentTypesSelector = ({ disabled }: ContentTypesSelectorProps) => {\n const { formatMessage, locale } = useIntl();\n const { data: contentTypes, isLoading } = useGetContentTypesQuery();\n const { workflows } = useReviewWorkflows();\n const currentWorkflow = useForm('ContentTypesSelector', (state) => state.values);\n\n const { error, value, onChange } = useField('contentTypes');\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isDisabled =\n disabled ||\n isLoading ||\n !contentTypes ||\n (contentTypes.collectionType.length === 0 && contentTypes.singleType.length === 0);\n\n const collectionTypes = (contentTypes?.collectionType ?? [])\n .toSorted((a, b) => formatter.compare(a.info.displayName, b.info.displayName))\n .map((contentType) => ({\n label: contentType.info.displayName,\n value: contentType.uid,\n }));\n\n const singleTypes = (contentTypes?.singleType ?? []).map((contentType) => ({\n label: contentType.info.displayName,\n value: contentType.uid,\n }));\n\n return (\n <Field.Root error={error} name={'contentTypes'}>\n <Field.Label>\n {formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.label',\n defaultMessage: 'Associated to',\n })}\n </Field.Label>\n <MultiSelect\n customizeContent={(value) =>\n formatMessage(\n {\n id: 'Settings.review-workflows.workflow.contentTypes.displayValue',\n defaultMessage:\n '{count} {count, plural, one {content type} other {content types}} selected',\n },\n { count: value?.length }\n )\n }\n disabled={isDisabled}\n onChange={(values) => {\n onChange('contentTypes', values);\n }}\n value={value}\n placeholder={formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.placeholder',\n defaultMessage: 'Select',\n })}\n >\n {[\n ...(collectionTypes.length > 0\n ? [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.collectionTypes.label',\n defaultMessage: 'Collection Types',\n }),\n children: collectionTypes,\n },\n ]\n : []),\n\n ...(singleTypes.length > 0\n ? [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.workflow.contentTypes.singleTypes.label',\n defaultMessage: 'Single Types',\n }),\n children: singleTypes,\n },\n ]\n : []),\n ].map((opt) => {\n return (\n <MultiSelectGroup\n key={opt.label}\n label={opt.label}\n values={opt.children.map((child) => child.value.toString())}\n >\n {opt.children.map((child) => {\n const { name: assignedWorkflowName } =\n workflows?.find(\n (workflow) =>\n ((currentWorkflow && workflow.id !== currentWorkflow.id) ||\n !currentWorkflow) &&\n workflow.contentTypes.includes(child.value)\n ) ?? {};\n\n return (\n <NestedOption key={child.value} value={child.value}>\n <Typography>\n {\n // @ts-expect-error - formatMessage options doesn't expect to be a React component but that's what we need actually for the <i> and <em> components\n formatMessage(\n {\n id: 'Settings.review-workflows.workflow.contentTypes.assigned.notice',\n defaultMessage:\n '{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}',\n },\n {\n label: child.label,\n name: assignedWorkflowName,\n em: (...children) => (\n <Typography tag=\"em\" fontWeight=\"bold\">\n {children}\n </Typography>\n ),\n i: (...children) => (\n <ContentTypeTakeNotice>{children}</ContentTypeTakeNotice>\n ),\n }\n )\n }\n </Typography>\n </NestedOption>\n );\n })}\n </MultiSelectGroup>\n );\n })}\n </MultiSelect>\n </Field.Root>\n );\n};\n\nconst NestedOption = styled(MultiSelectOption)`\n padding-left: ${({ theme }) => theme.spaces[7]};\n`;\n\nconst ContentTypeTakeNotice = styled(Typography)`\n font-style: italic;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * StageSelector\n * -----------------------------------------------------------------------------------------------*/\ninterface StageSelectorProps {\n disabled?: boolean;\n}\n\nconst StageSelector = ({ disabled }: StageSelectorProps) => {\n const { value: stages = [] } = useField<WorkflowStage[]>('stages');\n const { formatMessage } = useIntl();\n\n const { error, value, onChange } = useField('stageRequiredToPublish');\n\n // stages with empty names are not valid, so we avoid them from being used to avoid errors\n const validStages = stages.filter((stage) => stage.name);\n\n return (\n <Field.Root\n error={error}\n name=\"stageRequiredToPublish\"\n hint={formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.hint',\n defaultMessage:\n 'Prevents entries from being published if they are not at the required stage.',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.label',\n defaultMessage: 'Required stage for publishing',\n })}\n </Field.Label>\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange('stageRequiredToPublish', value);\n }}\n value={value}\n >\n <SingleSelectOption value={''}>\n {formatMessage({\n id: 'settings.review-workflows.workflow.stageRequiredToPublish.any',\n defaultMessage: 'Any stage',\n })}\n </SingleSelectOption>\n {validStages.map((stage, i) => (\n <SingleSelectOption\n key={`requiredToPublishStage-${stage.id || stage.__temp_key__}`}\n value={stage.id?.toString() || stage.__temp_key__}\n >\n {stage.name}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { WorkflowAttributes };\nexport type { WorkflowAttributesProps };\n"],"names":["WorkflowAttributes","canUpdate","formatMessage","useIntl","_jsxs","Grid","Root","background","hasRadius","gap","padding","shadow","_jsx","Item","col","xs","direction","alignItems","InputRenderer","disabled","label","id","defaultMessage","name","required","type","ContentTypesSelector","StageSelector","locale","data","contentTypes","isLoading","useGetContentTypesQuery","workflows","useReviewWorkflows","currentWorkflow","useForm","state","values","error","value","onChange","useField","formatter","useCollator","sensitivity","isDisabled","collectionType","length","singleType","collectionTypes","toSorted","a","b","compare","info","displayName","map","contentType","uid","singleTypes","Field","Label","MultiSelect","customizeContent","count","placeholder","children","opt","MultiSelectGroup","child","toString","assignedWorkflowName","find","workflow","includes","NestedOption","Typography","em","tag","fontWeight","i","ContentTypeTakeNotice","styled","MultiSelectOption","theme","spaces","stages","validStages","filter","stage","hint","SingleSelect","SingleSelectOption","__temp_key__","Hint"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/review-workflows",
|
|
3
|
-
"version": "5.31.
|
|
3
|
+
"version": "5.31.3",
|
|
4
4
|
"description": "Review workflows for your content",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@reduxjs/toolkit": "1.9.7",
|
|
60
|
-
"@strapi/design-system": "2.0.
|
|
61
|
-
"@strapi/icons": "2.0.
|
|
62
|
-
"@strapi/utils": "5.31.
|
|
60
|
+
"@strapi/design-system": "2.0.1",
|
|
61
|
+
"@strapi/icons": "2.0.1",
|
|
62
|
+
"@strapi/utils": "5.31.3",
|
|
63
63
|
"fractional-indexing": "3.2.0",
|
|
64
64
|
"react-dnd": "16.0.1",
|
|
65
65
|
"react-dnd-html5-backend": "16.0.1",
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"yup": "0.32.9"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@strapi/admin": "5.31.
|
|
73
|
-
"@strapi/content-manager": "5.31.
|
|
74
|
-
"@strapi/types": "5.31.
|
|
72
|
+
"@strapi/admin": "5.31.3",
|
|
73
|
+
"@strapi/content-manager": "5.31.3",
|
|
74
|
+
"@strapi/types": "5.31.3",
|
|
75
75
|
"@testing-library/react": "15.0.7",
|
|
76
76
|
"msw": "1.3.0",
|
|
77
77
|
"react": "18.3.1",
|