@strapi/plugin-documentation 4.15.3 → 4.15.5-alpha.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 (117) hide show
  1. package/dist/_chunks/ar-3945178e.js +24 -0
  2. package/dist/_chunks/ar-3945178e.js.map +1 -0
  3. package/dist/_chunks/ar-a504b634.mjs +24 -0
  4. package/dist/_chunks/ar-a504b634.mjs.map +1 -0
  5. package/dist/_chunks/cs-053272e2.js +25 -0
  6. package/dist/_chunks/cs-053272e2.js.map +1 -0
  7. package/dist/_chunks/cs-feb7f04c.mjs +25 -0
  8. package/dist/_chunks/cs-feb7f04c.mjs.map +1 -0
  9. package/dist/_chunks/de-09853142.js +30 -0
  10. package/dist/_chunks/de-09853142.js.map +1 -0
  11. package/dist/_chunks/de-a33e1fea.mjs +30 -0
  12. package/dist/_chunks/de-a33e1fea.mjs.map +1 -0
  13. package/dist/_chunks/dk-05d66fde.js +43 -0
  14. package/dist/_chunks/dk-05d66fde.js.map +1 -0
  15. package/dist/_chunks/dk-ed9fcdcf.mjs +43 -0
  16. package/dist/_chunks/dk-ed9fcdcf.mjs.map +1 -0
  17. package/dist/_chunks/en-70db76ff.js +43 -0
  18. package/dist/_chunks/en-70db76ff.js.map +1 -0
  19. package/dist/_chunks/en-96395a32.mjs +43 -0
  20. package/dist/_chunks/en-96395a32.mjs.map +1 -0
  21. package/dist/_chunks/es-22de55e3.mjs +43 -0
  22. package/dist/_chunks/es-22de55e3.mjs.map +1 -0
  23. package/dist/_chunks/es-497d8815.js +43 -0
  24. package/dist/_chunks/es-497d8815.js.map +1 -0
  25. package/dist/_chunks/fr-24238f91.js +30 -0
  26. package/dist/_chunks/fr-24238f91.js.map +1 -0
  27. package/dist/_chunks/fr-70c3898d.mjs +30 -0
  28. package/dist/_chunks/fr-70c3898d.mjs.map +1 -0
  29. package/dist/_chunks/id-e9ab0af3.js +28 -0
  30. package/dist/_chunks/id-e9ab0af3.js.map +1 -0
  31. package/dist/_chunks/id-e9e00780.mjs +28 -0
  32. package/dist/_chunks/id-e9e00780.mjs.map +1 -0
  33. package/dist/_chunks/index-7cac1b41.js +169 -0
  34. package/dist/_chunks/index-7cac1b41.js.map +1 -0
  35. package/dist/_chunks/index-9bf29e09.js +202 -0
  36. package/dist/_chunks/index-9bf29e09.js.map +1 -0
  37. package/dist/_chunks/index-b6b0a55d.mjs +203 -0
  38. package/dist/_chunks/index-b6b0a55d.mjs.map +1 -0
  39. package/dist/_chunks/index-bee3292d.mjs +173 -0
  40. package/dist/_chunks/index-bee3292d.mjs.map +1 -0
  41. package/dist/_chunks/index-eadd6467.js +194 -0
  42. package/dist/_chunks/index-eadd6467.js.map +1 -0
  43. package/dist/_chunks/index-ed965abb.mjs +167 -0
  44. package/dist/_chunks/index-ed965abb.mjs.map +1 -0
  45. package/dist/_chunks/it-28ef2963.mjs +30 -0
  46. package/dist/_chunks/it-28ef2963.mjs.map +1 -0
  47. package/dist/_chunks/it-5255d492.js +30 -0
  48. package/dist/_chunks/it-5255d492.js.map +1 -0
  49. package/dist/_chunks/ko-34e7eb26.js +43 -0
  50. package/dist/_chunks/ko-34e7eb26.js.map +1 -0
  51. package/dist/_chunks/ko-a29301ee.mjs +43 -0
  52. package/dist/_chunks/ko-a29301ee.mjs.map +1 -0
  53. package/dist/_chunks/ms-63bb66e1.js +27 -0
  54. package/dist/_chunks/ms-63bb66e1.js.map +1 -0
  55. package/dist/_chunks/ms-87588bdb.mjs +27 -0
  56. package/dist/_chunks/ms-87588bdb.mjs.map +1 -0
  57. package/dist/_chunks/nl-0319020c.js +25 -0
  58. package/dist/_chunks/nl-0319020c.js.map +1 -0
  59. package/dist/_chunks/nl-91bcd809.mjs +25 -0
  60. package/dist/_chunks/nl-91bcd809.mjs.map +1 -0
  61. package/dist/_chunks/pl-2d57c604.js +43 -0
  62. package/dist/_chunks/pl-2d57c604.js.map +1 -0
  63. package/dist/_chunks/pl-7d7fe7b2.mjs +43 -0
  64. package/dist/_chunks/pl-7d7fe7b2.mjs.map +1 -0
  65. package/dist/_chunks/pt-9b66f3d5.mjs +25 -0
  66. package/dist/_chunks/pt-9b66f3d5.mjs.map +1 -0
  67. package/dist/_chunks/pt-BR-0024d4be.mjs +25 -0
  68. package/dist/_chunks/pt-BR-0024d4be.mjs.map +1 -0
  69. package/dist/_chunks/pt-BR-cf80ef96.js +25 -0
  70. package/dist/_chunks/pt-BR-cf80ef96.js.map +1 -0
  71. package/dist/_chunks/pt-b91837bc.js +25 -0
  72. package/dist/_chunks/pt-b91837bc.js.map +1 -0
  73. package/dist/_chunks/ru-468d9a30.mjs +43 -0
  74. package/dist/_chunks/ru-468d9a30.mjs.map +1 -0
  75. package/dist/_chunks/ru-91348271.js +43 -0
  76. package/dist/_chunks/ru-91348271.js.map +1 -0
  77. package/dist/_chunks/sk-01b7713b.mjs +28 -0
  78. package/dist/_chunks/sk-01b7713b.mjs.map +1 -0
  79. package/dist/_chunks/sk-10c03ab1.js +28 -0
  80. package/dist/_chunks/sk-10c03ab1.js.map +1 -0
  81. package/dist/_chunks/sv-7edbe28d.mjs +43 -0
  82. package/dist/_chunks/sv-7edbe28d.mjs.map +1 -0
  83. package/dist/_chunks/sv-e5237308.js +43 -0
  84. package/dist/_chunks/sv-e5237308.js.map +1 -0
  85. package/dist/_chunks/th-200a02f1.js +28 -0
  86. package/dist/_chunks/th-200a02f1.js.map +1 -0
  87. package/dist/_chunks/th-4fcead7f.mjs +28 -0
  88. package/dist/_chunks/th-4fcead7f.mjs.map +1 -0
  89. package/dist/_chunks/tr-8290d257.mjs +43 -0
  90. package/dist/_chunks/tr-8290d257.mjs.map +1 -0
  91. package/dist/_chunks/tr-fd36715f.js +43 -0
  92. package/dist/_chunks/tr-fd36715f.js.map +1 -0
  93. package/dist/_chunks/uk-bf914720.mjs +27 -0
  94. package/dist/_chunks/uk-bf914720.mjs.map +1 -0
  95. package/dist/_chunks/uk-cb462605.js +27 -0
  96. package/dist/_chunks/uk-cb462605.js.map +1 -0
  97. package/dist/_chunks/useDocumentation-65642421.mjs +66 -0
  98. package/dist/_chunks/useDocumentation-65642421.mjs.map +1 -0
  99. package/dist/_chunks/useDocumentation-cb91451d.js +65 -0
  100. package/dist/_chunks/useDocumentation-cb91451d.js.map +1 -0
  101. package/dist/_chunks/vi-d2e2e100.js +28 -0
  102. package/dist/_chunks/vi-d2e2e100.js.map +1 -0
  103. package/dist/_chunks/vi-ddc8357e.mjs +28 -0
  104. package/dist/_chunks/vi-ddc8357e.mjs.map +1 -0
  105. package/dist/_chunks/zh-7b489db7.mjs +43 -0
  106. package/dist/_chunks/zh-7b489db7.mjs.map +1 -0
  107. package/dist/_chunks/zh-8da2191f.js +43 -0
  108. package/dist/_chunks/zh-8da2191f.js.map +1 -0
  109. package/dist/_chunks/zh-Hans-6cefb513.mjs +32 -0
  110. package/dist/_chunks/zh-Hans-6cefb513.mjs.map +1 -0
  111. package/dist/_chunks/zh-Hans-c2e4b737.js +32 -0
  112. package/dist/_chunks/zh-Hans-c2e4b737.js.map +1 -0
  113. package/dist/admin/index.js +6 -0
  114. package/dist/admin/index.js.map +1 -0
  115. package/dist/admin/index.mjs +7 -0
  116. package/dist/admin/index.mjs.map +1 -0
  117. package/package.json +7 -6
