@strapi/review-workflows 5.48.1 → 5.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/admin/index.js +1 -0
  2. package/dist/admin/index.js.map +1 -1
  3. package/dist/admin/index.mjs +1 -0
  4. package/dist/admin/index.mjs.map +1 -1
  5. package/dist/admin/routes/content-manager/model/components/AssigneeFilter.js +3 -2
  6. package/dist/admin/routes/content-manager/model/components/AssigneeFilter.js.map +1 -1
  7. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.js +3 -2
  8. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.js.map +1 -1
  9. package/dist/admin/routes/content-manager/model/id/components/StageSelect.js +3 -2
  10. package/dist/admin/routes/content-manager/model/id/components/StageSelect.js.map +1 -1
  11. package/dist/admin/routes/settings/components/Stages.js +3 -2
  12. package/dist/admin/routes/settings/components/Stages.js.map +1 -1
  13. package/dist/admin/routes/settings/hooks/useDragAndDrop.js +3 -2
  14. package/dist/admin/routes/settings/hooks/useDragAndDrop.js.map +1 -1
  15. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.js +3 -2
  16. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.js.map +1 -1
  17. package/dist/admin/routes/settings/hooks/useReviewWorkflows.js +3 -2
  18. package/dist/admin/routes/settings/hooks/useReviewWorkflows.js.map +1 -1
  19. package/dist/admin/routes/settings/id.js +4 -3
  20. package/dist/admin/routes/settings/id.js.map +1 -1
  21. package/dist/admin/routes/settings/index.js +3 -2
  22. package/dist/admin/routes/settings/index.js.map +1 -1
  23. package/dist/admin/src/components/LimitsModal.d.ts +2 -2
  24. package/dist/admin/src/routes/settings/hooks/useDragAndDrop.d.ts +4 -4
  25. package/dist/admin/src/routes/settings/hooks/useKeyboardDragAndDrop.d.ts +1 -1
  26. package/dist/admin/src/routes/settings/hooks/useReviewWorkflows.d.ts +2 -2
  27. package/dist/admin/src/services/content-manager.d.ts +7 -7
  28. package/dist/admin/src/services/settings.d.ts +75 -75
  29. package/dist/admin/src/utils/users.d.ts +1 -1
  30. package/dist/admin/translations/ja.json.js +41 -0
  31. package/dist/admin/translations/ja.json.js.map +1 -0
  32. package/dist/admin/translations/ja.json.mjs +39 -0
  33. package/dist/admin/translations/ja.json.mjs.map +1 -0
  34. package/dist/server/controllers/stages.js +0 -2
  35. package/dist/server/controllers/stages.js.map +1 -1
  36. package/dist/server/controllers/stages.mjs +0 -2
  37. package/dist/server/controllers/stages.mjs.map +1 -1
  38. package/dist/server/controllers/workflows.js +0 -4
  39. package/dist/server/controllers/workflows.js.map +1 -1
  40. package/dist/server/controllers/workflows.mjs +0 -4
  41. package/dist/server/controllers/workflows.mjs.map +1 -1
  42. package/dist/server/migrations/shorten-stage-attribute.js +5 -1
  43. package/dist/server/migrations/shorten-stage-attribute.js.map +1 -1
  44. package/dist/server/src/bootstrap.d.ts.map +1 -1
  45. package/dist/server/src/controllers/index.d.ts +3 -4
  46. package/dist/server/src/controllers/index.d.ts.map +1 -1
  47. package/dist/server/src/controllers/stages.d.ts +1 -3
  48. package/dist/server/src/controllers/stages.d.ts.map +1 -1
  49. package/dist/server/src/controllers/workflows.d.ts +2 -6
  50. package/dist/server/src/controllers/workflows.d.ts.map +1 -1
  51. package/dist/server/src/destroy.d.ts.map +1 -1
  52. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
  53. package/dist/server/src/homepage/controllers/index.d.ts +2 -1
  54. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -1
  55. package/dist/server/src/homepage/index.d.ts +1 -1
  56. package/dist/server/src/homepage/services/homepage.d.ts +1 -1
  57. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  58. package/dist/server/src/homepage/services/index.d.ts +1 -1
  59. package/dist/server/src/index.d.ts +11 -12
  60. package/dist/server/src/index.d.ts.map +1 -1
  61. package/dist/server/src/register.d.ts.map +1 -1
  62. package/dist/server/src/routes/utils.d.ts.map +1 -1
  63. package/dist/server/src/services/assignees.d.ts.map +1 -1
  64. package/dist/server/src/services/index.d.ts +8 -8
  65. package/dist/server/src/services/index.d.ts.map +1 -1
  66. package/dist/server/src/services/metrics/index.d.ts.map +1 -1
  67. package/dist/server/src/services/metrics/weekly-metrics.d.ts.map +1 -1
  68. package/dist/server/src/services/stage-permissions.d.ts.map +1 -1
  69. package/dist/server/src/services/stages.d.ts.map +1 -1
  70. package/dist/server/src/services/validation.d.ts.map +1 -1
  71. package/dist/server/src/services/workflow-content-types.d.ts.map +1 -1
  72. package/dist/server/src/services/workflows.d.ts.map +1 -1
  73. package/dist/server/src/utils/index.d.ts.map +1 -1
  74. package/dist/server/src/utils/review-workflows.d.ts.map +1 -1
  75. package/dist/server/src/validation/review-workflows.d.ts +10 -10
  76. package/dist/server/src/validation/review-workflows.d.ts.map +1 -1
  77. package/package.json +7 -7
