@strapi/review-workflows 0.0.0-experimental.afa3b513b8f95459043f33fb94f4bac03af1474f → 0.0.0-experimental.b05633daea1bf090c66312b8ab30ec13bdb52f57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{Layout-AREWDuuq.js → Layout-DAfX35xh.js} +4 -5
- package/dist/_chunks/Layout-DAfX35xh.js.map +1 -0
- package/dist/_chunks/{Layout-D5aa9iUm.mjs → Layout-DTcaK6xT.mjs} +3 -3
- package/dist/_chunks/Layout-DTcaK6xT.mjs.map +1 -0
- package/dist/_chunks/{en-xcewH2pC.js → en-CYgjfSep.js} +5 -2
- package/dist/_chunks/en-CYgjfSep.js.map +1 -0
- package/dist/_chunks/{en-D9ZrQAV6.mjs → en-D9dxziEb.mjs} +5 -2
- package/dist/_chunks/en-D9dxziEb.mjs.map +1 -0
- package/dist/_chunks/{_id-C7pCAzXV.js → id-CKzKf6TF.js} +80 -25
- package/dist/_chunks/id-CKzKf6TF.js.map +1 -0
- package/dist/_chunks/{_id-DDNHKV_W.mjs → id-CeWP_af0.mjs} +79 -23
- package/dist/_chunks/id-CeWP_af0.mjs.map +1 -0
- package/dist/_chunks/{index-CIBLMG85.js → index-BsGVnBaL.js} +38 -33
- package/dist/_chunks/index-BsGVnBaL.js.map +1 -0
- package/dist/_chunks/{index-CeaoNBIP.mjs → index-Dv9tQUGq.mjs} +12 -33
- package/dist/_chunks/index-Dv9tQUGq.mjs.map +1 -0
- package/dist/_chunks/{index-Cx5QECZI.mjs → index-DzQoUVQo.mjs} +37 -31
- package/dist/_chunks/index-DzQoUVQo.mjs.map +1 -0
- package/dist/_chunks/{index-Bv3cQ3c-.js → index-bL6TS44K.js} +11 -33
- package/dist/_chunks/index-bL6TS44K.js.map +1 -0
- package/dist/_chunks/{purchase-review-workflows-DlCDg0fD.js → purchase-review-workflows-KiBiYXNZ.js} +2 -2
- package/dist/_chunks/{purchase-review-workflows-DlCDg0fD.js.map → purchase-review-workflows-KiBiYXNZ.js.map} +1 -1
- package/dist/_chunks/{purchase-review-workflows-BN-5Ube7.mjs → purchase-review-workflows-WyeSs4Y4.mjs} +2 -2
- package/dist/_chunks/{purchase-review-workflows-BN-5Ube7.mjs.map → purchase-review-workflows-WyeSs4Y4.mjs.map} +1 -1
- package/dist/_chunks/{router-BEoNwQZ1.mjs → router-BUgAAtkq.mjs} +3 -3
- package/dist/_chunks/router-BUgAAtkq.mjs.map +1 -0
- package/dist/_chunks/{router-gRPIa2_c.js → router-DOrCMw1R.js} +3 -3
- package/dist/_chunks/router-DOrCMw1R.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/services/settings.d.ts +7 -3
- package/dist/server/index.js +451 -583
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +451 -583
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/constants/workflows.d.ts +1 -0
- package/dist/server/src/constants/workflows.d.ts.map +1 -1
- package/dist/server/src/content-types/index.d.ts +6 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/content-types/workflow/index.d.ts +6 -0
- package/dist/server/src/content-types/workflow/index.d.ts.map +1 -1
- package/dist/server/src/controllers/assignees.d.ts.map +1 -1
- package/dist/server/src/controllers/stages.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +28 -6
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/services/assignees.d.ts +8 -4
- package/dist/server/src/services/assignees.d.ts.map +1 -1
- package/dist/server/src/services/document-service-middleware.d.ts +1 -0
- package/dist/server/src/services/document-service-middleware.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +16 -6
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics/index.d.ts +4 -4
- package/dist/server/src/services/metrics/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics/weekly-metrics.d.ts.map +1 -1
- package/dist/server/src/services/stages.d.ts +6 -1
- package/dist/server/src/services/stages.d.ts.map +1 -1
- package/dist/server/src/services/workflows.d.ts.map +1 -1
- package/dist/server/src/validation/review-workflows.d.ts +4 -0
- package/dist/server/src/validation/review-workflows.d.ts.map +1 -1
- package/dist/shared/contracts/review-workflows.d.ts +8 -3
- package/dist/shared/contracts/review-workflows.d.ts.map +1 -1
- package/package.json +12 -13
- package/dist/_chunks/Layout-AREWDuuq.js.map +0 -1
- package/dist/_chunks/Layout-D5aa9iUm.mjs.map +0 -1
- package/dist/_chunks/_id-C7pCAzXV.js.map +0 -1
- package/dist/_chunks/_id-DDNHKV_W.mjs.map +0 -1
- package/dist/_chunks/en-D9ZrQAV6.mjs.map +0 -1
- package/dist/_chunks/en-xcewH2pC.js.map +0 -1
- package/dist/_chunks/index-Bv3cQ3c-.js.map +0 -1
- package/dist/_chunks/index-CIBLMG85.js.map +0 -1
- package/dist/_chunks/index-CeaoNBIP.mjs.map +0 -1
- package/dist/_chunks/index-Cx5QECZI.mjs.map +0 -1
- package/dist/_chunks/router-BEoNwQZ1.mjs.map +0 -1
- package/dist/_chunks/router-gRPIa2_c.js.map +0 -1
- /package/dist/admin/src/routes/settings/{:id.d.ts → id.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Dv9tQUGq.mjs","sources":["../../admin/src/routes/settings/index.tsx"],"sourcesContent":["/* eslint-disable check-file/no-index */\n/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport { Page, useTracking, ConfirmDialog, useRBAC, Table } from '@strapi/admin/strapi-admin';\nimport { useLicenseLimits } from '@strapi/admin/strapi-admin/ee';\nimport { Flex, IconButton, TFooter, Typography, LinkButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Link, useNavigate } from 'react-router-dom';\n\nimport { LimitsModal } from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useTypedSelector } from '../../modules/hooks';\nimport { ContentType, useGetContentTypesQuery } from '../../services/content-manager';\n\nimport * as Layout from './components/Layout';\nimport { useReviewWorkflows } from './hooks/useReviewWorkflows';\n\nexport const ReviewWorkflowsListView = () => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const [workflowToDelete, setWorkflowToDelete] = React.useState<string | null>(null);\n const [showLimitModal, setShowLimitModal] = React.useState<boolean>(false);\n const { data, isLoading: isLoadingModels } = useGetContentTypesQuery();\n const { meta, workflows, isLoading, delete: deleteAction } = useReviewWorkflows();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']\n );\n const {\n allowedActions: { canCreate, canRead, canUpdate, canDelete },\n } = useRBAC(permissions);\n\n const limits = getFeature('review-workflows');\n const numberOfWorkflows = limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] as string;\n\n const handleDeleteWorkflow = (workflowId: string) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n if (!workflowToDelete) return;\n\n await deleteAction(workflowToDelete);\n\n setWorkflowToDelete(null);\n };\n\n const handleCreateClick: React.MouseEventHandler<HTMLAnchorElement> &\n ((event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void) = (event) => {\n event.preventDefault();\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (numberOfWorkflows && meta && meta?.workflowCount >= parseInt(numberOfWorkflows, 10)) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n navigate('create');\n trackUsage('willCreateWorkflow');\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (numberOfWorkflows && meta && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, meta, meta?.workflowCount, numberOfWorkflows]);\n\n const headers = [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n }),\n name: 'name',\n },\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n }),\n name: 'stages',\n },\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n }),\n name: 'content-types',\n },\n ];\n\n if (isLoading || isLoadingModels) {\n return <Page.Loading />;\n }\n\n const contentTypes = Object.values(data ?? {}).reduce<ContentType[]>((acc, curr) => {\n acc.push(...curr);\n return acc;\n }, []);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate ? (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n tag={NavLink}\n to=\"create\"\n onClick={handleCreateClick}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n ) : null\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n <Table.Root\n isLoading={isLoading}\n rows={workflows}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" icon={<Plus />} onClick={handleCreateClick}>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n ) : null\n }\n headers={headers}\n >\n <Table.Content>\n <Table.Head>\n {headers.map((head) => (\n <Table.HeaderCell key={head.name} {...head} />\n ))}\n </Table.Head>\n\n <Table.Body>\n {workflows.map((workflow) => (\n <Table.Row\n onClick={() => {\n navigate(`${workflow.id}`);\n }}\n key={workflow.id}\n >\n <Table.Cell width=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Table.Cell>\n <Table.Cell>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Table.Cell>\n <Table.Cell>\n <Typography textColor=\"neutral800\">\n {workflow.contentTypes\n .map((uid: string) => {\n const contentType = contentTypes.find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType?.info.displayName ?? '';\n })\n .join(', ')}\n </Typography>\n </Table.Cell>\n <Table.Cell>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n {canRead || canUpdate ? (\n <IconButton\n tag={Link}\n to={workflow.id.toString()}\n label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {workflows.length > 1 && canDelete ? (\n <IconButton\n withTooltip={false}\n label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n variant=\"ghost\"\n onClick={(e) => {\n e.stopPropagation();\n handleDeleteWorkflow(String(workflow.id));\n }}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Dialog.Root open={!!workflowToDelete} onOpenChange={toggleConfirmDeleteDialog}>\n <ConfirmDialog onConfirm={handleConfirmDeleteDialog}>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n\n <LimitsModal.Root open={showLimitModal} onOpenChange={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ReviewWorkflowsListView />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage };\n"],"names":["Layout.Header","Layout.Root","contentType"],"mappings":";;;;;;;;;;AAmBO,MAAM,0BAA0B,MAAM;AACrC,QAAA,EAAE,cAAc,IAAI,QAAQ;AAClC,QAAM,WAAW,YAAY;AACvB,QAAA,EAAE,WAAW,IAAI,YAAY;AACnC,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAAwB,IAAI;AAClF,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAAkB,KAAK;AACzE,QAAM,EAAE,MAAM,WAAW,gBAAA,IAAoB,wBAAwB;AACrE,QAAM,EAAE,MAAM,WAAW,WAAW,QAAQ,iBAAiB,mBAAmB;AAChF,QAAM,EAAE,YAAY,WAAW,iBAAA,IAAqB,iBAAiB;AACrE,QAAM,cAAc;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,WAAW,kBAAkB;AAAA,EACtE;AACM,QAAA;AAAA,IACJ,gBAAgB,EAAE,WAAW,SAAS,WAAW,UAAU;AAAA,EAAA,IACzD,QAAQ,WAAW;AAEjB,QAAA,SAAS,WAAW,kBAAkB;AACtC,QAAA,oBAAoB,SAAS,mCAAmC;AAEhE,QAAA,uBAAuB,CAAC,eAAuB;AACnD,wBAAoB,UAAU;AAAA,EAChC;AAEA,QAAM,4BAA4B,MAAM;AACtC,wBAAoB,IAAI;AAAA,EAC1B;AAEA,QAAM,4BAA4B,YAAY;AAC5C,QAAI,CAAC,iBAAkB;AAEvB,UAAM,aAAa,gBAAgB;AAEnC,wBAAoB,IAAI;AAAA,EAC1B;AAEM,QAAA,oBACiE,CAAC,UAAU;AAChF,UAAM,eAAe;AAWrB,QAAI,qBAAqB,QAAQ,MAAM,iBAAiB,SAAS,mBAAmB,EAAE,GAAG;AACvF,YAAM,eAAe;AACrB,wBAAkB,IAAI;AAAA,IAAA,OACjB;AACL,eAAS,QAAQ;AACjB,iBAAW,oBAAoB;AAAA,IAAA;AAAA,EAEnC;AAcA,QAAM,UAAU,MAAM;AAChB,QAAA,CAAC,aAAa,CAAC,kBAAkB;AACnC,UAAI,qBAAqB,QAAQ,MAAM,gBAAgB,SAAS,mBAAmB,EAAE,GAAG;AACtF,0BAAkB,IAAI;AAAA,MAAA;AAAA,IACxB;AAAA,EACF,GACC,CAAC,kBAAkB,WAAW,MAAM,MAAM,eAAe,iBAAiB,CAAC;AAE9E,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO,cAAc;AAAA,QACnB,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,MACD,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,OAAO,cAAc;AAAA,QACnB,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,MACD,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,OAAO,cAAc;AAAA,QACnB,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,MACD,MAAM;AAAA,IAAA;AAAA,EAEV;AAEA,MAAI,aAAa,iBAAiB;AACzB,WAAA,oBAAC,KAAK,SAAL,EAAa;AAAA,EAAA;AAGjB,QAAA,eAAe,OAAO,OAAO,QAAQ,CAAE,CAAA,EAAE,OAAsB,CAAC,KAAK,SAAS;AAC9E,QAAA,KAAK,GAAG,IAAI;AACT,WAAA;AAAA,EACT,GAAG,EAAE;AAEL,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAACA;AAAAA,MAAA;AAAA,QACC,eACE,YACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,+BAAY,MAAK,EAAA;AAAA,YACjB,MAAK;AAAA,YACL,KAAK;AAAA,YACL,IAAG;AAAA,YACH,SAAS;AAAA,YAER,UAAc,cAAA;AAAA,cACb,IAAI;AAAA,cACJ,gBAAgB;AAAA,YACjB,CAAA;AAAA,UAAA;AAAA,QAAA,IAED;AAAA,QAEN,UAAU,cAAc;AAAA,UACtB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,OAAO,cAAc;AAAA,UACnB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QACjB,CAAA;AAAA,MAAA;AAAA,IACH;AAAA,IAEA,qBAACC,MAAA,EACC,UAAA;AAAA,MAAA;AAAA,QAAC,MAAM;AAAA,QAAN;AAAA,UACC;AAAA,UACA,MAAM;AAAA,UACN,QACE,YACG,oBAAA,SAAA,EAAQ,QAAO,WAAU,MAAM,oBAAC,MAAK,CAAA,CAAA,GAAI,SAAS,mBAChD,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB,GACH,IACE;AAAA,UAEN;AAAA,UAEA,UAAA,qBAAC,MAAM,SAAN,EACC,UAAA;AAAA,YAAA,oBAAC,MAAM,MAAN,EACE,UAAQ,QAAA,IAAI,CAAC,SACZ,oBAAC,MAAM,YAAN,EAAkC,GAAG,KAAA,GAAf,KAAK,IAAgB,CAC7C,GACH;AAAA,gCAEC,MAAM,MAAN,EACE,UAAU,UAAA,IAAI,CAAC,aACd;AAAA,cAAC,MAAM;AAAA,cAAN;AAAA,gBACC,SAAS,MAAM;AACJ,2BAAA,GAAG,SAAS,EAAE,EAAE;AAAA,gBAC3B;AAAA,gBAGA,UAAA;AAAA,kBAAA,oBAAC,MAAM,MAAN,EAAW,OAAM,SAChB,UAAC,oBAAA,YAAA,EAAW,WAAU,cAAa,YAAW,QAAO,UAAQ,MAC1D,UAAA,SAAS,KACZ,CAAA,GACF;AAAA,kBACA,oBAAC,MAAM,MAAN,EACC,UAAA,oBAAC,YAAW,EAAA,WAAU,cAAc,UAAA,SAAS,OAAO,OAAA,CAAO,EAC7D,CAAA;AAAA,kBACC,oBAAA,MAAM,MAAN,EACC,UAAC,oBAAA,YAAA,EAAW,WAAU,cACnB,UAAS,SAAA,aACP,IAAI,CAAC,QAAgB;AACpB,0BAAM,cAAc,aAAa;AAAA,sBAC/B,CAACC,iBAAgBA,aAAY,QAAQ;AAAA,oBACvC;AAEO,2BAAA,aAAa,KAAK,eAAe;AAAA,kBACzC,CAAA,EACA,KAAK,IAAI,GACd,EACF,CAAA;AAAA,kBACA,oBAAC,MAAM,MAAN,EACC,+BAAC,MAAK,EAAA,YAAW,UAAS,gBAAe,OACtC,UAAA;AAAA,oBAAA,WAAW,YACV;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,KAAK;AAAA,wBACL,IAAI,SAAS,GAAG,SAAS;AAAA,wBACzB,OAAO;AAAA,0BACL;AAAA,4BACE,IAAI;AAAA,4BACJ,gBAAgB;AAAA,0BAClB;AAAA,0BACA,EAAE,MAAM,SAAS,KAAK;AAAA,wBACxB;AAAA,wBACA,SAAQ;AAAA,wBAER,8BAAC,QAAO,CAAA,CAAA;AAAA,sBAAA;AAAA,oBAAA,IAER;AAAA,oBACH,UAAU,SAAS,KAAK,YACvB;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,aAAa;AAAA,wBACb,OAAO;AAAA,0BACL;AAAA,4BACE,IAAI;AAAA,4BACJ,gBAAgB;AAAA,0BAClB;AAAA,0BACA,EAAE,MAAM,mBAAmB;AAAA,wBAC7B;AAAA,wBACA,SAAQ;AAAA,wBACR,SAAS,CAAC,MAAM;AACd,4BAAE,gBAAgB;AACG,+CAAA,OAAO,SAAS,EAAE,CAAC;AAAA,wBAC1C;AAAA,wBAEA,8BAAC,OAAM,CAAA,CAAA;AAAA,sBAAA;AAAA,oBAAA,IAEP;AAAA,kBAAA,EAAA,CACN,EACF,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cA7DK,SAAS;AAAA,YAAA,CA+DjB,EACH,CAAA;AAAA,UAAA,EACF,CAAA;AAAA,QAAA;AAAA,MACF;AAAA,MAEC,oBAAA,OAAO,MAAP,EAAY,MAAM,CAAC,CAAC,kBAAkB,cAAc,2BACnD,UAAA,oBAAC,eAAc,EAAA,WAAW,2BACvB,UAAc,cAAA;AAAA,QACb,IAAI;AAAA,QACJ,gBACE;AAAA,MAAA,CACH,GACH,EACF,CAAA;AAAA,MAEA,qBAAC,YAAY,MAAZ,EAAiB,MAAM,gBAAgB,cAAc,MAAM,kBAAkB,KAAK,GACjF,UAAA;AAAA,QAAC,oBAAA,YAAY,OAAZ,EACE,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QACjB,CAAA,GACH;AAAA,QAEC,oBAAA,YAAY,MAAZ,EACE,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB,EACH,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;AAEA,MAAM,oBAAoB,MAAM;AAC9B,QAAM,cAAc;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,WAAW,kBAAkB,GAAG;AAAA,EACzE;AAEA,6BACG,KAAK,SAAL,EAAa,aACZ,UAAA,oBAAC,0BAAwB,CAAA,GAC3B;AAEJ;"}
|
|
@@ -9,13 +9,20 @@ import { useSelector } from "react-redux";
|
|
|
9
9
|
import { useLicenseLimits } from "@strapi/admin/strapi-admin/ee";
|
|
10
10
|
import { Cross } from "@strapi/icons";
|
|
11
11
|
import { styled } from "styled-components";
|
|
12
|
-
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
|
12
|
+
const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
|
|
13
13
|
const v = glob[path];
|
|
14
14
|
if (v) {
|
|
15
15
|
return typeof v === "function" ? v() : Promise.resolve(v);
|
|
16
16
|
}
|
|
17
17
|
return new Promise((_, reject) => {
|
|
18
|
-
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
|
18
|
+
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
|
19
|
+
reject.bind(
|
|
20
|
+
null,
|
|
21
|
+
new Error(
|
|
22
|
+
"Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
|
|
23
|
+
)
|
|
24
|
+
)
|
|
25
|
+
);
|
|
19
26
|
});
|
|
20
27
|
};
|
|
21
28
|
const PLUGIN_ID = "review-workflows";
|
|
@@ -120,8 +127,7 @@ const isBaseQueryError = (error) => {
|
|
|
120
127
|
return error.name !== void 0;
|
|
121
128
|
};
|
|
122
129
|
const buildValidParams = (query) => {
|
|
123
|
-
if (!query)
|
|
124
|
-
return query;
|
|
130
|
+
if (!query) return query;
|
|
125
131
|
const { plugins: _, ...validQueryParams } = {
|
|
126
132
|
...query,
|
|
127
133
|
...Object.values(query?.plugins ?? {}).reduce(
|
|
@@ -129,9 +135,6 @@ const buildValidParams = (query) => {
|
|
|
129
135
|
{}
|
|
130
136
|
)
|
|
131
137
|
};
|
|
132
|
-
if ("_q" in validQueryParams) {
|
|
133
|
-
validQueryParams._q = encodeURIComponent(validQueryParams._q);
|
|
134
|
-
}
|
|
135
138
|
return validQueryParams;
|
|
136
139
|
};
|
|
137
140
|
const getDisplayName = ({
|
|
@@ -176,13 +179,13 @@ const AssigneeSelect = () => {
|
|
|
176
179
|
documentId: id
|
|
177
180
|
},
|
|
178
181
|
{
|
|
179
|
-
skip: !id
|
|
182
|
+
skip: !id && collectionType !== "single-types"
|
|
180
183
|
}
|
|
181
184
|
);
|
|
182
185
|
const users = data?.users || [];
|
|
183
186
|
const currentAssignee = document ? document[ASSIGNEE_ATTRIBUTE_NAME] : null;
|
|
184
187
|
const [updateAssignee, { error, isLoading: isMutating }] = useUpdateAssigneeMutation();
|
|
185
|
-
if (!collectionType || !model || !
|
|
188
|
+
if (!collectionType || !model || !document?.documentId) {
|
|
186
189
|
return null;
|
|
187
190
|
}
|
|
188
191
|
const handleChange = async (assigneeId) => {
|
|
@@ -192,7 +195,7 @@ const AssigneeSelect = () => {
|
|
|
192
195
|
const res = await updateAssignee({
|
|
193
196
|
slug: collectionType,
|
|
194
197
|
model,
|
|
195
|
-
id,
|
|
198
|
+
id: document.documentId,
|
|
196
199
|
params,
|
|
197
200
|
data: {
|
|
198
201
|
id: assigneeId ? parseInt(assigneeId, 10) : null
|
|
@@ -229,7 +232,7 @@ const AssigneeSelect = () => {
|
|
|
229
232
|
id: "content-manager.reviewWorkflows.assignee.clear",
|
|
230
233
|
defaultMessage: "Clear assignee"
|
|
231
234
|
}),
|
|
232
|
-
disabled: !isLoadingPermissions && !isLoading && users.length === 0 || !
|
|
235
|
+
disabled: !isLoadingPermissions && !isLoading && users.length === 0 || !document.documentId,
|
|
233
236
|
value: currentAssignee ? currentAssignee.id.toString() : null,
|
|
234
237
|
onChange: handleChange,
|
|
235
238
|
onClear: () => handleChange(null),
|
|
@@ -371,25 +374,26 @@ const StageSelect = () => {
|
|
|
371
374
|
const { toggleNotification } = useNotification();
|
|
372
375
|
const [{ query }] = useQueryParams();
|
|
373
376
|
const params = React.useMemo(() => buildValidParams(query), [query]);
|
|
374
|
-
const {
|
|
377
|
+
const { document, isLoading: isLoadingDocument } = unstable_useDocument(
|
|
375
378
|
{
|
|
376
|
-
|
|
379
|
+
collectionType,
|
|
377
380
|
model,
|
|
378
|
-
id
|
|
379
|
-
params
|
|
381
|
+
documentId: id
|
|
380
382
|
},
|
|
381
383
|
{
|
|
382
|
-
skip: !id
|
|
384
|
+
skip: !id && collectionType !== "single-types"
|
|
383
385
|
}
|
|
384
386
|
);
|
|
385
|
-
const {
|
|
387
|
+
const { data, isLoading: isLoadingStages } = useGetStagesQuery(
|
|
386
388
|
{
|
|
387
|
-
collectionType,
|
|
389
|
+
slug: collectionType,
|
|
388
390
|
model,
|
|
389
|
-
|
|
391
|
+
// @ts-expect-error – `id` is not correctly typed in the DS.
|
|
392
|
+
id: document?.documentId,
|
|
393
|
+
params
|
|
390
394
|
},
|
|
391
395
|
{
|
|
392
|
-
skip: !
|
|
396
|
+
skip: !document?.documentId
|
|
393
397
|
}
|
|
394
398
|
);
|
|
395
399
|
const { meta, stages = [] } = data ?? {};
|
|
@@ -405,10 +409,10 @@ const StageSelect = () => {
|
|
|
405
409
|
} else if (limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] && parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) < stages.length) {
|
|
406
410
|
setShowLimitModal("stage");
|
|
407
411
|
} else {
|
|
408
|
-
if (
|
|
412
|
+
if (document?.documentId) {
|
|
409
413
|
const res = await updateStage({
|
|
410
414
|
model,
|
|
411
|
-
id,
|
|
415
|
+
id: document.documentId,
|
|
412
416
|
slug: collectionType,
|
|
413
417
|
params,
|
|
414
418
|
data: { id: stageId }
|
|
@@ -435,6 +439,7 @@ const StageSelect = () => {
|
|
|
435
439
|
}
|
|
436
440
|
};
|
|
437
441
|
const { themeColorName } = getStageColorByHex(activeWorkflowStage?.color) ?? {};
|
|
442
|
+
const isLoading = isLoadingStages || isLoadingDocument;
|
|
438
443
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
439
444
|
/* @__PURE__ */ jsxs(
|
|
440
445
|
Field.Root,
|
|
@@ -547,12 +552,16 @@ const StageSelect = () => {
|
|
|
547
552
|
] });
|
|
548
553
|
};
|
|
549
554
|
const Panel = () => {
|
|
550
|
-
const {
|
|
555
|
+
const {
|
|
556
|
+
slug = "",
|
|
557
|
+
id,
|
|
558
|
+
collectionType
|
|
559
|
+
} = useParams();
|
|
551
560
|
const {
|
|
552
561
|
edit: { options }
|
|
553
562
|
} = unstable_useDocumentLayout(slug);
|
|
554
563
|
const { formatMessage } = useIntl();
|
|
555
|
-
if (!window.strapi.isEE || !options?.reviewWorkflows || !id || id === "create") {
|
|
564
|
+
if (!window.strapi.isEE || !options?.reviewWorkflows || collectionType !== "single-types" && !id || id === "create") {
|
|
556
565
|
return null;
|
|
557
566
|
}
|
|
558
567
|
return {
|
|
@@ -725,9 +734,6 @@ const addColumnToTableHook = ({ displayedHeaders, layout }) => {
|
|
|
725
734
|
};
|
|
726
735
|
};
|
|
727
736
|
const prefixPluginTranslations = (trad, pluginId) => {
|
|
728
|
-
if (!pluginId) {
|
|
729
|
-
throw new TypeError("pluginId can't be empty");
|
|
730
|
-
}
|
|
731
737
|
return Object.keys(trad).reduce((acc, current) => {
|
|
732
738
|
acc[`${pluginId}.${current}`] = trad[current];
|
|
733
739
|
return acc;
|
|
@@ -750,7 +756,7 @@ const admin = {
|
|
|
750
756
|
},
|
|
751
757
|
permissions: [],
|
|
752
758
|
async Component() {
|
|
753
|
-
const { Router } = await import("./router-
|
|
759
|
+
const { Router } = await import("./router-BUgAAtkq.mjs");
|
|
754
760
|
return { default: Router };
|
|
755
761
|
}
|
|
756
762
|
});
|
|
@@ -765,7 +771,7 @@ const admin = {
|
|
|
765
771
|
licenseOnly: true,
|
|
766
772
|
permissions: [],
|
|
767
773
|
async Component() {
|
|
768
|
-
const { PurchaseReviewWorkflows } = await import("./purchase-review-workflows-
|
|
774
|
+
const { PurchaseReviewWorkflows } = await import("./purchase-review-workflows-WyeSs4Y4.mjs");
|
|
769
775
|
return { default: PurchaseReviewWorkflows };
|
|
770
776
|
}
|
|
771
777
|
});
|
|
@@ -774,7 +780,7 @@ const admin = {
|
|
|
774
780
|
async registerTrads({ locales }) {
|
|
775
781
|
const importedTrads = await Promise.all(
|
|
776
782
|
locales.map((locale) => {
|
|
777
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("./en-
|
|
783
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("./en-D9dxziEb.mjs") }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
|
|
778
784
|
return {
|
|
779
785
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
|
780
786
|
locale
|
|
@@ -806,4 +812,4 @@ export {
|
|
|
806
812
|
reviewWorkflowsApi as r,
|
|
807
813
|
useGetContentTypesQuery as u
|
|
808
814
|
};
|
|
809
|
-
//# sourceMappingURL=index-
|
|
815
|
+
//# sourceMappingURL=index-DzQoUVQo.mjs.map
|