@strapi/plugin-documentation 4.20.5 → 5.0.0-alpha.1

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 (64) hide show
  1. package/admin/src/hooks/useDocumentation.js +9 -7
  2. package/admin/src/index.js +5 -19
  3. package/admin/src/pages/PluginPage/index.jsx +12 -28
  4. package/admin/src/pages/PluginPage/tests/index.test.jsx +13 -14
  5. package/admin/src/pages/SettingsPage/index.jsx +138 -146
  6. package/admin/src/pages/SettingsPage/tests/index.test.jsx +6 -13
  7. package/admin/src/utils/prefixPluginTranslations.js +13 -0
  8. package/dist/_chunks/EditViewPage-kgrZ8rEg-N3ylaYYT.mjs +84382 -0
  9. package/dist/_chunks/EditViewPage-kgrZ8rEg-N3ylaYYT.mjs.map +1 -0
  10. package/dist/_chunks/EditViewPage-kgrZ8rEg-QXBi74pP.js +84410 -0
  11. package/dist/_chunks/EditViewPage-kgrZ8rEg-QXBi74pP.js.map +1 -0
  12. package/dist/_chunks/ListViewPage-BNB0ptO7-Y0blKENS.js +1617 -0
  13. package/dist/_chunks/ListViewPage-BNB0ptO7-Y0blKENS.js.map +1 -0
  14. package/dist/_chunks/ListViewPage-BNB0ptO7-qPG-Y69A.mjs +1594 -0
  15. package/dist/_chunks/ListViewPage-BNB0ptO7-qPG-Y69A.mjs.map +1 -0
  16. package/dist/_chunks/ReviewWorkflowsColumn-56Z6l-FH-j4yjCkjD.js +33 -0
  17. package/dist/_chunks/ReviewWorkflowsColumn-56Z6l-FH-j4yjCkjD.js.map +1 -0
  18. package/dist/_chunks/ReviewWorkflowsColumn-56Z6l-FH-jOwjGO3o.mjs +33 -0
  19. package/dist/_chunks/ReviewWorkflowsColumn-56Z6l-FH-jOwjGO3o.mjs.map +1 -0
  20. package/dist/_chunks/constants-evLWZCaJ-Oxpg3z7Q.mjs +190 -0
  21. package/dist/_chunks/constants-evLWZCaJ-Oxpg3z7Q.mjs.map +1 -0
  22. package/dist/_chunks/constants-evLWZCaJ-ZpfIp8P_.js +209 -0
  23. package/dist/_chunks/constants-evLWZCaJ-ZpfIp8P_.js.map +1 -0
  24. package/dist/_chunks/{index-8QCog8RN.js → index-7OS1Qe_4.js} +15 -13
  25. package/dist/_chunks/index-7OS1Qe_4.js.map +1 -0
  26. package/dist/_chunks/{index-6c_gUVrM.mjs → index-JM6LA3Oe.mjs} +26 -24
  27. package/dist/_chunks/index-JM6LA3Oe.mjs.map +1 -0
  28. package/dist/_chunks/index-R7UT09YY.js +17934 -0
  29. package/dist/_chunks/index-R7UT09YY.js.map +1 -0
  30. package/dist/_chunks/index-lggLaJiY.mjs +17909 -0
  31. package/dist/_chunks/index-lggLaJiY.mjs.map +1 -0
  32. package/dist/_chunks/{index-r8UM9pKc.js → index-ri1exVbc.js} +29 -27
  33. package/dist/_chunks/index-ri1exVbc.js.map +1 -0
  34. package/dist/_chunks/{index-SdK6c8ae.mjs → index-ynnbYrP0.mjs} +12 -10
  35. package/dist/_chunks/index-ynnbYrP0.mjs.map +1 -0
  36. package/dist/_chunks/{useDocumentation-uuvchj5L.js → useDocumentation-GsX6iQVe.js} +15 -13
  37. package/dist/_chunks/useDocumentation-GsX6iQVe.js.map +1 -0
  38. package/dist/_chunks/{useDocumentation-DcjdYl47.mjs → useDocumentation-jTKQvwxD.mjs} +11 -9
  39. package/dist/_chunks/useDocumentation-jTKQvwxD.mjs.map +1 -0
  40. package/dist/_chunks/useSyncRbac-83vFRiaG-5ec8lrUQ.js +57 -0
  41. package/dist/_chunks/useSyncRbac-83vFRiaG-5ec8lrUQ.js.map +1 -0
  42. package/dist/_chunks/useSyncRbac-83vFRiaG-oJpvBKQE.mjs +39 -0
  43. package/dist/_chunks/useSyncRbac-83vFRiaG-oJpvBKQE.mjs.map +1 -0
  44. package/dist/admin/index.js +1 -2
  45. package/dist/admin/index.js.map +1 -1
  46. package/dist/admin/index.mjs +1 -2
  47. package/dist/admin/index.mjs.map +1 -1
  48. package/dist/style.css +84 -0
  49. package/package.json +13 -13
  50. package/server/controllers/documentation.js +2 -2
  51. package/server/middlewares/restrict-access.js +1 -1
  52. package/server/services/__mocks__/mock-content-types.js +0 -5
  53. package/server/services/documentation.js +2 -3
  54. package/server/services/override.js +1 -1
  55. package/dist/_chunks/index-6c_gUVrM.mjs.map +0 -1
  56. package/dist/_chunks/index-8QCog8RN.js.map +0 -1
  57. package/dist/_chunks/index-SdK6c8ae.mjs.map +0 -1
  58. package/dist/_chunks/index-iIEENwT0.js +0 -169
  59. package/dist/_chunks/index-iIEENwT0.js.map +0 -1
  60. package/dist/_chunks/index-r8UM9pKc.js.map +0 -1
  61. package/dist/_chunks/index-uTcHJZnf.mjs +0 -167
  62. package/dist/_chunks/index-uTcHJZnf.mjs.map +0 -1
  63. package/dist/_chunks/useDocumentation-DcjdYl47.mjs.map +0 -1
  64. package/dist/_chunks/useDocumentation-uuvchj5L.js.map +0 -1
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const index = require("./index-R7UT09YY.js");
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const React = require("react");
6
+ const designSystem = require("@strapi/design-system");
7
+ const reactIntl = require("react-intl");
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule)
10
+ return e;
11
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
12
+ if (e) {
13
+ for (const k in e) {
14
+ if (k !== "default") {
15
+ const d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: () => e[k]
19
+ });
20
+ }
21
+ }
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+ const React__namespace = /* @__PURE__ */ _interopNamespace(React);
27
+ function useReviewWorkflows(params = {}) {
28
+ const { id = "", ...queryParams } = params;
29
+ const { data, isLoading } = index.useGetWorkflowsQuery({
30
+ id,
31
+ populate: "stages",
32
+ ...queryParams
33
+ });
34
+ const [createWorkflow] = index.useCreateWorkflowMutation();
35
+ const [updateWorkflow] = index.useUpdateWorkflowMutation();
36
+ const [deleteWorkflow] = index.useDeleteWorkflowMutation();
37
+ const { workflows, meta } = data ?? {};
38
+ return {
39
+ // meta contains e.g. the total of all workflows. we can not use
40
+ // the pagination object here, because the list is not paginated.
41
+ meta,
42
+ workflows,
43
+ isLoading,
44
+ createWorkflow,
45
+ updateWorkflow,
46
+ deleteWorkflow
47
+ };
48
+ }
49
+ const AssigneeFilter = ({ name }) => {
50
+ const [page, setPage] = React__namespace.useState(1);
51
+ const { formatMessage } = reactIntl.useIntl();
52
+ const { data, isLoading } = index.useAdminUsers({
53
+ page
54
+ });
55
+ const users = data?.users || [];
56
+ const field = index.useField(name);
57
+ const handleChange = (value) => {
58
+ setPage(1);
59
+ field.onChange(name, value);
60
+ };
61
+ return /* @__PURE__ */ jsxRuntime.jsx(
62
+ designSystem.Combobox,
63
+ {
64
+ value: field.value,
65
+ "aria-label": formatMessage({
66
+ id: "content-manager.components.Filters.usersSelect.label",
67
+ defaultMessage: "Search and select an user to filter"
68
+ }),
69
+ onChange: handleChange,
70
+ loading: isLoading,
71
+ onLoadMore: () => setPage((prev) => prev + 1),
72
+ children: users.map((user) => {
73
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ComboboxOption, { value: user.id.toString(), children: index.getDisplayName(user, formatMessage) }, user.id);
74
+ })
75
+ }
76
+ );
77
+ };
78
+ const StageFilter = (props) => {
79
+ const { model } = index.useDoc();
80
+ const { formatMessage } = reactIntl.useIntl();
81
+ const { workflows, isLoading } = useReviewWorkflows({ filters: { contentTypes: model } });
82
+ const field = index.useField(props.name);
83
+ const [workflow] = workflows ?? [];
84
+ return /* @__PURE__ */ jsxRuntime.jsx(
85
+ designSystem.SingleSelect,
86
+ {
87
+ "aria-label": formatMessage({
88
+ id: "content-manager.components.Filters.reviewWorkflows.label",
89
+ defaultMessage: "Search and select an workflow stage to filter"
90
+ }),
91
+ value: field.value,
92
+ onChange: (value) => {
93
+ field.onChange(props.name, value);
94
+ },
95
+ loading: isLoading,
96
+ customizeContent: () => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { as: "span", justifyContent: "space-between", alignItems: "center", width: "100%", children: [
97
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", ellipsis: true, children: field.value }),
98
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Loader, { small: true, style: { display: "flex" } }) : null
99
+ ] }),
100
+ children: (workflow?.stages ?? []).map(({ id, color, name }) => {
101
+ const { themeColorName } = index.getStageColorByHex(color) ?? {};
102
+ return /* @__PURE__ */ jsxRuntime.jsx(
103
+ designSystem.SingleSelectOption,
104
+ {
105
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(
106
+ designSystem.Flex,
107
+ {
108
+ height: 2,
109
+ background: color,
110
+ borderColor: themeColorName === "neutral0" ? "neutral150" : void 0,
111
+ hasRadius: true,
112
+ shrink: 0,
113
+ width: 2
114
+ }
115
+ ),
116
+ value: name,
117
+ children: name
118
+ },
119
+ id
120
+ );
121
+ })
122
+ }
123
+ );
124
+ };
125
+ const REVIEW_WORKFLOW_COLUMNS_EE = [
126
+ {
127
+ name: index.STAGE_ATTRIBUTE_NAME,
128
+ attribute: {
129
+ type: "relation",
130
+ relation: "oneToMany",
131
+ target: "admin::review-workflow-stage"
132
+ },
133
+ label: {
134
+ id: index.getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),
135
+ defaultMessage: "Review stage"
136
+ },
137
+ searchable: false,
138
+ sortable: true,
139
+ mainField: {
140
+ name: "name",
141
+ type: "string"
142
+ }
143
+ },
144
+ {
145
+ name: index.ASSIGNEE_ATTRIBUTE_NAME,
146
+ attribute: {
147
+ type: "relation",
148
+ target: "admin::user",
149
+ relation: "oneToMany"
150
+ },
151
+ label: {
152
+ id: index.getTranslation(`containers.list.table-headers.reviewWorkflows.assignee`),
153
+ defaultMessage: "Assignee"
154
+ },
155
+ searchable: false,
156
+ sortable: true,
157
+ mainField: {
158
+ name: "firstname",
159
+ type: "string"
160
+ }
161
+ }
162
+ ];
163
+ const REVIEW_WORKFLOW_FILTERS = [
164
+ {
165
+ mainField: {
166
+ name: "name",
167
+ type: "string"
168
+ },
169
+ input: StageFilter,
170
+ label: {
171
+ id: index.getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),
172
+ defaultMessage: "Review stage"
173
+ },
174
+ name: "strapi_stage",
175
+ type: "relation"
176
+ },
177
+ {
178
+ type: "relation",
179
+ mainField: {
180
+ name: "id",
181
+ type: "integer"
182
+ },
183
+ input: AssigneeFilter,
184
+ operators: [
185
+ {
186
+ label: {
187
+ id: "components.FilterOptions.FILTER_TYPES.$eq",
188
+ defaultMessage: "is"
189
+ },
190
+ value: "$eq"
191
+ },
192
+ {
193
+ label: {
194
+ id: "components.FilterOptions.FILTER_TYPES.$ne",
195
+ defaultMessage: "is not"
196
+ },
197
+ value: "$ne"
198
+ }
199
+ ],
200
+ label: {
201
+ id: index.getTranslation(`containers.list.table-headers.reviewWorkflows.assignee.label`),
202
+ defaultMessage: "Assignee"
203
+ },
204
+ name: "strapi_assignee"
205
+ }
206
+ ];
207
+ exports.REVIEW_WORKFLOW_COLUMNS_EE = REVIEW_WORKFLOW_COLUMNS_EE;
208
+ exports.REVIEW_WORKFLOW_FILTERS = REVIEW_WORKFLOW_FILTERS;
209
+ //# sourceMappingURL=constants-evLWZCaJ-ZpfIp8P_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-evLWZCaJ-ZpfIp8P_.js","sources":["../../../../core/admin/dist/_chunks/useReviewWorkflows-9jvDW408.mjs","../../../../core/admin/dist/_chunks/constants-evLWZCaJ.mjs"],"sourcesContent":["import { W as useGetWorkflowsQuery, X as useCreateWorkflowMutation, Y as useUpdateWorkflowMutation, Z as useDeleteWorkflowMutation } from \"./index-YFPS5vYF.mjs\";\nfunction useReviewWorkflows(params = {}) {\n const { id = \"\", ...queryParams } = params;\n const { data, isLoading } = useGetWorkflowsQuery({\n id,\n populate: \"stages\",\n ...queryParams\n });\n const [createWorkflow] = useCreateWorkflowMutation();\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n const { workflows, meta } = data ?? {};\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n workflows,\n isLoading,\n createWorkflow,\n updateWorkflow,\n deleteWorkflow\n };\n}\nexport {\n useReviewWorkflows as u\n};\n//# sourceMappingURL=useReviewWorkflows-9jvDW408.mjs.map\n","import { D as useAdminUsers, E as useField, g as getDisplayName, am as useDoc, aj as getStageColorByHex, bo as STAGE_ATTRIBUTE_NAME, ar as getTranslation, bp as ASSIGNEE_ATTRIBUTE_NAME } from \"./index-YFPS5vYF.mjs\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { Combobox, ComboboxOption, SingleSelect, Flex, Typography, Loader, SingleSelectOption } from \"@strapi/design-system\";\nimport { useIntl } from \"react-intl\";\nimport { u as useReviewWorkflows } from \"./useReviewWorkflows-9jvDW408.mjs\";\nconst AssigneeFilter = ({ name }) => {\n const [page, setPage] = React.useState(1);\n const { formatMessage } = useIntl();\n const { data, isLoading } = useAdminUsers({\n page\n });\n const users = data?.users || [];\n const field = useField(name);\n const handleChange = (value) => {\n setPage(1);\n field.onChange(name, value);\n };\n return /* @__PURE__ */ jsx(\n Combobox,\n {\n value: field.value,\n \"aria-label\": formatMessage({\n id: \"content-manager.components.Filters.usersSelect.label\",\n defaultMessage: \"Search and select an user to filter\"\n }),\n onChange: handleChange,\n loading: isLoading,\n onLoadMore: () => setPage((prev) => prev + 1),\n children: users.map((user) => {\n return /* @__PURE__ */ jsx(ComboboxOption, { value: user.id.toString(), children: getDisplayName(user, formatMessage) }, user.id);\n })\n }\n );\n};\nconst StageFilter = (props) => {\n const { model } = useDoc();\n const { formatMessage } = useIntl();\n const { workflows, isLoading } = useReviewWorkflows({ filters: { contentTypes: model } });\n const field = useField(props.name);\n const [workflow] = workflows ?? [];\n return /* @__PURE__ */ jsx(\n SingleSelect,\n {\n \"aria-label\": formatMessage({\n id: \"content-manager.components.Filters.reviewWorkflows.label\",\n defaultMessage: \"Search and select an workflow stage to filter\"\n }),\n value: field.value,\n onChange: (value) => {\n field.onChange(props.name, value);\n },\n loading: isLoading,\n customizeContent: () => /* @__PURE__ */ jsxs(Flex, { as: \"span\", justifyContent: \"space-between\", alignItems: \"center\", width: \"100%\", children: [\n /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", ellipsis: true, children: field.value }),\n isLoading ? /* @__PURE__ */ jsx(Loader, { small: true, style: { display: \"flex\" } }) : null\n ] }),\n children: (workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n return /* @__PURE__ */ jsx(\n SingleSelectOption,\n {\n startIcon: /* @__PURE__ */ jsx(\n Flex,\n {\n height: 2,\n background: color,\n borderColor: themeColorName === \"neutral0\" ? \"neutral150\" : void 0,\n hasRadius: true,\n shrink: 0,\n width: 2\n }\n ),\n value: name,\n children: name\n },\n id\n );\n })\n }\n );\n};\nconst REVIEW_WORKFLOW_COLUMNS_EE = [\n {\n name: STAGE_ATTRIBUTE_NAME,\n attribute: {\n type: \"relation\",\n relation: \"oneToMany\",\n target: \"admin::review-workflow-stage\"\n },\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),\n defaultMessage: \"Review stage\"\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: \"name\",\n type: \"string\"\n }\n },\n {\n name: ASSIGNEE_ATTRIBUTE_NAME,\n attribute: {\n type: \"relation\",\n target: \"admin::user\",\n relation: \"oneToMany\"\n },\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.assignee`),\n defaultMessage: \"Assignee\"\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: \"firstname\",\n type: \"string\"\n }\n }\n];\nconst REVIEW_WORKFLOW_FILTERS = [\n {\n mainField: {\n name: \"name\",\n type: \"string\"\n },\n input: StageFilter,\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),\n defaultMessage: \"Review stage\"\n },\n name: \"strapi_stage\",\n type: \"relation\"\n },\n {\n type: \"relation\",\n mainField: {\n name: \"id\",\n type: \"integer\"\n },\n input: AssigneeFilter,\n operators: [\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$eq\",\n defaultMessage: \"is\"\n },\n value: \"$eq\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$ne\",\n defaultMessage: \"is not\"\n },\n value: \"$ne\"\n }\n ],\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: \"Assignee\"\n },\n name: \"strapi_assignee\"\n }\n];\nexport {\n REVIEW_WORKFLOW_COLUMNS_EE,\n REVIEW_WORKFLOW_FILTERS\n};\n//# sourceMappingURL=constants-evLWZCaJ.mjs.map\n"],"names":["useGetWorkflowsQuery","useCreateWorkflowMutation","useUpdateWorkflowMutation","useDeleteWorkflowMutation","React","useIntl","useAdminUsers","useField","jsx","Combobox","ComboboxOption","getDisplayName","useDoc","SingleSelect","jsxs","Flex","Typography","Loader","getStageColorByHex","SingleSelectOption","STAGE_ATTRIBUTE_NAME","getTranslation","ASSIGNEE_ATTRIBUTE_NAME"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const react = require("react");
4
+ const React = require("react");
5
5
  const designSystem = require("@strapi/design-system");
