@strapi/content-releases 5.20.0 → 5.21.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 (75) hide show
  1. package/dist/admin/components/EntryValidationPopover.js +62 -96
  2. package/dist/admin/components/EntryValidationPopover.js.map +1 -1
  3. package/dist/admin/components/EntryValidationPopover.mjs +64 -98
  4. package/dist/admin/components/EntryValidationPopover.mjs.map +1 -1
  5. package/dist/admin/components/Widgets.js +122 -0
  6. package/dist/admin/components/Widgets.js.map +1 -0
  7. package/dist/admin/components/Widgets.mjs +120 -0
  8. package/dist/admin/components/Widgets.mjs.map +1 -0
  9. package/dist/admin/constants.js +2 -0
  10. package/dist/admin/constants.js.map +1 -1
  11. package/dist/admin/constants.mjs +2 -1
  12. package/dist/admin/constants.mjs.map +1 -1
  13. package/dist/admin/index.js +24 -2
  14. package/dist/admin/index.js.map +1 -1
  15. package/dist/admin/index.mjs +25 -3
  16. package/dist/admin/index.mjs.map +1 -1
  17. package/dist/admin/services/homepage.js +24 -0
  18. package/dist/admin/services/homepage.js.map +1 -0
  19. package/dist/admin/services/homepage.mjs +22 -0
  20. package/dist/admin/services/homepage.mjs.map +1 -0
  21. package/dist/admin/services/release.js +20 -10
  22. package/dist/admin/services/release.js.map +1 -1
  23. package/dist/admin/services/release.mjs +20 -10
  24. package/dist/admin/services/release.mjs.map +1 -1
  25. package/dist/admin/src/components/Widgets.d.ts +2 -0
  26. package/dist/admin/src/constants.d.ts +1 -0
  27. package/dist/admin/src/services/homepage.d.ts +9 -0
  28. package/dist/admin/src/services/release.d.ts +28 -28
  29. package/dist/admin/translations/en.json.js +4 -1
  30. package/dist/admin/translations/en.json.js.map +1 -1
  31. package/dist/admin/translations/en.json.mjs +4 -1
  32. package/dist/admin/translations/en.json.mjs.map +1 -1
  33. package/dist/server/controllers/homepage.js +15 -0
  34. package/dist/server/controllers/homepage.js.map +1 -0
  35. package/dist/server/controllers/homepage.mjs +13 -0
  36. package/dist/server/controllers/homepage.mjs.map +1 -0
  37. package/dist/server/controllers/index.js +2 -0
  38. package/dist/server/controllers/index.js.map +1 -1
  39. package/dist/server/controllers/index.mjs +2 -0
  40. package/dist/server/controllers/index.mjs.map +1 -1
  41. package/dist/server/routes/homepage.js +25 -0
  42. package/dist/server/routes/homepage.js.map +1 -0
  43. package/dist/server/routes/homepage.mjs +23 -0
  44. package/dist/server/routes/homepage.mjs.map +1 -0
  45. package/dist/server/routes/index.js +2 -0
  46. package/dist/server/routes/index.js.map +1 -1
  47. package/dist/server/routes/index.mjs +2 -0
  48. package/dist/server/routes/index.mjs.map +1 -1
  49. package/dist/server/services/homepage.js +29 -0
  50. package/dist/server/services/homepage.js.map +1 -0
  51. package/dist/server/services/homepage.mjs +27 -0
  52. package/dist/server/services/homepage.mjs.map +1 -0
  53. package/dist/server/services/index.js +2 -0
  54. package/dist/server/services/index.js.map +1 -1
  55. package/dist/server/services/index.mjs +2 -0
  56. package/dist/server/services/index.mjs.map +1 -1
  57. package/dist/server/src/controllers/homepage.d.ts +6 -0
  58. package/dist/server/src/controllers/homepage.d.ts.map +1 -0
  59. package/dist/server/src/controllers/index.d.ts +3 -0
  60. package/dist/server/src/controllers/index.d.ts.map +1 -1
  61. package/dist/server/src/index.d.ts +9 -0
  62. package/dist/server/src/index.d.ts.map +1 -1
  63. package/dist/server/src/routes/homepage.d.ts +4 -0
  64. package/dist/server/src/routes/homepage.d.ts.map +1 -0
  65. package/dist/server/src/routes/index.d.ts +1 -0
  66. package/dist/server/src/routes/index.d.ts.map +1 -1
  67. package/dist/server/src/services/homepage.d.ts +9 -0
  68. package/dist/server/src/services/homepage.d.ts.map +1 -0
  69. package/dist/server/src/services/index.d.ts +5 -0
  70. package/dist/server/src/services/index.d.ts.map +1 -1
  71. package/dist/shared/contracts/homepage.d.ts +11 -0
  72. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  73. package/dist/shared/types.d.ts +1 -0
  74. package/dist/shared/types.d.ts.map +1 -1
  75. package/package.json +7 -7
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
5
+ var designSystem = require('@strapi/design-system');
6
+ var icons = require('@strapi/icons');
7
+ var reactIntl = require('react-intl');
8
+ var reactRouterDom = require('react-router-dom');
9
+ var styledComponents = require('styled-components');
10
+ var ReleasesPage = require('../pages/ReleasesPage.js');
11
+ var homepage = require('../services/homepage.js');
12
+ var RelativeTime = require('./RelativeTime.js');
13
+
14
+ const CellTypography = styledComponents.styled(designSystem.Typography)`
15
+ display: block;
16
+ max-width: 14.4rem;
17
+ overflow: hidden;
18
+ text-overflow: ellipsis;
19
+ white-space: nowrap;
20
+ `;
21
+ const ReleasesTable = ({ items })=>{
22
+ const { formatMessage } = reactIntl.useIntl();
23
+ const { trackUsage } = strapiAdmin.useTracking();
24
+ const navigate = reactRouterDom.useNavigate();
25
+ const getEditViewLink = (item)=>{
26
+ return `/plugins/content-releases/${item.id}`;
27
+ };
28
+ const handleRowClick = (item)=>()=>{
29
+ trackUsage('willEditReleaseFromHome');
30
+ const link = getEditViewLink(item);
31
+ navigate(link);
32
+ };
33
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Table, {
34
+ colCount: 4,
35
+ rowCount: items?.length ?? 0,
36
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tbody, {
37
+ children: items?.map((item)=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
38
+ onClick: handleRowClick(item),
39
+ cursor: "pointer",
40
+ children: [
41
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
42
+ children: /*#__PURE__*/ jsxRuntime.jsx(CellTypography, {
43
+ title: item.name,
44
+ variant: "omega",
45
+ textColor: "neutral800",
46
+ children: item.name
47
+ })
48
+ }),
49
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
50
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
51
+ display: "inline-block",
52
+ children: item.status ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Badge, {
53
+ ...ReleasesPage.getBadgeProps(item.status),
54
+ children: item.status
55
+ }) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
56
+ textColor: "neutral600",
57
+ "aria-hidden": true,
58
+ children: "-"
59
+ })
60
+ })
61
+ }),
62
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
63
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
64
+ variant: "omega",
65
+ textTransform: "capitalize",
66
+ textColor: "neutral600",
67
+ children: item.scheduledAt ? /*#__PURE__*/ jsxRuntime.jsx(RelativeTime.RelativeTime, {
68
+ timestamp: new Date(item.scheduledAt)
69
+ }) : formatMessage({
70
+ id: 'content-releases.pages.Releases.not-scheduled',
71
+ defaultMessage: 'Not scheduled'
72
+ })
73
+ })
74
+ }),
75
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
76
+ onClick: (e)=>e.stopPropagation(),
77
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
78
+ display: "inline-block",
79
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
80
+ tag: reactRouterDom.Link,
81
+ to: getEditViewLink(item),
82
+ onClick: ()=>trackUsage('willEditReleaseFromHome'),
83
+ label: formatMessage({
84
+ id: 'content-manager.actions.edit.label',
85
+ defaultMessage: 'Edit'
86
+ }),
87
+ variant: "ghost",
88
+ children: /*#__PURE__*/ jsxRuntime.jsx(icons.Pencil, {})
89
+ })
90
+ })
91
+ })
92
+ ]
93
+ }, item.documentId))
94
+ })
95
+ });
96
+ };
97
+ /* -------------------------------------------------------------------------------------------------
98
+ * Upcoming Releases
99
+ * -----------------------------------------------------------------------------------------------*/ const UpcomingReleasesWidget = ()=>{
100
+ const { formatMessage } = reactIntl.useIntl();
101
+ const { data, isLoading, error } = homepage.useGetUpcomingReleasesQuery();
102
+ if (isLoading) {
103
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
104
+ }
105
+ if (error || !data) {
106
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Error, {});
107
+ }
108
+ if (data.length === 0) {
109
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.NoData, {
110
+ children: formatMessage({
111
+ id: 'content-releases.widget.upcoming-releases.no-data',
112
+ defaultMessage: 'No releases'
113
+ })
114
+ });
115
+ }
116
+ return /*#__PURE__*/ jsxRuntime.jsx(ReleasesTable, {
117
+ items: data
118
+ });
119
+ };
120
+
121
+ exports.UpcomingReleasesWidget = UpcomingReleasesWidget;
122
+ //# sourceMappingURL=Widgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Widgets.js","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Badge, Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { Release } from '../../../shared/contracts/releases';\nimport { getBadgeProps } from '../pages/ReleasesPage';\nimport { useGetUpcomingReleasesQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nconst CellTypography = styled(Typography)`\n display: block;\n max-width: 14.4rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst ReleasesTable = ({ items }: { items: Release[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (item: Release): string => {\n return `/plugins/content-releases/${item.id}`;\n };\n\n const handleRowClick = (item: Release) => () => {\n trackUsage('willEditReleaseFromHome');\n const link = getEditViewLink(item);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => (\n <Tr onClick={handleRowClick(item)} cursor=\"pointer\" key={item.documentId}>\n <Td>\n <CellTypography title={item.name} variant=\"omega\" textColor=\"neutral800\">\n {item.name}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {item.status ? (\n <Badge {...getBadgeProps(item.status)}>{item.status}</Badge>\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography variant=\"omega\" textTransform=\"capitalize\" textColor=\"neutral600\">\n {item.scheduledAt ? (\n <RelativeTime timestamp={new Date(item.scheduledAt)} />\n ) : (\n formatMessage({\n id: 'content-releases.pages.Releases.not-scheduled',\n defaultMessage: 'Not scheduled',\n })\n )}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(item)}\n onClick={() => trackUsage('willEditReleaseFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Upcoming Releases\n * -----------------------------------------------------------------------------------------------*/\n\nconst UpcomingReleasesWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetUpcomingReleasesQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-releases.widget.upcoming-releases.no-data',\n defaultMessage: 'No releases',\n })}\n </Widget.NoData>\n );\n }\n\n return <ReleasesTable items={data} />;\n};\n\nexport { UpcomingReleasesWidget };\n"],"names":["CellTypography","styled","Typography","ReleasesTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","item","id","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","name","variant","textColor","Box","display","status","Badge","getBadgeProps","aria-hidden","textTransform","scheduledAt","RelativeTime","timestamp","Date","defaultMessage","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","documentId","UpcomingReleasesWidget","data","isLoading","error","useGetUpcomingReleasesQuery","Widget","Loading","Error","NoData"],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Widget, useTracking } from '@strapi/admin/strapi-admin';
3
+ import { Typography, Table, Tbody, Tr, Td, Box, Badge, IconButton } from '@strapi/design-system';
4
+ import { Pencil } from '@strapi/icons';
5
+ import { useIntl } from 'react-intl';
6
+ import { useNavigate, Link } from 'react-router-dom';
7
+ import { styled } from 'styled-components';
8
+ import { getBadgeProps } from '../pages/ReleasesPage.mjs';
9
+ import { useGetUpcomingReleasesQuery } from '../services/homepage.mjs';
10
+ import { RelativeTime } from './RelativeTime.mjs';
11
+
12
+ const CellTypography = styled(Typography)`
13
+ display: block;
14
+ max-width: 14.4rem;
15
+ overflow: hidden;
16
+ text-overflow: ellipsis;
17
+ white-space: nowrap;
18
+ `;
19
+ const ReleasesTable = ({ items })=>{
20
+ const { formatMessage } = useIntl();
21
+ const { trackUsage } = useTracking();
22
+ const navigate = useNavigate();
23
+ const getEditViewLink = (item)=>{
24
+ return `/plugins/content-releases/${item.id}`;
25
+ };
26
+ const handleRowClick = (item)=>()=>{
27
+ trackUsage('willEditReleaseFromHome');
28
+ const link = getEditViewLink(item);
29
+ navigate(link);
30
+ };
31
+ return /*#__PURE__*/ jsx(Table, {
32
+ colCount: 4,
33
+ rowCount: items?.length ?? 0,
34
+ children: /*#__PURE__*/ jsx(Tbody, {
35
+ children: items?.map((item)=>/*#__PURE__*/ jsxs(Tr, {
36
+ onClick: handleRowClick(item),
37
+ cursor: "pointer",
38
+ children: [
39
+ /*#__PURE__*/ jsx(Td, {
40
+ children: /*#__PURE__*/ jsx(CellTypography, {
41
+ title: item.name,
42
+ variant: "omega",
43
+ textColor: "neutral800",
44
+ children: item.name
45
+ })
46
+ }),
47
+ /*#__PURE__*/ jsx(Td, {
48
+ children: /*#__PURE__*/ jsx(Box, {
49
+ display: "inline-block",
50
+ children: item.status ? /*#__PURE__*/ jsx(Badge, {
51
+ ...getBadgeProps(item.status),
52
+ children: item.status
53
+ }) : /*#__PURE__*/ jsx(Typography, {
54
+ textColor: "neutral600",
55
+ "aria-hidden": true,
56
+ children: "-"
57
+ })
58
+ })
59
+ }),
60
+ /*#__PURE__*/ jsx(Td, {
61
+ children: /*#__PURE__*/ jsx(Typography, {
62
+ variant: "omega",
63
+ textTransform: "capitalize",
64
+ textColor: "neutral600",
65
+ children: item.scheduledAt ? /*#__PURE__*/ jsx(RelativeTime, {
66
+ timestamp: new Date(item.scheduledAt)
67
+ }) : formatMessage({
68
+ id: 'content-releases.pages.Releases.not-scheduled',
69
+ defaultMessage: 'Not scheduled'
70
+ })
71
+ })
72
+ }),
73
+ /*#__PURE__*/ jsx(Td, {
74
+ onClick: (e)=>e.stopPropagation(),
75
+ children: /*#__PURE__*/ jsx(Box, {
76
+ display: "inline-block",
77
+ children: /*#__PURE__*/ jsx(IconButton, {
78
+ tag: Link,
79
+ to: getEditViewLink(item),
80
+ onClick: ()=>trackUsage('willEditReleaseFromHome'),
81
+ label: formatMessage({
82
+ id: 'content-manager.actions.edit.label',
83
+ defaultMessage: 'Edit'
84
+ }),
85
+ variant: "ghost",
86
+ children: /*#__PURE__*/ jsx(Pencil, {})
87
+ })
88
+ })
89
+ })
90
+ ]
91
+ }, item.documentId))
92
+ })
93
+ });
94
+ };
95
+ /* -------------------------------------------------------------------------------------------------
96
+ * Upcoming Releases
97
+ * -----------------------------------------------------------------------------------------------*/ const UpcomingReleasesWidget = ()=>{
98
+ const { formatMessage } = useIntl();
99
+ const { data, isLoading, error } = useGetUpcomingReleasesQuery();
100
+ if (isLoading) {
101
+ return /*#__PURE__*/ jsx(Widget.Loading, {});
102
+ }
103
+ if (error || !data) {
104
+ return /*#__PURE__*/ jsx(Widget.Error, {});
105
+ }
106
+ if (data.length === 0) {
107
+ return /*#__PURE__*/ jsx(Widget.NoData, {
108
+ children: formatMessage({
109
+ id: 'content-releases.widget.upcoming-releases.no-data',
110
+ defaultMessage: 'No releases'
111
+ })
112
+ });
113
+ }
114
+ return /*#__PURE__*/ jsx(ReleasesTable, {
115
+ items: data
116
+ });
117
+ };
118
+
119
+ export { UpcomingReleasesWidget };
120
+ //# sourceMappingURL=Widgets.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Badge, Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { Release } from '../../../shared/contracts/releases';\nimport { getBadgeProps } from '../pages/ReleasesPage';\nimport { useGetUpcomingReleasesQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nconst CellTypography = styled(Typography)`\n display: block;\n max-width: 14.4rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst ReleasesTable = ({ items }: { items: Release[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (item: Release): string => {\n return `/plugins/content-releases/${item.id}`;\n };\n\n const handleRowClick = (item: Release) => () => {\n trackUsage('willEditReleaseFromHome');\n const link = getEditViewLink(item);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => (\n <Tr onClick={handleRowClick(item)} cursor=\"pointer\" key={item.documentId}>\n <Td>\n <CellTypography title={item.name} variant=\"omega\" textColor=\"neutral800\">\n {item.name}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {item.status ? (\n <Badge {...getBadgeProps(item.status)}>{item.status}</Badge>\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography variant=\"omega\" textTransform=\"capitalize\" textColor=\"neutral600\">\n {item.scheduledAt ? (\n <RelativeTime timestamp={new Date(item.scheduledAt)} />\n ) : (\n formatMessage({\n id: 'content-releases.pages.Releases.not-scheduled',\n defaultMessage: 'Not scheduled',\n })\n )}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(item)}\n onClick={() => trackUsage('willEditReleaseFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Upcoming Releases\n * -----------------------------------------------------------------------------------------------*/\n\nconst UpcomingReleasesWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetUpcomingReleasesQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-releases.widget.upcoming-releases.no-data',\n defaultMessage: 'No releases',\n })}\n </Widget.NoData>\n );\n }\n\n return <ReleasesTable items={data} />;\n};\n\nexport { UpcomingReleasesWidget };\n"],"names":["CellTypography","styled","Typography","ReleasesTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","item","id","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","name","variant","textColor","Box","display","status","Badge","getBadgeProps","aria-hidden","textTransform","scheduledAt","RelativeTime","timestamp","Date","defaultMessage","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","documentId","UpcomingReleasesWidget","data","isLoading","error","useGetUpcomingReleasesQuery","Widget","Loading","Error","NoData"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ const PLUGIN_ID = 'content-releases';
3
4
  const PERMISSIONS = {
4
5
  main: [
5
6
  {
@@ -74,4 +75,5 @@ const PERMISSIONS = {
74
75
  };
75
76
 
76
77
  exports.PERMISSIONS = PERMISSIONS;
78
+ exports.PLUGIN_ID = PLUGIN_ID;
77
79
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":";;MAEaA,WAAc,GAAA;IACzBC,IAAM,EAAA;AACJ,QAAA;YACEC,MAAQ,EAAA,+BAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDC,MAAQ,EAAA;AACN,QAAA;YACEN,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDE,MAAQ,EAAA;AACN,QAAA;YACEP,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDG,MAAQ,EAAA;AACN,QAAA;YACER,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDI,YAAc,EAAA;AACZ,QAAA;YACET,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDK,YAAc,EAAA;AACZ,QAAA;YACEV,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDM,OAAS,EAAA;AACP,QAAA;YACEX,MAAQ,EAAA,kCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD;AACH;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PLUGIN_ID = 'content-releases';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PLUGIN_ID","PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":";;AAEO,MAAMA,YAAY;MAEZC,WAAc,GAAA;IACzBC,IAAM,EAAA;AACJ,QAAA;YACEC,MAAQ,EAAA,+BAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDC,MAAQ,EAAA;AACN,QAAA;YACEN,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDE,MAAQ,EAAA;AACN,QAAA;YACEP,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDG,MAAQ,EAAA;AACN,QAAA;YACER,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDI,YAAc,EAAA;AACZ,QAAA;YACET,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDK,YAAc,EAAA;AACZ,QAAA;YACEV,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDM,OAAS,EAAA;AACP,QAAA;YACEX,MAAQ,EAAA,kCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD;AACH;;;;;"}
@@ -1,3 +1,4 @@
1
+ const PLUGIN_ID = 'content-releases';
1
2
  const PERMISSIONS = {
2
3
  main: [
3
4
  {
@@ -71,5 +72,5 @@ const PERMISSIONS = {
71
72
  ]
72
73
  };
73
74
 
74
- export { PERMISSIONS };
75
+ export { PERMISSIONS, PLUGIN_ID };
75
76
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":"MAEaA,WAAc,GAAA;IACzBC,IAAM,EAAA;AACJ,QAAA;YACEC,MAAQ,EAAA,+BAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDC,MAAQ,EAAA;AACN,QAAA;YACEN,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDE,MAAQ,EAAA;AACN,QAAA;YACEP,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDG,MAAQ,EAAA;AACN,QAAA;YACER,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDI,YAAc,EAAA;AACZ,QAAA;YACET,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDK,YAAc,EAAA;AACZ,QAAA;YACEV,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDM,OAAS,EAAA;AACP,QAAA;YACEX,MAAQ,EAAA,kCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD;AACH;;;;"}
1
+ {"version":3,"file":"constants.mjs","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PLUGIN_ID = 'content-releases';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PLUGIN_ID","PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":"AAEO,MAAMA,YAAY;MAEZC,WAAc,GAAA;IACzBC,IAAM,EAAA;AACJ,QAAA;YACEC,MAAQ,EAAA,+BAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDC,MAAQ,EAAA;AACN,QAAA;YACEN,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDE,MAAQ,EAAA;AACN,QAAA;YACEP,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDG,MAAQ,EAAA;AACN,QAAA;YACER,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDI,YAAc,EAAA;AACZ,QAAA;YACET,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDK,YAAc,EAAA;AACZ,QAAA;YACEV,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDM,OAAS,EAAA;AACP,QAAA;YACEX,MAAQ,EAAA,kCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD;AACH;;;;"}
@@ -11,7 +11,7 @@ var prefixPluginTranslations = require('./utils/prefixPluginTranslations.js');
11
11
 
12
12
  function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, default: e }); }
13
13
 
14
- function __variableDynamicImportRuntime3__(path) {
14
+ function __variableDynamicImportRuntime4__(path) {
15
15
  switch (path) {
16
16
  case './translations/en.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/en.json.js')); });
17
17
  case './translations/uk.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/uk.json.js')); });
