@akbarsafari00/bonyan-content-releases 5.52.1-fa.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +17 -0
- package/README.md +9 -0
- package/dist/admin/assets/purchase-page-illustration-dark.jpg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-dark.jpg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-dark.jpg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-dark.jpg.mjs.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.jpg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-light.jpg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.jpg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-light.jpg.mjs.map +1 -0
- package/dist/admin/components/EntryValidationPopover.js +310 -0
- package/dist/admin/components/EntryValidationPopover.js.map +1 -0
- package/dist/admin/components/EntryValidationPopover.mjs +308 -0
- package/dist/admin/components/EntryValidationPopover.mjs.map +1 -0
- package/dist/admin/components/RelativeTime.js +77 -0
- package/dist/admin/components/RelativeTime.js.map +1 -0
- package/dist/admin/components/RelativeTime.mjs +55 -0
- package/dist/admin/components/RelativeTime.mjs.map +1 -0
- package/dist/admin/components/ReleaseAction.js +203 -0
- package/dist/admin/components/ReleaseAction.js.map +1 -0
- package/dist/admin/components/ReleaseAction.mjs +201 -0
- package/dist/admin/components/ReleaseAction.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.js +194 -0
- package/dist/admin/components/ReleaseActionMenu.js.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.mjs +172 -0
- package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionModal.js +269 -0
- package/dist/admin/components/ReleaseActionModal.js.map +1 -0
- package/dist/admin/components/ReleaseActionModal.mjs +244 -0
- package/dist/admin/components/ReleaseActionModal.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.js +104 -0
- package/dist/admin/components/ReleaseActionOptions.js.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.mjs +102 -0
- package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -0
- package/dist/admin/components/ReleaseListCell.js +109 -0
- package/dist/admin/components/ReleaseListCell.js.map +1 -0
- package/dist/admin/components/ReleaseListCell.mjs +106 -0
- package/dist/admin/components/ReleaseListCell.mjs.map +1 -0
- package/dist/admin/components/ReleaseModal.js +332 -0
- package/dist/admin/components/ReleaseModal.js.map +1 -0
- package/dist/admin/components/ReleaseModal.mjs +310 -0
- package/dist/admin/components/ReleaseModal.mjs.map +1 -0
- package/dist/admin/components/ReleasesPanel.js +138 -0
- package/dist/admin/components/ReleasesPanel.js.map +1 -0
- package/dist/admin/components/ReleasesPanel.mjs +136 -0
- package/dist/admin/components/ReleasesPanel.mjs.map +1 -0
- package/dist/admin/components/Widgets.js +122 -0
- package/dist/admin/components/Widgets.js.map +1 -0
- package/dist/admin/components/Widgets.mjs +120 -0
- package/dist/admin/components/Widgets.mjs.map +1 -0
- package/dist/admin/constants.js +79 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +76 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/index.js +155 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +151 -0
- package/dist/admin/index.mjs.map +1 -0
- package/dist/admin/modules/hooks.js +8 -0
- package/dist/admin/modules/hooks.js.map +1 -0
- package/dist/admin/modules/hooks.mjs +6 -0
- package/dist/admin/modules/hooks.mjs.map +1 -0
- package/dist/admin/pages/App.js +29 -0
- package/dist/admin/pages/App.js.map +1 -0
- package/dist/admin/pages/App.mjs +27 -0
- package/dist/admin/pages/App.mjs.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.js +192 -0
- package/dist/admin/pages/PurchaseContentReleases.js.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs +190 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.js +780 -0
- package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs +755 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -0
- package/dist/admin/pages/ReleasesPage.js +407 -0
- package/dist/admin/pages/ReleasesPage.js.map +1 -0
- package/dist/admin/pages/ReleasesPage.mjs +384 -0
- package/dist/admin/pages/ReleasesPage.mjs.map +1 -0
- package/dist/admin/pages/ReleasesSettingsPage.js +226 -0
- package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -0
- package/dist/admin/pages/ReleasesSettingsPage.mjs +224 -0
- package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/services/homepage.js +24 -0
- package/dist/admin/services/homepage.js.map +1 -0
- package/dist/admin/services/homepage.mjs +22 -0
- package/dist/admin/services/homepage.mjs.map +1 -0
- package/dist/admin/services/release.js +473 -0
- package/dist/admin/services/release.js.map +1 -0
- package/dist/admin/services/release.mjs +456 -0
- package/dist/admin/services/release.mjs.map +1 -0
- package/dist/admin/src/components/EntryValidationPopover.d.ts +13 -0
- package/dist/admin/src/components/RelativeTime.d.ts +28 -0
- package/dist/admin/src/components/ReleaseAction.d.ts +3 -0
- package/dist/admin/src/components/ReleaseActionMenu.d.ts +26 -0
- package/dist/admin/src/components/ReleaseActionModal.d.ts +24 -0
- package/dist/admin/src/components/ReleaseActionOptions.d.ts +9 -0
- package/dist/admin/src/components/ReleaseListCell.d.ts +28 -0
- package/dist/admin/src/components/ReleaseModal.d.ts +17 -0
- package/dist/admin/src/components/ReleasesPanel.d.ts +3 -0
- package/dist/admin/src/components/Widgets.d.ts +2 -0
- package/dist/admin/src/constants.d.ts +77 -0
- package/dist/admin/src/index.d.ts +3 -0
- package/dist/admin/src/modules/hooks.d.ts +7 -0
- package/dist/admin/src/pages/App.d.ts +1 -0
- package/dist/admin/src/pages/PurchaseContentReleases.d.ts +2 -0
- package/dist/admin/src/pages/ReleaseDetailsPage.d.ts +2 -0
- package/dist/admin/src/pages/ReleasesPage.d.ts +8 -0
- package/dist/admin/src/pages/ReleasesSettingsPage.d.ts +1 -0
- package/dist/admin/src/pages/tests/mockReleaseDetailsPageData.d.ts +181 -0
- package/dist/admin/src/pages/tests/mockReleasesPageData.d.ts +39 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/services/homepage.d.ts +9 -0
- package/dist/admin/src/services/release.d.ts +112 -0
- package/dist/admin/src/store/hooks.d.ts +7 -0
- package/dist/admin/src/utils/api.d.ts +6 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
- package/dist/admin/src/utils/time.d.ts +10 -0
- package/dist/admin/src/validation/schemas.d.ts +6 -0
- package/dist/admin/store/hooks.js +8 -0
- package/dist/admin/store/hooks.js.map +1 -0
- package/dist/admin/store/hooks.mjs +6 -0
- package/dist/admin/store/hooks.mjs.map +1 -0
- package/dist/admin/translations/cs.json.js +111 -0
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/translations/cs.json.mjs +109 -0
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +111 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +109 -0
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/translations/es.json.js +103 -0
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/translations/es.json.mjs +101 -0
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/translations/fa.json.js +111 -0
- package/dist/admin/translations/fa.json.js.map +1 -0
- package/dist/admin/translations/fa.json.mjs +109 -0
- package/dist/admin/translations/fa.json.mjs.map +1 -0
- package/dist/admin/translations/ja.json.js +111 -0
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/translations/ja.json.mjs +109 -0
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/translations/ko.json.js +111 -0
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/translations/ko.json.mjs +109 -0
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/translations/nl.json.js +111 -0
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/translations/nl.json.mjs +109 -0
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/translations/pl.json.js +111 -0
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/translations/pl.json.mjs +109 -0
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/translations/sk.json.js +111 -0
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/translations/sk.json.mjs +109 -0
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/translations/uk.json.js +103 -0
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/translations/uk.json.mjs +101 -0
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/utils/api.js +8 -0
- package/dist/admin/utils/api.js.map +1 -0
- package/dist/admin/utils/api.mjs +6 -0
- package/dist/admin/utils/api.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/time.js +42 -0
- package/dist/admin/utils/time.js.map +1 -0
- package/dist/admin/utils/time.mjs +39 -0
- package/dist/admin/utils/time.mjs.map +1 -0
- package/dist/admin/validation/schemas.js +66 -0
- package/dist/admin/validation/schemas.js.map +1 -0
- package/dist/admin/validation/schemas.mjs +43 -0
- package/dist/admin/validation/schemas.mjs.map +1 -0
- package/dist/server/bootstrap.js +68 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +66 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/constants.js +74 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/constants.mjs +69 -0
- package/dist/server/constants.mjs.map +1 -0
- package/dist/server/content-types/index.js +12 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +10 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/content-types/release/index.js +10 -0
- package/dist/server/content-types/release/index.js.map +1 -0
- package/dist/server/content-types/release/index.mjs +8 -0
- package/dist/server/content-types/release/index.mjs.map +1 -0
- package/dist/server/content-types/release/schema.js +58 -0
- package/dist/server/content-types/release/schema.js.map +1 -0
- package/dist/server/content-types/release/schema.mjs +56 -0
- package/dist/server/content-types/release/schema.mjs.map +1 -0
- package/dist/server/content-types/release-action/index.js +10 -0
- package/dist/server/content-types/release-action/index.js.map +1 -0
- package/dist/server/content-types/release-action/index.mjs +8 -0
- package/dist/server/content-types/release-action/index.mjs.map +1 -0
- package/dist/server/content-types/release-action/schema.js +55 -0
- package/dist/server/content-types/release-action/schema.js.map +1 -0
- package/dist/server/content-types/release-action/schema.mjs +53 -0
- package/dist/server/content-types/release-action/schema.mjs.map +1 -0
- package/dist/server/controllers/homepage.js +15 -0
- package/dist/server/controllers/homepage.js.map +1 -0
- package/dist/server/controllers/homepage.mjs +13 -0
- package/dist/server/controllers/homepage.mjs.map +1 -0
- package/dist/server/controllers/index.js +16 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +14 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/release-action.js +150 -0
- package/dist/server/controllers/release-action.js.map +1 -0
- package/dist/server/controllers/release-action.mjs +148 -0
- package/dist/server/controllers/release-action.mjs.map +1 -0
- package/dist/server/controllers/release.js +302 -0
- package/dist/server/controllers/release.js.map +1 -0
- package/dist/server/controllers/release.mjs +300 -0
- package/dist/server/controllers/release.mjs.map +1 -0
- package/dist/server/controllers/settings.js +37 -0
- package/dist/server/controllers/settings.js.map +1 -0
- package/dist/server/controllers/settings.mjs +35 -0
- package/dist/server/controllers/settings.mjs.map +1 -0
- package/dist/server/controllers/validation/release-action.js +34 -0
- package/dist/server/controllers/validation/release-action.js.map +1 -0
- package/dist/server/controllers/validation/release-action.mjs +30 -0
- package/dist/server/controllers/validation/release-action.mjs.map +1 -0
- package/dist/server/controllers/validation/release.js +26 -0
- package/dist/server/controllers/validation/release.js.map +1 -0
- package/dist/server/controllers/validation/release.mjs +22 -0
- package/dist/server/controllers/validation/release.mjs.map +1 -0
- package/dist/server/controllers/validation/settings.js +33 -0
- package/dist/server/controllers/validation/settings.js.map +1 -0
- package/dist/server/controllers/validation/settings.mjs +10 -0
- package/dist/server/controllers/validation/settings.mjs.map +1 -0
- package/dist/server/destroy.js +15 -0
- package/dist/server/destroy.js.map +1 -0
- package/dist/server/destroy.mjs +13 -0
- package/dist/server/destroy.mjs.map +1 -0
- package/dist/server/index.js +33 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +31 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/server/middlewares/documents.js +104 -0
- package/dist/server/middlewares/documents.js.map +1 -0
- package/dist/server/middlewares/documents.mjs +101 -0
- package/dist/server/middlewares/documents.mjs.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +51 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +49 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +1 -0
- package/dist/server/migrations/index.js +209 -0
- package/dist/server/migrations/index.js.map +1 -0
- package/dist/server/migrations/index.mjs +198 -0
- package/dist/server/migrations/index.mjs.map +1 -0
- package/dist/server/register.js +23 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +21 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/homepage.js +25 -0
- package/dist/server/routes/homepage.js.map +1 -0
- package/dist/server/routes/homepage.mjs +23 -0
- package/dist/server/routes/homepage.mjs.map +1 -0
- package/dist/server/routes/index.js +16 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +14 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/release-action.js +100 -0
- package/dist/server/routes/release-action.js.map +1 -0
- package/dist/server/routes/release-action.mjs +98 -0
- package/dist/server/routes/release-action.mjs.map +1 -0
- package/dist/server/routes/release.js +154 -0
- package/dist/server/routes/release.js.map +1 -0
- package/dist/server/routes/release.mjs +152 -0
- package/dist/server/routes/release.mjs.map +1 -0
- package/dist/server/routes/settings.js +46 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/settings.mjs +44 -0
- package/dist/server/routes/settings.mjs.map +1 -0
- package/dist/server/services/homepage.js +31 -0
- package/dist/server/services/homepage.js.map +1 -0
- package/dist/server/services/homepage.mjs +29 -0
- package/dist/server/services/homepage.mjs.map +1 -0
- package/dist/server/services/index.js +20 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +18 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/release-action.js +328 -0
- package/dist/server/services/release-action.js.map +1 -0
- package/dist/server/services/release-action.mjs +322 -0
- package/dist/server/services/release-action.mjs.map +1 -0
- package/dist/server/services/release.js +337 -0
- package/dist/server/services/release.js.map +1 -0
- package/dist/server/services/release.mjs +335 -0
- package/dist/server/services/release.mjs.map +1 -0
- package/dist/server/services/scheduling.js +71 -0
- package/dist/server/services/scheduling.js.map +1 -0
- package/dist/server/services/scheduling.mjs +69 -0
- package/dist/server/services/scheduling.mjs.map +1 -0
- package/dist/server/services/settings.js +34 -0
- package/dist/server/services/settings.js.map +1 -0
- package/dist/server/services/settings.mjs +32 -0
- package/dist/server/services/settings.mjs.map +1 -0
- package/dist/server/services/validation.js +91 -0
- package/dist/server/services/validation.js.map +1 -0
- package/dist/server/services/validation.mjs +86 -0
- package/dist/server/services/validation.mjs.map +1 -0
- package/dist/server/src/bootstrap.d.ts +5 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/constants.d.ts +21 -0
- package/dist/server/src/constants.d.ts.map +1 -0
- package/dist/server/src/content-types/index.d.ts +97 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release/index.d.ts +48 -0
- package/dist/server/src/content-types/release/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release/schema.d.ts +47 -0
- package/dist/server/src/content-types/release/schema.d.ts.map +1 -0
- package/dist/server/src/content-types/release-action/index.d.ts +48 -0
- package/dist/server/src/content-types/release-action/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release-action/schema.d.ts +47 -0
- package/dist/server/src/content-types/release-action/schema.d.ts.map +1 -0
- package/dist/server/src/controllers/homepage.d.ts +6 -0
- package/dist/server/src/controllers/homepage.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +27 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/controllers/release-action.d.ts +10 -0
- package/dist/server/src/controllers/release-action.d.ts.map +1 -0
- package/dist/server/src/controllers/release.d.ts +18 -0
- package/dist/server/src/controllers/release.d.ts.map +1 -0
- package/dist/server/src/controllers/settings.d.ts +11 -0
- package/dist/server/src/controllers/settings.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/release-action.d.ts +14 -0
- package/dist/server/src/controllers/validation/release-action.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/release.d.ts +4 -0
- package/dist/server/src/controllers/validation/release.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/settings.d.ts +3 -0
- package/dist/server/src/controllers/validation/settings.d.ts.map +1 -0
- package/dist/server/src/destroy.d.ts +5 -0
- package/dist/server/src/destroy.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +372 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/documents.d.ts +6 -0
- package/dist/server/src/middlewares/documents.d.ts.map +1 -0
- package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts +9 -0
- package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts.map +1 -0
- package/dist/server/src/migrations/index.d.ts +13 -0
- package/dist/server/src/migrations/index.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/homepage.d.ts +4 -0
- package/dist/server/src/routes/homepage.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +54 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/routes/release-action.d.ts +18 -0
- package/dist/server/src/routes/release-action.d.ts.map +1 -0
- package/dist/server/src/routes/release.d.ts +18 -0
- package/dist/server/src/routes/release.d.ts.map +1 -0
- package/dist/server/src/routes/settings.d.ts +18 -0
- package/dist/server/src/routes/settings.d.ts.map +1 -0
- package/dist/server/src/services/homepage.d.ts +9 -0
- package/dist/server/src/services/homepage.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +80 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/release-action.d.ts +33 -0
- package/dist/server/src/services/release-action.d.ts.map +1 -0
- package/dist/server/src/services/release.d.ts +31 -0
- package/dist/server/src/services/release.d.ts.map +1 -0
- package/dist/server/src/services/scheduling.d.ts +17 -0
- package/dist/server/src/services/scheduling.d.ts.map +1 -0
- package/dist/server/src/services/settings.d.ts +13 -0
- package/dist/server/src/services/settings.d.ts.map +1 -0
- package/dist/server/src/services/validation.d.ts +18 -0
- package/dist/server/src/services/validation.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +51 -0
- package/dist/server/src/utils/index.d.ts.map +1 -0
- package/dist/server/utils/index.js +195 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +188 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/shared/contracts/homepage.d.ts +11 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -0
- package/dist/shared/contracts/release-actions.d.ts +137 -0
- package/dist/shared/contracts/release-actions.d.ts.map +1 -0
- package/dist/shared/contracts/releases.d.ts +182 -0
- package/dist/shared/contracts/releases.d.ts.map +1 -0
- package/dist/shared/contracts/settings.d.ts +38 -0
- package/dist/shared/contracts/settings.d.ts.map +1 -0
- package/dist/shared/types.d.ts +24 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
require('react');
|
|
5
|
+
var designSystem = require('@strapi/design-system');
|
|
6
|
+
var styledComponents = require('styled-components');
|
|
7
|
+
|
|
8
|
+
const getBorderLeftRadiusValue = (actionType)=>{
|
|
9
|
+
return actionType === 'publish' ? 1 : 0;
|
|
10
|
+
};
|
|
11
|
+
const getBorderRightRadiusValue = (actionType)=>{
|
|
12
|
+
return actionType === 'publish' ? 0 : 1;
|
|
13
|
+
};
|
|
14
|
+
const FieldWrapper = styledComponents.styled(designSystem.Field.Root)`
|
|
15
|
+
border-top-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
16
|
+
border-bottom-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
17
|
+
border-top-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
18
|
+
border-bottom-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
19
|
+
|
|
20
|
+
label {
|
|
21
|
+
color: inherit;
|
|
22
|
+
padding: ${({ theme })=>`${theme.spaces[2]} ${theme.spaces[3]}`};
|
|
23
|
+
text-align: center;
|
|
24
|
+
vertical-align: middle;
|
|
25
|
+
text-transform: capitalize;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&[data-checked='true'] {
|
|
29
|
+
color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
|
|
30
|
+
background-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};
|
|
31
|
+
border-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&[data-checked='false'] {
|
|
35
|
+
border-left: ${({ $actionType })=>$actionType === 'unpublish' && 'none'};
|
|
36
|
+
border-right: ${({ $actionType })=>$actionType === 'publish' && 'none'};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&[data-checked='false'][data-disabled='false']:hover {
|
|
40
|
+
color: ${({ theme })=>theme.colors.neutral700};
|
|
41
|
+
background-color: ${({ theme })=>theme.colors.neutral100};
|
|
42
|
+
border-color: ${({ theme })=>theme.colors.neutral200};
|
|
43
|
+
|
|
44
|
+
& > label {
|
|
45
|
+
cursor: pointer;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&[data-disabled='true'] {
|
|
50
|
+
color: ${({ theme })=>theme.colors.neutral600};
|
|
51
|
+
background-color: ${({ theme })=>theme.colors.neutral150};
|
|
52
|
+
border-color: ${({ theme })=>theme.colors.neutral300};
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
const ActionOption = ({ selected, actionType, handleChange, name, disabled = false })=>{
|
|
56
|
+
return /*#__PURE__*/ jsxRuntime.jsx(FieldWrapper, {
|
|
57
|
+
$actionType: actionType,
|
|
58
|
+
background: "primary0",
|
|
59
|
+
borderColor: "neutral200",
|
|
60
|
+
color: selected === actionType ? 'primary600' : 'neutral600',
|
|
61
|
+
position: "relative",
|
|
62
|
+
cursor: "pointer",
|
|
63
|
+
"data-checked": selected === actionType,
|
|
64
|
+
"data-disabled": disabled && selected !== actionType,
|
|
65
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Label, {
|
|
66
|
+
children: [
|
|
67
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.VisuallyHidden, {
|
|
68
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Input, {
|
|
69
|
+
type: "radio",
|
|
70
|
+
name: name,
|
|
71
|
+
checked: selected === actionType,
|
|
72
|
+
onChange: handleChange,
|
|
73
|
+
value: actionType,
|
|
74
|
+
disabled: disabled
|
|
75
|
+
})
|
|
76
|
+
}),
|
|
77
|
+
actionType
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
const ReleaseActionOptions = ({ selected, handleChange, name, disabled = false })=>{
|
|
83
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
84
|
+
children: [
|
|
85
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionOption, {
|
|
86
|
+
actionType: "publish",
|
|
87
|
+
selected: selected,
|
|
88
|
+
handleChange: handleChange,
|
|
89
|
+
name: name,
|
|
90
|
+
disabled: disabled
|
|
91
|
+
}),
|
|
92
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionOption, {
|
|
93
|
+
actionType: "unpublish",
|
|
94
|
+
selected: selected,
|
|
95
|
+
handleChange: handleChange,
|
|
96
|
+
name: name,
|
|
97
|
+
disabled: disabled
|
|
98
|
+
})
|
|
99
|
+
]
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
exports.ReleaseActionOptions = ReleaseActionOptions;
|
|
104
|
+
//# sourceMappingURL=ReleaseActionOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseActionOptions.js","sources":["../../../admin/src/components/ReleaseActionOptions.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { VisuallyHidden, Field, Flex } from '@strapi/design-system';\r\nimport { styled } from 'styled-components';\r\n\r\ninterface FieldWrapperProps extends Field.Props {\r\n actionType: 'publish' | 'unpublish';\r\n}\r\n\r\nconst getBorderLeftRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\r\n return actionType === 'publish' ? 1 : 0;\r\n};\r\n\r\nconst getBorderRightRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\r\n return actionType === 'publish' ? 0 : 1;\r\n};\r\n\r\nconst FieldWrapper = styled(Field.Root)<{\r\n $actionType: 'publish' | 'unpublish';\r\n}>`\r\n border-top-left-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\r\n border-bottom-left-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\r\n border-top-right-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderRightRadiusValue($actionType)]};\r\n border-bottom-right-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderRightRadiusValue($actionType)]};\r\n\r\n label {\r\n color: inherit;\r\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[3]}`};\r\n text-align: center;\r\n vertical-align: middle;\r\n text-transform: capitalize;\r\n }\r\n\r\n &[data-checked='true'] {\r\n color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\r\n background-color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};\r\n border-color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\r\n }\r\n\r\n &[data-checked='false'] {\r\n border-left: ${({ $actionType }) => $actionType === 'unpublish' && 'none'};\r\n border-right: ${({ $actionType }) => $actionType === 'publish' && 'none'};\r\n }\r\n\r\n &[data-checked='false'][data-disabled='false']:hover {\r\n color: ${({ theme }) => theme.colors.neutral700};\r\n background-color: ${({ theme }) => theme.colors.neutral100};\r\n border-color: ${({ theme }) => theme.colors.neutral200};\r\n\r\n & > label {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n &[data-disabled='true'] {\r\n color: ${({ theme }) => theme.colors.neutral600};\r\n background-color: ${({ theme }) => theme.colors.neutral150};\r\n border-color: ${({ theme }) => theme.colors.neutral300};\r\n }\r\n`;\r\n\r\ninterface ActionOptionProps {\r\n selected: 'publish' | 'unpublish';\r\n handleChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface OptionProps extends ActionOptionProps {\r\n actionType: 'publish' | 'unpublish';\r\n}\r\n\r\nconst ActionOption = ({\r\n selected,\r\n actionType,\r\n handleChange,\r\n name,\r\n disabled = false,\r\n}: OptionProps) => {\r\n return (\r\n <FieldWrapper\r\n $actionType={actionType}\r\n background=\"primary0\"\r\n borderColor=\"neutral200\"\r\n color={selected === actionType ? 'primary600' : 'neutral600'}\r\n position=\"relative\"\r\n cursor=\"pointer\"\r\n data-checked={selected === actionType}\r\n data-disabled={disabled && selected !== actionType}\r\n >\r\n <Field.Label>\r\n <VisuallyHidden>\r\n <Field.Input\r\n type=\"radio\"\r\n name={name}\r\n checked={selected === actionType}\r\n onChange={handleChange}\r\n value={actionType}\r\n disabled={disabled}\r\n />\r\n </VisuallyHidden>\r\n {actionType}\r\n </Field.Label>\r\n </FieldWrapper>\r\n );\r\n};\r\n\r\nexport const ReleaseActionOptions = ({\r\n selected,\r\n handleChange,\r\n name,\r\n disabled = false,\r\n}: ActionOptionProps) => {\r\n return (\r\n <Flex>\r\n <ActionOption\r\n actionType=\"publish\"\r\n selected={selected}\r\n handleChange={handleChange}\r\n name={name}\r\n disabled={disabled}\r\n />\r\n <ActionOption\r\n actionType=\"unpublish\"\r\n selected={selected}\r\n handleChange={handleChange}\r\n name={name}\r\n disabled={disabled}\r\n />\r\n </Flex>\r\n );\r\n};\r\n"],"names":["getBorderLeftRadiusValue","actionType","getBorderRightRadiusValue","FieldWrapper","styled","Field","Root","$actionType","theme","spaces","colors","primary700","danger600","primary100","danger100","neutral700","neutral100","neutral200","neutral600","neutral150","neutral300","ActionOption","selected","handleChange","name","disabled","_jsx","background","borderColor","color","position","cursor","data-checked","data-disabled","_jsxs","Label","VisuallyHidden","Input","type","checked","onChange","value","ReleaseActionOptions","Flex"],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import 'react';
|
|
3
|
+
import { Field, Flex, VisuallyHidden } from '@strapi/design-system';
|
|
4
|
+
import { styled } from 'styled-components';
|
|
5
|
+
|
|
6
|
+
const getBorderLeftRadiusValue = (actionType)=>{
|
|
7
|
+
return actionType === 'publish' ? 1 : 0;
|
|
8
|
+
};
|
|
9
|
+
const getBorderRightRadiusValue = (actionType)=>{
|
|
10
|
+
return actionType === 'publish' ? 0 : 1;
|
|
11
|
+
};
|
|
12
|
+
const FieldWrapper = styled(Field.Root)`
|
|
13
|
+
border-top-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
14
|
+
border-bottom-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
15
|
+
border-top-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
16
|
+
border-bottom-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
17
|
+
|
|
18
|
+
label {
|
|
19
|
+
color: inherit;
|
|
20
|
+
padding: ${({ theme })=>`${theme.spaces[2]} ${theme.spaces[3]}`};
|
|
21
|
+
text-align: center;
|
|
22
|
+
vertical-align: middle;
|
|
23
|
+
text-transform: capitalize;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&[data-checked='true'] {
|
|
27
|
+
color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
|
|
28
|
+
background-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};
|
|
29
|
+
border-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&[data-checked='false'] {
|
|
33
|
+
border-left: ${({ $actionType })=>$actionType === 'unpublish' && 'none'};
|
|
34
|
+
border-right: ${({ $actionType })=>$actionType === 'publish' && 'none'};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&[data-checked='false'][data-disabled='false']:hover {
|
|
38
|
+
color: ${({ theme })=>theme.colors.neutral700};
|
|
39
|
+
background-color: ${({ theme })=>theme.colors.neutral100};
|
|
40
|
+
border-color: ${({ theme })=>theme.colors.neutral200};
|
|
41
|
+
|
|
42
|
+
& > label {
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&[data-disabled='true'] {
|
|
48
|
+
color: ${({ theme })=>theme.colors.neutral600};
|
|
49
|
+
background-color: ${({ theme })=>theme.colors.neutral150};
|
|
50
|
+
border-color: ${({ theme })=>theme.colors.neutral300};
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
53
|
+
const ActionOption = ({ selected, actionType, handleChange, name, disabled = false })=>{
|
|
54
|
+
return /*#__PURE__*/ jsx(FieldWrapper, {
|
|
55
|
+
$actionType: actionType,
|
|
56
|
+
background: "primary0",
|
|
57
|
+
borderColor: "neutral200",
|
|
58
|
+
color: selected === actionType ? 'primary600' : 'neutral600',
|
|
59
|
+
position: "relative",
|
|
60
|
+
cursor: "pointer",
|
|
61
|
+
"data-checked": selected === actionType,
|
|
62
|
+
"data-disabled": disabled && selected !== actionType,
|
|
63
|
+
children: /*#__PURE__*/ jsxs(Field.Label, {
|
|
64
|
+
children: [
|
|
65
|
+
/*#__PURE__*/ jsx(VisuallyHidden, {
|
|
66
|
+
children: /*#__PURE__*/ jsx(Field.Input, {
|
|
67
|
+
type: "radio",
|
|
68
|
+
name: name,
|
|
69
|
+
checked: selected === actionType,
|
|
70
|
+
onChange: handleChange,
|
|
71
|
+
value: actionType,
|
|
72
|
+
disabled: disabled
|
|
73
|
+
})
|
|
74
|
+
}),
|
|
75
|
+
actionType
|
|
76
|
+
]
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
const ReleaseActionOptions = ({ selected, handleChange, name, disabled = false })=>{
|
|
81
|
+
return /*#__PURE__*/ jsxs(Flex, {
|
|
82
|
+
children: [
|
|
83
|
+
/*#__PURE__*/ jsx(ActionOption, {
|
|
84
|
+
actionType: "publish",
|
|
85
|
+
selected: selected,
|
|
86
|
+
handleChange: handleChange,
|
|
87
|
+
name: name,
|
|
88
|
+
disabled: disabled
|
|
89
|
+
}),
|
|
90
|
+
/*#__PURE__*/ jsx(ActionOption, {
|
|
91
|
+
actionType: "unpublish",
|
|
92
|
+
selected: selected,
|
|
93
|
+
handleChange: handleChange,
|
|
94
|
+
name: name,
|
|
95
|
+
disabled: disabled
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export { ReleaseActionOptions };
|
|
102
|
+
//# sourceMappingURL=ReleaseActionOptions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseActionOptions.mjs","sources":["../../../admin/src/components/ReleaseActionOptions.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { VisuallyHidden, Field, Flex } from '@strapi/design-system';\r\nimport { styled } from 'styled-components';\r\n\r\ninterface FieldWrapperProps extends Field.Props {\r\n actionType: 'publish' | 'unpublish';\r\n}\r\n\r\nconst getBorderLeftRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\r\n return actionType === 'publish' ? 1 : 0;\r\n};\r\n\r\nconst getBorderRightRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\r\n return actionType === 'publish' ? 0 : 1;\r\n};\r\n\r\nconst FieldWrapper = styled(Field.Root)<{\r\n $actionType: 'publish' | 'unpublish';\r\n}>`\r\n border-top-left-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\r\n border-bottom-left-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\r\n border-top-right-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderRightRadiusValue($actionType)]};\r\n border-bottom-right-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderRightRadiusValue($actionType)]};\r\n\r\n label {\r\n color: inherit;\r\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[3]}`};\r\n text-align: center;\r\n vertical-align: middle;\r\n text-transform: capitalize;\r\n }\r\n\r\n &[data-checked='true'] {\r\n color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\r\n background-color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};\r\n border-color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\r\n }\r\n\r\n &[data-checked='false'] {\r\n border-left: ${({ $actionType }) => $actionType === 'unpublish' && 'none'};\r\n border-right: ${({ $actionType }) => $actionType === 'publish' && 'none'};\r\n }\r\n\r\n &[data-checked='false'][data-disabled='false']:hover {\r\n color: ${({ theme }) => theme.colors.neutral700};\r\n background-color: ${({ theme }) => theme.colors.neutral100};\r\n border-color: ${({ theme }) => theme.colors.neutral200};\r\n\r\n & > label {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n &[data-disabled='true'] {\r\n color: ${({ theme }) => theme.colors.neutral600};\r\n background-color: ${({ theme }) => theme.colors.neutral150};\r\n border-color: ${({ theme }) => theme.colors.neutral300};\r\n }\r\n`;\r\n\r\ninterface ActionOptionProps {\r\n selected: 'publish' | 'unpublish';\r\n handleChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface OptionProps extends ActionOptionProps {\r\n actionType: 'publish' | 'unpublish';\r\n}\r\n\r\nconst ActionOption = ({\r\n selected,\r\n actionType,\r\n handleChange,\r\n name,\r\n disabled = false,\r\n}: OptionProps) => {\r\n return (\r\n <FieldWrapper\r\n $actionType={actionType}\r\n background=\"primary0\"\r\n borderColor=\"neutral200\"\r\n color={selected === actionType ? 'primary600' : 'neutral600'}\r\n position=\"relative\"\r\n cursor=\"pointer\"\r\n data-checked={selected === actionType}\r\n data-disabled={disabled && selected !== actionType}\r\n >\r\n <Field.Label>\r\n <VisuallyHidden>\r\n <Field.Input\r\n type=\"radio\"\r\n name={name}\r\n checked={selected === actionType}\r\n onChange={handleChange}\r\n value={actionType}\r\n disabled={disabled}\r\n />\r\n </VisuallyHidden>\r\n {actionType}\r\n </Field.Label>\r\n </FieldWrapper>\r\n );\r\n};\r\n\r\nexport const ReleaseActionOptions = ({\r\n selected,\r\n handleChange,\r\n name,\r\n disabled = false,\r\n}: ActionOptionProps) => {\r\n return (\r\n <Flex>\r\n <ActionOption\r\n actionType=\"publish\"\r\n selected={selected}\r\n handleChange={handleChange}\r\n name={name}\r\n disabled={disabled}\r\n />\r\n <ActionOption\r\n actionType=\"unpublish\"\r\n selected={selected}\r\n handleChange={handleChange}\r\n name={name}\r\n disabled={disabled}\r\n />\r\n </Flex>\r\n );\r\n};\r\n"],"names":["getBorderLeftRadiusValue","actionType","getBorderRightRadiusValue","FieldWrapper","styled","Field","Root","$actionType","theme","spaces","colors","primary700","danger600","primary100","danger100","neutral700","neutral100","neutral200","neutral600","neutral150","neutral300","ActionOption","selected","handleChange","name","disabled","_jsx","background","borderColor","color","position","cursor","data-checked","data-disabled","_jsxs","Label","VisuallyHidden","Input","type","checked","onChange","value","ReleaseActionOptions","Flex"],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
require('react');
|
|
5
|
+
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
6
|
+
var designSystem = require('@strapi/design-system');
|
|
7
|
+
var icons = require('@strapi/icons');
|
|
8
|
+
var reactIntl = require('react-intl');
|
|
9
|
+
var release = require('../services/release.js');
|
|
10
|
+
|
|
11
|
+
const isDocumentRow = (entry)=>{
|
|
12
|
+
if ('documentId' in entry) {
|
|
13
|
+
return typeof entry.documentId === 'string';
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
};
|
|
17
|
+
const useReleasesList = (contentTypeUid, documentId)=>{
|
|
18
|
+
const listViewData = strapiAdmin.useTable('ListView', (state)=>state.rows);
|
|
19
|
+
const documentIds = listViewData.filter((entry)=>isDocumentRow(entry)).map((entry)=>entry.documentId);
|
|
20
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
|
21
|
+
const locale = query?.plugins?.i18n?.locale || undefined;
|
|
22
|
+
const response = release.useGetMappedEntriesInReleasesQuery({
|
|
23
|
+
contentTypeUid,
|
|
24
|
+
documentIds,
|
|
25
|
+
locale
|
|
26
|
+
}, {
|
|
27
|
+
skip: !contentTypeUid || documentIds.length === 0
|
|
28
|
+
});
|
|
29
|
+
const mappedEntriesInReleases = response.data || {};
|
|
30
|
+
return mappedEntriesInReleases?.[documentId] || [];
|
|
31
|
+
};
|
|
32
|
+
const addColumnToTableHook = ({ displayedHeaders, layout })=>{
|
|
33
|
+
const { options } = layout;
|
|
34
|
+
if (!options?.draftAndPublish) {
|
|
35
|
+
return {
|
|
36
|
+
displayedHeaders,
|
|
37
|
+
layout
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
displayedHeaders: [
|
|
42
|
+
...displayedHeaders,
|
|
43
|
+
{
|
|
44
|
+
searchable: false,
|
|
45
|
+
sortable: false,
|
|
46
|
+
name: 'releases',
|
|
47
|
+
label: {
|
|
48
|
+
id: 'content-releases.content-manager.list-view.releases.header',
|
|
49
|
+
defaultMessage: 'To be released in'
|
|
50
|
+
},
|
|
51
|
+
cellFormatter: (props, _, { model })=>/*#__PURE__*/ jsxRuntime.jsx(ReleaseListCell, {
|
|
52
|
+
...props,
|
|
53
|
+
model: model
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
layout
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
const ReleaseListCell = ({ documentId, model })=>{
|
|
61
|
+
const releases = useReleasesList(model, documentId);
|
|
62
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
63
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Popover.Root, {
|
|
64
|
+
children: [
|
|
65
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Trigger, {
|
|
66
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
67
|
+
variant: "ghost",
|
|
68
|
+
onClick: (e)=>e.stopPropagation(),
|
|
69
|
+
// TODO: find a way in the DS to define the widht and height of the icon
|
|
70
|
+
endIcon: releases.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(icons.CaretDown, {
|
|
71
|
+
width: "1.2rem",
|
|
72
|
+
height: "1.2rem"
|
|
73
|
+
}) : null,
|
|
74
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
75
|
+
style: {
|
|
76
|
+
maxWidth: '252px',
|
|
77
|
+
cursor: 'pointer'
|
|
78
|
+
},
|
|
79
|
+
textColor: "neutral800",
|
|
80
|
+
fontWeight: "regular",
|
|
81
|
+
children: releases.length > 0 ? formatMessage({
|
|
82
|
+
id: 'content-releases.content-manager.list-view.releases-number',
|
|
83
|
+
defaultMessage: '{number} {number, plural, one {release} other {releases}}'
|
|
84
|
+
}, {
|
|
85
|
+
number: releases.length
|
|
86
|
+
}) : '-'
|
|
87
|
+
})
|
|
88
|
+
})
|
|
89
|
+
}),
|
|
90
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Content, {
|
|
91
|
+
children: /*#__PURE__*/ jsxRuntime.jsx("ul", {
|
|
92
|
+
children: releases.map(({ id, name })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
93
|
+
padding: 3,
|
|
94
|
+
tag: "li",
|
|
95
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Link, {
|
|
96
|
+
href: `/admin/plugins/content-releases/${id}`,
|
|
97
|
+
isExternal: false,
|
|
98
|
+
children: name
|
|
99
|
+
})
|
|
100
|
+
}, id))
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
]
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
exports.ReleaseListCell = ReleaseListCell;
|
|
108
|
+
exports.addColumnToTableHook = addColumnToTableHook;
|
|
109
|
+
//# sourceMappingURL=ReleaseListCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseListCell.js","sources":["../../../admin/src/components/ReleaseListCell.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { useTable, useQueryParams } from '@strapi/admin/strapi-admin';\r\nimport { ListFieldLayout, ListLayout } from '@strapi/content-manager/strapi-admin';\r\nimport { Box, Popover, Typography, Button, Link } from '@strapi/design-system';\r\nimport { CaretDown } from '@strapi/icons';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { useGetMappedEntriesInReleasesQuery } from '../services/release';\r\n\r\nimport type { Modules, UID } from '@strapi/types';\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * useReleasesList\r\n * -----------------------------------------------------------------------------------------------*/\r\ninterface QueryParams {\r\n plugins?: {\r\n i18n?: {\r\n locale: string;\r\n };\r\n };\r\n}\r\n\r\ntype DocumentRow = {\r\n id: string | number;\r\n documentId: Modules.Documents.ID;\r\n};\r\n\r\nconst isDocumentRow = (entry: { id: string | number }): entry is DocumentRow => {\r\n if ('documentId' in entry) {\r\n return typeof entry.documentId === 'string';\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst useReleasesList = (contentTypeUid: UID.ContentType, documentId: Modules.Documents.ID) => {\r\n const listViewData = useTable('ListView', (state) => state.rows);\r\n const documentIds = listViewData\r\n .filter((entry) => isDocumentRow(entry))\r\n .map((entry) => entry.documentId);\r\n const [{ query }] = useQueryParams();\r\n const locale = (query as QueryParams)?.plugins?.i18n?.locale || undefined;\r\n\r\n const response = useGetMappedEntriesInReleasesQuery(\r\n { contentTypeUid, documentIds, locale },\r\n { skip: !contentTypeUid || documentIds.length === 0 }\r\n );\r\n\r\n const mappedEntriesInReleases = response.data || {};\r\n\r\n return mappedEntriesInReleases?.[documentId] || [];\r\n};\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * addColumnToTableHook\r\n * -----------------------------------------------------------------------------------------------*/\r\n\r\ninterface AddColumnToTableHookArgs {\r\n layout: ListLayout;\r\n displayedHeaders: ListFieldLayout[];\r\n}\r\n\r\nconst addColumnToTableHook = ({ displayedHeaders, layout }: AddColumnToTableHookArgs) => {\r\n const { options } = layout;\r\n\r\n if (!options?.draftAndPublish) {\r\n return { displayedHeaders, layout };\r\n }\r\n\r\n return {\r\n displayedHeaders: [\r\n ...displayedHeaders,\r\n {\r\n searchable: false,\r\n sortable: false,\r\n name: 'releases',\r\n label: {\r\n id: 'content-releases.content-manager.list-view.releases.header',\r\n defaultMessage: 'To be released in',\r\n },\r\n cellFormatter: (\r\n props: Modules.Documents.AnyDocument,\r\n _: unknown,\r\n { model }: { model: UID.ContentType }\r\n ) => <ReleaseListCell {...props} model={model} />,\r\n },\r\n ],\r\n layout,\r\n };\r\n};\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * ReleaseListCell\r\n * -----------------------------------------------------------------------------------------------*/\r\n\r\ninterface ReleaseListCellProps extends Modules.Documents.AnyDocument {\r\n documentId: Modules.Documents.ID;\r\n model: UID.ContentType;\r\n}\r\n\r\nconst ReleaseListCell = ({ documentId, model }: ReleaseListCellProps) => {\r\n const releases = useReleasesList(model, documentId);\r\n const { formatMessage } = useIntl();\r\n\r\n return (\r\n <Popover.Root>\r\n <Popover.Trigger>\r\n <Button\r\n variant=\"ghost\"\r\n onClick={(e: React.MouseEvent<HTMLElement>) => e.stopPropagation()}\r\n // TODO: find a way in the DS to define the widht and height of the icon\r\n endIcon={releases.length > 0 ? <CaretDown width=\"1.2rem\" height=\"1.2rem\" /> : null}\r\n >\r\n <Typography\r\n style={{ maxWidth: '252px', cursor: 'pointer' }}\r\n textColor=\"neutral800\"\r\n fontWeight=\"regular\"\r\n >\r\n {releases.length > 0\r\n ? formatMessage(\r\n {\r\n id: 'content-releases.content-manager.list-view.releases-number',\r\n defaultMessage: '{number} {number, plural, one {release} other {releases}}',\r\n },\r\n {\r\n number: releases.length,\r\n }\r\n )\r\n : '-'}\r\n </Typography>\r\n </Button>\r\n </Popover.Trigger>\r\n <Popover.Content>\r\n <ul>\r\n {releases.map(({ id, name }) => (\r\n <Box key={id} padding={3} tag=\"li\">\r\n <Link href={`/admin/plugins/content-releases/${id}`} isExternal={false}>\r\n {name}\r\n </Link>\r\n </Box>\r\n ))}\r\n </ul>\r\n </Popover.Content>\r\n </Popover.Root>\r\n );\r\n};\r\n\r\nexport { ReleaseListCell, addColumnToTableHook };\r\nexport type { ReleaseListCellProps };\r\n"],"names":["isDocumentRow","entry","documentId","useReleasesList","contentTypeUid","listViewData","useTable","state","rows","documentIds","filter","map","query","useQueryParams","locale","plugins","i18n","undefined","response","useGetMappedEntriesInReleasesQuery","skip","length","mappedEntriesInReleases","data","addColumnToTableHook","displayedHeaders","layout","options","draftAndPublish","searchable","sortable","name","label","id","defaultMessage","cellFormatter","props","_","model","_jsx","ReleaseListCell","releases","formatMessage","useIntl","_jsxs","Popover","Root","Trigger","Button","variant","onClick","e","stopPropagation","endIcon","CaretDown","width","height","Typography","style","maxWidth","cursor","textColor","fontWeight","number","Content","ul","Box","padding","tag","Link","href","isExternal"],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import 'react';
|
|
3
|
+
import { useTable, useQueryParams } from '@strapi/admin/strapi-admin';
|
|
4
|
+
import { Popover, Button, Typography, Box, Link } from '@strapi/design-system';
|
|
5
|
+
import { CaretDown } from '@strapi/icons';
|
|
6
|
+
import { useIntl } from 'react-intl';
|
|
7
|
+
import { useGetMappedEntriesInReleasesQuery } from '../services/release.mjs';
|
|
8
|
+
|
|
9
|
+
const isDocumentRow = (entry)=>{
|
|
10
|
+
if ('documentId' in entry) {
|
|
11
|
+
return typeof entry.documentId === 'string';
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
};
|
|
15
|
+
const useReleasesList = (contentTypeUid, documentId)=>{
|
|
16
|
+
const listViewData = useTable('ListView', (state)=>state.rows);
|
|
17
|
+
const documentIds = listViewData.filter((entry)=>isDocumentRow(entry)).map((entry)=>entry.documentId);
|
|
18
|
+
const [{ query }] = useQueryParams();
|
|
19
|
+
const locale = query?.plugins?.i18n?.locale || undefined;
|
|
20
|
+
const response = useGetMappedEntriesInReleasesQuery({
|
|
21
|
+
contentTypeUid,
|
|
22
|
+
documentIds,
|
|
23
|
+
locale
|
|
24
|
+
}, {
|
|
25
|
+
skip: !contentTypeUid || documentIds.length === 0
|
|
26
|
+
});
|
|
27
|
+
const mappedEntriesInReleases = response.data || {};
|
|
28
|
+
return mappedEntriesInReleases?.[documentId] || [];
|
|
29
|
+
};
|
|
30
|
+
const addColumnToTableHook = ({ displayedHeaders, layout })=>{
|
|
31
|
+
const { options } = layout;
|
|
32
|
+
if (!options?.draftAndPublish) {
|
|
33
|
+
return {
|
|
34
|
+
displayedHeaders,
|
|
35
|
+
layout
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
displayedHeaders: [
|
|
40
|
+
...displayedHeaders,
|
|
41
|
+
{
|
|
42
|
+
searchable: false,
|
|
43
|
+
sortable: false,
|
|
44
|
+
name: 'releases',
|
|
45
|
+
label: {
|
|
46
|
+
id: 'content-releases.content-manager.list-view.releases.header',
|
|
47
|
+
defaultMessage: 'To be released in'
|
|
48
|
+
},
|
|
49
|
+
cellFormatter: (props, _, { model })=>/*#__PURE__*/ jsx(ReleaseListCell, {
|
|
50
|
+
...props,
|
|
51
|
+
model: model
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
layout
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
const ReleaseListCell = ({ documentId, model })=>{
|
|
59
|
+
const releases = useReleasesList(model, documentId);
|
|
60
|
+
const { formatMessage } = useIntl();
|
|
61
|
+
return /*#__PURE__*/ jsxs(Popover.Root, {
|
|
62
|
+
children: [
|
|
63
|
+
/*#__PURE__*/ jsx(Popover.Trigger, {
|
|
64
|
+
children: /*#__PURE__*/ jsx(Button, {
|
|
65
|
+
variant: "ghost",
|
|
66
|
+
onClick: (e)=>e.stopPropagation(),
|
|
67
|
+
// TODO: find a way in the DS to define the widht and height of the icon
|
|
68
|
+
endIcon: releases.length > 0 ? /*#__PURE__*/ jsx(CaretDown, {
|
|
69
|
+
width: "1.2rem",
|
|
70
|
+
height: "1.2rem"
|
|
71
|
+
}) : null,
|
|
72
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
73
|
+
style: {
|
|
74
|
+
maxWidth: '252px',
|
|
75
|
+
cursor: 'pointer'
|
|
76
|
+
},
|
|
77
|
+
textColor: "neutral800",
|
|
78
|
+
fontWeight: "regular",
|
|
79
|
+
children: releases.length > 0 ? formatMessage({
|
|
80
|
+
id: 'content-releases.content-manager.list-view.releases-number',
|
|
81
|
+
defaultMessage: '{number} {number, plural, one {release} other {releases}}'
|
|
82
|
+
}, {
|
|
83
|
+
number: releases.length
|
|
84
|
+
}) : '-'
|
|
85
|
+
})
|
|
86
|
+
})
|
|
87
|
+
}),
|
|
88
|
+
/*#__PURE__*/ jsx(Popover.Content, {
|
|
89
|
+
children: /*#__PURE__*/ jsx("ul", {
|
|
90
|
+
children: releases.map(({ id, name })=>/*#__PURE__*/ jsx(Box, {
|
|
91
|
+
padding: 3,
|
|
92
|
+
tag: "li",
|
|
93
|
+
children: /*#__PURE__*/ jsx(Link, {
|
|
94
|
+
href: `/admin/plugins/content-releases/${id}`,
|
|
95
|
+
isExternal: false,
|
|
96
|
+
children: name
|
|
97
|
+
})
|
|
98
|
+
}, id))
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
]
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export { ReleaseListCell, addColumnToTableHook };
|
|
106
|
+
//# sourceMappingURL=ReleaseListCell.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseListCell.mjs","sources":["../../../admin/src/components/ReleaseListCell.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { useTable, useQueryParams } from '@strapi/admin/strapi-admin';\r\nimport { ListFieldLayout, ListLayout } from '@strapi/content-manager/strapi-admin';\r\nimport { Box, Popover, Typography, Button, Link } from '@strapi/design-system';\r\nimport { CaretDown } from '@strapi/icons';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { useGetMappedEntriesInReleasesQuery } from '../services/release';\r\n\r\nimport type { Modules, UID } from '@strapi/types';\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * useReleasesList\r\n * -----------------------------------------------------------------------------------------------*/\r\ninterface QueryParams {\r\n plugins?: {\r\n i18n?: {\r\n locale: string;\r\n };\r\n };\r\n}\r\n\r\ntype DocumentRow = {\r\n id: string | number;\r\n documentId: Modules.Documents.ID;\r\n};\r\n\r\nconst isDocumentRow = (entry: { id: string | number }): entry is DocumentRow => {\r\n if ('documentId' in entry) {\r\n return typeof entry.documentId === 'string';\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst useReleasesList = (contentTypeUid: UID.ContentType, documentId: Modules.Documents.ID) => {\r\n const listViewData = useTable('ListView', (state) => state.rows);\r\n const documentIds = listViewData\r\n .filter((entry) => isDocumentRow(entry))\r\n .map((entry) => entry.documentId);\r\n const [{ query }] = useQueryParams();\r\n const locale = (query as QueryParams)?.plugins?.i18n?.locale || undefined;\r\n\r\n const response = useGetMappedEntriesInReleasesQuery(\r\n { contentTypeUid, documentIds, locale },\r\n { skip: !contentTypeUid || documentIds.length === 0 }\r\n );\r\n\r\n const mappedEntriesInReleases = response.data || {};\r\n\r\n return mappedEntriesInReleases?.[documentId] || [];\r\n};\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * addColumnToTableHook\r\n * -----------------------------------------------------------------------------------------------*/\r\n\r\ninterface AddColumnToTableHookArgs {\r\n layout: ListLayout;\r\n displayedHeaders: ListFieldLayout[];\r\n}\r\n\r\nconst addColumnToTableHook = ({ displayedHeaders, layout }: AddColumnToTableHookArgs) => {\r\n const { options } = layout;\r\n\r\n if (!options?.draftAndPublish) {\r\n return { displayedHeaders, layout };\r\n }\r\n\r\n return {\r\n displayedHeaders: [\r\n ...displayedHeaders,\r\n {\r\n searchable: false,\r\n sortable: false,\r\n name: 'releases',\r\n label: {\r\n id: 'content-releases.content-manager.list-view.releases.header',\r\n defaultMessage: 'To be released in',\r\n },\r\n cellFormatter: (\r\n props: Modules.Documents.AnyDocument,\r\n _: unknown,\r\n { model }: { model: UID.ContentType }\r\n ) => <ReleaseListCell {...props} model={model} />,\r\n },\r\n ],\r\n layout,\r\n };\r\n};\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * ReleaseListCell\r\n * -----------------------------------------------------------------------------------------------*/\r\n\r\ninterface ReleaseListCellProps extends Modules.Documents.AnyDocument {\r\n documentId: Modules.Documents.ID;\r\n model: UID.ContentType;\r\n}\r\n\r\nconst ReleaseListCell = ({ documentId, model }: ReleaseListCellProps) => {\r\n const releases = useReleasesList(model, documentId);\r\n const { formatMessage } = useIntl();\r\n\r\n return (\r\n <Popover.Root>\r\n <Popover.Trigger>\r\n <Button\r\n variant=\"ghost\"\r\n onClick={(e: React.MouseEvent<HTMLElement>) => e.stopPropagation()}\r\n // TODO: find a way in the DS to define the widht and height of the icon\r\n endIcon={releases.length > 0 ? <CaretDown width=\"1.2rem\" height=\"1.2rem\" /> : null}\r\n >\r\n <Typography\r\n style={{ maxWidth: '252px', cursor: 'pointer' }}\r\n textColor=\"neutral800\"\r\n fontWeight=\"regular\"\r\n >\r\n {releases.length > 0\r\n ? formatMessage(\r\n {\r\n id: 'content-releases.content-manager.list-view.releases-number',\r\n defaultMessage: '{number} {number, plural, one {release} other {releases}}',\r\n },\r\n {\r\n number: releases.length,\r\n }\r\n )\r\n : '-'}\r\n </Typography>\r\n </Button>\r\n </Popover.Trigger>\r\n <Popover.Content>\r\n <ul>\r\n {releases.map(({ id, name }) => (\r\n <Box key={id} padding={3} tag=\"li\">\r\n <Link href={`/admin/plugins/content-releases/${id}`} isExternal={false}>\r\n {name}\r\n </Link>\r\n </Box>\r\n ))}\r\n </ul>\r\n </Popover.Content>\r\n </Popover.Root>\r\n );\r\n};\r\n\r\nexport { ReleaseListCell, addColumnToTableHook };\r\nexport type { ReleaseListCellProps };\r\n"],"names":["isDocumentRow","entry","documentId","useReleasesList","contentTypeUid","listViewData","useTable","state","rows","documentIds","filter","map","query","useQueryParams","locale","plugins","i18n","undefined","response","useGetMappedEntriesInReleasesQuery","skip","length","mappedEntriesInReleases","data","addColumnToTableHook","displayedHeaders","layout","options","draftAndPublish","searchable","sortable","name","label","id","defaultMessage","cellFormatter","props","_","model","_jsx","ReleaseListCell","releases","formatMessage","useIntl","_jsxs","Popover","Root","Trigger","Button","variant","onClick","e","stopPropagation","endIcon","CaretDown","width","height","Typography","style","maxWidth","cursor","textColor","fontWeight","number","Content","ul","Box","padding","tag","Link","href","isExternal"],"mappings":"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"}
|