6
6
  const helperPlugin = require("@strapi/helper-plugin");
7
- const icons = require("@strapi/icons");
7
+ const Icons = require("@strapi/icons");
8
+ const admin = require("@strapi/strapi/admin");
8
9
  const formik = require("formik");
9
10
  const reactIntl = require("react-intl");
10
11
  const styled = require("styled-components");
11
12
  const yup = require("yup");
12
- const index = require("./index-r8UM9pKc.js");
13
- const useDocumentation = require("./useDocumentation-uuvchj5L.js");
14
- require("react-query");
13
+ const index = require("./index-ri1exVbc.js");
14
+ const useDocumentation = require("./useDocumentation-GsX6iQVe.js");
15
15
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
16
16
  function _interopNamespace(e) {
17
17
  if (e && e.__esModule)
@@ -36,14 +36,13 @@ const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
36
36
  const schema = yup__namespace.object().shape({
37
37
  restrictedAccess: yup__namespace.boolean(),
38
38
  password: yup__namespace.string().when("restrictedAccess", (value, initSchema) => {
39
- return value ? initSchema.required(helperPlugin.translatedErrors.required) : initSchema;
39
+ return value ? initSchema.required(admin.translatedErrors.required.id) : initSchema;
40
40
  })
41
41
  });
42
42
  const SettingsPage = () => {
43
- helperPlugin.useFocusWhenNavigate();
44
43
  const { formatMessage } = reactIntl.useIntl();
45
44
  const { submit, data, isLoading } = useDocumentation.useDocumentation();
46
- const [passwordShown, setPasswordShown] = react.useState(false);
45
+ const [passwordShown, setPasswordShown] = React.useState(false);
47
46
  const { allowedActions } = helperPlugin.useRBAC(index.PERMISSIONS);
48
47
  const handleUpdateSettingsSubmit = (body) => {
49
48
  submit.mutate({
@@ -51,7 +50,10 @@ const SettingsPage = () => {
51
50
  body
52
51
  });
53
52
  };
54
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Main, { children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.LoadingIndicatorPage, { children: "Plugin settings are loading" }) : /* @__PURE__ */ jsxRuntime.jsx(
53
+ if (isLoading) {
54
+ return /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Loading, {});
55
+ }
56
+ return /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Main, { children: /* @__PURE__ */ jsxRuntime.jsx(
55
57
  formik.Formik,
56
58
  {
57
59
  initialValues: {
@@ -69,7 +71,7 @@ const SettingsPage = () => {
69
71
  setFieldValue,
70
72
  dirty
71
73
  }) => {
72
- return /* @__PURE__ */ jsxRuntime.jsxs(helperPlugin.Form, { noValidate: true, onSubmit: handleSubmit, children: [
74
+ return /* @__PURE__ */ jsxRuntime.jsxs(formik.Form, { noValidate: true, onSubmit: handleSubmit, children: [
73
75
  /* @__PURE__ */ jsxRuntime.jsx(
74
76
  designSystem.HeaderLayout,
75
77
  {
@@ -85,7 +87,7 @@ const SettingsPage = () => {
85
87
  designSystem.Button,
86
88
  {
87
89
  type: "submit",
88
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
90
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icons.Check, {}),
89
91
  disabled: !dirty && allowedActions.canUpdate,
90
92
  children: formatMessage({
91
93
  id: useDocumentation.getTrad("pages.SettingsPage.Button.save"),
@@ -167,7 +169,7 @@ const SettingsPage = () => {
167
169
  defaultMessage: "Hide password"
168
170
  }
169
171
  ),
170
- children: passwordShown ? /* @__PURE__ */ jsxRuntime.jsx(icons.Eye, {}) : /* @__PURE__ */ jsxRuntime.jsx(icons.EyeStriked, {})
172
+ children: passwordShown ? /* @__PURE__ */ jsxRuntime.jsx(Icons.Eye, {}) : /* @__PURE__ */ jsxRuntime.jsx(Icons.EyeStriked, {})
171
173
  }
172
174
  )
173
175
  }
@@ -191,4 +193,4 @@ const FieldActionWrapper = styled__default.default(designSystem.FieldAction)`
191
193
  }
192
194
  `;
193
195
  exports.default = SettingsPage;
194
- //# sourceMappingURL=index-8QCog8RN.js.map
196
+ //# sourceMappingURL=index-7OS1Qe_4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-7OS1Qe_4.js","sources":["../../admin/src/pages/SettingsPage/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n TextInput,\n ToggleInput,\n Typography,\n FieldAction,\n} from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { translatedErrors, Page } from '@strapi/strapi/admin';\nimport { Form, Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\nimport * as yup from 'yup';\n\nimport { PERMISSIONS } from '../../constants';\nimport { useDocumentation } from '../../hooks/useDocumentation';\nimport { getTrad } from '../../utils';\n\nconst schema = yup.object().shape({\n restrictedAccess: yup.boolean(),\n password: yup.string().when('restrictedAccess', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required.id) : initSchema;\n }),\n});\n\nconst SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { submit, data, isLoading } = useDocumentation();\n const [passwordShown, setPasswordShown] = useState(false);\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n const handleUpdateSettingsSubmit = (body) => {\n submit.mutate({\n prefix: data?.prefix,\n body,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Formik\n initialValues={{\n restrictedAccess: data?.documentationAccess.restrictedAccess || false,\n password: '',\n }}\n onSubmit={handleUpdateSettingsSubmit}\n validationSchema={schema}\n >\n {({\n handleSubmit,\n values,\n handleChange,\n errors,\n setFieldTouched,\n setFieldValue,\n dirty,\n }) => {\n return (\n <Form noValidate onSubmit={handleSubmit}>\n <HeaderLayout\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n })}\n subtitle={formatMessage({\n id: getTrad('pages.SettingsPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={!dirty && allowedActions.canUpdate}\n >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <ContentLayout>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n name=\"restrictedAccess\"\n label={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\n checked={values.restrictedAccess}\n onChange={() => {\n if (values.restrictedAccess === true) {\n setFieldValue('password', '', false);\n setFieldTouched('password', false, false);\n }\n\n setFieldValue('restrictedAccess', !values.restrictedAccess, false);\n }}\n onLabel=\"On\"\n offLabel=\"Off\"\n />\n </GridItem>\n {values.restrictedAccess && (\n <GridItem col={6} s={12}>\n <TextInput\n label={formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n name=\"password\"\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: 'Invalid value',\n })\n : null\n }\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Show /> : <Hide />}\n </FieldActionWrapper>\n }\n />\n </GridItem>\n )}\n </Grid>\n </Flex>\n </Box>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\nconst FieldActionWrapper = styled(FieldAction)`\n svg {\n height: 1rem;\n width: 1rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\nexport default SettingsPage;\n"],"names":["yup","translatedErrors","useIntl","useDocumentation","useState","useRBAC","PERMISSIONS","jsx","Page","Formik","jsxs","Form","HeaderLayout","getTrad","Button","Check","ContentLayout","Box","Flex","Typography","Grid","GridItem","ToggleInput","TextInput","Show","Hide","styled","FieldAction"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { prefixPluginTranslations } from "@strapi/helper-plugin";
2
1
  import { Information } from "@strapi/icons";
3
2
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
4
3
  const v = glob[path];
@@ -10,7 +9,7 @@ const __variableDynamicImportRuntimeHelper = (glob, path) => {
10
9
  });
11
10
  };
12
11
  const name$1 = "@strapi/plugin-documentation";
13
- const version = "4.20.4";
12
+ const version = "5.0.0-alpha.0";
14
13
  const description = "Create an OpenAPI Document and visualize your API with SWAGGER UI.";
15
14
  const repository = {
16
15
  type: "git",
@@ -56,19 +55,19 @@ const scripts = {
56
55
  };
57
56
  const dependencies = {
58
57
  "@strapi/design-system": "1.16.0",
59
- "@strapi/helper-plugin": "4.20.4",
58
+ "@strapi/helper-plugin": "5.0.0-alpha.0",
60
59
  "@strapi/icons": "1.16.0",
61
- "@strapi/utils": "4.20.4",
60
+ "@strapi/utils": "5.0.0-alpha.0",
62
61
  bcryptjs: "2.4.3",
63
62
  cheerio: "^1.0.0-rc.12",
64
- formik: "2.4.0",
65
- "fs-extra": "10.0.0",
66
- immer: "9.0.19",
63
+ formik: "2.4.5",
64
+ "fs-extra": "10.1.0",
65
+ immer: "9.0.21",
67
66
  "koa-static": "^5.0.0",
68
67
  lodash: "4.17.21",
69
68
  "path-to-regexp": "6.2.1",
70
69
  "react-helmet": "^6.1.0",
71
- "react-intl": "6.4.1",
70
+ "react-intl": "6.6.2",
72
71
  "react-query": "3.39.3",
73
72
  "swagger-ui-dist": "4.19.0",
74
73
  yaml: "1.10.2",
@@ -76,21 +75,21 @@ const dependencies = {
76
75
  };
77
76
  const devDependencies = {
78
77
  "@apidevtools/swagger-parser": "^10.1.0",
79
- "@strapi/pack-up": "4.20.4",
80
- "@strapi/strapi": "4.20.4",
78
+ "@strapi/pack-up": "5.0.0-alpha.0",
79
+ "@strapi/strapi": "5.0.0-alpha.0",
81
80
  "@testing-library/react": "14.0.0",
82
81
  "@testing-library/user-event": "14.4.3",
83
82
  msw: "1.3.0",
84
83
  react: "^18.2.0",
85
84
  "react-dom": "^18.2.0",
86
- "react-router-dom": "5.3.4",
87
- "styled-components": "5.3.3"
85
+ "react-router-dom": "6.22.3",
86
+ "styled-components": "5.3.11"
88
87
  };
89
88
  const peerDependencies = {
90
89
  "@strapi/strapi": "^4.0.0",
91
90
  react: "^17.0.0 || ^18.0.0",
92
91
  "react-dom": "^17.0.0 || ^18.0.0",
93
- "react-router-dom": "^5.2.0",
92
+ "react-router-dom": "^6.0.0",
94
93
  "styled-components": "^5.2.1"
95
94
  };
96
95
  const engines = {
@@ -137,21 +136,27 @@ const PERMISSIONS = {
137
136
  update: [{ action: "plugin::documentation.settings.update", subject: null }]
138
137
  };
139
138
  const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
139
+ const prefixPluginTranslations = (trad, pluginId2) => {
140
+ if (!pluginId2) {
141
+ throw new TypeError("pluginId can't be empty");
142
+ }
143
+ return Object.keys(trad).reduce((acc, current) => {
144
+ acc[`${pluginId2}.${current}`] = trad[current];
145
+ return acc;
146
+ }, {});
147
+ };
140
148
  const name = pluginPkg.strapi.name;
141
149
  const index = {
142
150
  register(app) {
143
151
  app.addMenuLink({
144
- to: `/plugins/${pluginId}`,
152
+ to: `plugins/${pluginId}`,
145
153
  icon: Information,
146
154
  intlLabel: {
147
155
  id: `${pluginId}.plugin.name`,
148
156
  defaultMessage: "Documentation"
149
157
  },
150
158
  permissions: PERMISSIONS.main,
151
- async Component() {
152
- const component = await import("./index-uTcHJZnf.mjs");
153
- return component;
154
- }
159
+ Component: () => import("./index-lggLaJiY.mjs").then((n) => n.aq)
155
160
  });
156
161
  app.registerPlugin({
157
162
  id: pluginId,
@@ -165,11 +170,8 @@ const index = {
165
170
  defaultMessage: "Documentation"
166
171
  },
167
172
  id: "documentation",
168
- to: `/settings/${pluginId}`,
169
- async Component() {
170
- const component = await import("./index-SdK6c8ae.mjs");
171
- return component;
172
- },
173
+ to: pluginId,
174
+ Component: () => import("./index-ynnbYrP0.mjs"),
173
175
  permissions: PERMISSIONS.main
174
176
  });
175
177
  },
@@ -197,4 +199,4 @@ export {
197
199
  index as i,
198
200
  pluginId as p
199
201
  };
200
- //# sourceMappingURL=index-6c_gUVrM.mjs.map
202
+ //# sourceMappingURL=index-JM6LA3Oe.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-JM6LA3Oe.mjs","sources":["../../admin/src/constants.js","../../admin/src/pluginId.js","../../admin/src/utils/prefixPluginTranslations.js","../../admin/src/index.js"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n { action: 'plugin::documentation.settings.update', subject: null },\n ],\n open: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n ],\n regenerate: [{ action: 'plugin::documentation.settings.regenerate', subject: null }],\n update: [{ action: 'plugin::documentation.settings.update', subject: null }],\n};\n","import pluginPkg from '../../package.json';\n\nconst pluginId = pluginPkg.name.replace(/^@strapi\\/plugin-/i, '');\n\nexport default pluginId;\n","const prefixPluginTranslations = (trad, pluginId) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n }, {});\n};\n\nexport { prefixPluginTranslations };\n","import { Information } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport pluginId from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\nexport default {\n register(app) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Information,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n permissions: PERMISSIONS.main,\n Component: () => import('./pages/PluginPage'),\n });\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n bootstrap(app) {\n app.addSettingsLink('global', {\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n id: 'documentation',\n to: pluginId,\n Component: () => import('./pages/SettingsPage'),\n permissions: PERMISSIONS.main,\n });\n },\n async registerTrads({ locales }) {\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, pluginId),\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"],"names":["pluginId"],"mappings":"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"}