@@ -0,0 +1,28 @@
1
+ const id = {
2
+ "components.Row.open": "Buka",
3
+ "components.Row.regenerate": "Diperbarui",
4
+ "containers.HomePage.Block.title": "Versi",
5
+ "containers.HomePage.Button.update": "Perbarui",
6
+ "containers.HomePage.PluginHeader.title": "Dokumentasi — Pengaturan",
7
+ "containers.HomePage.PopUpWarning.confirm": "Saya mengerti",
8
+ "containers.HomePage.PopUpWarning.message": "Anda yakin ingin menghapus versi ini?",
9
+ "containers.HomePage.copied": "Token disalin ke papan klip",
10
+ "containers.HomePage.form.jwtToken": "Ambil token JWT Anda",
11
+ "containers.HomePage.form.jwtToken.description": "Salin token ini dan gunakan dengan sombong untuk membuat permintaan",
12
+ "containers.HomePage.form.password": "Kata sandi",
13
+ "containers.HomePage.form.password.inputDescription": "Atur kata sandi untuk mengakses dokumentasi",
14
+ "containers.HomePage.form.restrictedAccess": "Akses terbatas",
15
+ "containers.HomePage.form.restrictedAccess.inputDescription": "Jadikan titik akhir dokumentasi bersifat pribadi. Secara default, aksesnya adalah publik",
16
+ "containers.HomePage.form.showGeneratedFiles": "Tampilkan file yang dibuat",
17
+ "containers.HomePage.form.showGeneratedFiles.inputDescription": "Berguna ketika Anda ingin mengganti dokumentasi yang dihasilkan. \n Plugin akan menghasilkan file yang dipisahkan berdasarkan model dan plugin. \n Dengan mengaktifkan opsi ini, akan lebih mudah untuk menyesuaikan dokumentasi Anda",
18
+ "error.deleteDoc.versionMissing": "Versi yang Anda coba hapus tidak ada.",
19
+ "error.noVersion": "Versi diperlukan",
20
+ "error.regenerateDoc": "Terjadi kesalahan saat membuat ulang dokumen",
21
+ "error.regenerateDoc.versionMissing": "Versi yang Anda coba buat tidak ada",
22
+ "notification.update.success": "Pengaturan berhasil diperbarui",
23
+ "plugin.name": "Dokumentasi"
24
+ };
25
+ export {
26
+ id as default
27
+ };
28
+ //# sourceMappingURL=id-e9e00780.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-e9e00780.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const designSystem = require("@strapi/design-system");
6
+ const helperPlugin = require("@strapi/helper-plugin");
7
+ const icons = require("@strapi/icons");
8
+ const reactHelmet = require("react-helmet");
9
+ const reactIntl = require("react-intl");
10
+ const styled = require("styled-components");
11
+ const index = require("./index-9bf29e09.js");
12
+ const useDocumentation = require("./useDocumentation-cb91451d.js");
13
+ require("react-query");
14
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
15
+ const styled__default = /* @__PURE__ */ _interopDefault(styled);
16
+ const PluginPage = () => {
17
+ helperPlugin.useFocusWhenNavigate();
18
+ const { formatMessage } = reactIntl.useIntl();
19
+ const { data, isLoading, isError, remove, regenerate } = useDocumentation.useDocumentation();
20
+ const [showConfirmDelete, setShowConfirmDelete] = react.useState(false);
21
+ const [isConfirmButtonLoading, setIsConfirmButtonLoading] = react.useState(false);
22
+ const [versionToDelete, setVersionToDelete] = react.useState();
23
+ const { allowedActions } = helperPlugin.useRBAC(index.PERMISSIONS);
24
+ const colCount = 4;
25
+ const rowCount = (data?.docVersions?.length || 0) + 1;
26
+ const handleRegenerateDoc = (version) => {
27
+ regenerate.mutate({ version, prefix: data?.prefix });
28
+ };
29
+ const handleShowConfirmDelete = () => {
30
+ setShowConfirmDelete(!showConfirmDelete);
31
+ };
32
+ const handleConfirmDelete = async () => {
33
+ setIsConfirmButtonLoading(true);
34
+ await remove.mutateAsync({ prefix: data?.prefix, version: versionToDelete });
35
+ setShowConfirmDelete(!showConfirmDelete);
36
+ setIsConfirmButtonLoading(false);
37
+ };
38
+ const handleClickDelete = (version) => {
39
+ setVersionToDelete(version);
40
+ setShowConfirmDelete(!showConfirmDelete);
41
+ };
42
+ const title = formatMessage({
43
+ id: useDocumentation.getTrad("plugin.name"),
44
+ defaultMessage: "Documentation"
45
+ });
46
+ if (isError) {
47
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Layout, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 8, children: /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.AnErrorOccurred, {}) }) }) });
48
+ }
49
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Layout, { children: [
50
+ /* @__PURE__ */ jsxRuntime.jsx(reactHelmet.Helmet, { title }),
51
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { "aria-busy": isLoading, children: [
52
+ /* @__PURE__ */ jsxRuntime.jsx(
53
+ designSystem.HeaderLayout,
54
+ {
55
+ title,
56
+ subtitle: formatMessage({
57
+ id: useDocumentation.getTrad("pages.PluginPage.header.description"),
58
+ defaultMessage: "Configure the documentation plugin"
59
+ }),
60
+ primaryAction: /* @__PURE__ */ jsxRuntime.jsx(
61
+ OpenDocLink,
62
+ {
63
+ disabled: !allowedActions.canOpen || !data?.currentVersion || !data?.prefix,
64
+ href: createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`),
65
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Eye, {}),
66
+ children: formatMessage({
67
+ id: useDocumentation.getTrad("pages.PluginPage.Button.open"),
68
+ defaultMessage: "Open Documentation"
69
+ })
70
+ }
71
+ )
72
+ }
73
+ ),
74
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ContentLayout, { children: [
75
+ isLoading && /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.LoadingIndicatorPage, { children: "Plugin is loading" }),
76
+ data?.docVersions.length ? /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Table, { colCount, rowCount, children: [
77
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Thead, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
78
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({
79
+ id: useDocumentation.getTrad("pages.PluginPage.table.version"),
80
+ defaultMessage: "Version"
81
+ }) }) }),
82
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({
83
+ id: useDocumentation.getTrad("pages.PluginPage.table.generated"),
84
+ defaultMessage: "Last Generated"
85
+ }) }) })
86
+ ] }) }),
87
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tbody, { children: data.docVersions.sort((a, b) => a.generatedDate < b.generatedDate ? 1 : -1).map((doc) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
88
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "50%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: doc.version }) }),
89
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "50%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: doc.generatedDate }) }),
90
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "end", onClick: (e) => e.stopPropagation(), children: [
91
+ /* @__PURE__ */ jsxRuntime.jsx(
92
+ designSystem.IconButton,
93
+ {
94
+ forwardedAs: "a",
95
+ disabled: !allowedActions.canOpen,
96
+ href: createDocumentationHref(`${data.prefix}/v${doc.version}`),
97
+ noBorder: true,
98
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Eye, {}),
99
+ target: "_blank",
100
+ rel: "noopener noreferrer",
101
+ label: formatMessage(
102
+ {
103
+ id: useDocumentation.getTrad("pages.PluginPage.table.icon.show"),
104
+ defaultMessage: "Open {target}"
105
+ },
106
+ { target: `${doc.version}` }
107
+ )
108
+ }
109
+ ),
110
+ allowedActions.canRegenerate ? /* @__PURE__ */ jsxRuntime.jsx(
111
+ designSystem.IconButton,
112
+ {
113
+ onClick: () => handleRegenerateDoc(doc.version),
114
+ noBorder: true,
115
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Refresh, {}),
116
+ label: formatMessage(
117
+ {
118
+ id: useDocumentation.getTrad("pages.PluginPage.table.icon.regenerate"),
119
+ defaultMessage: "Regenerate {target}"
120
+ },
121
+ { target: `${doc.version}` }
122
+ )
123
+ }
124
+ ) : null,
125
+ allowedActions.canUpdate && doc.version !== data.currentVersion ? /* @__PURE__ */ jsxRuntime.jsx(
126
+ designSystem.IconButton,
127
+ {
128
+ onClick: () => handleClickDelete(doc.version),
129
+ noBorder: true,
130
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}),
131
+ label: formatMessage(
132
+ {
133
+ id: "global.delete-target",
134
+ defaultMessage: "Delete {target}"
135
+ },
136
+ { target: `${doc.version}` }
137
+ )
138
+ }
139
+ ) : null
140
+ ] }) })
141
+ ] }, doc.version)) })
142
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.EmptyStateLayout, {})
143
+ ] }),
144
+ /* @__PURE__ */ jsxRuntime.jsx(
145
+ helperPlugin.ConfirmDialog,
146
+ {
147
+ isConfirmButtonLoading,
148
+ onConfirm: handleConfirmDelete,
149
+ onToggleDialog: handleShowConfirmDelete,
150
+ isOpen: showConfirmDelete
151
+ }
152
+ )
153
+ ] })
154
+ ] });
155
+ };
156
+ const OpenDocLink = styled__default.default(designSystem.LinkButton)`
157
+ text-decoration: none;
158
+ `;
159
+ const createDocumentationHref = (path) => {
160
+ if (path.startsWith("http")) {
161
+ return path;
162
+ }
163
+ if (path.startsWith("/")) {
164
+ return `${window.strapi.backendURL}${path}`;
165
+ }
166
+ return `${window.strapi.backendURL}/${path}`;
167
+ };
168
+ exports.default = PluginPage;
169
+ //# sourceMappingURL=index-7cac1b41.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-7cac1b41.js","sources":["../../admin/src/pages/PluginPage/index.js"],"sourcesContent":["import React, { useState } from 'react';\n\nimport {\n Box,\n LinkButton,\n ContentLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n} from '@strapi/design-system';\nimport {\n AnErrorOccurred,\n ConfirmDialog,\n EmptyStateLayout,\n LoadingIndicatorPage,\n useFocusWhenNavigate,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Eye as Show, Refresh as Reload, Trash } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { PERMISSIONS } from '../../constants';\nimport { useDocumentation } from '../../hooks/useDocumentation';\nimport { getTrad } from '../../utils';\n\nconst PluginPage = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const { data, isLoading, isError, remove, regenerate } = useDocumentation();\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [isConfirmButtonLoading, setIsConfirmButtonLoading] = useState(false);\n const [versionToDelete, setVersionToDelete] = useState();\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n const colCount = 4;\n const rowCount = (data?.docVersions?.length || 0) + 1;\n\n const handleRegenerateDoc = (version) => {\n regenerate.mutate({ version, prefix: data?.prefix });\n };\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleConfirmDelete = async () => {\n setIsConfirmButtonLoading(true);\n await remove.mutateAsync({ prefix: data?.prefix, version: versionToDelete });\n setShowConfirmDelete(!showConfirmDelete);\n setIsConfirmButtonLoading(false);\n };\n\n const handleClickDelete = (version) => {\n setVersionToDelete(version);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const title = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n });\n\n if (isError) {\n return (\n <Layout>\n <ContentLayout>\n <Box paddingTop={8}>\n <AnErrorOccurred />\n </Box>\n </ContentLayout>\n </Layout>\n );\n }\n\n return (\n <Layout>\n <Helmet title={title} />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={title}\n subtitle={formatMessage({\n id: getTrad('pages.PluginPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <OpenDocLink\n disabled={!allowedActions.canOpen || !data?.currentVersion || !data?.prefix}\n href={createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`)}\n startIcon={<Show />}\n >\n {formatMessage({\n id: getTrad('pages.PluginPage.Button.open'),\n defaultMessage: 'Open Documentation',\n })}\n </OpenDocLink>\n }\n />\n <ContentLayout>\n {isLoading && <LoadingIndicatorPage>Plugin is loading</LoadingIndicatorPage>}\n {data?.docVersions.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.version'),\n defaultMessage: 'Version',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('pages.PluginPage.table.generated'),\n defaultMessage: 'Last Generated',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data.docVersions\n .sort((a, b) => (a.generatedDate < b.generatedDate ? 1 : -1))\n .map((doc) => (\n <Tr key={doc.version}>\n <Td width=\"50%\">\n <Typography>{doc.version}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{doc.generatedDate}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n <IconButton\n forwardedAs=\"a\"\n disabled={!allowedActions.canOpen}\n href={createDocumentationHref(`${data.prefix}/v${doc.version}`)}\n noBorder\n icon={<Show />}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.show'),\n defaultMessage: 'Open {target}',\n },\n { target: `${doc.version}` }\n )}\n />\n {allowedActions.canRegenerate ? (\n <IconButton\n onClick={() => handleRegenerateDoc(doc.version)}\n noBorder\n icon={<Reload />}\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.regenerate'),\n defaultMessage: 'Regenerate {target}',\n },\n { target: `${doc.version}` }\n )}\n />\n ) : null}\n {allowedActions.canUpdate && doc.version !== data.currentVersion ? (\n <IconButton\n onClick={() => handleClickDelete(doc.version)}\n noBorder\n icon={<Trash />}\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${doc.version}` }\n )}\n />\n ) : null}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout />\n )}\n </ContentLayout>\n <ConfirmDialog\n isConfirmButtonLoading={isConfirmButtonLoading}\n onConfirm={handleConfirmDelete}\n onToggleDialog={handleShowConfirmDelete}\n isOpen={showConfirmDelete}\n />\n </Main>\n </Layout>\n );\n};\n\n/**\n * TODO: should this be fixed in the DS?\n */\nconst OpenDocLink = styled(LinkButton)`\n text-decoration: none;\n`;\n\nconst createDocumentationHref = (path) => {\n if (path.startsWith('http')) {\n return path;\n }\n\n if (path.startsWith('/')) {\n return `${window.strapi.backendURL}${path}`;\n }\n\n return `${window.strapi.backendURL}/${path}`;\n};\n\nexport default PluginPage;\n"],"names":["useFocusWhenNavigate","useIntl","useDocumentation","useState","useRBAC","PERMISSIONS","getTrad","jsx","Layout","ContentLayout","Box","AnErrorOccurred","Helmet","jsxs","Main","HeaderLayout","Show","LoadingIndicatorPage","Table","Thead","Tr","Th","Typography","Tbody","Td","Flex","IconButton","Reload","Trash","EmptyStateLayout","ConfirmDialog","styled","LinkButton"],"mappings":"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"}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ const helperPlugin = require("@strapi/helper-plugin");
3
+ const icons = require("@strapi/icons");
4
+ const __variableDynamicImportRuntimeHelper = (glob, path) => {
5
+ const v = glob[path];
6
+ if (v) {
7
+ return typeof v === "function" ? v() : Promise.resolve(v);
8
+ }
9
+ return new Promise((_, reject) => {
10
+ (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
11
+ });
12
+ };
13
+ const name$1 = "@strapi/plugin-documentation";
14
+ const version = "4.15.5-alpha.0";
15
+ const description = "Create an OpenAPI Document and visualize your API with SWAGGER UI.";
16
+ const repository = {
17
+ type: "git",
18
+ url: "https://github.com/strapi/strapi.git",
19
+ directory: "packages/plugins/documentation"
20
+ };
21
+ const license = "SEE LICENSE IN LICENSE";
22
+ const author = {
23
+ name: "Strapi Solutions SAS",
24
+ email: "hi@strapi.io",
25
+ url: "https://strapi.io"
26
+ };
27
+ const maintainers = [
28
+ {
29
+ name: "Strapi Solutions SAS",
30
+ email: "hi@strapi.io",
31
+ url: "https://strapi.io"
32
+ }
33
+ ];
34
+ const exports$1 = {
35
+ "./strapi-admin": {
36
+ source: "./admin/src/index.js",
37
+ "import": "./dist/admin/index.mjs",
38
+ require: "./dist/admin/index.js",
39
+ "default": "./dist/admin/index.js"
40
+ },
41
+ "./strapi-server": {
42
+ source: "./strapi-server.js",
43
+ require: "./strapi-server.js",
44
+ "default": "./strapi-server.js"
45
+ },
46
+ "./package.json": "./package.json"
47
+ };
48
+ const scripts = {
49
+ build: "pack-up build",
50
+ clean: "run -T rimraf dist",
51
+ lint: "run -T eslint .",
52
+ prepublishOnly: "yarn clean && yarn build",
53
+ "test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
54
+ "test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
55
+ "test:unit": "jest --verbose",
56
+ "test:unit:watch": "run -T jest --watch",
57
+ watch: "pack-up watch"
58
+ };
59
+ const dependencies = {
60
+ "@strapi/design-system": "1.13.0",
61
+ "@strapi/helper-plugin": "4.15.5-alpha.0",
62
+ "@strapi/icons": "1.13.0",
63
+ "@strapi/utils": "4.15.5-alpha.0",
64
+ bcryptjs: "2.4.3",
65
+ cheerio: "^1.0.0-rc.12",
66
+ formik: "2.4.0",
67
+ "fs-extra": "10.0.0",
68
+ immer: "9.0.19",
69
+ "koa-static": "^5.0.0",
70
+ lodash: "4.17.21",
71
+ "path-to-regexp": "6.2.1",
72
+ "react-helmet": "^6.1.0",
73
+ "react-intl": "6.4.1",
74
+ "react-query": "3.39.3",
75
+ "swagger-ui-dist": "4.19.0",
76
+ yaml: "1.10.2",
77
+ yup: "0.32.9"
78
+ };
79
+ const devDependencies = {
80
+ "@apidevtools/swagger-parser": "^10.1.0",
81
+ "@strapi/pack-up": "4.15.5-alpha.0",
82
+ "@strapi/strapi": "4.15.5-alpha.0",
83
+ "@testing-library/react": "14.0.0",
84
+ "@testing-library/user-event": "14.4.3",
85
+ msw: "1.3.0",
86
+ react: "^18.2.0",
87
+ "react-dom": "^18.2.0",
88
+ "react-router-dom": "5.3.4",
89
+ "styled-components": "5.3.3"
90
+ };
91
+ const peerDependencies = {
92
+ "@strapi/strapi": "^4.0.0",
93
+ react: "^17.0.0 || ^18.0.0",
94
+ "react-dom": "^17.0.0 || ^18.0.0",
95
+ "react-router-dom": "^5.2.0",
96
+ "styled-components": "^5.2.1"
97
+ };
98
+ const engines = {
99
+ node: ">=18.0.0 <=20.x.x",
100
+ npm: ">=6.0.0"
101
+ };
102
+ const strapi = {
103
+ displayName: "Documentation",
104
+ name: "documentation",
105
+ description: "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
106
+ kind: "plugin"
107
+ };
108
+ const gitHead = "ecfbf5ede664b0e56f8dd828fd26bd63903b3d14";
109
+ const pluginPkg = {
110
+ name: name$1,
111
+ version,
112
+ description,
113
+ repository,
114
+ license,
115
+ author,
116
+ maintainers,
117
+ exports: exports$1,
118
+ scripts,
119
+ dependencies,
120
+ devDependencies,
121
+ peerDependencies,
122
+ engines,
123
+ strapi,
124
+ gitHead
125
+ };
126
+ const PERMISSIONS = {
127
+ // This permission regards the main component (App) and is used to tell
128
+ // If the plugin link should be displayed in the menu
129
+ // And also if the plugin is accessible. This use case is found when a user types the url of the
130
+ // plugin directly in the browser
131
+ main: [
132
+ { action: "plugin::documentation.read", subject: null },
133
+ { action: "plugin::documentation.settings.regenerate", subject: null },
134
+ { action: "plugin::documentation.settings.update", subject: null }
135
+ ],
136
+ open: [
137
+ { action: "plugin::documentation.read", subject: null },
138
+ { action: "plugin::documentation.settings.regenerate", subject: null }
139
+ ],
140
+ regenerate: [{ action: "plugin::documentation.settings.regenerate", subject: null }],
141
+ update: [{ action: "plugin::documentation.settings.update", subject: null }]
142
+ };
143
+ const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
144
+ const name = pluginPkg.strapi.name;
145
+ const index = {
146
+ register(app) {
147
+ app.addMenuLink({
148
+ to: `/plugins/${pluginId}`,
149
+ icon: icons.Information,
150
+ intlLabel: {
151
+ id: `${pluginId}.plugin.name`,
152
+ defaultMessage: "Documentation"
153
+ },
154
+ permissions: PERMISSIONS.main,
155
+ async Component() {
156
+ const component = await Promise.resolve().then(() => require("./index-7cac1b41.js"));
157
+ return component;
158
+ }
159
+ });
160
+ app.registerPlugin({
161
+ id: pluginId,
162
+ name
163
+ });
164
+ },
165
+ bootstrap(app) {
166
+ app.addSettingsLink("global", {
167
+ intlLabel: {
168
+ id: `${pluginId}.plugin.name`,
169
+ defaultMessage: "Documentation"
170
+ },
171
+ id: "documentation",
172
+ to: `/settings/${pluginId}`,
173
+ async Component() {
174
+ const component = await Promise.resolve().then(() => require("./index-eadd6467.js"));
175
+ return component;
176
+ },
177
+ permissions: PERMISSIONS.main
178
+ });
179
+ },
180
+ async registerTrads({ locales }) {
181
+ const importedTrads = await Promise.all(
182
+ locales.map((locale) => {
183
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-3945178e.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-053272e2.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-09853142.js")), "./translations/dk.json": () => Promise.resolve().then(() => require("./dk-05d66fde.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-70db76ff.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-497d8815.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-24238f91.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-e9ab0af3.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-5255d492.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-34e7eb26.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-63bb66e1.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-0319020c.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-2d57c604.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-cf80ef96.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-b91837bc.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-91348271.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-10c03ab1.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-e5237308.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-200a02f1.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-fd36715f.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-cb462605.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-d2e2e100.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-c2e4b737.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-8da2191f.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
184
+ return {
185
+ data: helperPlugin.prefixPluginTranslations(data, pluginId),
186
+ locale
187
+ };
188
+ }).catch(() => {
189
+ return {
190
+ data: {},
191
+ locale
192
+ };
193
+ });
194
+ })
195
+ );
196
+ return Promise.resolve(importedTrads);
197
+ }
198
+ };
199
+ exports.PERMISSIONS = PERMISSIONS;
200
+ exports.index = index;
201
+ exports.pluginId = pluginId;
202
+ //# sourceMappingURL=index-9bf29e09.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-9bf29e09.js","sources":["../../admin/src/constants.js","../../admin/src/pluginId.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","// NOTE TO PLUGINS DEVELOPERS:\n// If you modify this file by adding new options to the plugin entry point\n// Here's the file: strapi/docs/3.0.0-beta.x/plugin-development/frontend-field-api.md\n// Here's the file: strapi/docs/3.0.0-beta.x/guides/registering-a-field-in-admin.md\n// Also the strapi-generate-plugins/files/admin/src/index.js needs to be updated\n// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED\nimport { prefixPluginTranslations } from '@strapi/helper-plugin';\nimport { Information } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport pluginId from './pluginId';\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 async Component() {\n const component = await import('./pages/PluginPage');\n\n return component;\n },\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: `/settings/${pluginId}`,\n async Component() {\n const component = await import('./pages/SettingsPage');\n\n return component;\n },\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":["Information","prefixPluginTranslations"],"mappings":"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"}
@@ -0,0 +1,203 @@
1
+ import { prefixPluginTranslations } from "@strapi/helper-plugin";
2
+ import { Information } from "@strapi/icons";
3
+ const __variableDynamicImportRuntimeHelper = (glob, path) => {
4
+ const v = glob[path];
5
+ if (v) {
6
+ return typeof v === "function" ? v() : Promise.resolve(v);
7
+ }
8
+ return new Promise((_, reject) => {
9
+ (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
10
+ });
11
+ };
12
+ const name$1 = "@strapi/plugin-documentation";
13
+ const version = "4.15.5-alpha.0";
14
+ const description = "Create an OpenAPI Document and visualize your API with SWAGGER UI.";
15
+ const repository = {
16
+ type: "git",
17
+ url: "https://github.com/strapi/strapi.git",
18
+ directory: "packages/plugins/documentation"
19
+ };
20
+ const license = "SEE LICENSE IN LICENSE";
21
+ const author = {
22
+ name: "Strapi Solutions SAS",
23
+ email: "hi@strapi.io",
24
+ url: "https://strapi.io"
25
+ };
26
+ const maintainers = [
27
+ {
28
+ name: "Strapi Solutions SAS",
29
+ email: "hi@strapi.io",
30
+ url: "https://strapi.io"
31
+ }
32
+ ];
33
+ const exports = {
34
+ "./strapi-admin": {
35
+ source: "./admin/src/index.js",
36
+ "import": "./dist/admin/index.mjs",
37
+ require: "./dist/admin/index.js",
38
+ "default": "./dist/admin/index.js"
39
+ },
40
+ "./strapi-server": {
41
+ source: "./strapi-server.js",
42
+ require: "./strapi-server.js",
43
+ "default": "./strapi-server.js"
44
+ },
45
+ "./package.json": "./package.json"
46
+ };
47
+ const scripts = {
48
+ build: "pack-up build",
49
+ clean: "run -T rimraf dist",
50
+ lint: "run -T eslint .",
51
+ prepublishOnly: "yarn clean && yarn build",
52
+ "test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
53
+ "test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
54
+ "test:unit": "jest --verbose",
55
+ "test:unit:watch": "run -T jest --watch",
56
+ watch: "pack-up watch"
57
+ };
58
+ const dependencies = {
59
+ "@strapi/design-system": "1.13.0",
60
+ "@strapi/helper-plugin": "4.15.5-alpha.0",
61
+ "@strapi/icons": "1.13.0",
62
+ "@strapi/utils": "4.15.5-alpha.0",
63
+ bcryptjs: "2.4.3",
64
+ cheerio: "^1.0.0-rc.12",
65
+ formik: "2.4.0",
66
+ "fs-extra": "10.0.0",
67
+ immer: "9.0.19",
68
+ "koa-static": "^5.0.0",
69
+ lodash: "4.17.21",
70
+ "path-to-regexp": "6.2.1",
71
+ "react-helmet": "^6.1.0",
72
+ "react-intl": "6.4.1",
73
+ "react-query": "3.39.3",
74
+ "swagger-ui-dist": "4.19.0",
75
+ yaml: "1.10.2",
76
+ yup: "0.32.9"
77
+ };
78
+ const devDependencies = {
79
+ "@apidevtools/swagger-parser": "^10.1.0",
80
+ "@strapi/pack-up": "4.15.5-alpha.0",
81
+ "@strapi/strapi": "4.15.5-alpha.0",
82
+ "@testing-library/react": "14.0.0",
83
+ "@testing-library/user-event": "14.4.3",
84
+ msw: "1.3.0",
85
+ react: "^18.2.0",
86
+ "react-dom": "^18.2.0",
87
+ "react-router-dom": "5.3.4",
88
+ "styled-components": "5.3.3"
89
+ };
90
+ const peerDependencies = {
91
+ "@strapi/strapi": "^4.0.0",
92
+ react: "^17.0.0 || ^18.0.0",
93
+ "react-dom": "^17.0.0 || ^18.0.0",
94
+ "react-router-dom": "^5.2.0",
95
+ "styled-components": "^5.2.1"
96
+ };
97
+ const engines = {
98
+ node: ">=18.0.0 <=20.x.x",
99
+ npm: ">=6.0.0"
100
+ };
101
+ const strapi = {
102
+ displayName: "Documentation",
103
+ name: "documentation",
104
+ description: "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
105
+ kind: "plugin"
106
+ };
107
+ const gitHead = "ecfbf5ede664b0e56f8dd828fd26bd63903b3d14";
108
+ const pluginPkg = {
109
+ name: name$1,
110
+ version,
111
+ description,
112
+ repository,
113
+ license,
114
+ author,
115
+ maintainers,
116
+ exports,
117
+ scripts,
118
+ dependencies,
119
+ devDependencies,
120
+ peerDependencies,
121
+ engines,
122
+ strapi,
123
+ gitHead
124
+ };
125
+ const PERMISSIONS = {
126
+ // This permission regards the main component (App) and is used to tell
127
+ // If the plugin link should be displayed in the menu
128
+ // And also if the plugin is accessible. This use case is found when a user types the url of the
129
+ // plugin directly in the browser
130
+ main: [
131
+ { action: "plugin::documentation.read", subject: null },
132
+ { action: "plugin::documentation.settings.regenerate", subject: null },
133
+ { action: "plugin::documentation.settings.update", subject: null }
134
+ ],
135
+ open: [
136
+ { action: "plugin::documentation.read", subject: null },
137
+ { action: "plugin::documentation.settings.regenerate", subject: null }
138
+ ],
139
+ regenerate: [{ action: "plugin::documentation.settings.regenerate", subject: null }],
140
+ update: [{ action: "plugin::documentation.settings.update", subject: null }]
141
+ };
142
+ const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
143
+ const name = pluginPkg.strapi.name;
144
+ const index = {
145
+ register(app) {
146
+ app.addMenuLink({
147
+ to: `/plugins/${pluginId}`,
148
+ icon: Information,
149
+ intlLabel: {
150
+ id: `${pluginId}.plugin.name`,
151
+ defaultMessage: "Documentation"
152
+ },
153
+ permissions: PERMISSIONS.main,
154
+ async Component() {
155
+ const component = await import("./index-ed965abb.mjs");
156
+ return component;
157
+ }
158
+ });
159
+ app.registerPlugin({
160
+ id: pluginId,
161
+ name
162
+ });
163
+ },
164
+ bootstrap(app) {
165
+ app.addSettingsLink("global", {
166
+ intlLabel: {
167
+ id: `${pluginId}.plugin.name`,
168
+ defaultMessage: "Documentation"
169
+ },
170
+ id: "documentation",
171
+ to: `/settings/${pluginId}`,
172
+ async Component() {
173
+ const component = await import("./index-bee3292d.mjs");
174
+ return component;
175
+ },
176
+ permissions: PERMISSIONS.main
177
+ });
178
+ },
179
+ async registerTrads({ locales }) {
180
+ const importedTrads = await Promise.all(
181
+ locales.map((locale) => {
182
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-a504b634.mjs"), "./translations/cs.json": () => import("./cs-feb7f04c.mjs"), "./translations/de.json": () => import("./de-a33e1fea.mjs"), "./translations/dk.json": () => import("./dk-ed9fcdcf.mjs"), "./translations/en.json": () => import("./en-96395a32.mjs"), "./translations/es.json": () => import("./es-22de55e3.mjs"), "./translations/fr.json": () => import("./fr-70c3898d.mjs"), "./translations/id.json": () => import("./id-e9e00780.mjs"), "./translations/it.json": () => import("./it-28ef2963.mjs"), "./translations/ko.json": () => import("./ko-a29301ee.mjs"), "./translations/ms.json": () => import("./ms-87588bdb.mjs"), "./translations/nl.json": () => import("./nl-91bcd809.mjs"), "./translations/pl.json": () => import("./pl-7d7fe7b2.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-0024d4be.mjs"), "./translations/pt.json": () => import("./pt-9b66f3d5.mjs"), "./translations/ru.json": () => import("./ru-468d9a30.mjs"), "./translations/sk.json": () => import("./sk-01b7713b.mjs"), "./translations/sv.json": () => import("./sv-7edbe28d.mjs"), "./translations/th.json": () => import("./th-4fcead7f.mjs"), "./translations/tr.json": () => import("./tr-8290d257.mjs"), "./translations/uk.json": () => import("./uk-bf914720.mjs"), "./translations/vi.json": () => import("./vi-ddc8357e.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-6cefb513.mjs"), "./translations/zh.json": () => import("./zh-7b489db7.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
183
+ return {
184
+ data: prefixPluginTranslations(data, pluginId),
185
+ locale
186
+ };
187
+ }).catch(() => {
188
+ return {
189
+ data: {},
190
+ locale
191
+ };
192
+ });
193
+ })
194
+ );
195
+ return Promise.resolve(importedTrads);
196
+ }
197
+ };
198
+ export {
199
+ PERMISSIONS as P,
200
+ index as i,
201
+ pluginId as p
202
+ };
203
+ //# sourceMappingURL=index-b6b0a55d.mjs.map