@strapi/plugin-documentation 0.0.0-experimental.b80973cf243bf8bae143be1230d8d463545204e5 → 0.0.0-experimental.b8a93ec6cfca2f18075819bb617db6bca123b8e2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -3
- package/README.md +0 -1
- package/dist/admin/chunks/App-Cxz0rk7X.js +252 -0
- package/dist/admin/chunks/App-Cxz0rk7X.js.map +1 -0
- package/dist/admin/chunks/App-RCDQlkkW.mjs +231 -0
- package/dist/admin/chunks/App-RCDQlkkW.mjs.map +1 -0
- package/dist/admin/chunks/Settings-BSdFg_W6.js +246 -0
- package/dist/admin/chunks/Settings-BSdFg_W6.js.map +1 -0
- package/dist/admin/chunks/Settings-BVMaCS19.mjs +224 -0
- package/dist/admin/chunks/Settings-BVMaCS19.mjs.map +1 -0
- package/dist/admin/chunks/ar-Bu09tPI1.mjs +23 -0
- package/dist/admin/chunks/ar-Bu09tPI1.mjs.map +1 -0
- package/dist/admin/chunks/ar-Dix6VU4a.js +25 -0
- package/dist/admin/chunks/ar-Dix6VU4a.js.map +1 -0
- package/dist/admin/chunks/cs-C6k-mH5i.js +26 -0
- package/dist/admin/chunks/cs-C6k-mH5i.js.map +1 -0
- package/dist/admin/chunks/cs-tf-UeGst.mjs +24 -0
- package/dist/admin/chunks/cs-tf-UeGst.mjs.map +1 -0
- package/dist/admin/chunks/de-CMhqnPQP.mjs +29 -0
- package/dist/admin/chunks/de-CMhqnPQP.mjs.map +1 -0
- package/dist/admin/chunks/de-DYskRe8j.js +31 -0
- package/dist/admin/chunks/de-DYskRe8j.js.map +1 -0
- package/dist/admin/chunks/dk-BYJqzR_M.js +44 -0
- package/dist/admin/chunks/dk-BYJqzR_M.js.map +1 -0
- package/dist/admin/chunks/dk-BmQOOeIc.mjs +42 -0
- package/dist/admin/chunks/dk-BmQOOeIc.mjs.map +1 -0
- package/dist/admin/chunks/en-B90IBmYB.js +47 -0
- package/dist/admin/chunks/en-B90IBmYB.js.map +1 -0
- package/dist/admin/chunks/en-Cx8yPuig.mjs +45 -0
- package/dist/admin/chunks/en-Cx8yPuig.mjs.map +1 -0
- package/dist/admin/chunks/es-5WsjlhIl.js +44 -0
- package/dist/admin/chunks/es-5WsjlhIl.js.map +1 -0
- package/dist/admin/chunks/es-DAdgO3Ey.mjs +42 -0
- package/dist/admin/chunks/es-DAdgO3Ey.mjs.map +1 -0
- package/dist/admin/chunks/fr-B5fjFqKX.mjs +29 -0
- package/dist/admin/chunks/fr-B5fjFqKX.mjs.map +1 -0
- package/dist/admin/chunks/fr-C-vHEudQ.js +31 -0
- package/dist/admin/chunks/fr-C-vHEudQ.js.map +1 -0
- package/dist/admin/chunks/getTrad-BeRenTLC.mjs +53 -0
- package/dist/admin/chunks/getTrad-BeRenTLC.mjs.map +1 -0
- package/dist/admin/chunks/getTrad-Jg94Stau.js +59 -0
- package/dist/admin/chunks/getTrad-Jg94Stau.js.map +1 -0
- package/dist/admin/chunks/id-BKiCYOdS.js +29 -0
- package/dist/admin/chunks/id-BKiCYOdS.js.map +1 -0
- package/dist/admin/chunks/id-CLApXj97.mjs +27 -0
- package/dist/admin/chunks/id-CLApXj97.mjs.map +1 -0
- package/dist/admin/chunks/index-BBrYAkKJ.js +148 -0
- package/dist/admin/chunks/index-BBrYAkKJ.js.map +1 -0
- package/dist/admin/chunks/index-Bqh49AYj.mjs +144 -0
- package/dist/admin/chunks/index-Bqh49AYj.mjs.map +1 -0
- package/dist/admin/chunks/it-B7SnHLP2.js +31 -0
- package/dist/admin/chunks/it-B7SnHLP2.js.map +1 -0
- package/dist/admin/chunks/it-C7GcWYBa.mjs +29 -0
- package/dist/admin/chunks/it-C7GcWYBa.mjs.map +1 -0
- package/dist/admin/chunks/ko-CjOasZmz.js +44 -0
- package/dist/admin/chunks/ko-CjOasZmz.js.map +1 -0
- package/dist/admin/chunks/ko-DZvks90a.mjs +42 -0
- package/dist/admin/chunks/ko-DZvks90a.mjs.map +1 -0
- package/dist/admin/chunks/ms-C2TEZHkD.js +28 -0
- package/dist/admin/chunks/ms-C2TEZHkD.js.map +1 -0
- package/dist/admin/chunks/ms-Df9gDB9M.mjs +26 -0
- package/dist/admin/chunks/ms-Df9gDB9M.mjs.map +1 -0
- package/dist/admin/chunks/nl-BlmTMaTL.mjs +24 -0
- package/dist/admin/chunks/nl-BlmTMaTL.mjs.map +1 -0
- package/dist/admin/chunks/nl-CLp2dhr9.js +26 -0
- package/dist/admin/chunks/nl-CLp2dhr9.js.map +1 -0
- package/dist/admin/chunks/pl-5iT3b9r4.mjs +42 -0
- package/dist/admin/chunks/pl-5iT3b9r4.mjs.map +1 -0
- package/dist/admin/chunks/pl-C8WRO2pt.js +44 -0
- package/dist/admin/chunks/pl-C8WRO2pt.js.map +1 -0
- package/dist/admin/chunks/pt-BK5YbXpM.mjs +24 -0
- package/dist/admin/chunks/pt-BK5YbXpM.mjs.map +1 -0
- package/dist/admin/chunks/pt-BR-De5jokla.mjs +24 -0
- package/dist/admin/chunks/pt-BR-De5jokla.mjs.map +1 -0
- package/dist/admin/chunks/pt-BR-Ds-dLXzD.js +26 -0
- package/dist/admin/chunks/pt-BR-Ds-dLXzD.js.map +1 -0
- package/dist/admin/chunks/pt-DL-rrjA1.js +26 -0
- package/dist/admin/chunks/pt-DL-rrjA1.js.map +1 -0
- package/dist/admin/chunks/ru-C_16WuLP.mjs +42 -0
- package/dist/admin/chunks/ru-C_16WuLP.mjs.map +1 -0
- package/dist/admin/chunks/ru-Cqv4k9my.js +44 -0
- package/dist/admin/chunks/ru-Cqv4k9my.js.map +1 -0
- package/dist/admin/chunks/sk-B7RadPe4.mjs +27 -0
- package/dist/admin/chunks/sk-B7RadPe4.mjs.map +1 -0
- package/dist/admin/chunks/sk-D6l_EMOT.js +29 -0
- package/dist/admin/chunks/sk-D6l_EMOT.js.map +1 -0
- package/dist/admin/chunks/sv-DK5DOsrV.mjs +42 -0
- package/dist/admin/chunks/sv-DK5DOsrV.mjs.map +1 -0
- package/dist/admin/chunks/sv-Xg5gbVO9.js +44 -0
- package/dist/admin/chunks/sv-Xg5gbVO9.js.map +1 -0
- package/dist/admin/chunks/th-DNiRgKQH.mjs +27 -0
- package/dist/admin/chunks/th-DNiRgKQH.mjs.map +1 -0
- package/dist/admin/chunks/th-Pci1U3n6.js +29 -0
- package/dist/admin/chunks/th-Pci1U3n6.js.map +1 -0
- package/dist/admin/chunks/tr-CBlxk5Of.js +44 -0
- package/dist/admin/chunks/tr-CBlxk5Of.js.map +1 -0
- package/dist/admin/chunks/tr-CWX4cUiB.mjs +42 -0
- package/dist/admin/chunks/tr-CWX4cUiB.mjs.map +1 -0
- package/dist/admin/chunks/uk-BEfALDlr.mjs +26 -0
- package/dist/admin/chunks/uk-BEfALDlr.mjs.map +1 -0
- package/dist/admin/chunks/uk-CBFYJeOD.js +28 -0
- package/dist/admin/chunks/uk-CBFYJeOD.js.map +1 -0
- package/dist/admin/chunks/vi-CAG7iDHR.js +29 -0
- package/dist/admin/chunks/vi-CAG7iDHR.js.map +1 -0
- package/dist/admin/chunks/vi-geadDLtq.mjs +27 -0
- package/dist/admin/chunks/vi-geadDLtq.mjs.map +1 -0
- package/dist/admin/chunks/zh-E4LX--2j.mjs +42 -0
- package/dist/admin/chunks/zh-E4LX--2j.mjs.map +1 -0
- package/dist/admin/chunks/zh-Hans-CtXQdJhw.js +33 -0
- package/dist/admin/chunks/zh-Hans-CtXQdJhw.js.map +1 -0
- package/dist/admin/chunks/zh-Hans-fcRf-TLx.mjs +31 -0
- package/dist/admin/chunks/zh-Hans-fcRf-TLx.mjs.map +1 -0
- package/dist/admin/chunks/zh-rKHsKNA3.js +44 -0
- package/dist/admin/chunks/zh-rKHsKNA3.js.map +1 -0
- package/dist/admin/index.js +7 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +2 -6
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/SettingsForm.d.ts +8 -0
- package/dist/admin/src/constants.d.ts +18 -0
- package/dist/admin/src/index.d.ts +14 -0
- package/dist/admin/src/pages/App.d.ts +2 -0
- package/dist/admin/src/pages/Settings.d.ts +2 -0
- package/dist/admin/src/pages/tests/App.test.d.ts +1 -0
- package/dist/admin/src/pages/tests/Settings.test.d.ts +1 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/services/api.d.ts +13 -0
- package/dist/admin/src/types.d.ts +16 -0
- package/dist/admin/src/utils/baseQuery.d.ts +5 -0
- package/dist/admin/src/utils/getTrad.d.ts +1 -0
- package/dist/admin/src/utils/index.d.ts +2 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +2 -0
- package/dist/server/chunks/index--0fU1WeK.js +6 -0
- package/dist/server/chunks/index--0fU1WeK.js.map +1 -0
- package/dist/server/chunks/index-Dz3orHaf.mjs +4 -0
- package/dist/server/chunks/index-Dz3orHaf.mjs.map +1 -0
- package/dist/server/chunks/login-CMPqkCFT.js +6 -0
- package/dist/server/chunks/login-CMPqkCFT.js.map +1 -0
- package/dist/server/chunks/login-CYdORE5u.mjs +4 -0
- package/dist/server/chunks/login-CYdORE5u.mjs.map +1 -0
- package/dist/server/index.js +1594 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +1573 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/server/src/bootstrap.d.ts +5 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/config/default-plugin-config.d.ts +3 -0
- package/dist/server/src/config/default-plugin-config.d.ts.map +1 -0
- package/dist/server/src/config/index.d.ts +4 -0
- package/dist/server/src/config/index.d.ts.map +1 -0
- package/dist/server/src/controllers/documentation.d.ts +12 -0
- package/dist/server/src/controllers/documentation.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +14 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +91 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/documentation.d.ts +5 -0
- package/dist/server/src/middlewares/documentation.d.ts.map +1 -0
- package/dist/server/src/middlewares/restrict-access.d.ts +4 -0
- package/dist/server/src/middlewares/restrict-access.d.ts.map +1 -0
- package/dist/server/src/register.d.ts +5 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +36 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/services/__mocks__/mock-content-types.d.ts +449 -0
- package/dist/server/src/services/__mocks__/mock-content-types.d.ts.map +1 -0
- package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts +592 -0
- package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts.map +1 -0
- package/dist/server/src/services/documentation.d.ts +36 -0
- package/dist/server/src/services/documentation.d.ts.map +1 -0
- package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts +7 -0
- package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts.map +1 -0
- package/dist/server/src/services/helpers/build-component-schema.d.ts +4 -0
- package/dist/server/src/services/helpers/build-component-schema.d.ts.map +1 -0
- package/dist/server/src/services/helpers/index.d.ts +4 -0
- package/dist/server/src/services/helpers/index.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts +15 -0
- package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/get-api-responses.d.ts +15 -0
- package/dist/server/src/services/helpers/utils/get-api-responses.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/get-schema-data.d.ts +12 -0
- package/dist/server/src/services/helpers/utils/get-schema-data.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts +7 -0
- package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/pascal-case.d.ts +3 -0
- package/dist/server/src/services/helpers/utils/pascal-case.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/query-params.d.ts +4 -0
- package/dist/server/src/services/helpers/utils/query-params.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/routes.d.ts +3 -0
- package/dist/server/src/services/helpers/utils/routes.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +43 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/override.d.ts +21 -0
- package/dist/server/src/services/override.d.ts.map +1 -0
- package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts +4 -0
- package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts.map +1 -0
- package/dist/server/src/types.d.ts +28 -0
- package/dist/server/src/types.d.ts.map +1 -0
- package/dist/server/src/utils.d.ts +12 -0
- package/dist/server/src/utils.d.ts.map +1 -0
- package/dist/tests/server.d.ts +2 -0
- package/package.json +55 -35
- package/.eslintignore +0 -1
- package/.eslintrc +0 -17
- package/admin/src/constants.js +0 -17
- package/admin/src/hooks/useDocumentation.js +0 -77
- package/admin/src/index.js +0 -76
- package/admin/src/pages/PluginPage/index.jsx +0 -230
- package/admin/src/pages/PluginPage/tests/index.test.jsx +0 -206
- package/admin/src/pages/SettingsPage/index.jsx +0 -211
- package/admin/src/pages/SettingsPage/tests/index.test.jsx +0 -124
- package/admin/src/pluginId.js +0 -5
- package/admin/src/translations/ar.json +0 -20
- package/admin/src/translations/cs.json +0 -21
- package/admin/src/translations/de.json +0 -26
- package/admin/src/translations/dk.json +0 -39
- package/admin/src/translations/en.json +0 -39
- package/admin/src/translations/es.json +0 -39
- package/admin/src/translations/fr.json +0 -26
- package/admin/src/translations/id.json +0 -24
- package/admin/src/translations/it.json +0 -26
- package/admin/src/translations/ko.json +0 -39
- package/admin/src/translations/ms.json +0 -23
- package/admin/src/translations/nl.json +0 -21
- package/admin/src/translations/pl.json +0 -39
- package/admin/src/translations/pt-BR.json +0 -21
- package/admin/src/translations/pt.json +0 -21
- package/admin/src/translations/ru.json +0 -39
- package/admin/src/translations/sk.json +0 -24
- package/admin/src/translations/sv.json +0 -39
- package/admin/src/translations/th.json +0 -24
- package/admin/src/translations/tr.json +0 -39
- package/admin/src/translations/uk.json +0 -23
- package/admin/src/translations/vi.json +0 -24
- package/admin/src/translations/zh-Hans.json +0 -28
- package/admin/src/translations/zh.json +0 -39
- package/admin/src/utils/getTrad.js +0 -5
- package/admin/src/utils/index.js +0 -2
- package/dist/_chunks/ar-4yWQcJB-.js +0 -24
- package/dist/_chunks/ar-4yWQcJB-.js.map +0 -1
- package/dist/_chunks/ar-dlnabvQE.mjs +0 -24
- package/dist/_chunks/ar-dlnabvQE.mjs.map +0 -1
- package/dist/_chunks/cs-knLCHelx.js +0 -25
- package/dist/_chunks/cs-knLCHelx.js.map +0 -1
- package/dist/_chunks/cs-x2Pr-Y38.mjs +0 -25
- package/dist/_chunks/cs-x2Pr-Y38.mjs.map +0 -1
- package/dist/_chunks/de-10J3uf4y.mjs +0 -30
- package/dist/_chunks/de-10J3uf4y.mjs.map +0 -1
- package/dist/_chunks/de-D0HJjv1r.js +0 -30
- package/dist/_chunks/de-D0HJjv1r.js.map +0 -1
- package/dist/_chunks/dk-OGCIxZ4f.js +0 -43
- package/dist/_chunks/dk-OGCIxZ4f.js.map +0 -1
- package/dist/_chunks/dk-_8JEfZdj.mjs +0 -43
- package/dist/_chunks/dk-_8JEfZdj.mjs.map +0 -1
- package/dist/_chunks/en-V4ac9UMW.mjs +0 -43
- package/dist/_chunks/en-V4ac9UMW.mjs.map +0 -1
- package/dist/_chunks/en-YgFnjikD.js +0 -43
- package/dist/_chunks/en-YgFnjikD.js.map +0 -1
- package/dist/_chunks/es-5fRDaTSK.js +0 -43
- package/dist/_chunks/es-5fRDaTSK.js.map +0 -1
- package/dist/_chunks/es-f_rfLY5r.mjs +0 -43
- package/dist/_chunks/es-f_rfLY5r.mjs.map +0 -1
- package/dist/_chunks/fr-L2xRpd2l.mjs +0 -30
- package/dist/_chunks/fr-L2xRpd2l.mjs.map +0 -1
- package/dist/_chunks/fr-qviymkcR.js +0 -30
- package/dist/_chunks/fr-qviymkcR.js.map +0 -1
- package/dist/_chunks/id-caKGgafZ.js +0 -28
- package/dist/_chunks/id-caKGgafZ.js.map +0 -1
- package/dist/_chunks/id-l-r-lPDE.mjs +0 -28
- package/dist/_chunks/id-l-r-lPDE.mjs.map +0 -1
- package/dist/_chunks/index-ISrKAb58.mjs +0 -167
- package/dist/_chunks/index-ISrKAb58.mjs.map +0 -1
- package/dist/_chunks/index-PlvsfCte.js +0 -194
- package/dist/_chunks/index-PlvsfCte.js.map +0 -1
- package/dist/_chunks/index-WTbIqZy8.mjs +0 -200
- package/dist/_chunks/index-WTbIqZy8.mjs.map +0 -1
- package/dist/_chunks/index-gGw_l7UJ.mjs +0 -173
- package/dist/_chunks/index-gGw_l7UJ.mjs.map +0 -1
- package/dist/_chunks/index-h5YQXoW2.js +0 -169
- package/dist/_chunks/index-h5YQXoW2.js.map +0 -1
- package/dist/_chunks/index-lLKsLeWg.js +0 -199
- package/dist/_chunks/index-lLKsLeWg.js.map +0 -1
- package/dist/_chunks/it-e3T319Va.js +0 -30
- package/dist/_chunks/it-e3T319Va.js.map +0 -1
- package/dist/_chunks/it-nCSZoaet.mjs +0 -30
- package/dist/_chunks/it-nCSZoaet.mjs.map +0 -1
- package/dist/_chunks/ko-nWCOH-TF.js +0 -43
- package/dist/_chunks/ko-nWCOH-TF.js.map +0 -1
- package/dist/_chunks/ko-pUwRxmfG.mjs +0 -43
- package/dist/_chunks/ko-pUwRxmfG.mjs.map +0 -1
- package/dist/_chunks/ms-8e8SEhhY.mjs +0 -27
- package/dist/_chunks/ms-8e8SEhhY.mjs.map +0 -1
- package/dist/_chunks/ms-CSGAOmvV.js +0 -27
- package/dist/_chunks/ms-CSGAOmvV.js.map +0 -1
- package/dist/_chunks/nl-82NK6g7v.js +0 -25
- package/dist/_chunks/nl-82NK6g7v.js.map +0 -1
- package/dist/_chunks/nl-RjdbZWuM.mjs +0 -25
- package/dist/_chunks/nl-RjdbZWuM.mjs.map +0 -1
- package/dist/_chunks/pl-UMuW3iDh.js +0 -43
- package/dist/_chunks/pl-UMuW3iDh.js.map +0 -1
- package/dist/_chunks/pl-sh4sAKA8.mjs +0 -43
- package/dist/_chunks/pl-sh4sAKA8.mjs.map +0 -1
- package/dist/_chunks/pt-2sEtQifY.js +0 -25
- package/dist/_chunks/pt-2sEtQifY.js.map +0 -1
- package/dist/_chunks/pt-BR-G0-nWgFV.js +0 -25
- package/dist/_chunks/pt-BR-G0-nWgFV.js.map +0 -1
- package/dist/_chunks/pt-BR-uX3O_t0X.mjs +0 -25
- package/dist/_chunks/pt-BR-uX3O_t0X.mjs.map +0 -1
- package/dist/_chunks/pt-GqKRRnNe.mjs +0 -25
- package/dist/_chunks/pt-GqKRRnNe.mjs.map +0 -1
- package/dist/_chunks/ru-dQr7xFOb.mjs +0 -43
- package/dist/_chunks/ru-dQr7xFOb.mjs.map +0 -1
- package/dist/_chunks/ru-wJyWus4I.js +0 -43
- package/dist/_chunks/ru-wJyWus4I.js.map +0 -1
- package/dist/_chunks/sk-mcEz1PMW.js +0 -28
- package/dist/_chunks/sk-mcEz1PMW.js.map +0 -1
- package/dist/_chunks/sk-nreoyD6V.mjs +0 -28
- package/dist/_chunks/sk-nreoyD6V.mjs.map +0 -1
- package/dist/_chunks/sv-V86KaP9y.js +0 -43
- package/dist/_chunks/sv-V86KaP9y.js.map +0 -1
- package/dist/_chunks/sv-kIUD_46v.mjs +0 -43
- package/dist/_chunks/sv-kIUD_46v.mjs.map +0 -1
- package/dist/_chunks/th-IcmZ0Yif.mjs +0 -28
- package/dist/_chunks/th-IcmZ0Yif.mjs.map +0 -1
- package/dist/_chunks/th-pZN4HdUY.js +0 -28
- package/dist/_chunks/th-pZN4HdUY.js.map +0 -1
- package/dist/_chunks/tr-CkXew0gQ.mjs +0 -43
- package/dist/_chunks/tr-CkXew0gQ.mjs.map +0 -1
- package/dist/_chunks/tr-fCijT6nA.js +0 -43
- package/dist/_chunks/tr-fCijT6nA.js.map +0 -1
- package/dist/_chunks/uk-E8Js7gDb.mjs +0 -27
- package/dist/_chunks/uk-E8Js7gDb.mjs.map +0 -1
- package/dist/_chunks/uk-TEHpQuls.js +0 -27
- package/dist/_chunks/uk-TEHpQuls.js.map +0 -1
- package/dist/_chunks/useDocumentation-3SwQ1gC0.mjs +0 -66
- package/dist/_chunks/useDocumentation-3SwQ1gC0.mjs.map +0 -1
- package/dist/_chunks/useDocumentation-t_dDNh8W.js +0 -65
- package/dist/_chunks/useDocumentation-t_dDNh8W.js.map +0 -1
- package/dist/_chunks/vi-Nxtm0xZz.js +0 -28
- package/dist/_chunks/vi-Nxtm0xZz.js.map +0 -1
- package/dist/_chunks/vi-k1R3Y3mS.mjs +0 -28
- package/dist/_chunks/vi-k1R3Y3mS.mjs.map +0 -1
- package/dist/_chunks/zh-Hans-FdUTcggu.mjs +0 -32
- package/dist/_chunks/zh-Hans-FdUTcggu.mjs.map +0 -1
- package/dist/_chunks/zh-Hans-tFSnVett.js +0 -32
- package/dist/_chunks/zh-Hans-tFSnVett.js.map +0 -1
- package/dist/_chunks/zh-Vd3mfBR-.mjs +0 -43
- package/dist/_chunks/zh-Vd3mfBR-.mjs.map +0 -1
- package/dist/_chunks/zh-bgauBZz8.js +0 -43
- package/dist/_chunks/zh-bgauBZz8.js.map +0 -1
- package/jest.config.front.js +0 -7
- package/jest.config.js +0 -6
- package/packup.config.ts +0 -22
- package/server/bootstrap.js +0 -54
- package/server/config/default-plugin-config.js +0 -35
- package/server/config/index.js +0 -7
- package/server/controllers/documentation.js +0 -241
- package/server/controllers/index.js +0 -7
- package/server/index.js +0 -17
- package/server/middlewares/documentation.js +0 -25
- package/server/middlewares/index.js +0 -7
- package/server/middlewares/restrict-access.js +0 -24
- package/server/public/index.html +0 -70
- package/server/public/login.html +0 -145
- package/server/register.js +0 -11
- package/server/routes/index.js +0 -84
- package/server/services/__mocks__/mock-content-types.js +0 -269
- package/server/services/__mocks__/mock-strapi-data.js +0 -183
- package/server/services/__tests__/build-component-schema.test.js +0 -761
- package/server/services/__tests__/documentation.test.js +0 -481
- package/server/services/__tests__/override.test.js +0 -85
- package/server/services/documentation.js +0 -247
- package/server/services/helpers/build-api-endpoint-path.js +0 -186
- package/server/services/helpers/build-component-schema.js +0 -254
- package/server/services/helpers/index.js +0 -9
- package/server/services/helpers/utils/clean-schema-attributes.js +0 -246
- package/server/services/helpers/utils/get-api-responses.js +0 -105
- package/server/services/helpers/utils/get-schema-data.js +0 -32
- package/server/services/helpers/utils/loop-content-type-names.js +0 -55
- package/server/services/helpers/utils/pascal-case.js +0 -9
- package/server/services/helpers/utils/query-params.js +0 -105
- package/server/services/helpers/utils/routes.js +0 -10
- package/server/services/index.js +0 -9
- package/server/services/override.js +0 -52
- package/server/services/utils/default-openapi-components.js +0 -40
- package/server/services/utils/get-plugins-that-need-documentation.js +0 -24
- package/strapi-server.js +0 -3
- package/tests/server.js +0 -37
- package/tests/setup.js +0 -15
package/LICENSE
CHANGED
|
@@ -2,7 +2,21 @@ Copyright (c) 2015-present Strapi Solutions SAS
|
|
|
2
2
|
|
|
3
3
|
Portions of the Strapi software are licensed as follows:
|
|
4
4
|
|
|
5
|
-
* All software that resides under an "ee/" directory (the “EE Software”), if that directory exists, is licensed under the license defined
|
|
5
|
+
* All software that resides under an "ee/" directory (the “EE Software”), if that directory exists, is licensed under the license defined below.
|
|
6
|
+
|
|
7
|
+
Enterprise License
|
|
8
|
+
|
|
9
|
+
If you or the company you represent has entered into a written agreement referencing the Enterprise Edition of the Strapi source code available at
|
|
10
|
+
https://github.com/strapi/strapi, then such agreement applies to your use of the Enterprise Edition of the Strapi Software. If you or the company you
|
|
11
|
+
represent is using the Enterprise Edition of the Strapi Software in connection with a subscription to our cloud offering, then the agreement you have
|
|
12
|
+
agreed to with respect to our cloud offering and the licenses included in such agreement apply to your use of the Enterprise Edition of the Strapi Software.
|
|
13
|
+
Otherwise, the Strapi Enterprise Software License Agreement (found here https://strapi.io/enterprise-terms) applies to your use of the Enterprise Edition of the Strapi Software.
|
|
14
|
+
|
|
15
|
+
BY ACCESSING OR USING THE ENTERPRISE EDITION OF THE STRAPI SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE RELEVANT REFERENCED AGREEMENT.
|
|
16
|
+
IF YOU ARE NOT AUTHORIZED TO ACCEPT THESE TERMS ON BEHALF OF THE COMPANY YOU REPRESENT OR IF YOU DO NOT AGREE TO ALL OF THE RELEVANT TERMS AND CONDITIONS REFERENCED AND YOU
|
|
17
|
+
HAVE NOT OTHERWISE EXECUTED A WRITTEN AGREEMENT WITH STRAPI, YOU ARE NOT AUTHORIZED TO ACCESS OR USE OR ALLOW ANY USER TO ACCESS OR USE ANY PART OF
|
|
18
|
+
THE ENTERPRISE EDITION OF THE STRAPI SOFTWARE. YOUR ACCESS RIGHTS ARE CONDITIONAL ON YOUR CONSENT TO THE RELEVANT REFERENCED TERMS TO THE EXCLUSION OF ALL OTHER TERMS;
|
|
19
|
+
IF THE RELEVANT REFERENCED TERMS ARE CONSIDERED AN OFFER BY YOU, ACCEPTANCE IS EXPRESSLY LIMITED TO THE RELEVANT REFERENCED TERMS.
|
|
6
20
|
|
|
7
21
|
* All software outside of the above-mentioned directories or restrictions above is available under the "MIT Expat" license as set forth below.
|
|
8
22
|
|
|
@@ -18,5 +32,6 @@ furnished to do so, subject to the following conditions:
|
|
|
18
32
|
The above copyright notice and this permission notice shall be included in all
|
|
19
33
|
copies or substantial portions of the Software.
|
|
20
34
|
|
|
21
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
-
|
|
35
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
36
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
37
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -59,7 +59,6 @@ It has the following structure
|
|
|
59
59
|
...
|
|
60
60
|
},
|
|
61
61
|
"x-strapi-config": {
|
|
62
|
-
"path": "/documentation", // Change this line to change to url of the doc
|
|
63
62
|
"showGeneratedFiles": true // Do not change this line at the moment...
|
|
64
63
|
},
|
|
65
64
|
"servers": {}, // Your servers config (it will be automated)
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var designSystem = require('@strapi/design-system');
|
|
6
|
+
var icons = require('@strapi/icons');
|
|
7
|
+
var admin = require('@strapi/strapi/admin');
|
|
8
|
+
var reactIntl = require('react-intl');
|
|
9
|
+
var styledComponents = require('styled-components');
|
|
10
|
+
var index = require('./index-BBrYAkKJ.js');
|
|
11
|
+
var getTrad = require('./getTrad-Jg94Stau.js');
|
|
12
|
+
require('@strapi/admin/strapi-admin');
|
|
13
|
+
|
|
14
|
+
function _interopNamespaceDefault(e) {
|
|
15
|
+
var n = Object.create(null);
|
|
16
|
+
if (e) {
|
|
17
|
+
Object.keys(e).forEach(function (k) {
|
|
18
|
+
if (k !== 'default') {
|
|
19
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
20
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return e[k]; }
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
n.default = e;
|
|
28
|
+
return Object.freeze(n);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
32
|
+
|
|
33
|
+
const App = ()=>{
|
|
34
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
35
|
+
const { toggleNotification } = admin.useNotification();
|
|
36
|
+
const { formatAPIError } = admin.useAPIErrorHandler();
|
|
37
|
+
const { data, isLoading: isLoadingInfo, isError } = getTrad.useGetInfoQuery();
|
|
38
|
+
const [regenerate] = getTrad.useRegenerateDocMutation();
|
|
39
|
+
const [deleteVersion] = getTrad.useDeleteVersionMutation();
|
|
40
|
+
const [showConfirmDelete, setShowConfirmDelete] = React__namespace.useState(false);
|
|
41
|
+
const [versionToDelete, setVersionToDelete] = React__namespace.useState();
|
|
42
|
+
const { allowedActions, isLoading: isLoadingRBAC } = admin.useRBAC(index.PERMISSIONS);
|
|
43
|
+
const isLoading = isLoadingInfo || isLoadingRBAC;
|
|
44
|
+
const colCount = 4;
|
|
45
|
+
const rowCount = (data?.docVersions?.length || 0) + 1;
|
|
46
|
+
const handleRegenerateDoc = (version)=>{
|
|
47
|
+
regenerate({
|
|
48
|
+
version
|
|
49
|
+
}).unwrap().then(()=>{
|
|
50
|
+
toggleNotification({
|
|
51
|
+
type: 'success',
|
|
52
|
+
message: formatMessage({
|
|
53
|
+
id: getTrad.getTrad('notification.generate.success'),
|
|
54
|
+
defaultMessage: 'Successfully generated documentation'
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
}).catch((err)=>{
|
|
58
|
+
toggleNotification({
|
|
59
|
+
type: 'warning',
|
|
60
|
+
message: formatAPIError(err)
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const handleConfirmDelete = async ()=>{
|
|
65
|
+
if (!versionToDelete) {
|
|
66
|
+
// nothing to delete
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
await deleteVersion({
|
|
70
|
+
version: versionToDelete
|
|
71
|
+
}).unwrap().then(()=>{
|
|
72
|
+
toggleNotification({
|
|
73
|
+
type: 'success',
|
|
74
|
+
message: formatMessage({
|
|
75
|
+
id: getTrad.getTrad('notification.delete.success'),
|
|
76
|
+
defaultMessage: 'Successfully deleted documentation'
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
}).catch((err)=>{
|
|
80
|
+
toggleNotification({
|
|
81
|
+
type: 'warning',
|
|
82
|
+
message: formatAPIError(err)
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
setShowConfirmDelete(!showConfirmDelete);
|
|
86
|
+
};
|
|
87
|
+
const handleClickDelete = (version)=>{
|
|
88
|
+
setVersionToDelete(version);
|
|
89
|
+
setShowConfirmDelete(!showConfirmDelete);
|
|
90
|
+
};
|
|
91
|
+
const title = formatMessage({
|
|
92
|
+
id: getTrad.getTrad('plugin.name'),
|
|
93
|
+
defaultMessage: 'Documentation'
|
|
94
|
+
});
|
|
95
|
+
if (isLoading) {
|
|
96
|
+
return /*#__PURE__*/ jsxRuntime.jsx(admin.Page.Loading, {});
|
|
97
|
+
}
|
|
98
|
+
if (isError) {
|
|
99
|
+
return /*#__PURE__*/ jsxRuntime.jsx(admin.Page.Error, {});
|
|
100
|
+
}
|
|
101
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(admin.Layouts.Root, {
|
|
102
|
+
children: [
|
|
103
|
+
/*#__PURE__*/ jsxRuntime.jsx(admin.Page.Title, {
|
|
104
|
+
children: title
|
|
105
|
+
}),
|
|
106
|
+
/*#__PURE__*/ jsxRuntime.jsxs(admin.Page.Main, {
|
|
107
|
+
children: [
|
|
108
|
+
/*#__PURE__*/ jsxRuntime.jsx(admin.Layouts.Header, {
|
|
109
|
+
title: title,
|
|
110
|
+
subtitle: formatMessage({
|
|
111
|
+
id: getTrad.getTrad('pages.PluginPage.header.description'),
|
|
112
|
+
defaultMessage: 'Configure the documentation plugin'
|
|
113
|
+
}),
|
|
114
|
+
primaryAction: /*#__PURE__*/ jsxRuntime.jsx(OpenDocLink, {
|
|
115
|
+
disabled: !allowedActions.canRead || !data?.currentVersion || !data?.prefix,
|
|
116
|
+
href: createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`),
|
|
117
|
+
startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Eye, {}),
|
|
118
|
+
children: formatMessage({
|
|
119
|
+
id: getTrad.getTrad('pages.PluginPage.Button.open'),
|
|
120
|
+
defaultMessage: 'Open Documentation'
|
|
121
|
+
})
|
|
122
|
+
})
|
|
123
|
+
}),
|
|
124
|
+
/*#__PURE__*/ jsxRuntime.jsx(admin.Layouts.Content, {
|
|
125
|
+
children: data?.docVersions.length ? /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Table, {
|
|
126
|
+
colCount: colCount,
|
|
127
|
+
rowCount: rowCount,
|
|
128
|
+
children: [
|
|
129
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Thead, {
|
|
130
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
|
|
131
|
+
children: [
|
|
132
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Th, {
|
|
133
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
134
|
+
variant: "sigma",
|
|
135
|
+
textColor: "neutral600",
|
|
136
|
+
children: formatMessage({
|
|
137
|
+
id: getTrad.getTrad('pages.PluginPage.table.version'),
|
|
138
|
+
defaultMessage: 'Version'
|
|
139
|
+
})
|
|
140
|
+
})
|
|
141
|
+
}),
|
|
142
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Th, {
|
|
143
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
144
|
+
variant: "sigma",
|
|
145
|
+
textColor: "neutral600",
|
|
146
|
+
children: formatMessage({
|
|
147
|
+
id: getTrad.getTrad('pages.PluginPage.table.generated'),
|
|
148
|
+
defaultMessage: 'Last Generated'
|
|
149
|
+
})
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
]
|
|
153
|
+
})
|
|
154
|
+
}),
|
|
155
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Tbody, {
|
|
156
|
+
children: data.docVersions.slice(0).sort((a, b)=>a.generatedDate < b.generatedDate ? 1 : -1).map((doc)=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
|
|
157
|
+
children: [
|
|
158
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
159
|
+
width: "50%",
|
|
160
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
161
|
+
children: doc.version
|
|
162
|
+
})
|
|
163
|
+
}),
|
|
164
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
165
|
+
width: "50%",
|
|
166
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
167
|
+
children: doc.generatedDate
|
|
168
|
+
})
|
|
169
|
+
}),
|
|
170
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
|
171
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
172
|
+
justifyContent: "end",
|
|
173
|
+
onClick: (e)=>e.stopPropagation(),
|
|
174
|
+
children: [
|
|
175
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
|
176
|
+
tag: "a",
|
|
177
|
+
disabled: !allowedActions.canRead,
|
|
178
|
+
href: createDocumentationHref(`${data.prefix}/v${doc.version}`),
|
|
179
|
+
variant: "ghost",
|
|
180
|
+
target: "_blank",
|
|
181
|
+
rel: "noopener noreferrer",
|
|
182
|
+
label: formatMessage({
|
|
183
|
+
id: getTrad.getTrad('pages.PluginPage.table.icon.show'),
|
|
184
|
+
defaultMessage: 'Open {target}'
|
|
185
|
+
}, {
|
|
186
|
+
target: `${doc.version}`
|
|
187
|
+
}),
|
|
188
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(icons.Eye, {})
|
|
189
|
+
}),
|
|
190
|
+
allowedActions.canRegenerate ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
|
191
|
+
onClick: ()=>handleRegenerateDoc(doc.version),
|
|
192
|
+
variant: "ghost",
|
|
193
|
+
label: formatMessage({
|
|
194
|
+
id: getTrad.getTrad('pages.PluginPage.table.icon.regenerate'),
|
|
195
|
+
defaultMessage: 'Regenerate {target}'
|
|
196
|
+
}, {
|
|
197
|
+
target: `${doc.version}`
|
|
198
|
+
}),
|
|
199
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(icons.ArrowClockwise, {})
|
|
200
|
+
}) : null,
|
|
201
|
+
allowedActions.canUpdate && doc.version !== data.currentVersion ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
|
202
|
+
onClick: ()=>handleClickDelete(doc.version),
|
|
203
|
+
variant: "ghost",
|
|
204
|
+
label: formatMessage({
|
|
205
|
+
id: 'global.delete-target',
|
|
206
|
+
defaultMessage: 'Delete {target}'
|
|
207
|
+
}, {
|
|
208
|
+
target: `${doc.version}`
|
|
209
|
+
}),
|
|
210
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(icons.Trash, {})
|
|
211
|
+
}) : null
|
|
212
|
+
]
|
|
213
|
+
})
|
|
214
|
+
})
|
|
215
|
+
]
|
|
216
|
+
}, doc.version))
|
|
217
|
+
})
|
|
218
|
+
]
|
|
219
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.EmptyStateLayout, {
|
|
220
|
+
content: "",
|
|
221
|
+
icon: null
|
|
222
|
+
})
|
|
223
|
+
}),
|
|
224
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Dialog.Root, {
|
|
225
|
+
open: showConfirmDelete,
|
|
226
|
+
onOpenChange: setShowConfirmDelete,
|
|
227
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(admin.ConfirmDialog, {
|
|
228
|
+
onConfirm: handleConfirmDelete
|
|
229
|
+
})
|
|
230
|
+
})
|
|
231
|
+
]
|
|
232
|
+
})
|
|
233
|
+
]
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
/**
|
|
237
|
+
* TODO: should this be fixed in the DS?
|
|
238
|
+
*/ const OpenDocLink = styledComponents.styled(designSystem.LinkButton)`
|
|
239
|
+
text-decoration: none;
|
|
240
|
+
`;
|
|
241
|
+
const createDocumentationHref = (path)=>{
|
|
242
|
+
if (path.startsWith('http')) {
|
|
243
|
+
return path;
|
|
244
|
+
}
|
|
245
|
+
if (path.startsWith('/')) {
|
|
246
|
+
return `${window.strapi.backendURL}${path}`;
|
|
247
|
+
}
|
|
248
|
+
return `${window.strapi.backendURL}/${path}`;
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
exports.App = App;
|
|
252
|
+
//# sourceMappingURL=App-Cxz0rk7X.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App-Cxz0rk7X.js","sources":["../../../admin/src/pages/App.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\nimport * as React from 'react';\n\nimport {\n LinkButton,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n EmptyStateLayout,\n Dialog,\n} from '@strapi/design-system';\nimport { Eye as Show, ArrowClockwise as Reload, Trash } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useRBAC,\n Page,\n useAPIErrorHandler,\n useNotification,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PERMISSIONS } from '../constants';\nimport {\n useGetInfoQuery,\n useRegenerateDocMutation,\n useDeleteVersionMutation,\n} from '../services/api';\nimport { getTrad } from '../utils';\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { formatAPIError } = useAPIErrorHandler();\n const { data, isLoading: isLoadingInfo, isError } = useGetInfoQuery();\n const [regenerate] = useRegenerateDocMutation();\n const [deleteVersion] = useDeleteVersionMutation();\n const [showConfirmDelete, setShowConfirmDelete] = React.useState<boolean>(false);\n const [versionToDelete, setVersionToDelete] = React.useState<string>();\n const { allowedActions, isLoading: isLoadingRBAC } = useRBAC(PERMISSIONS);\n\n const isLoading = isLoadingInfo || isLoadingRBAC;\n\n const colCount = 4;\n const rowCount = (data?.docVersions?.length || 0) + 1;\n\n const handleRegenerateDoc = (version: string) => {\n regenerate({ version })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.generate.success'),\n defaultMessage: 'Successfully generated documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n };\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleConfirmDelete = async () => {\n if (!versionToDelete) {\n // nothing to delete\n return;\n }\n\n await deleteVersion({ version: versionToDelete })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.delete.success'),\n defaultMessage: 'Successfully deleted documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleClickDelete = (version: string) => {\n setVersionToDelete(version);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const title = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n });\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>{title}</Page.Title>\n <Page.Main>\n <Layouts.Header\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.canRead || !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 <Layouts.Content>\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 .slice(0)\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 tag=\"a\"\n disabled={!allowedActions.canRead}\n href={createDocumentationHref(`${data.prefix}/v${doc.version}`)}\n variant=\"ghost\"\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 <Show />\n </IconButton>\n {allowedActions.canRegenerate ? (\n <IconButton\n onClick={() => handleRegenerateDoc(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.regenerate'),\n defaultMessage: 'Regenerate {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Reload />\n </IconButton>\n ) : null}\n {allowedActions.canUpdate && doc.version !== data.currentVersion ? (\n <IconButton\n onClick={() => handleClickDelete(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout content=\"\" icon={null} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={setShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\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: string) => {\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 { App };\n"],"names":["App","formatMessage","useIntl","toggleNotification","useNotification","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingInfo","isError","useGetInfoQuery","regenerate","useRegenerateDocMutation","deleteVersion","useDeleteVersionMutation","showConfirmDelete","setShowConfirmDelete","React","useState","versionToDelete","setVersionToDelete","allowedActions","isLoadingRBAC","useRBAC","PERMISSIONS","colCount","rowCount","docVersions","length","handleRegenerateDoc","version","unwrap","then","type","message","id","getTrad","defaultMessage","catch","err","handleConfirmDelete","handleClickDelete","title","_jsx","Page","Loading","Error","_jsxs","Layouts","Root","Title","Main","Header","subtitle","primaryAction","OpenDocLink","disabled","canRead","currentVersion","prefix","href","createDocumentationHref","startIcon","Show","Content","Table","Thead","Tr","Th","Typography","variant","textColor","Tbody","slice","sort","a","b","generatedDate","map","doc","Td","width","Flex","justifyContent","onClick","e","stopPropagation","IconButton","tag","target","rel","label","canRegenerate","Reload","canUpdate","Trash","EmptyStateLayout","content","icon","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","styled","LinkButton","path","startsWith","window","strapi","backendURL"],"mappings":"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"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Table, Thead, Tr, Th, Typography, Tbody, Td, Flex, IconButton, EmptyStateLayout, Dialog, LinkButton } from '@strapi/design-system';
|
|
4
|
+
import { Eye, ArrowClockwise, Trash } from '@strapi/icons';
|
|
5
|
+
import { useNotification, useAPIErrorHandler, useRBAC, Page, Layouts, ConfirmDialog } from '@strapi/strapi/admin';
|
|
6
|
+
import { useIntl } from 'react-intl';
|
|
7
|
+
import { styled } from 'styled-components';
|
|
8
|
+
import { P as PERMISSIONS } from './index-Bqh49AYj.mjs';
|
|
9
|
+
import { u as useGetInfoQuery, a as useRegenerateDocMutation, b as useDeleteVersionMutation, g as getTrad } from './getTrad-BeRenTLC.mjs';
|
|
10
|
+
import '@strapi/admin/strapi-admin';
|
|
11
|
+
|
|
12
|
+
const App = ()=>{
|
|
13
|
+
const { formatMessage } = useIntl();
|
|
14
|
+
const { toggleNotification } = useNotification();
|
|
15
|
+
const { formatAPIError } = useAPIErrorHandler();
|
|
16
|
+
const { data, isLoading: isLoadingInfo, isError } = useGetInfoQuery();
|
|
17
|
+
const [regenerate] = useRegenerateDocMutation();
|
|
18
|
+
const [deleteVersion] = useDeleteVersionMutation();
|
|
19
|
+
const [showConfirmDelete, setShowConfirmDelete] = React.useState(false);
|
|
20
|
+
const [versionToDelete, setVersionToDelete] = React.useState();
|
|
21
|
+
const { allowedActions, isLoading: isLoadingRBAC } = useRBAC(PERMISSIONS);
|
|
22
|
+
const isLoading = isLoadingInfo || isLoadingRBAC;
|
|
23
|
+
const colCount = 4;
|
|
24
|
+
const rowCount = (data?.docVersions?.length || 0) + 1;
|
|
25
|
+
const handleRegenerateDoc = (version)=>{
|
|
26
|
+
regenerate({
|
|
27
|
+
version
|
|
28
|
+
}).unwrap().then(()=>{
|
|
29
|
+
toggleNotification({
|
|
30
|
+
type: 'success',
|
|
31
|
+
message: formatMessage({
|
|
32
|
+
id: getTrad('notification.generate.success'),
|
|
33
|
+
defaultMessage: 'Successfully generated documentation'
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}).catch((err)=>{
|
|
37
|
+
toggleNotification({
|
|
38
|
+
type: 'warning',
|
|
39
|
+
message: formatAPIError(err)
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
const handleConfirmDelete = async ()=>{
|
|
44
|
+
if (!versionToDelete) {
|
|
45
|
+
// nothing to delete
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
await deleteVersion({
|
|
49
|
+
version: versionToDelete
|
|
50
|
+
}).unwrap().then(()=>{
|
|
51
|
+
toggleNotification({
|
|
52
|
+
type: 'success',
|
|
53
|
+
message: formatMessage({
|
|
54
|
+
id: getTrad('notification.delete.success'),
|
|
55
|
+
defaultMessage: 'Successfully deleted documentation'
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
}).catch((err)=>{
|
|
59
|
+
toggleNotification({
|
|
60
|
+
type: 'warning',
|
|
61
|
+
message: formatAPIError(err)
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
setShowConfirmDelete(!showConfirmDelete);
|
|
65
|
+
};
|
|
66
|
+
const handleClickDelete = (version)=>{
|
|
67
|
+
setVersionToDelete(version);
|
|
68
|
+
setShowConfirmDelete(!showConfirmDelete);
|
|
69
|
+
};
|
|
70
|
+
const title = formatMessage({
|
|
71
|
+
id: getTrad('plugin.name'),
|
|
72
|
+
defaultMessage: 'Documentation'
|
|
73
|
+
});
|
|
74
|
+
if (isLoading) {
|
|
75
|
+
return /*#__PURE__*/ jsx(Page.Loading, {});
|
|
76
|
+
}
|
|
77
|
+
if (isError) {
|
|
78
|
+
return /*#__PURE__*/ jsx(Page.Error, {});
|
|
79
|
+
}
|
|
80
|
+
return /*#__PURE__*/ jsxs(Layouts.Root, {
|
|
81
|
+
children: [
|
|
82
|
+
/*#__PURE__*/ jsx(Page.Title, {
|
|
83
|
+
children: title
|
|
84
|
+
}),
|
|
85
|
+
/*#__PURE__*/ jsxs(Page.Main, {
|
|
86
|
+
children: [
|
|
87
|
+
/*#__PURE__*/ jsx(Layouts.Header, {
|
|
88
|
+
title: title,
|
|
89
|
+
subtitle: formatMessage({
|
|
90
|
+
id: getTrad('pages.PluginPage.header.description'),
|
|
91
|
+
defaultMessage: 'Configure the documentation plugin'
|
|
92
|
+
}),
|
|
93
|
+
primaryAction: /*#__PURE__*/ jsx(OpenDocLink, {
|
|
94
|
+
disabled: !allowedActions.canRead || !data?.currentVersion || !data?.prefix,
|
|
95
|
+
href: createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`),
|
|
96
|
+
startIcon: /*#__PURE__*/ jsx(Eye, {}),
|
|
97
|
+
children: formatMessage({
|
|
98
|
+
id: getTrad('pages.PluginPage.Button.open'),
|
|
99
|
+
defaultMessage: 'Open Documentation'
|
|
100
|
+
})
|
|
101
|
+
})
|
|
102
|
+
}),
|
|
103
|
+
/*#__PURE__*/ jsx(Layouts.Content, {
|
|
104
|
+
children: data?.docVersions.length ? /*#__PURE__*/ jsxs(Table, {
|
|
105
|
+
colCount: colCount,
|
|
106
|
+
rowCount: rowCount,
|
|
107
|
+
children: [
|
|
108
|
+
/*#__PURE__*/ jsx(Thead, {
|
|
109
|
+
children: /*#__PURE__*/ jsxs(Tr, {
|
|
110
|
+
children: [
|
|
111
|
+
/*#__PURE__*/ jsx(Th, {
|
|
112
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
113
|
+
variant: "sigma",
|
|
114
|
+
textColor: "neutral600",
|
|
115
|
+
children: formatMessage({
|
|
116
|
+
id: getTrad('pages.PluginPage.table.version'),
|
|
117
|
+
defaultMessage: 'Version'
|
|
118
|
+
})
|
|
119
|
+
})
|
|
120
|
+
}),
|
|
121
|
+
/*#__PURE__*/ jsx(Th, {
|
|
122
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
123
|
+
variant: "sigma",
|
|
124
|
+
textColor: "neutral600",
|
|
125
|
+
children: formatMessage({
|
|
126
|
+
id: getTrad('pages.PluginPage.table.generated'),
|
|
127
|
+
defaultMessage: 'Last Generated'
|
|
128
|
+
})
|
|
129
|
+
})
|
|
130
|
+
})
|
|
131
|
+
]
|
|
132
|
+
})
|
|
133
|
+
}),
|
|
134
|
+
/*#__PURE__*/ jsx(Tbody, {
|
|
135
|
+
children: data.docVersions.slice(0).sort((a, b)=>a.generatedDate < b.generatedDate ? 1 : -1).map((doc)=>/*#__PURE__*/ jsxs(Tr, {
|
|
136
|
+
children: [
|
|
137
|
+
/*#__PURE__*/ jsx(Td, {
|
|
138
|
+
width: "50%",
|
|
139
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
140
|
+
children: doc.version
|
|
141
|
+
})
|
|
142
|
+
}),
|
|
143
|
+
/*#__PURE__*/ jsx(Td, {
|
|
144
|
+
width: "50%",
|
|
145
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
146
|
+
children: doc.generatedDate
|
|
147
|
+
})
|
|
148
|
+
}),
|
|
149
|
+
/*#__PURE__*/ jsx(Td, {
|
|
150
|
+
children: /*#__PURE__*/ jsxs(Flex, {
|
|
151
|
+
justifyContent: "end",
|
|
152
|
+
onClick: (e)=>e.stopPropagation(),
|
|
153
|
+
children: [
|
|
154
|
+
/*#__PURE__*/ jsx(IconButton, {
|
|
155
|
+
tag: "a",
|
|
156
|
+
disabled: !allowedActions.canRead,
|
|
157
|
+
href: createDocumentationHref(`${data.prefix}/v${doc.version}`),
|
|
158
|
+
variant: "ghost",
|
|
159
|
+
target: "_blank",
|
|
160
|
+
rel: "noopener noreferrer",
|
|
161
|
+
label: formatMessage({
|
|
162
|
+
id: getTrad('pages.PluginPage.table.icon.show'),
|
|
163
|
+
defaultMessage: 'Open {target}'
|
|
164
|
+
}, {
|
|
165
|
+
target: `${doc.version}`
|
|
166
|
+
}),
|
|
167
|
+
children: /*#__PURE__*/ jsx(Eye, {})
|
|
168
|
+
}),
|
|
169
|
+
allowedActions.canRegenerate ? /*#__PURE__*/ jsx(IconButton, {
|
|
170
|
+
onClick: ()=>handleRegenerateDoc(doc.version),
|
|
171
|
+
variant: "ghost",
|
|
172
|
+
label: formatMessage({
|
|
173
|
+
id: getTrad('pages.PluginPage.table.icon.regenerate'),
|
|
174
|
+
defaultMessage: 'Regenerate {target}'
|
|
175
|
+
}, {
|
|
176
|
+
target: `${doc.version}`
|
|
177
|
+
}),
|
|
178
|
+
children: /*#__PURE__*/ jsx(ArrowClockwise, {})
|
|
179
|
+
}) : null,
|
|
180
|
+
allowedActions.canUpdate && doc.version !== data.currentVersion ? /*#__PURE__*/ jsx(IconButton, {
|
|
181
|
+
onClick: ()=>handleClickDelete(doc.version),
|
|
182
|
+
variant: "ghost",
|
|
183
|
+
label: formatMessage({
|
|
184
|
+
id: 'global.delete-target',
|
|
185
|
+
defaultMessage: 'Delete {target}'
|
|
186
|
+
}, {
|
|
187
|
+
target: `${doc.version}`
|
|
188
|
+
}),
|
|
189
|
+
children: /*#__PURE__*/ jsx(Trash, {})
|
|
190
|
+
}) : null
|
|
191
|
+
]
|
|
192
|
+
})
|
|
193
|
+
})
|
|
194
|
+
]
|
|
195
|
+
}, doc.version))
|
|
196
|
+
})
|
|
197
|
+
]
|
|
198
|
+
}) : /*#__PURE__*/ jsx(EmptyStateLayout, {
|
|
199
|
+
content: "",
|
|
200
|
+
icon: null
|
|
201
|
+
})
|
|
202
|
+
}),
|
|
203
|
+
/*#__PURE__*/ jsx(Dialog.Root, {
|
|
204
|
+
open: showConfirmDelete,
|
|
205
|
+
onOpenChange: setShowConfirmDelete,
|
|
206
|
+
children: /*#__PURE__*/ jsx(ConfirmDialog, {
|
|
207
|
+
onConfirm: handleConfirmDelete
|
|
208
|
+
})
|
|
209
|
+
})
|
|
210
|
+
]
|
|
211
|
+
})
|
|
212
|
+
]
|
|
213
|
+
});
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* TODO: should this be fixed in the DS?
|
|
217
|
+
*/ const OpenDocLink = styled(LinkButton)`
|
|
218
|
+
text-decoration: none;
|
|
219
|
+
`;
|
|
220
|
+
const createDocumentationHref = (path)=>{
|
|
221
|
+
if (path.startsWith('http')) {
|
|
222
|
+
return path;
|
|
223
|
+
}
|
|
224
|
+
if (path.startsWith('/')) {
|
|
225
|
+
return `${window.strapi.backendURL}${path}`;
|
|
226
|
+
}
|
|
227
|
+
return `${window.strapi.backendURL}/${path}`;
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export { App };
|
|
231
|
+
//# sourceMappingURL=App-RCDQlkkW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App-RCDQlkkW.mjs","sources":["../../../admin/src/pages/App.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\nimport * as React from 'react';\n\nimport {\n LinkButton,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n EmptyStateLayout,\n Dialog,\n} from '@strapi/design-system';\nimport { Eye as Show, ArrowClockwise as Reload, Trash } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useRBAC,\n Page,\n useAPIErrorHandler,\n useNotification,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PERMISSIONS } from '../constants';\nimport {\n useGetInfoQuery,\n useRegenerateDocMutation,\n useDeleteVersionMutation,\n} from '../services/api';\nimport { getTrad } from '../utils';\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { formatAPIError } = useAPIErrorHandler();\n const { data, isLoading: isLoadingInfo, isError } = useGetInfoQuery();\n const [regenerate] = useRegenerateDocMutation();\n const [deleteVersion] = useDeleteVersionMutation();\n const [showConfirmDelete, setShowConfirmDelete] = React.useState<boolean>(false);\n const [versionToDelete, setVersionToDelete] = React.useState<string>();\n const { allowedActions, isLoading: isLoadingRBAC } = useRBAC(PERMISSIONS);\n\n const isLoading = isLoadingInfo || isLoadingRBAC;\n\n const colCount = 4;\n const rowCount = (data?.docVersions?.length || 0) + 1;\n\n const handleRegenerateDoc = (version: string) => {\n regenerate({ version })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.generate.success'),\n defaultMessage: 'Successfully generated documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n };\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleConfirmDelete = async () => {\n if (!versionToDelete) {\n // nothing to delete\n return;\n }\n\n await deleteVersion({ version: versionToDelete })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.delete.success'),\n defaultMessage: 'Successfully deleted documentation',\n }),\n });\n })\n .catch((err) => {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(err),\n });\n });\n\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const handleClickDelete = (version: string) => {\n setVersionToDelete(version);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const title = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n });\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>{title}</Page.Title>\n <Page.Main>\n <Layouts.Header\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.canRead || !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 <Layouts.Content>\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 .slice(0)\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 tag=\"a\"\n disabled={!allowedActions.canRead}\n href={createDocumentationHref(`${data.prefix}/v${doc.version}`)}\n variant=\"ghost\"\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 <Show />\n </IconButton>\n {allowedActions.canRegenerate ? (\n <IconButton\n onClick={() => handleRegenerateDoc(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTrad('pages.PluginPage.table.icon.regenerate'),\n defaultMessage: 'Regenerate {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Reload />\n </IconButton>\n ) : null}\n {allowedActions.canUpdate && doc.version !== data.currentVersion ? (\n <IconButton\n onClick={() => handleClickDelete(doc.version)}\n variant=\"ghost\"\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${doc.version}` }\n )}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout content=\"\" icon={null} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={setShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\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: string) => {\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 { App };\n"],"names":["App","formatMessage","useIntl","toggleNotification","useNotification","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingInfo","isError","useGetInfoQuery","regenerate","useRegenerateDocMutation","deleteVersion","useDeleteVersionMutation","showConfirmDelete","setShowConfirmDelete","React","useState","versionToDelete","setVersionToDelete","allowedActions","isLoadingRBAC","useRBAC","PERMISSIONS","colCount","rowCount","docVersions","length","handleRegenerateDoc","version","unwrap","then","type","message","id","getTrad","defaultMessage","catch","err","handleConfirmDelete","handleClickDelete","title","_jsx","Page","Loading","Error","_jsxs","Layouts","Root","Title","Main","Header","subtitle","primaryAction","OpenDocLink","disabled","canRead","currentVersion","prefix","href","createDocumentationHref","startIcon","Show","Content","Table","Thead","Tr","Th","Typography","variant","textColor","Tbody","slice","sort","a","b","generatedDate","map","doc","Td","width","Flex","justifyContent","onClick","e","stopPropagation","IconButton","tag","target","rel","label","canRegenerate","Reload","canUpdate","Trash","EmptyStateLayout","content","icon","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","styled","LinkButton","path","startsWith","window","strapi","backendURL"],"mappings":"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"}
|