@@ -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\n extends Pick<IStage, 'id' | 'name' | 'fromPermissions' | 'toPermissions' | '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 fromPermissions,\n toPermissions,\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, fromPermissions, toPermissions });\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: 'review-workflows.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 from this stage',\n }),\n name: `stages.${index}.fromPermissions`,\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 {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.toPermissions.label',\n defaultMessage: 'Roles that can move content to this stage',\n }),\n name: `stages.${index}.toPermissions`,\n placeholder: formatMessage({\n id: 'Settings.review-workflows.stage.toPermissions.placeholder',\n defaultMessage: 'Select a role',\n }),\n required: false,\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 = ({\n label,\n disabled,\n name,\n placeholder,\n required,\n}: 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\n // Derive the field key (e.g. \"fromPermissions\" or \"toPermissions\") from the full field name\n const fieldKey = name.split('.').pop() as keyof WorkflowStage;\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>{label}</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>{label}</Field.Label>\n\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 [fieldKey]: 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","fromPermissions","toPermissions","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","fieldKey","split","pop","rolesErrorCount","useRef","data","roles","isLoading","getRolesError","useGetAdminRolesQuery","filteredRoles","filter","role","code","status","current","blockTransition","message","hint","TextInput","startAction","EyeStriked","fill","Hint","PermissionWrapper","grow","MultiSelect","permissions","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\n extends Pick<IStage, 'id' | 'name' | 'fromPermissions' | 'toPermissions' | '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 fromPermissions,\n toPermissions,\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, fromPermissions, toPermissions });\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: 'review-workflows.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 from this stage',\n }),\n name: `stages.${index}.fromPermissions`,\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 {\n disabled: !canUpdate,\n label: formatMessage({\n id: 'Settings.review-workflows.stage.toPermissions.label',\n defaultMessage: 'Roles that can move content to this stage',\n }),\n name: `stages.${index}.toPermissions`,\n placeholder: formatMessage({\n id: 'Settings.review-workflows.stage.toPermissions.placeholder',\n defaultMessage: 'Select a role',\n }),\n required: false,\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 = ({\n label,\n disabled,\n name,\n placeholder,\n required,\n}: 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\n // Derive the field key (e.g. \"fromPermissions\" or \"toPermissions\") from the full field name\n const fieldKey = name.split('.').pop() as keyof WorkflowStage;\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>{label}</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>{label}</Field.Label>\n\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 [fieldKey]: 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","fromPermissions","toPermissions","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","fieldKey","split","pop","rolesErrorCount","useRef","data","roles","isLoading","getRolesError","useGetAdminRolesQuery","filteredRoles","filter","role","code","status","current","blockTransition","message","hint","TextInput","startAction","EyeStriked","fill","Hint","PermissionWrapper","grow","MultiSelect","permissions","parseInt","action","permission","withTags","MultiSelectGroup","r","NestedOption","Dialog","open","onOpenChange","Duplicate","ConfirmDialog","onConfirm","MultiSelectOption","spaces"],"mappings":"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"}
@@ -4,7 +4,8 @@ var React = require('react');
4
4
  var reactDnd = require('react-dnd');
5
5
  var useKeyboardDragAndDrop = require('./useKeyboardDragAndDrop.js');
6
6
 
7
- function _interopNamespaceDefault(e) {
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
8
9
  var n = Object.create(null);
9
10
  if (e) {
10
11
  Object.keys(e).forEach(function (k) {
@@ -21,7 +22,7 @@ function _interopNamespaceDefault(e) {
21
22
  return Object.freeze(n);
22
23
  }
23
24
 
24
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
25
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
25
26
 
26
27
  const DIRECTIONS = {
27
28
  UPWARD: 'upward',
@@ -1 +1 @@
1
- {"version":3,"file":"useDragAndDrop.js","sources":["../../../../../admin/src/routes/settings/hooks/useDragAndDrop.ts"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useDrag,\n useDrop,\n type HandlerManager,\n type ConnectDragSource,\n type ConnectDropTarget,\n type ConnectDragPreview,\n type DragSourceMonitor,\n} from 'react-dnd';\n\nimport {\n useKeyboardDragAndDrop,\n type UseKeyboardDragAndDropCallbacks,\n} from './useKeyboardDragAndDrop';\n\nimport type { Data } from '@strapi/types';\n\nconst DIRECTIONS = {\n UPWARD: 'upward',\n DOWNWARD: 'downward',\n} as const;\n\nconst DROP_SENSITIVITY = {\n REGULAR: 'regular',\n IMMEDIATE: 'immediate',\n} as const;\n\ninterface UseDragAndDropOptions<\n TIndex extends number | Array<number> = number,\n TItem extends { index: TIndex } = { index: TIndex },\n> extends UseKeyboardDragAndDropCallbacks<TIndex> {\n type?: string;\n index: TIndex;\n item?: TItem;\n onStart?: () => void;\n onEnd?: () => void;\n dropSensitivity?: (typeof DROP_SENSITIVITY)[keyof typeof DROP_SENSITIVITY];\n}\n\ntype Identifier = ReturnType<HandlerManager['getHandlerId']>;\n\ntype UseDragAndDropReturn<E extends Element = HTMLElement> = [\n props: {\n handlerId: Identifier;\n isDragging: boolean;\n handleKeyDown: <E extends Element>(event: React.KeyboardEvent<E>) => void;\n isOverDropTarget: boolean;\n direction: (typeof DIRECTIONS)[keyof typeof DIRECTIONS] | null;\n },\n objectRef: React.RefObject<E>,\n dropRef: ConnectDropTarget,\n dragRef: ConnectDragSource,\n dragPreviewRef: ConnectDragPreview,\n];\n\ntype DropCollectedProps = {\n handlerId: Identifier;\n isOver: boolean;\n};\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n */\nconst useDragAndDrop = <\n TIndex extends number | Array<number>,\n TItem extends { index: TIndex; id?: Data.ID; [key: string]: unknown } = {\n index: TIndex;\n [key: string]: unknown;\n },\n E extends Element = HTMLElement,\n>(\n active: boolean,\n {\n type = 'STRAPI_DND',\n index,\n item,\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = DROP_SENSITIVITY.REGULAR,\n }: UseDragAndDropOptions<TIndex, TItem>\n): UseDragAndDropReturn<E> => {\n const objectRef = React.useRef<E>(null);\n\n const [{ handlerId, isOver }, dropRef] = useDrop<TItem, void, DropCollectedProps>({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n isOver: monitor.isOver({ shallow: true }),\n };\n },\n drop(item) {\n const draggedIndex = item.index;\n const newIndex = index;\n\n if (isOver && onDropItem) {\n onDropItem(draggedIndex, newIndex);\n }\n },\n hover(item, monitor) {\n if (!objectRef.current || !onMoveItem) {\n return;\n }\n\n const dragIndex = item.index;\n const newIndex = index;\n\n const hoverBoundingRect = objectRef.current?.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n if (!clientOffset) return;\n\n const hoverClientY = clientOffset && clientOffset.y - hoverBoundingRect.top;\n if (typeof dragIndex === 'number' && typeof newIndex === 'number') {\n if (dragIndex === newIndex) {\n // Don't replace items with themselves\n return;\n }\n\n if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {\n // Dragging downwards\n if (dragIndex < newIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newIndex, dragIndex);\n item.index = newIndex;\n } else {\n // Using numbers as indices doesn't work for nested list items with path like [1, 1, 0]\n if (Array.isArray(dragIndex) && Array.isArray(newIndex)) {\n // Indices comparison to find item position in nested list\n const minLength = Math.min(dragIndex.length, newIndex.length);\n let areEqual = true;\n let isLessThan = false;\n let isGreaterThan = false;\n\n for (let i = 0; i < minLength; i++) {\n if (dragIndex[i] < newIndex[i]) {\n isLessThan = true;\n areEqual = false;\n break;\n } else if (dragIndex[i] > newIndex[i]) {\n isGreaterThan = true;\n areEqual = false;\n break;\n }\n }\n\n // Don't replace items with themselves\n if (areEqual && dragIndex.length === newIndex.length) {\n return;\n }\n\n if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {\n // Dragging downwards\n if (isLessThan && !isGreaterThan && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (isGreaterThan && !isLessThan && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n }\n\n onMoveItem(newIndex, dragIndex);\n item.index = newIndex;\n }\n },\n });\n\n const getDragDirection = (monitor: DragSourceMonitor<TItem, void>) => {\n if (\n monitor &&\n monitor.isDragging() &&\n !monitor.didDrop() &&\n monitor.getInitialClientOffset() &&\n monitor.getClientOffset()\n ) {\n const deltaY = monitor.getInitialClientOffset()!.y - monitor.getClientOffset()!.y;\n\n if (deltaY > 0) return DIRECTIONS.UPWARD;\n\n if (deltaY < 0) return DIRECTIONS.DOWNWARD;\n\n return null;\n }\n\n return null;\n };\n\n const [{ isDragging, direction }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item?.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n initialOffset: monitor.getInitialClientOffset(),\n currentOffset: monitor.getClientOffset(),\n direction: getDragDirection(monitor),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [\n { handlerId, isDragging, handleKeyDown, isOverDropTarget: isOver, direction },\n objectRef,\n dropRef,\n dragRef,\n dragPreviewRef,\n ];\n};\n\nexport {\n useDragAndDrop,\n UseDragAndDropReturn,\n UseDragAndDropOptions,\n DIRECTIONS,\n DROP_SENSITIVITY,\n};\n"],"names":["DIRECTIONS","UPWARD","DOWNWARD","DROP_SENSITIVITY","REGULAR","useDragAndDrop","active","type","index","item","onStart","onEnd","onGrabItem","onDropItem","onCancel","onMoveItem","dropSensitivity","objectRef","React","useRef","handlerId","isOver","dropRef","useDrop","accept","collect","monitor","getHandlerId","shallow","drop","draggedIndex","newIndex","hover","current","dragIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","top","clientOffset","getClientOffset","hoverClientY","y","Array","isArray","minLength","Math","min","length","areEqual","isLessThan","isGreaterThan","i","getDragDirection","isDragging","didDrop","getInitialClientOffset","deltaY","direction","dragRef","dragPreviewRef","useDrag","width","end","canDrag","id","getItem","undefined","initialOffset","currentOffset","handleKeyDown","useKeyboardDragAndDrop","isOverDropTarget"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAMA,UAAAA,GAAa;IACjBC,MAAAA,EAAQ,QAAA;IACRC,QAAAA,EAAU;AACZ;AAEA,MAAMC,gBAAAA,GAAmB;IACvBC,OAAAA,EAAS,SAEX;AAmCA;;;IAIA,MAAMC,cAAAA,GAAiB,CAQrBC,MAAAA,EACA,EACEC,IAAAA,GAAO,YAAY,EACnBC,KAAK,EACLC,IAAI,EACJC,OAAO,EACPC,KAAK,EACLC,UAAU,EACVC,UAAU,EACVC,QAAQ,EACRC,UAAU,EACVC,eAAAA,GAAkBb,gBAAAA,CAAiBC,OAAO,EACL,GAAA;IAEvC,MAAMa,SAAAA,GAAYC,gBAAAA,CAAMC,MAAM,CAAI,IAAA,CAAA;IAElC,MAAM,CAAC,EAAEC,SAAS,EAAEC,MAAM,EAAE,EAAEC,OAAAA,CAAQ,GAAGC,gBAAAA,CAAyC;QAChFC,MAAAA,EAAQjB,IAAAA;AACRkB,QAAAA,OAAAA,CAAAA,CAAQC,OAAO,EAAA;YACb,OAAO;AACLN,gBAAAA,SAAAA,EAAWM,QAAQC,YAAY,EAAA;gBAC/BN,MAAAA,EAAQK,OAAAA,CAAQL,MAAM,CAAC;oBAAEO,OAAAA,EAAS;AAAK,iBAAA;AACzC,aAAA;AACF,QAAA,CAAA;AACAC,QAAAA,IAAAA,CAAAA,CAAKpB,IAAI,EAAA;YACP,MAAMqB,YAAAA,GAAerB,KAAKD,KAAK;AAC/B,YAAA,MAAMuB,QAAAA,GAAWvB,KAAAA;AAEjB,YAAA,IAAIa,UAAUR,UAAAA,EAAY;AACxBA,gBAAAA,UAAAA,CAAWiB,YAAAA,EAAcC,QAAAA,CAAAA;AAC3B,YAAA;AACF,QAAA,CAAA;QACAC,KAAAA,CAAAA,CAAMvB,IAAI,EAAEiB,OAAO,EAAA;AACjB,YAAA,IAAI,CAACT,SAAAA,CAAUgB,OAAO,IAAI,CAAClB,UAAAA,EAAY;AACrC,gBAAA;AACF,YAAA;YAEA,MAAMmB,SAAAA,GAAYzB,KAAKD,KAAK;AAC5B,YAAA,MAAMuB,QAAAA,GAAWvB,KAAAA;YAEjB,MAAM2B,iBAAAA,GAAoBlB,SAAAA,CAAUgB,OAAO,EAAEG,qBAAAA,EAAAA;YAC7C,MAAMC,YAAAA,GAAe,CAACF,iBAAAA,CAAkBG,MAAM,GAAGH,iBAAAA,CAAkBI,GAAE,IAAK,CAAA;YAC1E,MAAMC,YAAAA,GAAed,QAAQe,eAAe,EAAA;AAC5C,YAAA,IAAI,CAACD,YAAAA,EAAc;AAEnB,YAAA,MAAME,eAAeF,YAAAA,IAAgBA,YAAAA,CAAaG,CAAC,GAAGR,kBAAkBI,GAAG;AAC3E,YAAA,IAAI,OAAOL,SAAAA,KAAc,QAAA,IAAY,OAAOH,aAAa,QAAA,EAAU;AACjE,gBAAA,IAAIG,cAAcH,QAAAA,EAAU;;AAE1B,oBAAA;AACF,gBAAA;gBAEA,IAAIf,eAAAA,KAAoBb,gBAAAA,CAAiBC,OAAO,EAAE;;oBAEhD,IAAI8B,SAAAA,GAAYH,QAAAA,IAAYW,YAAAA,GAAeL,YAAAA,EAAc;AACvD,wBAAA;AACF,oBAAA;;oBAGA,IAAIH,SAAAA,GAAYH,QAAAA,IAAYW,YAAAA,GAAeL,YAAAA,EAAc;AACvD,wBAAA;AACF,oBAAA;AACF,gBAAA;;AAGAtB,gBAAAA,UAAAA,CAAWgB,QAAAA,EAAUG,SAAAA,CAAAA;AACrBzB,gBAAAA,IAAAA,CAAKD,KAAK,GAAGuB,QAAAA;YACf,CAAA,MAAO;;AAEL,gBAAA,IAAIa,MAAMC,OAAO,CAACX,cAAcU,KAAAA,CAAMC,OAAO,CAACd,QAAAA,CAAAA,EAAW;;oBAEvD,MAAMe,SAAAA,GAAYC,KAAKC,GAAG,CAACd,UAAUe,MAAM,EAAElB,SAASkB,MAAM,CAAA;AAC5D,oBAAA,IAAIC,QAAAA,GAAW,IAAA;AACf,oBAAA,IAAIC,UAAAA,GAAa,KAAA;AACjB,oBAAA,IAAIC,aAAAA,GAAgB,KAAA;AAEpB,oBAAA,IAAK,IAAIC,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIP,WAAWO,CAAAA,EAAAA,CAAK;AAClC,wBAAA,IAAInB,SAAS,CAACmB,CAAAA,CAAE,GAAGtB,QAAQ,CAACsB,EAAE,EAAE;4BAC9BF,UAAAA,GAAa,IAAA;4BACbD,QAAAA,GAAW,KAAA;AACX,4BAAA;wBACF,CAAA,MAAO,IAAIhB,SAAS,CAACmB,CAAAA,CAAE,GAAGtB,QAAQ,CAACsB,EAAE,EAAE;4BACrCD,aAAAA,GAAgB,IAAA;4BAChBF,QAAAA,GAAW,KAAA;AACX,4BAAA;AACF,wBAAA;AACF,oBAAA;;AAGA,oBAAA,IAAIA,YAAYhB,SAAAA,CAAUe,MAAM,KAAKlB,QAAAA,CAASkB,MAAM,EAAE;AACpD,wBAAA;AACF,oBAAA;oBAEA,IAAIjC,eAAAA,KAAoBb,gBAAAA,CAAiBC,OAAO,EAAE;;AAEhD,wBAAA,IAAI+C,UAAAA,IAAc,CAACC,aAAAA,IAAiBV,YAAAA,GAAeL,YAAAA,EAAc;AAC/D,4BAAA;AACF,wBAAA;;AAGA,wBAAA,IAAIe,aAAAA,IAAiB,CAACD,UAAAA,IAAcT,YAAAA,GAAeL,YAAAA,EAAc;AAC/D,4BAAA;AACF,wBAAA;AACF,oBAAA;AACF,gBAAA;AAEAtB,gBAAAA,UAAAA,CAAWgB,QAAAA,EAAUG,SAAAA,CAAAA;AACrBzB,gBAAAA,IAAAA,CAAKD,KAAK,GAAGuB,QAAAA;AACf,YAAA;AACF,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMuB,mBAAmB,CAAC5B,OAAAA,GAAAA;AACxB,QAAA,IACEA,OAAAA,IACAA,OAAAA,CAAQ6B,UAAU,EAAA,IAClB,CAAC7B,OAAAA,CAAQ8B,OAAO,EAAA,IAChB9B,OAAAA,CAAQ+B,sBAAsB,EAAA,IAC9B/B,OAAAA,CAAQe,eAAe,EAAA,EACvB;YACA,MAAMiB,MAAAA,GAAShC,QAAQ+B,sBAAsB,EAAA,CAAId,CAAC,GAAGjB,OAAAA,CAAQe,eAAe,EAAA,CAAIE,CAAC;AAEjF,YAAA,IAAIe,MAAAA,GAAS,CAAA,EAAG,OAAO1D,UAAAA,CAAWC,MAAM;AAExC,YAAA,IAAIyD,MAAAA,GAAS,CAAA,EAAG,OAAO1D,UAAAA,CAAWE,QAAQ;YAE1C,OAAO,IAAA;AACT,QAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA;IAEA,MAAM,CAAC,EAAEqD,UAAU,EAAEI,SAAS,EAAE,EAAEC,OAAAA,EAASC,cAAAA,CAAe,GAAGC,gBAAAA,CAAQ;AACnEvD,QAAAA,IAAAA;AACAE,QAAAA,IAAAA,CAAAA,GAAAA;AACE,YAAA,IAAIC,OAAAA,EAAS;AACXA,gBAAAA,OAAAA,EAAAA;AACF,YAAA;AAEA;;;UAIA,MAAM,EAAEqD,KAAK,EAAE,GAAG9C,SAAAA,CAAUgB,OAAO,EAAEG,qBAAAA,EAAAA,IAA2B,EAAC;YAEjE,OAAO;AAAE5B,gBAAAA,KAAAA;AAAOuD,gBAAAA,KAAAA;AAAO,gBAAA,GAAGtD;AAAK,aAAA;AACjC,QAAA,CAAA;AACAuD,QAAAA,GAAAA,CAAAA,GAAAA;AACE,YAAA,IAAIrD,KAAAA,EAAO;AACTA,gBAAAA,KAAAA,EAAAA;AACF,YAAA;AACF,QAAA,CAAA;QACAsD,OAAAA,EAAS3D,MAAAA;AACT;;;;QAKAiD,UAAAA,EAAY9C,IAAAA,EAAMyD,EAAAA,GACd,CAACxC,OAAAA,GAAAA;AACC,YAAA,OAAOjB,KAAKyD,EAAE,KAAKxC,OAAAA,CAAQyC,OAAO,GAAGD,EAAE;QACzC,CAAA,GACAE,SAAAA;QACJ3C,OAAAA,EAAS,CAACC,WAAa;AACrB6B,gBAAAA,UAAAA,EAAY7B,QAAQ6B,UAAU,EAAA;AAC9Bc,gBAAAA,aAAAA,EAAe3C,QAAQ+B,sBAAsB,EAAA;AAC7Ca,gBAAAA,aAAAA,EAAe5C,QAAQe,eAAe,EAAA;AACtCkB,gBAAAA,SAAAA,EAAWL,gBAAAA,CAAiB5B,OAAAA;aAC9B;AACF,KAAA,CAAA;IAEA,MAAM6C,aAAAA,GAAgBC,6CAAAA,CAAuBlE,MAAAA,EAAQE,KAAAA,EAAO;AAC1DI,QAAAA,UAAAA;AACAC,QAAAA,UAAAA;AACAC,QAAAA,QAAAA;AACAC,QAAAA;AACF,KAAA,CAAA;IAEA,OAAO;AACL,QAAA;AAAEK,YAAAA,SAAAA;AAAWmC,YAAAA,UAAAA;AAAYgB,YAAAA,aAAAA;YAAeE,gBAAAA,EAAkBpD,MAAAA;AAAQsC,YAAAA;AAAU,SAAA;AAC5E1C,QAAAA,SAAAA;AACAK,QAAAA,OAAAA;AACAsC,QAAAA,OAAAA;AACAC,QAAAA;AACD,KAAA;AACH;;;;;;"}
1
+ {"version":3,"file":"useDragAndDrop.js","sources":["../../../../../admin/src/routes/settings/hooks/useDragAndDrop.ts"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useDrag,\n useDrop,\n type HandlerManager,\n type ConnectDragSource,\n type ConnectDropTarget,\n type ConnectDragPreview,\n type DragSourceMonitor,\n} from 'react-dnd';\n\nimport {\n useKeyboardDragAndDrop,\n type UseKeyboardDragAndDropCallbacks,\n} from './useKeyboardDragAndDrop';\n\nimport type { Data } from '@strapi/types';\n\nconst DIRECTIONS = {\n UPWARD: 'upward',\n DOWNWARD: 'downward',\n} as const;\n\nconst DROP_SENSITIVITY = {\n REGULAR: 'regular',\n IMMEDIATE: 'immediate',\n} as const;\n\ninterface UseDragAndDropOptions<\n TIndex extends number | Array<number> = number,\n TItem extends { index: TIndex } = { index: TIndex },\n> extends UseKeyboardDragAndDropCallbacks<TIndex> {\n type?: string;\n index: TIndex;\n item?: TItem;\n onStart?: () => void;\n onEnd?: () => void;\n dropSensitivity?: (typeof DROP_SENSITIVITY)[keyof typeof DROP_SENSITIVITY];\n}\n\ntype Identifier = ReturnType<HandlerManager['getHandlerId']>;\n\ntype UseDragAndDropReturn<E extends Element = HTMLElement> = [\n props: {\n handlerId: Identifier;\n isDragging: boolean;\n handleKeyDown: <E extends Element>(event: React.KeyboardEvent<E>) => void;\n isOverDropTarget: boolean;\n direction: (typeof DIRECTIONS)[keyof typeof DIRECTIONS] | null;\n },\n objectRef: React.RefObject<E>,\n dropRef: ConnectDropTarget,\n dragRef: ConnectDragSource,\n dragPreviewRef: ConnectDragPreview,\n];\n\ntype DropCollectedProps = {\n handlerId: Identifier;\n isOver: boolean;\n};\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n */\nconst useDragAndDrop = <\n TIndex extends number | Array<number>,\n TItem extends { index: TIndex; id?: Data.ID; [key: string]: unknown } = {\n index: TIndex;\n [key: string]: unknown;\n },\n E extends Element = HTMLElement,\n>(\n active: boolean,\n {\n type = 'STRAPI_DND',\n index,\n item,\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = DROP_SENSITIVITY.REGULAR,\n }: UseDragAndDropOptions<TIndex, TItem>\n): UseDragAndDropReturn<E> => {\n const objectRef = React.useRef<E>(null);\n\n const [{ handlerId, isOver }, dropRef] = useDrop<TItem, void, DropCollectedProps>({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n isOver: monitor.isOver({ shallow: true }),\n };\n },\n drop(item) {\n const draggedIndex = item.index;\n const newIndex = index;\n\n if (isOver && onDropItem) {\n onDropItem(draggedIndex, newIndex);\n }\n },\n hover(item, monitor) {\n if (!objectRef.current || !onMoveItem) {\n return;\n }\n\n const dragIndex = item.index;\n const newIndex = index;\n\n const hoverBoundingRect = objectRef.current?.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n if (!clientOffset) return;\n\n const hoverClientY = clientOffset && clientOffset.y - hoverBoundingRect.top;\n if (typeof dragIndex === 'number' && typeof newIndex === 'number') {\n if (dragIndex === newIndex) {\n // Don't replace items with themselves\n return;\n }\n\n if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {\n // Dragging downwards\n if (dragIndex < newIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newIndex, dragIndex);\n item.index = newIndex;\n } else {\n // Using numbers as indices doesn't work for nested list items with path like [1, 1, 0]\n if (Array.isArray(dragIndex) && Array.isArray(newIndex)) {\n // Indices comparison to find item position in nested list\n const minLength = Math.min(dragIndex.length, newIndex.length);\n let areEqual = true;\n let isLessThan = false;\n let isGreaterThan = false;\n\n for (let i = 0; i < minLength; i++) {\n if (dragIndex[i] < newIndex[i]) {\n isLessThan = true;\n areEqual = false;\n break;\n } else if (dragIndex[i] > newIndex[i]) {\n isGreaterThan = true;\n areEqual = false;\n break;\n }\n }\n\n // Don't replace items with themselves\n if (areEqual && dragIndex.length === newIndex.length) {\n return;\n }\n\n if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {\n // Dragging downwards\n if (isLessThan && !isGreaterThan && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (isGreaterThan && !isLessThan && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n }\n\n onMoveItem(newIndex, dragIndex);\n item.index = newIndex;\n }\n },\n });\n\n const getDragDirection = (monitor: DragSourceMonitor<TItem, void>) => {\n if (\n monitor &&\n monitor.isDragging() &&\n !monitor.didDrop() &&\n monitor.getInitialClientOffset() &&\n monitor.getClientOffset()\n ) {\n const deltaY = monitor.getInitialClientOffset()!.y - monitor.getClientOffset()!.y;\n\n if (deltaY > 0) return DIRECTIONS.UPWARD;\n\n if (deltaY < 0) return DIRECTIONS.DOWNWARD;\n\n return null;\n }\n\n return null;\n };\n\n const [{ isDragging, direction }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item?.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n initialOffset: monitor.getInitialClientOffset(),\n currentOffset: monitor.getClientOffset(),\n direction: getDragDirection(monitor),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [\n { handlerId, isDragging, handleKeyDown, isOverDropTarget: isOver, direction },\n objectRef,\n dropRef,\n dragRef,\n dragPreviewRef,\n ];\n};\n\nexport {\n useDragAndDrop,\n UseDragAndDropReturn,\n UseDragAndDropOptions,\n DIRECTIONS,\n DROP_SENSITIVITY,\n};\n"],"names":["DIRECTIONS","UPWARD","DOWNWARD","DROP_SENSITIVITY","REGULAR","useDragAndDrop","active","type","index","item","onStart","onEnd","onGrabItem","onDropItem","onCancel","onMoveItem","dropSensitivity","objectRef","React","useRef","handlerId","isOver","dropRef","useDrop","accept","collect","monitor","getHandlerId","shallow","drop","draggedIndex","newIndex","hover","current","dragIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","top","clientOffset","getClientOffset","hoverClientY","y","Array","isArray","minLength","Math","min","length","areEqual","isLessThan","isGreaterThan","i","getDragDirection","isDragging","didDrop","getInitialClientOffset","deltaY","direction","dragRef","dragPreviewRef","useDrag","width","end","canDrag","id","getItem","undefined","initialOffset","currentOffset","handleKeyDown","useKeyboardDragAndDrop","isOverDropTarget"],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
 
3
3
  var React = require('react');
4
4
 
5
- function _interopNamespaceDefault(e) {
5
+ function _interopNamespace(e) {
6
+ if (e && e.__esModule) return e;
6
7
  var n = Object.create(null);
7
8
  if (e) {
8
9
  Object.keys(e).forEach(function (k) {
@@ -19,7 +20,7 @@ function _interopNamespaceDefault(e) {
19
20
  return Object.freeze(n);
20
21
  }
21
22
 
22
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
23
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
23
24
 
24
25
  /**
25
26
  * Utility hook designed to implement keyboard accessibile drag and drop by
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardDragAndDrop.js","sources":["../../../../../admin/src/routes/settings/hooks/useKeyboardDragAndDrop.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type UseKeyboardDragAndDropCallbacks<TIndex extends number | Array<number> = number> = {\n onCancel?: (index: TIndex) => void;\n onDropItem?: (currentIndex: TIndex, newIndex?: TIndex) => void;\n onGrabItem?: (index: TIndex) => void;\n onMoveItem?: (newIndex: TIndex, currentIndex: TIndex) => void;\n};\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n */\nexport const useKeyboardDragAndDrop = <TIndex extends number | Array<number> = number>(\n active: boolean,\n index: TIndex,\n { onCancel, onDropItem, onGrabItem, onMoveItem }: UseKeyboardDragAndDropCallbacks<TIndex>\n) => {\n const [isSelected, setIsSelected] = React.useState(false);\n\n const handleMove = (movement: 'UP' | 'DOWN') => {\n if (!isSelected) {\n return;\n }\n if (typeof index === 'number' && onMoveItem) {\n if (movement === 'UP') {\n onMoveItem((index - 1) as TIndex, index);\n } else if (movement === 'DOWN') {\n onMoveItem((index + 1) as TIndex, index);\n }\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n const handleKeyDown = <E extends Element>(e: React.KeyboardEvent<E>) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n"],"names":["useKeyboardDragAndDrop","active","index","onCancel","onDropItem","onGrabItem","onMoveItem","isSelected","setIsSelected","React","useState","handleMove","movement","handleDragClick","handleCancel","handleKeyDown","e","key","preventDefault"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AASA;;;;;AAKC,IACM,MAAMA,sBAAAA,GAAyB,CACpCC,QACAC,KAAAA,EACA,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,UAAU,EAAEC,UAAU,EAA2C,GAAA;AAEzF,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAAA,CAAc,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAEnD,IAAA,MAAMC,aAAa,CAACC,QAAAA,GAAAA;AAClB,QAAA,IAAI,CAACL,UAAAA,EAAY;AACf,YAAA;AACF,QAAA;QACA,IAAI,OAAOL,KAAAA,KAAU,QAAA,IAAYI,UAAAA,EAAY;AAC3C,YAAA,IAAIM,aAAa,IAAA,EAAM;AACrBN,gBAAAA,UAAAA,CAAYJ,QAAQ,CAAA,EAAcA,KAAAA,CAAAA;YACpC,CAAA,MAAO,IAAIU,aAAa,MAAA,EAAQ;AAC9BN,gBAAAA,UAAAA,CAAYJ,QAAQ,CAAA,EAAcA,KAAAA,CAAAA;AACpC,YAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMW,eAAAA,GAAkB,IAAA;AACtB,QAAA,IAAIN,UAAAA,EAAY;AACd,YAAA,IAAIH,UAAAA,EAAY;gBACdA,UAAAA,CAAWF,KAAAA,CAAAA;AACb,YAAA;YACAM,aAAAA,CAAc,KAAA,CAAA;QAChB,CAAA,MAAO;AACL,YAAA,IAAIH,UAAAA,EAAY;gBACdA,UAAAA,CAAWH,KAAAA,CAAAA;AACb,YAAA;YACAM,aAAAA,CAAc,IAAA,CAAA;AAChB,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMM,YAAAA,GAAe,IAAA;AACnB,QAAA,IAAIP,UAAAA,EAAY;YACdC,aAAAA,CAAc,KAAA,CAAA;AAEd,YAAA,IAAIL,QAAAA,EAAU;gBACZA,QAAAA,CAASD,KAAAA,CAAAA;AACX,YAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMa,gBAAgB,CAAoBC,CAAAA,GAAAA;AACxC,QAAA,IAAI,CAACf,MAAAA,EAAQ;AACX,YAAA;AACF,QAAA;AAEA,QAAA,IAAIe,CAAAA,CAAEC,GAAG,KAAK,KAAA,IAAS,CAACV,UAAAA,EAAY;AAClC,YAAA;AACF,QAAA;AAEAS,QAAAA,CAAAA,CAAEE,cAAc,EAAA;AAEhB,QAAA,OAAQF,EAAEC,GAAG;YACX,KAAK,GAAA;YACL,KAAK,OAAA;AACHJ,gBAAAA,eAAAA,EAAAA;AACA,gBAAA;YAEF,KAAK,QAAA;AACHC,gBAAAA,YAAAA,EAAAA;AACA,gBAAA;YAEF,KAAK,WAAA;YACL,KAAK,YAAA;gBACHH,UAAAA,CAAW,MAAA,CAAA;AACX,gBAAA;YAEF,KAAK,SAAA;YACL,KAAK,WAAA;gBACHA,UAAAA,CAAW,IAAA,CAAA;AACX,gBAAA;AAGJ;AACF,IAAA,CAAA;IAEA,OAAOI,aAAAA;AACT;;;;"}
1
+ {"version":3,"file":"useKeyboardDragAndDrop.js","sources":["../../../../../admin/src/routes/settings/hooks/useKeyboardDragAndDrop.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type UseKeyboardDragAndDropCallbacks<TIndex extends number | Array<number> = number> = {\n onCancel?: (index: TIndex) => void;\n onDropItem?: (currentIndex: TIndex, newIndex?: TIndex) => void;\n onGrabItem?: (index: TIndex) => void;\n onMoveItem?: (newIndex: TIndex, currentIndex: TIndex) => void;\n};\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n */\nexport const useKeyboardDragAndDrop = <TIndex extends number | Array<number> = number>(\n active: boolean,\n index: TIndex,\n { onCancel, onDropItem, onGrabItem, onMoveItem }: UseKeyboardDragAndDropCallbacks<TIndex>\n) => {\n const [isSelected, setIsSelected] = React.useState(false);\n\n const handleMove = (movement: 'UP' | 'DOWN') => {\n if (!isSelected) {\n return;\n }\n if (typeof index === 'number' && onMoveItem) {\n if (movement === 'UP') {\n onMoveItem((index - 1) as TIndex, index);\n } else if (movement === 'DOWN') {\n onMoveItem((index + 1) as TIndex, index);\n }\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n const handleKeyDown = <E extends Element>(e: React.KeyboardEvent<E>) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n"],"names":["useKeyboardDragAndDrop","active","index","onCancel","onDropItem","onGrabItem","onMoveItem","isSelected","setIsSelected","React","useState","handleMove","movement","handleDragClick","handleCancel","handleKeyDown","e","key","preventDefault"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASA;;;;;AAKC,IACM,MAAMA,sBAAAA,GAAyB,CACpCC,QACAC,KAAAA,EACA,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,UAAU,EAAEC,UAAU,EAA2C,GAAA;AAEzF,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAAA,CAAc,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAEnD,IAAA,MAAMC,aAAa,CAACC,QAAAA,GAAAA;AAClB,QAAA,IAAI,CAACL,UAAAA,EAAY;AACf,YAAA;AACF,QAAA;QACA,IAAI,OAAOL,KAAAA,KAAU,QAAA,IAAYI,UAAAA,EAAY;AAC3C,YAAA,IAAIM,aAAa,IAAA,EAAM;AACrBN,gBAAAA,UAAAA,CAAYJ,QAAQ,CAAA,EAAcA,KAAAA,CAAAA;YACpC,CAAA,MAAO,IAAIU,aAAa,MAAA,EAAQ;AAC9BN,gBAAAA,UAAAA,CAAYJ,QAAQ,CAAA,EAAcA,KAAAA,CAAAA;AACpC,YAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMW,eAAAA,GAAkB,IAAA;AACtB,QAAA,IAAIN,UAAAA,EAAY;AACd,YAAA,IAAIH,UAAAA,EAAY;gBACdA,UAAAA,CAAWF,KAAAA,CAAAA;AACb,YAAA;YACAM,aAAAA,CAAc,KAAA,CAAA;QAChB,CAAA,MAAO;AACL,YAAA,IAAIH,UAAAA,EAAY;gBACdA,UAAAA,CAAWH,KAAAA,CAAAA;AACb,YAAA;YACAM,aAAAA,CAAc,IAAA,CAAA;AAChB,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMM,YAAAA,GAAe,IAAA;AACnB,QAAA,IAAIP,UAAAA,EAAY;YACdC,aAAAA,CAAc,KAAA,CAAA;AAEd,YAAA,IAAIL,QAAAA,EAAU;gBACZA,QAAAA,CAASD,KAAAA,CAAAA;AACX,YAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMa,gBAAgB,CAAoBC,CAAAA,GAAAA;AACxC,QAAA,IAAI,CAACf,MAAAA,EAAQ;AACX,YAAA;AACF,QAAA;AAEA,QAAA,IAAIe,CAAAA,CAAEC,GAAG,KAAK,KAAA,IAAS,CAACV,UAAAA,EAAY;AAClC,YAAA;AACF,QAAA;AAEAS,QAAAA,CAAAA,CAAEE,cAAc,EAAA;AAEhB,QAAA,OAAQF,EAAEC,GAAG;YACX,KAAK,GAAA;YACL,KAAK,OAAA;AACHJ,gBAAAA,eAAAA,EAAAA;AACA,gBAAA;YAEF,KAAK,QAAA;AACHC,gBAAAA,YAAAA,EAAAA;AACA,gBAAA;YAEF,KAAK,WAAA;YACL,KAAK,YAAA;gBACHH,UAAAA,CAAW,MAAA,CAAA;AACX,gBAAA;YAEF,KAAK,SAAA;YACL,KAAK,WAAA;gBACHA,UAAAA,CAAW,IAAA,CAAA;AACX,gBAAA;AAGJ;AACF,IAAA,CAAA;IAEA,OAAOI,aAAAA;AACT;;;;"}
@@ -5,7 +5,8 @@ var strapiAdmin = require('@strapi/admin/strapi-admin');
5
5
  var reactIntl = require('react-intl');
6
6
  var settings = require('../../../services/settings.js');
7
7
 
8
- function _interopNamespaceDefault(e) {
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
9
10
  var n = Object.create(null);
10
11
  if (e) {
11
12
  Object.keys(e).forEach(function (k) {
@@ -22,7 +23,7 @@ function _interopNamespaceDefault(e) {
22
23
  return Object.freeze(n);
23
24
  }
24
25
 
25
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
26
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
27
 
27
28
  const DEFAULT_UNEXPECTED_ERROR_MSG = {
28
29
  id: 'notification.error',
@@ -1 +1 @@
1
- {"version":3,"file":"useReviewWorkflows.js","sources":["../../../../../admin/src/routes/settings/hooks/useReviewWorkflows.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { type MessageDescriptor, useIntl } from 'react-intl';\n\nimport {\n GetWorkflowsParams,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useGetWorkflowsQuery,\n useUpdateWorkflowMutation,\n} from '../../../services/settings';\n\nimport type { Create, Update } from '../../../../../shared/contracts/review-workflows';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype UseReviewWorkflowsArgs = GetWorkflowsParams & {\n skip?: boolean;\n};\n\nconst useReviewWorkflows = (params: UseReviewWorkflowsArgs = {}) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { skip = false, ...queryParams } = params;\n\n const { data, isLoading, error } = useGetWorkflowsQuery(\n {\n ...queryParams,\n },\n {\n skip,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [createWorkflow] = useCreateWorkflowMutation();\n const create = React.useCallback(\n async (data: Create.Request['body']['data']) => {\n try {\n const res = await createWorkflow({ data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.created', defaultMessage: 'Created workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [createWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const update = React.useCallback(\n async (id: string, data: Update.Request['body']['data']) => {\n try {\n const res = await updateWorkflow({ id, data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.updated', defaultMessage: 'Updated workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [formatAPIError, formatMessage, toggleNotification, updateWorkflow]\n );\n\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n const deleteAction = React.useCallback(\n async (id: string) => {\n try {\n const res = await deleteWorkflow({ id });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.deleted', defaultMessage: 'Deleted workflow' }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const { workflows = [], meta } = data ?? {};\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n workflows,\n isLoading,\n error,\n create,\n delete: deleteAction,\n update,\n };\n};\n\nexport { useReviewWorkflows };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useReviewWorkflows","params","toggleNotification","useNotification","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","skip","queryParams","data","isLoading","error","useGetWorkflowsQuery","React","useEffect","type","message","createWorkflow","useCreateWorkflowMutation","create","useCallback","res","err","updateWorkflow","useUpdateWorkflowMutation","update","deleteWorkflow","useDeleteWorkflowMutation","deleteAction","workflows","meta","delete"],"mappings":"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"}
1
+ {"version":3,"file":"useReviewWorkflows.js","sources":["../../../../../admin/src/routes/settings/hooks/useReviewWorkflows.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { type MessageDescriptor, useIntl } from 'react-intl';\n\nimport {\n GetWorkflowsParams,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useGetWorkflowsQuery,\n useUpdateWorkflowMutation,\n} from '../../../services/settings';\n\nimport type { Create, Update } from '../../../../../shared/contracts/review-workflows';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype UseReviewWorkflowsArgs = GetWorkflowsParams & {\n skip?: boolean;\n};\n\nconst useReviewWorkflows = (params: UseReviewWorkflowsArgs = {}) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { skip = false, ...queryParams } = params;\n\n const { data, isLoading, error } = useGetWorkflowsQuery(\n {\n ...queryParams,\n },\n {\n skip,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [createWorkflow] = useCreateWorkflowMutation();\n const create = React.useCallback(\n async (data: Create.Request['body']['data']) => {\n try {\n const res = await createWorkflow({ data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.created', defaultMessage: 'Created workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [createWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const update = React.useCallback(\n async (id: string, data: Update.Request['body']['data']) => {\n try {\n const res = await updateWorkflow({ id, data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.updated', defaultMessage: 'Updated workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [formatAPIError, formatMessage, toggleNotification, updateWorkflow]\n );\n\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n const deleteAction = React.useCallback(\n async (id: string) => {\n try {\n const res = await deleteWorkflow({ id });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.deleted', defaultMessage: 'Deleted workflow' }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const { workflows = [], meta } = data ?? {};\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n workflows,\n isLoading,\n error,\n create,\n delete: deleteAction,\n update,\n };\n};\n\nexport { useReviewWorkflows };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useReviewWorkflows","params","toggleNotification","useNotification","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","skip","queryParams","data","isLoading","error","useGetWorkflowsQuery","React","useEffect","type","message","createWorkflow","useCreateWorkflowMutation","create","useCallback","res","err","updateWorkflow","useUpdateWorkflowMutation","update","deleteWorkflow","useDeleteWorkflowMutation","deleteAction","workflows","meta","delete"],"mappings":"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"}
@@ -19,7 +19,8 @@ var Stages = require('./components/Stages.js');
19
19
  var WorkflowAttributes = require('./components/WorkflowAttributes.js');
20
20
  var useReviewWorkflows = require('./hooks/useReviewWorkflows.js');
21
21
 
22
- function _interopNamespaceDefault(e) {
22
+ function _interopNamespace(e) {
23
+ if (e && e.__esModule) return e;
23
24
  var n = Object.create(null);
24
25
  if (e) {
25
26
  Object.keys(e).forEach(function (k) {
@@ -36,8 +37,8 @@ function _interopNamespaceDefault(e) {
36
37
  return Object.freeze(n);
37
38
  }
38
39
 
39
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
40
- var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
40
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
41
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
41
42
 
42
43
  const havePermissionsChanged = (before, after)=>{
43
44
  if (before?.length !== after?.length) {