@strapi/content-releases 5.12.1 → 5.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/assets/purchase-page-illustration-dark.svg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +1 -0
- package/dist/admin/components/EntryValidationPopover.js +344 -0
- package/dist/admin/components/EntryValidationPopover.js.map +1 -0
- package/dist/admin/components/EntryValidationPopover.mjs +342 -0
- package/dist/admin/components/EntryValidationPopover.mjs.map +1 -0
- package/dist/admin/components/RelativeTime.js +76 -0
- package/dist/admin/components/RelativeTime.js.map +1 -0
- package/dist/admin/components/RelativeTime.mjs +55 -0
- package/dist/admin/components/RelativeTime.mjs.map +1 -0
- package/dist/admin/components/ReleaseAction.js +201 -0
- package/dist/admin/components/ReleaseAction.js.map +1 -0
- package/dist/admin/components/ReleaseAction.mjs +199 -0
- package/dist/admin/components/ReleaseAction.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.js +243 -0
- package/dist/admin/components/ReleaseActionMenu.js.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.mjs +222 -0
- package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionModal.js +268 -0
- package/dist/admin/components/ReleaseActionModal.js.map +1 -0
- package/dist/admin/components/ReleaseActionModal.mjs +244 -0
- package/dist/admin/components/ReleaseActionModal.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.js +104 -0
- package/dist/admin/components/ReleaseActionOptions.js.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.mjs +102 -0
- package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -0
- package/dist/admin/components/ReleaseListCell.js +103 -0
- package/dist/admin/components/ReleaseListCell.js.map +1 -0
- package/dist/admin/components/ReleaseListCell.mjs +100 -0
- package/dist/admin/components/ReleaseListCell.mjs.map +1 -0
- package/dist/admin/components/ReleaseModal.js +323 -0
- package/dist/admin/components/ReleaseModal.js.map +1 -0
- package/dist/admin/components/ReleaseModal.mjs +302 -0
- package/dist/admin/components/ReleaseModal.mjs.map +1 -0
- package/dist/admin/components/ReleasesPanel.js +138 -0
- package/dist/admin/components/ReleasesPanel.js.map +1 -0
- package/dist/admin/components/ReleasesPanel.mjs +136 -0
- package/dist/admin/components/ReleasesPanel.mjs.map +1 -0
- package/dist/admin/constants.js +77 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +75 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/index.js +120 -14
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +121 -13
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/{chunks/hooks-DA5VbUAp.js → modules/hooks.js} +1 -1
- package/dist/admin/modules/hooks.js.map +1 -0
- package/dist/admin/{chunks/hooks-CFk_8Q0b.mjs → modules/hooks.mjs} +2 -2
- package/dist/admin/modules/hooks.mjs.map +1 -0
- package/dist/admin/pages/App.js +29 -0
- package/dist/admin/pages/App.js.map +1 -0
- package/dist/admin/pages/App.mjs +27 -0
- package/dist/admin/pages/App.mjs.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.js +192 -0
- package/dist/admin/pages/PurchaseContentReleases.js.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs +190 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.js +821 -0
- package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs +800 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -0
- package/dist/admin/pages/ReleasesPage.js +397 -0
- package/dist/admin/pages/ReleasesPage.js.map +1 -0
- package/dist/admin/pages/ReleasesPage.mjs +375 -0
- package/dist/admin/pages/ReleasesPage.mjs.map +1 -0
- package/dist/admin/{chunks/ReleasesSettingsPage-KRcoI1bC.js → pages/ReleasesSettingsPage.js} +9 -17
- package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -0
- package/dist/admin/{chunks/ReleasesSettingsPage-DUKdFdvx.mjs → pages/ReleasesSettingsPage.mjs} +5 -13
- package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/services/release.js +464 -0
- package/dist/admin/services/release.js.map +1 -0
- package/dist/admin/services/release.mjs +447 -0
- package/dist/admin/services/release.mjs.map +1 -0
- package/dist/admin/store/hooks.js +8 -0
- package/dist/admin/store/hooks.js.map +1 -0
- package/dist/admin/store/hooks.mjs +6 -0
- package/dist/admin/store/hooks.mjs.map +1 -0
- package/dist/admin/{chunks/en-BOpqX2t_.js → translations/en.json.js} +2 -2
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-aQo8Bn_U.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-9T9su-bj.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-Bp9HotPq.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/utils/api.js +8 -0
- package/dist/admin/utils/api.js.map +1 -0
- package/dist/admin/utils/api.mjs +6 -0
- package/dist/admin/utils/api.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/time.js +42 -0
- package/dist/admin/utils/time.js.map +1 -0
- package/dist/admin/utils/time.mjs +39 -0
- package/dist/admin/utils/time.mjs.map +1 -0
- package/dist/admin/{chunks/schemas-DS7NeFDN.js → validation/schemas.js} +1 -1
- package/dist/admin/validation/schemas.js.map +1 -0
- package/dist/admin/{chunks/schemas-DMt8h1z-.mjs → validation/schemas.mjs} +2 -2
- package/dist/admin/validation/schemas.mjs.map +1 -0
- package/dist/server/bootstrap.js +68 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +66 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/constants.js +74 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/constants.mjs +69 -0
- package/dist/server/constants.mjs.map +1 -0
- package/dist/server/content-types/index.js +12 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +10 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/content-types/release/index.js +10 -0
- package/dist/server/content-types/release/index.js.map +1 -0
- package/dist/server/content-types/release/index.mjs +8 -0
- package/dist/server/content-types/release/index.mjs.map +1 -0
- package/dist/server/content-types/release/schema.js +58 -0
- package/dist/server/content-types/release/schema.js.map +1 -0
- package/dist/server/content-types/release/schema.mjs +56 -0
- package/dist/server/content-types/release/schema.mjs.map +1 -0
- package/dist/server/content-types/release-action/index.js +10 -0
- package/dist/server/content-types/release-action/index.js.map +1 -0
- package/dist/server/content-types/release-action/index.mjs +8 -0
- package/dist/server/content-types/release-action/index.mjs.map +1 -0
- package/dist/server/content-types/release-action/schema.js +55 -0
- package/dist/server/content-types/release-action/schema.js.map +1 -0
- package/dist/server/content-types/release-action/schema.mjs +53 -0
- package/dist/server/content-types/release-action/schema.mjs.map +1 -0
- package/dist/server/controllers/index.js +14 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +12 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/release-action.js +150 -0
- package/dist/server/controllers/release-action.js.map +1 -0
- package/dist/server/controllers/release-action.mjs +148 -0
- package/dist/server/controllers/release-action.mjs.map +1 -0
- package/dist/server/controllers/release.js +302 -0
- package/dist/server/controllers/release.js.map +1 -0
- package/dist/server/controllers/release.mjs +300 -0
- package/dist/server/controllers/release.mjs.map +1 -0
- package/dist/server/controllers/settings.js +37 -0
- package/dist/server/controllers/settings.js.map +1 -0
- package/dist/server/controllers/settings.mjs +35 -0
- package/dist/server/controllers/settings.mjs.map +1 -0
- package/dist/server/controllers/validation/release-action.js +34 -0
- package/dist/server/controllers/validation/release-action.js.map +1 -0
- package/dist/server/controllers/validation/release-action.mjs +30 -0
- package/dist/server/controllers/validation/release-action.mjs.map +1 -0
- package/dist/server/controllers/validation/release.js +26 -0
- package/dist/server/controllers/validation/release.js.map +1 -0
- package/dist/server/controllers/validation/release.mjs +22 -0
- package/dist/server/controllers/validation/release.mjs.map +1 -0
- package/dist/server/controllers/validation/settings.js +32 -0
- package/dist/server/controllers/validation/settings.js.map +1 -0
- package/dist/server/controllers/validation/settings.mjs +10 -0
- package/dist/server/controllers/validation/settings.mjs.map +1 -0
- package/dist/server/destroy.js +15 -0
- package/dist/server/destroy.js.map +1 -0
- package/dist/server/destroy.mjs +13 -0
- package/dist/server/destroy.mjs.map +1 -0
- package/dist/server/index.js +16 -2336
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +7 -2308
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middlewares/documents.js +104 -0
- package/dist/server/middlewares/documents.js.map +1 -0
- package/dist/server/middlewares/documents.mjs +101 -0
- package/dist/server/middlewares/documents.mjs.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +51 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +49 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +1 -0
- package/dist/server/migrations/index.js +205 -0
- package/dist/server/migrations/index.js.map +1 -0
- package/dist/server/migrations/index.mjs +198 -0
- package/dist/server/migrations/index.mjs.map +1 -0
- package/dist/server/register.js +23 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +21 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/index.js +14 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +12 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/release-action.js +100 -0
- package/dist/server/routes/release-action.js.map +1 -0
- package/dist/server/routes/release-action.mjs +98 -0
- package/dist/server/routes/release-action.mjs.map +1 -0
- package/dist/server/routes/release.js +154 -0
- package/dist/server/routes/release.js.map +1 -0
- package/dist/server/routes/release.mjs +152 -0
- package/dist/server/routes/release.mjs.map +1 -0
- package/dist/server/routes/settings.js +46 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/settings.mjs +44 -0
- package/dist/server/routes/settings.mjs.map +1 -0
- package/dist/server/services/index.js +18 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +16 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/release-action.js +323 -0
- package/dist/server/services/release-action.js.map +1 -0
- package/dist/server/services/release-action.mjs +321 -0
- package/dist/server/services/release-action.mjs.map +1 -0
- package/dist/server/services/release.js +324 -0
- package/dist/server/services/release.js.map +1 -0
- package/dist/server/services/release.mjs +322 -0
- package/dist/server/services/release.mjs.map +1 -0
- package/dist/server/services/scheduling.js +70 -0
- package/dist/server/services/scheduling.js.map +1 -0
- package/dist/server/services/scheduling.mjs +68 -0
- package/dist/server/services/scheduling.mjs.map +1 -0
- package/dist/server/services/settings.js +34 -0
- package/dist/server/services/settings.js.map +1 -0
- package/dist/server/services/settings.mjs +32 -0
- package/dist/server/services/settings.mjs.map +1 -0
- package/dist/server/services/validation.js +91 -0
- package/dist/server/services/validation.js.map +1 -0
- package/dist/server/services/validation.mjs +86 -0
- package/dist/server/services/validation.mjs.map +1 -0
- package/dist/server/utils/index.js +93 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +87 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/package.json +7 -7
- package/dist/admin/chunks/App-BkWgp5q_.mjs +0 -1845
- package/dist/admin/chunks/App-BkWgp5q_.mjs.map +0 -1
- package/dist/admin/chunks/App-CJiqPP7-.js +0 -1866
- package/dist/admin/chunks/App-CJiqPP7-.js.map +0 -1
- package/dist/admin/chunks/PurchaseContentReleases-CzayeVUD.mjs +0 -193
- package/dist/admin/chunks/PurchaseContentReleases-CzayeVUD.mjs.map +0 -1
- package/dist/admin/chunks/PurchaseContentReleases-Z9uEPb5b.js +0 -195
- package/dist/admin/chunks/PurchaseContentReleases-Z9uEPb5b.js.map +0 -1
- package/dist/admin/chunks/ReleasesSettingsPage-DUKdFdvx.mjs.map +0 -1
- package/dist/admin/chunks/ReleasesSettingsPage-KRcoI1bC.js.map +0 -1
- package/dist/admin/chunks/en-BOpqX2t_.js.map +0 -1
- package/dist/admin/chunks/en-aQo8Bn_U.mjs.map +0 -1
- package/dist/admin/chunks/hooks-CFk_8Q0b.mjs.map +0 -1
- package/dist/admin/chunks/hooks-DA5VbUAp.js.map +0 -1
- package/dist/admin/chunks/index-DBUaMD56.mjs +0 -1619
- package/dist/admin/chunks/index-DBUaMD56.mjs.map +0 -1
- package/dist/admin/chunks/index-vjWrvGN3.js +0 -1658
- package/dist/admin/chunks/index-vjWrvGN3.js.map +0 -1
- package/dist/admin/chunks/schemas-DMt8h1z-.mjs.map +0 -1
- package/dist/admin/chunks/schemas-DS7NeFDN.js.map +0 -1
- package/dist/admin/chunks/uk-9T9su-bj.js.map +0 -1
- package/dist/admin/chunks/uk-Bp9HotPq.mjs.map +0 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
require('react');
|
|
5
|
+
var designSystem = require('@strapi/design-system');
|
|
6
|
+
var styledComponents = require('styled-components');
|
|
7
|
+
|
|
8
|
+
const getBorderLeftRadiusValue = (actionType)=>{
|
|
9
|
+
return actionType === 'publish' ? 1 : 0;
|
|
10
|
+
};
|
|
11
|
+
const getBorderRightRadiusValue = (actionType)=>{
|
|
12
|
+
return actionType === 'publish' ? 0 : 1;
|
|
13
|
+
};
|
|
14
|
+
const FieldWrapper = styledComponents.styled(designSystem.Field.Root)`
|
|
15
|
+
border-top-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
16
|
+
border-bottom-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
17
|
+
border-top-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
18
|
+
border-bottom-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
19
|
+
|
|
20
|
+
> label {
|
|
21
|
+
color: inherit;
|
|
22
|
+
padding: ${({ theme })=>`${theme.spaces[2]} ${theme.spaces[3]}`};
|
|
23
|
+
text-align: center;
|
|
24
|
+
vertical-align: middle;
|
|
25
|
+
text-transform: capitalize;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&[data-checked='true'] {
|
|
29
|
+
color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
|
|
30
|
+
background-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};
|
|
31
|
+
border-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&[data-checked='false'] {
|
|
35
|
+
border-left: ${({ $actionType })=>$actionType === 'unpublish' && 'none'};
|
|
36
|
+
border-right: ${({ $actionType })=>$actionType === 'publish' && 'none'};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&[data-checked='false'][data-disabled='false']:hover {
|
|
40
|
+
color: ${({ theme })=>theme.colors.neutral700};
|
|
41
|
+
background-color: ${({ theme })=>theme.colors.neutral100};
|
|
42
|
+
border-color: ${({ theme })=>theme.colors.neutral200};
|
|
43
|
+
|
|
44
|
+
& > label {
|
|
45
|
+
cursor: pointer;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&[data-disabled='true'] {
|
|
50
|
+
color: ${({ theme })=>theme.colors.neutral600};
|
|
51
|
+
background-color: ${({ theme })=>theme.colors.neutral150};
|
|
52
|
+
border-color: ${({ theme })=>theme.colors.neutral300};
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
const ActionOption = ({ selected, actionType, handleChange, name, disabled = false })=>{
|
|
56
|
+
return /*#__PURE__*/ jsxRuntime.jsx(FieldWrapper, {
|
|
57
|
+
$actionType: actionType,
|
|
58
|
+
background: "primary0",
|
|
59
|
+
borderColor: "neutral200",
|
|
60
|
+
color: selected === actionType ? 'primary600' : 'neutral600',
|
|
61
|
+
position: "relative",
|
|
62
|
+
cursor: "pointer",
|
|
63
|
+
"data-checked": selected === actionType,
|
|
64
|
+
"data-disabled": disabled && selected !== actionType,
|
|
65
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Label, {
|
|
66
|
+
children: [
|
|
67
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.VisuallyHidden, {
|
|
68
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Input, {
|
|
69
|
+
type: "radio",
|
|
70
|
+
name: name,
|
|
71
|
+
checked: selected === actionType,
|
|
72
|
+
onChange: handleChange,
|
|
73
|
+
value: actionType,
|
|
74
|
+
disabled: disabled
|
|
75
|
+
})
|
|
76
|
+
}),
|
|
77
|
+
actionType
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
const ReleaseActionOptions = ({ selected, handleChange, name, disabled = false })=>{
|
|
83
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
84
|
+
children: [
|
|
85
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionOption, {
|
|
86
|
+
actionType: "publish",
|
|
87
|
+
selected: selected,
|
|
88
|
+
handleChange: handleChange,
|
|
89
|
+
name: name,
|
|
90
|
+
disabled: disabled
|
|
91
|
+
}),
|
|
92
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionOption, {
|
|
93
|
+
actionType: "unpublish",
|
|
94
|
+
selected: selected,
|
|
95
|
+
handleChange: handleChange,
|
|
96
|
+
name: name,
|
|
97
|
+
disabled: disabled
|
|
98
|
+
})
|
|
99
|
+
]
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
exports.ReleaseActionOptions = ReleaseActionOptions;
|
|
104
|
+
//# sourceMappingURL=ReleaseActionOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseActionOptions.js","sources":["../../../admin/src/components/ReleaseActionOptions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { VisuallyHidden, Field, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\ninterface FieldWrapperProps extends Field.Props {\n actionType: 'publish' | 'unpublish';\n}\n\nconst getBorderLeftRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\n return actionType === 'publish' ? 1 : 0;\n};\n\nconst getBorderRightRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\n return actionType === 'publish' ? 0 : 1;\n};\n\nconst FieldWrapper = styled(Field.Root)<{\n $actionType: 'publish' | 'unpublish';\n}>`\n border-top-left-radius: ${({ $actionType, theme }) =>\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\n border-bottom-left-radius: ${({ $actionType, theme }) =>\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\n border-top-right-radius: ${({ $actionType, theme }) =>\n theme.spaces[getBorderRightRadiusValue($actionType)]};\n border-bottom-right-radius: ${({ $actionType, theme }) =>\n theme.spaces[getBorderRightRadiusValue($actionType)]};\n\n > label {\n color: inherit;\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[3]}`};\n text-align: center;\n vertical-align: middle;\n text-transform: capitalize;\n }\n\n &[data-checked='true'] {\n color: ${({ theme, $actionType }) =>\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\n background-color: ${({ theme, $actionType }) =>\n $actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};\n border-color: ${({ theme, $actionType }) =>\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\n }\n\n &[data-checked='false'] {\n border-left: ${({ $actionType }) => $actionType === 'unpublish' && 'none'};\n border-right: ${({ $actionType }) => $actionType === 'publish' && 'none'};\n }\n\n &[data-checked='false'][data-disabled='false']:hover {\n color: ${({ theme }) => theme.colors.neutral700};\n background-color: ${({ theme }) => theme.colors.neutral100};\n border-color: ${({ theme }) => theme.colors.neutral200};\n\n & > label {\n cursor: pointer;\n }\n }\n\n &[data-disabled='true'] {\n color: ${({ theme }) => theme.colors.neutral600};\n background-color: ${({ theme }) => theme.colors.neutral150};\n border-color: ${({ theme }) => theme.colors.neutral300};\n }\n`;\n\ninterface ActionOptionProps {\n selected: 'publish' | 'unpublish';\n handleChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n name: string;\n disabled?: boolean;\n}\n\ninterface OptionProps extends ActionOptionProps {\n actionType: 'publish' | 'unpublish';\n}\n\nconst ActionOption = ({\n selected,\n actionType,\n handleChange,\n name,\n disabled = false,\n}: OptionProps) => {\n return (\n <FieldWrapper\n $actionType={actionType}\n background=\"primary0\"\n borderColor=\"neutral200\"\n color={selected === actionType ? 'primary600' : 'neutral600'}\n position=\"relative\"\n cursor=\"pointer\"\n data-checked={selected === actionType}\n data-disabled={disabled && selected !== actionType}\n >\n <Field.Label>\n <VisuallyHidden>\n <Field.Input\n type=\"radio\"\n name={name}\n checked={selected === actionType}\n onChange={handleChange}\n value={actionType}\n disabled={disabled}\n />\n </VisuallyHidden>\n {actionType}\n </Field.Label>\n </FieldWrapper>\n );\n};\n\nexport const ReleaseActionOptions = ({\n selected,\n handleChange,\n name,\n disabled = false,\n}: ActionOptionProps) => {\n return (\n <Flex>\n <ActionOption\n actionType=\"publish\"\n selected={selected}\n handleChange={handleChange}\n name={name}\n disabled={disabled}\n />\n <ActionOption\n actionType=\"unpublish\"\n selected={selected}\n handleChange={handleChange}\n name={name}\n disabled={disabled}\n />\n </Flex>\n );\n};\n"],"names":["getBorderLeftRadiusValue","actionType","getBorderRightRadiusValue","FieldWrapper","styled","Field","Root","$actionType","theme","spaces","colors","primary700","danger600","primary100","danger100","neutral700","neutral100","neutral200","neutral600","neutral150","neutral300","ActionOption","selected","handleChange","name","disabled","_jsx","background","borderColor","color","position","cursor","data-checked","data-disabled","_jsxs","Label","VisuallyHidden","Input","type","checked","onChange","value","ReleaseActionOptions","Flex"],"mappings":";;;;;;;AASA,MAAMA,2BAA2B,CAACC,UAAAA,GAAAA;IAChC,OAAOA,UAAAA,KAAe,YAAY,CAAI,GAAA,CAAA;AACxC,CAAA;AAEA,MAAMC,4BAA4B,CAACD,UAAAA,GAAAA;IACjC,OAAOA,UAAAA,KAAe,YAAY,CAAI,GAAA,CAAA;AACxC,CAAA;AAEA,MAAME,YAAeC,GAAAA,uBAAAA,CAAOC,kBAAMC,CAAAA,IAAI,CAEpC;AACwB,0BAAA,EAAE,CAAC,EAAEC,WAAW,EAAEC,KAAK,EAAE,GAC/CA,KAAAA,CAAMC,MAAM,CAACT,wBAAyBO,CAAAA,WAAAA,CAAAA,CAAa,CAAC;AAC3B,6BAAA,EAAE,CAAC,EAAEA,WAAW,EAAEC,KAAK,EAAE,GAClDA,KAAAA,CAAMC,MAAM,CAACT,wBAAyBO,CAAAA,WAAAA,CAAAA,CAAa,CAAC;AAC7B,2BAAA,EAAE,CAAC,EAAEA,WAAW,EAAEC,KAAK,EAAE,GAChDA,KAAAA,CAAMC,MAAM,CAACP,yBAA0BK,CAAAA,WAAAA,CAAAA,CAAa,CAAC;AAC3B,8BAAA,EAAE,CAAC,EAAEA,WAAW,EAAEC,KAAK,EAAE,GACnDA,KAAAA,CAAMC,MAAM,CAACP,yBAA0BK,CAAAA,WAAAA,CAAAA,CAAa,CAAC;;;;aAI5C,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAK,CAAC,EAAEA,MAAMC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAED,KAAMC,CAAAA,MAAM,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;;;;;;;AAO3D,WAAA,EAAE,CAAC,EAAED,KAAK,EAAED,WAAW,EAAE,GAC9BA,WAAgB,KAAA,SAAA,GAAYC,KAAME,CAAAA,MAAM,CAACC,UAAU,GAAGH,MAAME,MAAM,CAACE,SAAS,CAAC;AAC7D,sBAAA,EAAE,CAAC,EAAEJ,KAAK,EAAED,WAAW,EAAE,GACzCA,WAAgB,KAAA,SAAA,GAAYC,KAAME,CAAAA,MAAM,CAACG,UAAU,GAAGL,MAAME,MAAM,CAACI,SAAS,CAAC;AACjE,kBAAA,EAAE,CAAC,EAAEN,KAAK,EAAED,WAAW,EAAE,GACrCA,WAAgB,KAAA,SAAA,GAAYC,KAAME,CAAAA,MAAM,CAACC,UAAU,GAAGH,MAAME,MAAM,CAACE,SAAS,CAAC;;;;AAIlE,iBAAA,EAAE,CAAC,EAAEL,WAAW,EAAE,GAAKA,WAAAA,KAAgB,eAAe,MAAO,CAAA;AAC5D,kBAAA,EAAE,CAAC,EAAEA,WAAW,EAAE,GAAKA,WAAAA,KAAgB,aAAa,MAAO,CAAA;;;;WAIlE,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACK,UAAU,CAAC;sBAC9B,EAAE,CAAC,EAAEP,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACM,UAAU,CAAC;kBAC7C,EAAE,CAAC,EAAER,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACO,UAAU,CAAC;;;;;;;;WAQhD,EAAE,CAAC,EAAET,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACQ,UAAU,CAAC;sBAC9B,EAAE,CAAC,EAAEV,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACS,UAAU,CAAC;kBAC7C,EAAE,CAAC,EAAEX,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACU,UAAU,CAAC;;AAE3D,CAAC;AAaD,MAAMC,YAAe,GAAA,CAAC,EACpBC,QAAQ,EACRrB,UAAU,EACVsB,YAAY,EACZC,IAAI,EACJC,QAAAA,GAAW,KAAK,EACJ,GAAA;AACZ,IAAA,qBACEC,cAACvB,CAAAA,YAAAA,EAAAA;QACCI,WAAaN,EAAAA,UAAAA;QACb0B,UAAW,EAAA,UAAA;QACXC,WAAY,EAAA,YAAA;QACZC,KAAOP,EAAAA,QAAAA,KAAarB,aAAa,YAAe,GAAA,YAAA;QAChD6B,QAAS,EAAA,UAAA;QACTC,MAAO,EAAA,SAAA;AACPC,QAAAA,cAAAA,EAAcV,QAAarB,KAAAA,UAAAA;AAC3BgC,QAAAA,eAAAA,EAAeR,YAAYH,QAAarB,KAAAA,UAAAA;gCAExCiC,eAAA,CAAC7B,mBAAM8B,KAAK,EAAA;;8BACVT,cAACU,CAAAA,2BAAAA,EAAAA;4CACCV,cAAA,CAACrB,mBAAMgC,KAAK,EAAA;wBACVC,IAAK,EAAA,OAAA;wBACLd,IAAMA,EAAAA,IAAAA;AACNe,wBAAAA,OAAAA,EAASjB,QAAarB,KAAAA,UAAAA;wBACtBuC,QAAUjB,EAAAA,YAAAA;wBACVkB,KAAOxC,EAAAA,UAAAA;wBACPwB,QAAUA,EAAAA;;;AAGbxB,gBAAAA;;;;AAIT,CAAA;AAEayC,MAAAA,oBAAAA,GAAuB,CAAC,EACnCpB,QAAQ,EACRC,YAAY,EACZC,IAAI,EACJC,QAAW,GAAA,KAAK,EACE,GAAA;AAClB,IAAA,qBACES,eAACS,CAAAA,iBAAAA,EAAAA;;0BACCjB,cAACL,CAAAA,YAAAA,EAAAA;gBACCpB,UAAW,EAAA,SAAA;gBACXqB,QAAUA,EAAAA,QAAAA;gBACVC,YAAcA,EAAAA,YAAAA;gBACdC,IAAMA,EAAAA,IAAAA;gBACNC,QAAUA,EAAAA;;0BAEZC,cAACL,CAAAA,YAAAA,EAAAA;gBACCpB,UAAW,EAAA,WAAA;gBACXqB,QAAUA,EAAAA,QAAAA;gBACVC,YAAcA,EAAAA,YAAAA;gBACdC,IAAMA,EAAAA,IAAAA;gBACNC,QAAUA,EAAAA;;;;AAIlB;;;;"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import 'react';
|
|
3
|
+
import { Field, Flex, VisuallyHidden } from '@strapi/design-system';
|
|
4
|
+
import { styled } from 'styled-components';
|
|
5
|
+
|
|
6
|
+
const getBorderLeftRadiusValue = (actionType)=>{
|
|
7
|
+
return actionType === 'publish' ? 1 : 0;
|
|
8
|
+
};
|
|
9
|
+
const getBorderRightRadiusValue = (actionType)=>{
|
|
10
|
+
return actionType === 'publish' ? 0 : 1;
|
|
11
|
+
};
|
|
12
|
+
const FieldWrapper = styled(Field.Root)`
|
|
13
|
+
border-top-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
14
|
+
border-bottom-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
15
|
+
border-top-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
16
|
+
border-bottom-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
17
|
+
|
|
18
|
+
> label {
|
|
19
|
+
color: inherit;
|
|
20
|
+
padding: ${({ theme })=>`${theme.spaces[2]} ${theme.spaces[3]}`};
|
|
21
|
+
text-align: center;
|
|
22
|
+
vertical-align: middle;
|
|
23
|
+
text-transform: capitalize;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&[data-checked='true'] {
|
|
27
|
+
color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
|
|
28
|
+
background-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};
|
|
29
|
+
border-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&[data-checked='false'] {
|
|
33
|
+
border-left: ${({ $actionType })=>$actionType === 'unpublish' && 'none'};
|
|
34
|
+
border-right: ${({ $actionType })=>$actionType === 'publish' && 'none'};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&[data-checked='false'][data-disabled='false']:hover {
|
|
38
|
+
color: ${({ theme })=>theme.colors.neutral700};
|
|
39
|
+
background-color: ${({ theme })=>theme.colors.neutral100};
|
|
40
|
+
border-color: ${({ theme })=>theme.colors.neutral200};
|
|
41
|
+
|
|
42
|
+
& > label {
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&[data-disabled='true'] {
|
|
48
|
+
color: ${({ theme })=>theme.colors.neutral600};
|
|
49
|
+
background-color: ${({ theme })=>theme.colors.neutral150};
|
|
50
|
+
border-color: ${({ theme })=>theme.colors.neutral300};
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
53
|
+
const ActionOption = ({ selected, actionType, handleChange, name, disabled = false })=>{
|
|
54
|
+
return /*#__PURE__*/ jsx(FieldWrapper, {
|
|
55
|
+
$actionType: actionType,
|
|
56
|
+
background: "primary0",
|
|
57
|
+
borderColor: "neutral200",
|
|
58
|
+
color: selected === actionType ? 'primary600' : 'neutral600',
|
|
59
|
+
position: "relative",
|
|
60
|
+
cursor: "pointer",
|
|
61
|
+
"data-checked": selected === actionType,
|
|
62
|
+
"data-disabled": disabled && selected !== actionType,
|
|
63
|
+
children: /*#__PURE__*/ jsxs(Field.Label, {
|
|
64
|
+
children: [
|
|
65
|
+
/*#__PURE__*/ jsx(VisuallyHidden, {
|
|
66
|
+
children: /*#__PURE__*/ jsx(Field.Input, {
|
|
67
|
+
type: "radio",
|
|
68
|
+
name: name,
|
|
69
|
+
checked: selected === actionType,
|
|
70
|
+
onChange: handleChange,
|
|
71
|
+
value: actionType,
|
|
72
|
+
disabled: disabled
|
|
73
|
+
})
|
|
74
|
+
}),
|
|
75
|
+
actionType
|
|
76
|
+
]
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
const ReleaseActionOptions = ({ selected, handleChange, name, disabled = false })=>{
|
|
81
|
+
return /*#__PURE__*/ jsxs(Flex, {
|
|
82
|
+
children: [
|
|
83
|
+
/*#__PURE__*/ jsx(ActionOption, {
|
|
84
|
+
actionType: "publish",
|
|
85
|
+
selected: selected,
|
|
86
|
+
handleChange: handleChange,
|
|
87
|
+
name: name,
|
|
88
|
+
disabled: disabled
|
|
89
|
+
}),
|
|
90
|
+
/*#__PURE__*/ jsx(ActionOption, {
|
|
91
|
+
actionType: "unpublish",
|
|
92
|
+
selected: selected,
|
|
93
|
+
handleChange: handleChange,
|
|
94
|
+
name: name,
|
|
95
|
+
disabled: disabled
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export { ReleaseActionOptions };
|
|
102
|
+
//# sourceMappingURL=ReleaseActionOptions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseActionOptions.mjs","sources":["../../../admin/src/components/ReleaseActionOptions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { VisuallyHidden, Field, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\ninterface FieldWrapperProps extends Field.Props {\n actionType: 'publish' | 'unpublish';\n}\n\nconst getBorderLeftRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\n return actionType === 'publish' ? 1 : 0;\n};\n\nconst getBorderRightRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\n return actionType === 'publish' ? 0 : 1;\n};\n\nconst FieldWrapper = styled(Field.Root)<{\n $actionType: 'publish' | 'unpublish';\n}>`\n border-top-left-radius: ${({ $actionType, theme }) =>\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\n border-bottom-left-radius: ${({ $actionType, theme }) =>\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\n border-top-right-radius: ${({ $actionType, theme }) =>\n theme.spaces[getBorderRightRadiusValue($actionType)]};\n border-bottom-right-radius: ${({ $actionType, theme }) =>\n theme.spaces[getBorderRightRadiusValue($actionType)]};\n\n > label {\n color: inherit;\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[3]}`};\n text-align: center;\n vertical-align: middle;\n text-transform: capitalize;\n }\n\n &[data-checked='true'] {\n color: ${({ theme, $actionType }) =>\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\n background-color: ${({ theme, $actionType }) =>\n $actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};\n border-color: ${({ theme, $actionType }) =>\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\n }\n\n &[data-checked='false'] {\n border-left: ${({ $actionType }) => $actionType === 'unpublish' && 'none'};\n border-right: ${({ $actionType }) => $actionType === 'publish' && 'none'};\n }\n\n &[data-checked='false'][data-disabled='false']:hover {\n color: ${({ theme }) => theme.colors.neutral700};\n background-color: ${({ theme }) => theme.colors.neutral100};\n border-color: ${({ theme }) => theme.colors.neutral200};\n\n & > label {\n cursor: pointer;\n }\n }\n\n &[data-disabled='true'] {\n color: ${({ theme }) => theme.colors.neutral600};\n background-color: ${({ theme }) => theme.colors.neutral150};\n border-color: ${({ theme }) => theme.colors.neutral300};\n }\n`;\n\ninterface ActionOptionProps {\n selected: 'publish' | 'unpublish';\n handleChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n name: string;\n disabled?: boolean;\n}\n\ninterface OptionProps extends ActionOptionProps {\n actionType: 'publish' | 'unpublish';\n}\n\nconst ActionOption = ({\n selected,\n actionType,\n handleChange,\n name,\n disabled = false,\n}: OptionProps) => {\n return (\n <FieldWrapper\n $actionType={actionType}\n background=\"primary0\"\n borderColor=\"neutral200\"\n color={selected === actionType ? 'primary600' : 'neutral600'}\n position=\"relative\"\n cursor=\"pointer\"\n data-checked={selected === actionType}\n data-disabled={disabled && selected !== actionType}\n >\n <Field.Label>\n <VisuallyHidden>\n <Field.Input\n type=\"radio\"\n name={name}\n checked={selected === actionType}\n onChange={handleChange}\n value={actionType}\n disabled={disabled}\n />\n </VisuallyHidden>\n {actionType}\n </Field.Label>\n </FieldWrapper>\n );\n};\n\nexport const ReleaseActionOptions = ({\n selected,\n handleChange,\n name,\n disabled = false,\n}: ActionOptionProps) => {\n return (\n <Flex>\n <ActionOption\n actionType=\"publish\"\n selected={selected}\n handleChange={handleChange}\n name={name}\n disabled={disabled}\n />\n <ActionOption\n actionType=\"unpublish\"\n selected={selected}\n handleChange={handleChange}\n name={name}\n disabled={disabled}\n />\n </Flex>\n );\n};\n"],"names":["getBorderLeftRadiusValue","actionType","getBorderRightRadiusValue","FieldWrapper","styled","Field","Root","$actionType","theme","spaces","colors","primary700","danger600","primary100","danger100","neutral700","neutral100","neutral200","neutral600","neutral150","neutral300","ActionOption","selected","handleChange","name","disabled","_jsx","background","borderColor","color","position","cursor","data-checked","data-disabled","_jsxs","Label","VisuallyHidden","Input","type","checked","onChange","value","ReleaseActionOptions","Flex"],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
require('react');
|
|
5
|
+
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
6
|
+
var designSystem = require('@strapi/design-system');
|
|
7
|
+
var icons = require('@strapi/icons');
|
|
8
|
+
var reactIntl = require('react-intl');
|
|
9
|
+
var release = require('../services/release.js');
|
|
10
|
+
|
|
11
|
+
const useReleasesList = (contentTypeUid, documentId)=>{
|
|
12
|
+
const listViewData = strapiAdmin.useTable('ListView', (state)=>state.rows);
|
|
13
|
+
const documentIds = listViewData.map((entry)=>entry.documentId);
|
|
14
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
|
15
|
+
const locale = query?.plugins?.i18n?.locale || undefined;
|
|
16
|
+
const response = release.useGetMappedEntriesInReleasesQuery({
|
|
17
|
+
contentTypeUid,
|
|
18
|
+
documentIds,
|
|
19
|
+
locale
|
|
20
|
+
}, {
|
|
21
|
+
skip: !documentIds || !contentTypeUid || documentIds.length === 0
|
|
22
|
+
});
|
|
23
|
+
const mappedEntriesInReleases = response.data || {};
|
|
24
|
+
return mappedEntriesInReleases?.[documentId] || [];
|
|
25
|
+
};
|
|
26
|
+
const addColumnToTableHook = ({ displayedHeaders, layout })=>{
|
|
27
|
+
const { options } = layout;
|
|
28
|
+
if (!options?.draftAndPublish) {
|
|
29
|
+
return {
|
|
30
|
+
displayedHeaders,
|
|
31
|
+
layout
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
displayedHeaders: [
|
|
36
|
+
...displayedHeaders,
|
|
37
|
+
{
|
|
38
|
+
searchable: false,
|
|
39
|
+
sortable: false,
|
|
40
|
+
name: 'releases',
|
|
41
|
+
label: {
|
|
42
|
+
id: 'content-releases.content-manager.list-view.releases.header',
|
|
43
|
+
defaultMessage: 'To be released in'
|
|
44
|
+
},
|
|
45
|
+
cellFormatter: (props, _, { model })=>/*#__PURE__*/ jsxRuntime.jsx(ReleaseListCell, {
|
|
46
|
+
...props,
|
|
47
|
+
model: model
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
layout
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
const ReleaseListCell = ({ documentId, model })=>{
|
|
55
|
+
const releases = useReleasesList(model, documentId);
|
|
56
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
57
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Popover.Root, {
|
|
58
|
+
children: [
|
|
59
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Trigger, {
|
|
60
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
61
|
+
variant: "ghost",
|
|
62
|
+
onClick: (e)=>e.stopPropagation(),
|
|
63
|
+
// TODO: find a way in the DS to define the widht and height of the icon
|
|
64
|
+
endIcon: releases.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(icons.CaretDown, {
|
|
65
|
+
width: "1.2rem",
|
|
66
|
+
height: "1.2rem"
|
|
67
|
+
}) : null,
|
|
68
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
69
|
+
style: {
|
|
70
|
+
maxWidth: '252px',
|
|
71
|
+
cursor: 'pointer'
|
|
72
|
+
},
|
|
73
|
+
textColor: "neutral800",
|
|
74
|
+
fontWeight: "regular",
|
|
75
|
+
children: releases.length > 0 ? formatMessage({
|
|
76
|
+
id: 'content-releases.content-manager.list-view.releases-number',
|
|
77
|
+
defaultMessage: '{number} {number, plural, one {release} other {releases}}'
|
|
78
|
+
}, {
|
|
79
|
+
number: releases.length
|
|
80
|
+
}) : '-'
|
|
81
|
+
})
|
|
82
|
+
})
|
|
83
|
+
}),
|
|
84
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Content, {
|
|
85
|
+
children: /*#__PURE__*/ jsxRuntime.jsx("ul", {
|
|
86
|
+
children: releases.map(({ id, name })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
87
|
+
padding: 3,
|
|
88
|
+
tag: "li",
|
|
89
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Link, {
|
|
90
|
+
href: `/admin/plugins/content-releases/${id}`,
|
|
91
|
+
isExternal: false,
|
|
92
|
+
children: name
|
|
93
|
+
})
|
|
94
|
+
}, id))
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
exports.ReleaseListCell = ReleaseListCell;
|
|
102
|
+
exports.addColumnToTableHook = addColumnToTableHook;
|
|
103
|
+
//# sourceMappingURL=ReleaseListCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseListCell.js","sources":["../../../admin/src/components/ReleaseListCell.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useTable, useQueryParams } from '@strapi/admin/strapi-admin';\nimport { ListFieldLayout, ListLayout } from '@strapi/content-manager/strapi-admin';\nimport { Box, Popover, Typography, Button, Link } from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useGetMappedEntriesInReleasesQuery } from '../services/release';\n\nimport type { Modules, UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * useReleasesList\n * -----------------------------------------------------------------------------------------------*/\ninterface QueryParams {\n plugins?: {\n i18n?: {\n locale: string;\n };\n };\n}\n\nconst useReleasesList = (contentTypeUid: UID.ContentType, documentId: Modules.Documents.ID) => {\n const listViewData = useTable('ListView', (state) => state.rows);\n const documentIds = listViewData.map((entry) => entry.documentId);\n const [{ query }] = useQueryParams();\n const locale = (query as QueryParams)?.plugins?.i18n?.locale || undefined;\n\n const response = useGetMappedEntriesInReleasesQuery(\n { contentTypeUid, documentIds, locale },\n { skip: !documentIds || !contentTypeUid || documentIds.length === 0 }\n );\n\n const mappedEntriesInReleases = response.data || {};\n\n return mappedEntriesInReleases?.[documentId] || [];\n};\n\n/* -------------------------------------------------------------------------------------------------\n * addColumnToTableHook\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddColumnToTableHookArgs {\n layout: ListLayout;\n displayedHeaders: ListFieldLayout[];\n}\n\nconst addColumnToTableHook = ({ displayedHeaders, layout }: AddColumnToTableHookArgs) => {\n const { options } = layout;\n\n if (!options?.draftAndPublish) {\n return { displayedHeaders, layout };\n }\n\n return {\n displayedHeaders: [\n ...displayedHeaders,\n {\n searchable: false,\n sortable: false,\n name: 'releases',\n label: {\n id: 'content-releases.content-manager.list-view.releases.header',\n defaultMessage: 'To be released in',\n },\n cellFormatter: (\n props: Modules.Documents.AnyDocument,\n _: any,\n { model }: { model: UID.ContentType }\n ) => <ReleaseListCell {...props} model={model} />,\n },\n ],\n layout,\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ReleaseListCell\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ReleaseListCellProps extends Modules.Documents.AnyDocument {\n documentId: Modules.Documents.ID;\n model: UID.ContentType;\n}\n\nconst ReleaseListCell = ({ documentId, model }: ReleaseListCellProps) => {\n const releases = useReleasesList(model, documentId);\n const { formatMessage } = useIntl();\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <Button\n variant=\"ghost\"\n onClick={(e: React.MouseEvent<HTMLElement>) => e.stopPropagation()}\n // TODO: find a way in the DS to define the widht and height of the icon\n endIcon={releases.length > 0 ? <CaretDown width=\"1.2rem\" height=\"1.2rem\" /> : null}\n >\n <Typography\n style={{ maxWidth: '252px', cursor: 'pointer' }}\n textColor=\"neutral800\"\n fontWeight=\"regular\"\n >\n {releases.length > 0\n ? formatMessage(\n {\n id: 'content-releases.content-manager.list-view.releases-number',\n defaultMessage: '{number} {number, plural, one {release} other {releases}}',\n },\n {\n number: releases.length,\n }\n )\n : '-'}\n </Typography>\n </Button>\n </Popover.Trigger>\n <Popover.Content>\n <ul>\n {releases.map(({ id, name }) => (\n <Box key={id} padding={3} tag=\"li\">\n <Link href={`/admin/plugins/content-releases/${id}`} isExternal={false}>\n {name}\n </Link>\n </Box>\n ))}\n </ul>\n </Popover.Content>\n </Popover.Root>\n );\n};\n\nexport { ReleaseListCell, addColumnToTableHook };\nexport type { ReleaseListCellProps };\n"],"names":["useReleasesList","contentTypeUid","documentId","listViewData","useTable","state","rows","documentIds","map","entry","query","useQueryParams","locale","plugins","i18n","undefined","response","useGetMappedEntriesInReleasesQuery","skip","length","mappedEntriesInReleases","data","addColumnToTableHook","displayedHeaders","layout","options","draftAndPublish","searchable","sortable","name","label","id","defaultMessage","cellFormatter","props","_","model","_jsx","ReleaseListCell","releases","formatMessage","useIntl","_jsxs","Popover","Root","Trigger","Button","variant","onClick","e","stopPropagation","endIcon","CaretDown","width","height","Typography","style","maxWidth","cursor","textColor","fontWeight","number","Content","ul","Box","padding","tag","Link","href","isExternal"],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import 'react';
|
|
3
|
+
import { useTable, useQueryParams } from '@strapi/admin/strapi-admin';
|
|
4
|
+
import { Popover, Button, Typography, Box, Link } from '@strapi/design-system';
|
|
5
|
+
import { CaretDown } from '@strapi/icons';
|
|
6
|
+
import { useIntl } from 'react-intl';
|
|
7
|
+
import { useGetMappedEntriesInReleasesQuery } from '../services/release.mjs';
|
|
8
|
+
|
|
9
|
+
const useReleasesList = (contentTypeUid, documentId)=>{
|
|
10
|
+
const listViewData = useTable('ListView', (state)=>state.rows);
|
|
11
|
+
const documentIds = listViewData.map((entry)=>entry.documentId);
|
|
12
|
+
const [{ query }] = useQueryParams();
|
|
13
|
+
const locale = query?.plugins?.i18n?.locale || undefined;
|
|
14
|
+
const response = useGetMappedEntriesInReleasesQuery({
|
|
15
|
+
contentTypeUid,
|
|
16
|
+
documentIds,
|
|
17
|
+
locale
|
|
18
|
+
}, {
|
|
19
|
+
skip: !documentIds || !contentTypeUid || documentIds.length === 0
|
|
20
|
+
});
|
|
21
|
+
const mappedEntriesInReleases = response.data || {};
|
|
22
|
+
return mappedEntriesInReleases?.[documentId] || [];
|
|
23
|
+
};
|
|
24
|
+
const addColumnToTableHook = ({ displayedHeaders, layout })=>{
|
|
25
|
+
const { options } = layout;
|
|
26
|
+
if (!options?.draftAndPublish) {
|
|
27
|
+
return {
|
|
28
|
+
displayedHeaders,
|
|
29
|
+
layout
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
displayedHeaders: [
|
|
34
|
+
...displayedHeaders,
|
|
35
|
+
{
|
|
36
|
+
searchable: false,
|
|
37
|
+
sortable: false,
|
|
38
|
+
name: 'releases',
|
|
39
|
+
label: {
|
|
40
|
+
id: 'content-releases.content-manager.list-view.releases.header',
|
|
41
|
+
defaultMessage: 'To be released in'
|
|
42
|
+
},
|
|
43
|
+
cellFormatter: (props, _, { model })=>/*#__PURE__*/ jsx(ReleaseListCell, {
|
|
44
|
+
...props,
|
|
45
|
+
model: model
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
layout
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
const ReleaseListCell = ({ documentId, model })=>{
|
|
53
|
+
const releases = useReleasesList(model, documentId);
|
|
54
|
+
const { formatMessage } = useIntl();
|
|
55
|
+
return /*#__PURE__*/ jsxs(Popover.Root, {
|
|
56
|
+
children: [
|
|
57
|
+
/*#__PURE__*/ jsx(Popover.Trigger, {
|
|
58
|
+
children: /*#__PURE__*/ jsx(Button, {
|
|
59
|
+
variant: "ghost",
|
|
60
|
+
onClick: (e)=>e.stopPropagation(),
|
|
61
|
+
// TODO: find a way in the DS to define the widht and height of the icon
|
|
62
|
+
endIcon: releases.length > 0 ? /*#__PURE__*/ jsx(CaretDown, {
|
|
63
|
+
width: "1.2rem",
|
|
64
|
+
height: "1.2rem"
|
|
65
|
+
}) : null,
|
|
66
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
67
|
+
style: {
|
|
68
|
+
maxWidth: '252px',
|
|
69
|
+
cursor: 'pointer'
|
|
70
|
+
},
|
|
71
|
+
textColor: "neutral800",
|
|
72
|
+
fontWeight: "regular",
|
|
73
|
+
children: releases.length > 0 ? formatMessage({
|
|
74
|
+
id: 'content-releases.content-manager.list-view.releases-number',
|
|
75
|
+
defaultMessage: '{number} {number, plural, one {release} other {releases}}'
|
|
76
|
+
}, {
|
|
77
|
+
number: releases.length
|
|
78
|
+
}) : '-'
|
|
79
|
+
})
|
|
80
|
+
})
|
|
81
|
+
}),
|
|
82
|
+
/*#__PURE__*/ jsx(Popover.Content, {
|
|
83
|
+
children: /*#__PURE__*/ jsx("ul", {
|
|
84
|
+
children: releases.map(({ id, name })=>/*#__PURE__*/ jsx(Box, {
|
|
85
|
+
padding: 3,
|
|
86
|
+
tag: "li",
|
|
87
|
+
children: /*#__PURE__*/ jsx(Link, {
|
|
88
|
+
href: `/admin/plugins/content-releases/${id}`,
|
|
89
|
+
isExternal: false,
|
|
90
|
+
children: name
|
|
91
|
+
})
|
|
92
|
+
}, id))
|
|
93
|
+
})
|
|
94
|
+
})
|
|
95
|
+
]
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export { ReleaseListCell, addColumnToTableHook };
|
|
100
|
+
//# sourceMappingURL=ReleaseListCell.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseListCell.mjs","sources":["../../../admin/src/components/ReleaseListCell.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useTable, useQueryParams } from '@strapi/admin/strapi-admin';\nimport { ListFieldLayout, ListLayout } from '@strapi/content-manager/strapi-admin';\nimport { Box, Popover, Typography, Button, Link } from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useGetMappedEntriesInReleasesQuery } from '../services/release';\n\nimport type { Modules, UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * useReleasesList\n * -----------------------------------------------------------------------------------------------*/\ninterface QueryParams {\n plugins?: {\n i18n?: {\n locale: string;\n };\n };\n}\n\nconst useReleasesList = (contentTypeUid: UID.ContentType, documentId: Modules.Documents.ID) => {\n const listViewData = useTable('ListView', (state) => state.rows);\n const documentIds = listViewData.map((entry) => entry.documentId);\n const [{ query }] = useQueryParams();\n const locale = (query as QueryParams)?.plugins?.i18n?.locale || undefined;\n\n const response = useGetMappedEntriesInReleasesQuery(\n { contentTypeUid, documentIds, locale },\n { skip: !documentIds || !contentTypeUid || documentIds.length === 0 }\n );\n\n const mappedEntriesInReleases = response.data || {};\n\n return mappedEntriesInReleases?.[documentId] || [];\n};\n\n/* -------------------------------------------------------------------------------------------------\n * addColumnToTableHook\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddColumnToTableHookArgs {\n layout: ListLayout;\n displayedHeaders: ListFieldLayout[];\n}\n\nconst addColumnToTableHook = ({ displayedHeaders, layout }: AddColumnToTableHookArgs) => {\n const { options } = layout;\n\n if (!options?.draftAndPublish) {\n return { displayedHeaders, layout };\n }\n\n return {\n displayedHeaders: [\n ...displayedHeaders,\n {\n searchable: false,\n sortable: false,\n name: 'releases',\n label: {\n id: 'content-releases.content-manager.list-view.releases.header',\n defaultMessage: 'To be released in',\n },\n cellFormatter: (\n props: Modules.Documents.AnyDocument,\n _: any,\n { model }: { model: UID.ContentType }\n ) => <ReleaseListCell {...props} model={model} />,\n },\n ],\n layout,\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ReleaseListCell\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ReleaseListCellProps extends Modules.Documents.AnyDocument {\n documentId: Modules.Documents.ID;\n model: UID.ContentType;\n}\n\nconst ReleaseListCell = ({ documentId, model }: ReleaseListCellProps) => {\n const releases = useReleasesList(model, documentId);\n const { formatMessage } = useIntl();\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <Button\n variant=\"ghost\"\n onClick={(e: React.MouseEvent<HTMLElement>) => e.stopPropagation()}\n // TODO: find a way in the DS to define the widht and height of the icon\n endIcon={releases.length > 0 ? <CaretDown width=\"1.2rem\" height=\"1.2rem\" /> : null}\n >\n <Typography\n style={{ maxWidth: '252px', cursor: 'pointer' }}\n textColor=\"neutral800\"\n fontWeight=\"regular\"\n >\n {releases.length > 0\n ? formatMessage(\n {\n id: 'content-releases.content-manager.list-view.releases-number',\n defaultMessage: '{number} {number, plural, one {release} other {releases}}',\n },\n {\n number: releases.length,\n }\n )\n : '-'}\n </Typography>\n </Button>\n </Popover.Trigger>\n <Popover.Content>\n <ul>\n {releases.map(({ id, name }) => (\n <Box key={id} padding={3} tag=\"li\">\n <Link href={`/admin/plugins/content-releases/${id}`} isExternal={false}>\n {name}\n </Link>\n </Box>\n ))}\n </ul>\n </Popover.Content>\n </Popover.Root>\n );\n};\n\nexport { ReleaseListCell, addColumnToTableHook };\nexport type { ReleaseListCellProps };\n"],"names":["useReleasesList","contentTypeUid","documentId","listViewData","useTable","state","rows","documentIds","map","entry","query","useQueryParams","locale","plugins","i18n","undefined","response","useGetMappedEntriesInReleasesQuery","skip","length","mappedEntriesInReleases","data","addColumnToTableHook","displayedHeaders","layout","options","draftAndPublish","searchable","sortable","name","label","id","defaultMessage","cellFormatter","props","_","model","_jsx","ReleaseListCell","releases","formatMessage","useIntl","_jsxs","Popover","Root","Trigger","Button","variant","onClick","e","stopPropagation","endIcon","CaretDown","width","height","Typography","style","maxWidth","cursor","textColor","fontWeight","number","Content","ul","Box","padding","tag","Link","href","isExternal"],"mappings":"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"}
|