@@ -86,6 +86,28 @@ const admin = {
86
86
  }
87
87
  // Hook that adds a column into the CM's LV table
88
88
  app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', ReleaseListCell.addColumnToTableHook);
89
+ app.widgets.register([
90
+ {
91
+ icon: icons.PaperPlane,
92
+ title: {
93
+ id: `${constants.PLUGIN_ID}.widget.upcoming-releases.title`,
94
+ defaultMessage: 'Upcoming releases'
95
+ },
96
+ component: async ()=>{
97
+ const { UpcomingReleasesWidget } = await Promise.resolve().then(function () { return require('./components/Widgets.js'); });
98
+ return UpcomingReleasesWidget;
99
+ },
100
+ pluginId: constants.PLUGIN_ID,
101
+ id: 'upcoming-releases',
102
+ link: {
103
+ label: {
104
+ id: `${constants.PLUGIN_ID}.widget.upcoming-releases.link`,
105
+ defaultMessage: 'Open Releases'
106
+ },
107
+ href: '/plugins/content-releases'
108
+ }
109
+ }
110
+ ]);
89
111
  } else if (!window.strapi.features.isEnabled('cms-content-releases') && window.strapi?.flags?.promoteEE) {
90
112
  app.addSettingsLink('global', {
91
113
  id: pluginId.pluginId,
@@ -107,7 +129,7 @@ const admin = {
107
129
  },
108
130
  async registerTrads ({ locales }) {
109
131
  const importedTrads = await Promise.all(locales.map((locale)=>{
110
- return __variableDynamicImportRuntime3__(`./translations/${locale}.json`).then(({ default: data })=>{
132
+ return __variableDynamicImportRuntime4__(`./translations/${locale}.json`).then(({ default: data })=>{
111
133
  return {
112
134
  data: prefixPluginTranslations.prefixPluginTranslations(data, 'content-releases'),
113
135
  locale
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n licenseOnly: true,\n permissions: [],\n async Component() {\n const { ProtectedReleasesSettingsPage } = await import('./pages/ReleasesSettingsPage');\n return { default: ProtectedReleasesSettingsPage };\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: '/plugins/purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n async Component() {\n const { PurchaseContentReleases } = await import('./pages/PurchaseContentReleases');\n return { default: PurchaseContentReleases };\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","licenseOnly","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","flags","promoteEE","PurchaseContentReleases","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS, PLUGIN_ID } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n licenseOnly: true,\n permissions: [],\n async Component() {\n const { ProtectedReleasesSettingsPage } = await import('./pages/ReleasesSettingsPage');\n return { default: ProtectedReleasesSettingsPage };\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n\n app.widgets.register([\n {\n icon: PaperPlane,\n title: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.title`,\n defaultMessage: 'Upcoming releases',\n },\n component: async () => {\n const { UpcomingReleasesWidget } = await import('./components/Widgets');\n return UpcomingReleasesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'upcoming-releases',\n link: {\n label: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.link`,\n defaultMessage: 'Open Releases',\n },\n href: '/plugins/content-releases',\n },\n },\n ]);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: '/plugins/purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n async Component() {\n const { PurchaseContentReleases } = await import('./pages/PurchaseContentReleases');\n return { default: PurchaseContentReleases };\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","licenseOnly","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","widgets","title","PLUGIN_ID","component","UpcomingReleasesWidget","link","label","href","flags","promoteEE","PurchaseContentReleases","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAiBA;AACA,MAAMA,KAAkC,GAAA;;AAEtCC,IAAAA,QAAAA,CAAAA,CAASC,GAAc,EAAA;AACrB;;;;QAKAA,GAAAA,CAAIC,UAAU,CAAC,6DAAA,CAAA;AAEf,QAAA,IAAIC,OAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAAyB,CAAA,EAAA;AAC5DL,YAAAA,GAAAA,CAAIM,WAAW,CAAC;AACdC,gBAAAA,EAAAA,EAAI,CAAC,QAAQ,EAAEC,iBAAAA,CAAS,CAAC;gBACzBC,IAAMC,EAAAA,gBAAAA;gBACNC,SAAW,EAAA;AACTC,oBAAAA,EAAAA,EAAI,CAAC,EAAEJ,iBAAS,CAAA,YAAY,CAAC;oBAC7BK,cAAgB,EAAA;AAClB,iBAAA;gBACAC,SAAW,EAAA,IAAM,oDAAO,gBAAA,KAAA,CAAeC,IAAI,CAAC,CAACC,OAAS;AAAEC,4BAAAA,OAAAA,EAASD,IAAIE;yBAAI,CAAA,CAAA;AACzEC,gBAAAA,WAAAA,EAAaC,sBAAYC,IAAI;gBAC7BC,QAAU,EAAA;AACZ,aAAA,CAAA;;AAGA,YAAA,MAAMC,wBAA2BvB,GAAAA,GAAAA,CAAIwB,SAAS,CAAC,mBAAmBC,IAAI;AACtE,YAAA,IACE,0BAA0BF,wBAC1B,IAAA,OAAOA,wBAAyBG,CAAAA,oBAAoB,KAAK,UACzD,EAAA;AACAH,gBAAAA,wBAAAA,CAAyBG,oBAAoB,CAAC;AAACC,oBAAAA;AAAc,iBAAA,CAAA;AAC/D;;AAGA,YAAA,IACE,uBAAuBJ,wBACvB,IAAA,OAAOA,wBAAyBK,CAAAA,iBAAiB,KAAK,UACtD,EAAA;gBACAL,wBAAyBK,CAAAA,iBAAiB,CAAC,CAACC,OAAAA,GAAAA;oBAC1C,MAAMC,mBAAAA,GAAsBD,QAAQE,SAAS,CAAC,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,IAAI,KAAK,WAAA,CAAA;oBAC1EJ,OAAQK,CAAAA,MAAM,CAACJ,mBAAAA,EAAqB,CAAGK,EAAAA,yCAAAA,CAAAA;oBACvC,OAAON,OAAAA;AACT,iBAAA,CAAA;AACF;YAEA7B,GAAIoC,CAAAA,eAAe,CAAC,QAAU,EAAA;gBAC5BxB,EAAIJ,EAAAA,iBAAAA;gBACJD,EAAI,EAAA,UAAA;gBACJI,SAAW,EAAA;AACTC,oBAAAA,EAAAA,EAAI,CAAC,EAAEJ,iBAAS,CAAA,YAAY,CAAC;oBAC7BK,cAAgB,EAAA;AAClB,iBAAA;gBACAwB,WAAa,EAAA,IAAA;AACblB,gBAAAA,WAAAA,EAAa,EAAE;gBACf,MAAML,SAAAA,CAAAA,GAAAA;AACJ,oBAAA,MAAM,EAAEwB,6BAA6B,EAAE,GAAG,MAAM,oDAAO,iCAAA,KAAA;oBACvD,OAAO;wBAAErB,OAASqB,EAAAA;AAA8B,qBAAA;AAClD;AACF,aAAA,CAAA;AAEA,YAAA,IACE,mBAAmBf,wBACnB,IAAA,OAAOA,wBAAyBgB,CAAAA,aAAa,KAAK,UAClD,EAAA;gBACAhB,wBAAyBgB,CAAAA,aAAa,CAAC,CAACV,OAAAA,GAAAA;;oBAEtC,MAAMW,iBAAAA,GAAoBX,QAAQE,SAAS,CAAC,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,IAAI,KAAK,QAAA,CAAA;oBAExEJ,OAAQK,CAAAA,MAAM,CAACM,iBAAAA,EAAmB,CAAGC,EAAAA,2BAAAA,CAAAA;oBACrC,OAAOZ,OAAAA;AACT,iBAAA,CAAA;AACF;;YAGA7B,GAAI0C,CAAAA,YAAY,CAAC,gDAAkDC,EAAAA,oCAAAA,CAAAA;YAEnE3C,GAAI4C,CAAAA,OAAO,CAAC7C,QAAQ,CAAC;AACnB,gBAAA;oBACEU,IAAMC,EAAAA,gBAAAA;oBACNmC,KAAO,EAAA;AACLjC,wBAAAA,EAAAA,EAAI,CAAC,EAAEkC,mBAAU,CAAA,+BAA+B,CAAC;wBACjDjC,cAAgB,EAAA;AAClB,qBAAA;oBACAkC,SAAW,EAAA,UAAA;AACT,wBAAA,MAAM,EAAEC,sBAAsB,EAAE,GAAG,MAAM,oDAAO,yBAAA,KAAA;wBAChD,OAAOA,sBAAAA;AACT,qBAAA;oBACAxC,QAAUsC,EAAAA,mBAAAA;oBACVlC,EAAI,EAAA,mBAAA;oBACJqC,IAAM,EAAA;wBACJC,KAAO,EAAA;AACLtC,4BAAAA,EAAAA,EAAI,CAAC,EAAEkC,mBAAU,CAAA,8BAA8B,CAAC;4BAChDjC,cAAgB,EAAA;AAClB,yBAAA;wBACAsC,IAAM,EAAA;AACR;AACF;AACD,aAAA,CAAA;AACH,SAAA,MAAO,IACL,CAACjD,MAAOC,CAAAA,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAClCH,CAAAA,IAAAA,MAAAA,CAAOC,MAAM,EAAEiD,OAAOC,SACtB,EAAA;YACArD,GAAIoC,CAAAA,eAAe,CAAC,QAAU,EAAA;gBAC5BxB,EAAIJ,EAAAA,iBAAAA;gBACJD,EAAI,EAAA,oCAAA;gBACJI,SAAW,EAAA;AACTC,oBAAAA,EAAAA,EAAI,CAAC,EAAEJ,iBAAS,CAAA,YAAY,CAAC;oBAC7BK,cAAgB,EAAA;AAClB,iBAAA;AACAM,gBAAAA,WAAAA,EAAa,EAAE;gBACf,MAAML,SAAAA,CAAAA,GAAAA;AACJ,oBAAA,MAAM,EAAEwC,uBAAuB,EAAE,GAAG,MAAM,oDAAO,oCAAA,KAAA;oBACjD,OAAO;wBAAErC,OAASqC,EAAAA;AAAwB,qBAAA;AAC5C,iBAAA;gBACAjB,WAAa,EAAA;AACf,aAAA,CAAA;AACF;AACF,KAAA;IACA,MAAMkB,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAQC,CAAAA,GAAG,CACrCH,OAAQI,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAO,CAAA,KAAK,CAAC,CAAA,CAC1C9C,IAAI,CAAC,CAAC,EAAEE,OAAAA,EAAS6C,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,kDAAyBD,IAAM,EAAA,kBAAA,CAAA;AACrCD,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA,CACCG,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPD,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQO,OAAO,CAACR,aAAAA,CAAAA;AACzB;AACF;;;;"}
@@ -3,11 +3,11 @@ import { ReleaseAction } from './components/ReleaseAction.mjs';
3
3
  import { ReleaseActionModalForm } from './components/ReleaseActionModal.mjs';
4
4
  import { addColumnToTableHook } from './components/ReleaseListCell.mjs';
5
5
  import { Panel } from './components/ReleasesPanel.mjs';
6
- import { PERMISSIONS } from './constants.mjs';
6
+ import { PERMISSIONS, PLUGIN_ID } from './constants.mjs';
7
7
  import { pluginId } from './pluginId.mjs';
8
8
  import { prefixPluginTranslations } from './utils/prefixPluginTranslations.mjs';
9
9
 
10
- function __variableDynamicImportRuntime3__(path) {
10
+ function __variableDynamicImportRuntime4__(path) {
11
11
  switch (path) {
12
12
  case './translations/en.json': return import('./translations/en.json.mjs');
13
13
  case './translations/uk.json': return import('./translations/uk.json.mjs');
@@ -82,6 +82,28 @@ const admin = {
82
82
  }
83
83
  // Hook that adds a column into the CM's LV table
84
84
  app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);
85
+ app.widgets.register([
86
+ {
87
+ icon: PaperPlane,
88
+ title: {
89
+ id: `${PLUGIN_ID}.widget.upcoming-releases.title`,
90
+ defaultMessage: 'Upcoming releases'
91
+ },
92
+ component: async ()=>{
93
+ const { UpcomingReleasesWidget } = await import('./components/Widgets.mjs');
94
+ return UpcomingReleasesWidget;
95
+ },
96
+ pluginId: PLUGIN_ID,
97
+ id: 'upcoming-releases',
98
+ link: {
99
+ label: {
100
+ id: `${PLUGIN_ID}.widget.upcoming-releases.link`,
101
+ defaultMessage: 'Open Releases'
102
+ },
103
+ href: '/plugins/content-releases'
104
+ }
105
+ }
106
+ ]);
85
107
  } else if (!window.strapi.features.isEnabled('cms-content-releases') && window.strapi?.flags?.promoteEE) {
86
108
  app.addSettingsLink('global', {
87
109
  id: pluginId,
@@ -103,7 +125,7 @@ const admin = {
103
125
  },
104
126
  async registerTrads ({ locales }) {
105
127
  const importedTrads = await Promise.all(locales.map((locale)=>{
106
- return __variableDynamicImportRuntime3__(`./translations/${locale}.json`).then(({ default: data })=>{
128
+ return __variableDynamicImportRuntime4__(`./translations/${locale}.json`).then(({ default: data })=>{
107
129
  return {
108
130
  data: prefixPluginTranslations(data, 'content-releases'),
109
131
  locale
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n licenseOnly: true,\n permissions: [],\n async Component() {\n const { ProtectedReleasesSettingsPage } = await import('./pages/ReleasesSettingsPage');\n return { default: ProtectedReleasesSettingsPage };\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: '/plugins/purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n async Component() {\n const { PurchaseContentReleases } = await import('./pages/PurchaseContentReleases');\n return { default: PurchaseContentReleases };\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","licenseOnly","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","flags","promoteEE","PurchaseContentReleases","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;AAiBA;AACA,MAAMA,KAAkC,GAAA;;AAEtCC,IAAAA,QAAAA,CAAAA,CAASC,GAAc,EAAA;AACrB;;;;QAKAA,GAAAA,CAAIC,UAAU,CAAC,6DAAA,CAAA;AAEf,QAAA,IAAIC,OAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAAyB,CAAA,EAAA;AAC5DL,YAAAA,GAAAA,CAAIM,WAAW,CAAC;AACdC,gBAAAA,EAAAA,EAAI,CAAC,QAAQ,EAAEC,QAAAA,CAAS,CAAC;gBACzBC,IAAMC,EAAAA,UAAAA;gBACNC,SAAW,EAAA;AACTC,oBAAAA,EAAAA,EAAI,CAAC,EAAEJ,QAAS,CAAA,YAAY,CAAC;oBAC7BK,cAAgB,EAAA;AAClB,iBAAA;gBACAC,SAAW,EAAA,IAAM,OAAO,iBAAA,CAAA,CAAeC,IAAI,CAAC,CAACC,OAAS;AAAEC,4BAAAA,OAAAA,EAASD,IAAIE;yBAAI,CAAA,CAAA;AACzEC,gBAAAA,WAAAA,EAAaC,YAAYC,IAAI;gBAC7BC,QAAU,EAAA;AACZ,aAAA,CAAA;;AAGA,YAAA,MAAMC,wBAA2BvB,GAAAA,GAAAA,CAAIwB,SAAS,CAAC,mBAAmBC,IAAI;AACtE,YAAA,IACE,0BAA0BF,wBAC1B,IAAA,OAAOA,wBAAyBG,CAAAA,oBAAoB,KAAK,UACzD,EAAA;AACAH,gBAAAA,wBAAAA,CAAyBG,oBAAoB,CAAC;AAACC,oBAAAA;AAAc,iBAAA,CAAA;AAC/D;;AAGA,YAAA,IACE,uBAAuBJ,wBACvB,IAAA,OAAOA,wBAAyBK,CAAAA,iBAAiB,KAAK,UACtD,EAAA;gBACAL,wBAAyBK,CAAAA,iBAAiB,CAAC,CAACC,OAAAA,GAAAA;oBAC1C,MAAMC,mBAAAA,GAAsBD,QAAQE,SAAS,CAAC,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,IAAI,KAAK,WAAA,CAAA;oBAC1EJ,OAAQK,CAAAA,MAAM,CAACJ,mBAAAA,EAAqB,CAAGK,EAAAA,sBAAAA,CAAAA;oBACvC,OAAON,OAAAA;AACT,iBAAA,CAAA;AACF;YAEA7B,GAAIoC,CAAAA,eAAe,CAAC,QAAU,EAAA;gBAC5BxB,EAAIJ,EAAAA,QAAAA;gBACJD,EAAI,EAAA,UAAA;gBACJI,SAAW,EAAA;AACTC,oBAAAA,EAAAA,EAAI,CAAC,EAAEJ,QAAS,CAAA,YAAY,CAAC;oBAC7BK,cAAgB,EAAA;AAClB,iBAAA;gBACAwB,WAAa,EAAA,IAAA;AACblB,gBAAAA,WAAAA,EAAa,EAAE;gBACf,MAAML,SAAAA,CAAAA,GAAAA;AACJ,oBAAA,MAAM,EAAEwB,6BAA6B,EAAE,GAAG,MAAM,OAAO,kCAAA,CAAA;oBACvD,OAAO;wBAAErB,OAASqB,EAAAA;AAA8B,qBAAA;AAClD;AACF,aAAA,CAAA;AAEA,YAAA,IACE,mBAAmBf,wBACnB,IAAA,OAAOA,wBAAyBgB,CAAAA,aAAa,KAAK,UAClD,EAAA;gBACAhB,wBAAyBgB,CAAAA,aAAa,CAAC,CAACV,OAAAA,GAAAA;;oBAEtC,MAAMW,iBAAAA,GAAoBX,QAAQE,SAAS,CAAC,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,IAAI,KAAK,QAAA,CAAA;oBAExEJ,OAAQK,CAAAA,MAAM,CAACM,iBAAAA,EAAmB,CAAGC,EAAAA,aAAAA,CAAAA;oBACrC,OAAOZ,OAAAA;AACT,iBAAA,CAAA;AACF;;YAGA7B,GAAI0C,CAAAA,YAAY,CAAC,gDAAkDC,EAAAA,oBAAAA,CAAAA;AACrE,SAAA,MAAO,IACL,CAACzC,MAAOC,CAAAA,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAClCH,CAAAA,IAAAA,MAAAA,CAAOC,MAAM,EAAEyC,OAAOC,SACtB,EAAA;YACA7C,GAAIoC,CAAAA,eAAe,CAAC,QAAU,EAAA;gBAC5BxB,EAAIJ,EAAAA,QAAAA;gBACJD,EAAI,EAAA,oCAAA;gBACJI,SAAW,EAAA;AACTC,oBAAAA,EAAAA,EAAI,CAAC,EAAEJ,QAAS,CAAA,YAAY,CAAC;oBAC7BK,cAAgB,EAAA;AAClB,iBAAA;AACAM,gBAAAA,WAAAA,EAAa,EAAE;gBACf,MAAML,SAAAA,CAAAA,GAAAA;AACJ,oBAAA,MAAM,EAAEgC,uBAAuB,EAAE,GAAG,MAAM,OAAO,qCAAA,CAAA;oBACjD,OAAO;wBAAE7B,OAAS6B,EAAAA;AAAwB,qBAAA;AAC5C,iBAAA;gBACAT,WAAa,EAAA;AACf,aAAA,CAAA;AACF;AACF,KAAA;IACA,MAAMU,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAQC,CAAAA,GAAG,CACrCH,OAAQI,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAO,CAAA,KAAK,CAAC,CAAA,CAC1CtC,IAAI,CAAC,CAAC,EAAEE,OAAAA,EAASqC,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,yBAAyBD,IAAM,EAAA,kBAAA,CAAA;AACrCD,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA,CACCG,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPD,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQO,OAAO,CAACR,aAAAA,CAAAA;AACzB;AACF;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS, PLUGIN_ID } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n licenseOnly: true,\n permissions: [],\n async Component() {\n const { ProtectedReleasesSettingsPage } = await import('./pages/ReleasesSettingsPage');\n return { default: ProtectedReleasesSettingsPage };\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n\n app.widgets.register([\n {\n icon: PaperPlane,\n title: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.title`,\n defaultMessage: 'Upcoming releases',\n },\n component: async () => {\n const { UpcomingReleasesWidget } = await import('./components/Widgets');\n return UpcomingReleasesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'upcoming-releases',\n link: {\n label: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.link`,\n defaultMessage: 'Open Releases',\n },\n href: '/plugins/content-releases',\n },\n },\n ]);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: '/plugins/purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n async Component() {\n const { PurchaseContentReleases } = await import('./pages/PurchaseContentReleases');\n return { default: PurchaseContentReleases };\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","licenseOnly","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","widgets","title","PLUGIN_ID","component","UpcomingReleasesWidget","link","label","href","flags","promoteEE","PurchaseContentReleases","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
4
+
5
+ const contentManagerApi = strapiAdmin.adminApi.enhanceEndpoints({
6
+ addTagTypes: [
7
+ 'UpcomingReleasesList'
8
+ ]
9
+ }).injectEndpoints({
10
+ endpoints: (builder)=>({
11
+ getUpcomingReleases: builder.query({
12
+ query: ()=>'/content-releases/homepage/upcoming-releases',
13
+ transformResponse: (response)=>response.data,
14
+ providesTags: (_, _err)=>[
15
+ 'UpcomingReleasesList'
16
+ ]
17
+ })
18
+ }),
19
+ overrideExisting: true
20
+ });
21
+ const { useGetUpcomingReleasesQuery } = contentManagerApi;
22
+
23
+ exports.useGetUpcomingReleasesQuery = useGetUpcomingReleasesQuery;
24
+ //# sourceMappingURL=homepage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homepage.js","sources":["../../../admin/src/services/homepage.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nimport * as Homepage from '../../../shared/contracts/homepage';\n\nimport type { Contracts } from '@strapi/content-manager/_internal/shared';\n\ntype ContentType = Contracts.ContentTypes.ContentType;\ninterface ContentTypes {\n collectionType: ContentType[];\n singleType: ContentType[];\n}\n\nconst contentManagerApi = adminApi\n .enhanceEndpoints({\n addTagTypes: ['UpcomingReleasesList'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getUpcomingReleases: builder.query<Homepage.GetUpcomingReleases.Response['data'], void>({\n query: () => '/content-releases/homepage/upcoming-releases',\n transformResponse: (response: Homepage.GetUpcomingReleases.Response) => response.data,\n providesTags: (_, _err) => ['UpcomingReleasesList'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst { useGetUpcomingReleasesQuery } = contentManagerApi;\n\nexport { useGetUpcomingReleasesQuery };\nexport type { ContentTypes, ContentType };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getUpcomingReleases","query","transformResponse","response","data","providesTags","_","_err","overrideExisting","useGetUpcomingReleasesQuery"],"mappings":";;;;AAYA,MAAMA,iBAAAA,GAAoBC,oBACvBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAuB;AACvC,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,mBAAqBD,EAAAA,OAAAA,CAAQE,KAAK,CAAsD;AACtFA,gBAAAA,KAAAA,EAAO,IAAM,8CAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAoDA,GAAAA,QAAAA,CAASC,IAAI;gBACrFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAuB;AACrD,aAAA;SACF,CAAA;IACAC,gBAAkB,EAAA;AACpB,CAAA,CAAA;AAEI,MAAA,EAAEC,2BAA2B,EAAE,GAAGhB;;;;"}
@@ -0,0 +1,22 @@
1
+ import { adminApi } from '@strapi/admin/strapi-admin';
2
+
3
+ const contentManagerApi = adminApi.enhanceEndpoints({
4
+ addTagTypes: [
5
+ 'UpcomingReleasesList'
6
+ ]
7
+ }).injectEndpoints({
8
+ endpoints: (builder)=>({
9
+ getUpcomingReleases: builder.query({
10
+ query: ()=>'/content-releases/homepage/upcoming-releases',
11
+ transformResponse: (response)=>response.data,
12
+ providesTags: (_, _err)=>[
13
+ 'UpcomingReleasesList'
14
+ ]
15
+ })
16
+ }),
17
+ overrideExisting: true
18
+ });
19
+ const { useGetUpcomingReleasesQuery } = contentManagerApi;
20
+
21
+ export { useGetUpcomingReleasesQuery };
22
+ //# sourceMappingURL=homepage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homepage.mjs","sources":["../../../admin/src/services/homepage.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nimport * as Homepage from '../../../shared/contracts/homepage';\n\nimport type { Contracts } from '@strapi/content-manager/_internal/shared';\n\ntype ContentType = Contracts.ContentTypes.ContentType;\ninterface ContentTypes {\n collectionType: ContentType[];\n singleType: ContentType[];\n}\n\nconst contentManagerApi = adminApi\n .enhanceEndpoints({\n addTagTypes: ['UpcomingReleasesList'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getUpcomingReleases: builder.query<Homepage.GetUpcomingReleases.Response['data'], void>({\n query: () => '/content-releases/homepage/upcoming-releases',\n transformResponse: (response: Homepage.GetUpcomingReleases.Response) => response.data,\n providesTags: (_, _err) => ['UpcomingReleasesList'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst { useGetUpcomingReleasesQuery } = contentManagerApi;\n\nexport { useGetUpcomingReleasesQuery };\nexport type { ContentTypes, ContentType };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getUpcomingReleases","query","transformResponse","response","data","providesTags","_","_err","overrideExisting","useGetUpcomingReleasesQuery"],"mappings":";;AAYA,MAAMA,iBAAAA,GAAoBC,QACvBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAuB;AACvC,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,mBAAqBD,EAAAA,OAAAA,CAAQE,KAAK,CAAsD;AACtFA,gBAAAA,KAAAA,EAAO,IAAM,8CAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAoDA,GAAAA,QAAAA,CAASC,IAAI;gBACrFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAuB;AACrD,aAAA;SACF,CAAA;IACAC,gBAAkB,EAAA;AACpB,CAAA,CAAA;AAEI,MAAA,EAAEC,2BAA2B,EAAE,GAAGhB;;;;"}