strapi-plugin-navigation 2.3.2 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +7 -0
- package/README.md +855 -0
- package/admin/src/components/AdditionalFieldInput/index.d.ts +2 -2
- package/admin/src/components/AdditionalFieldInput/index.js +36 -8
- package/admin/src/components/AdditionalFieldInput/types.d.ts +1 -1
- package/admin/src/components/DragButton/index.d.ts +3 -1
- package/admin/src/components/DragButton/index.js +2 -1
- package/admin/src/components/Item/ItemCardHeader/index.d.ts +1 -0
- package/admin/src/components/Item/ItemCardHeader/index.js +10 -5
- package/admin/src/components/Item/index.js +24 -4
- package/admin/src/components/NavigationItemList/index.js +1 -1
- package/admin/src/components/Search/index.d.ts +10 -4
- package/admin/src/components/Search/index.js +45 -6
- package/admin/src/components/TextArrayInput/index.d.ts +2 -1
- package/admin/src/pages/DataManagerProvider/actions.d.ts +2 -0
- package/admin/src/pages/DataManagerProvider/actions.js +3 -1
- package/admin/src/pages/DataManagerProvider/index.js +28 -0
- package/admin/src/pages/DataManagerProvider/reducer.js +8 -0
- package/admin/src/pages/SettingsPage/common/const.d.ts +2 -0
- package/admin/src/pages/SettingsPage/common/const.js +5 -0
- package/admin/src/pages/SettingsPage/common/index.d.ts +2 -0
- package/admin/src/pages/SettingsPage/common/index.js +18 -0
- package/admin/src/pages/SettingsPage/components/CustomFieldForm/index.js +27 -12
- package/admin/src/pages/SettingsPage/components/CustomFieldTable/index.js +1 -1
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.d.ts +2 -3
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.js +12 -14
- package/admin/src/pages/SettingsPage/index.js +22 -9
- package/admin/src/pages/SettingsPage/types.d.ts +2 -1
- package/admin/src/pages/SettingsPage/utils/form.js +2 -1
- package/admin/src/pages/View/components/NavigationHeader/index.d.ts +2 -1
- package/admin/src/pages/View/components/NavigationHeader/index.js +5 -3
- package/admin/src/pages/View/components/NavigationItemForm/index.js +49 -19
- package/admin/src/pages/View/components/NavigationItemForm/types.d.ts +2 -1
- package/admin/src/pages/View/components/NavigationItemForm/utils/form.js +2 -0
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.d.ts +1 -0
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.js +2 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/index.js +16 -4
- package/admin/src/pages/View/components/NavigationManager/PurgeCacheConfirm/index.d.ts +8 -0
- package/admin/src/pages/View/components/NavigationManager/PurgeCacheConfirm/index.js +34 -0
- package/admin/src/pages/View/components/NavigationManager/index.js +15 -2
- package/admin/src/pages/View/components/NavigationManager/types.d.ts +5 -1
- package/admin/src/pages/View/index.js +25 -12
- package/admin/src/pages/View/utils/form.d.ts +1 -1
- package/admin/src/pages/View/utils/types.d.ts +3 -0
- package/admin/src/pages/View/utils/types.js +3 -0
- package/admin/src/translations/ca.json +1 -0
- package/admin/src/translations/en.json +10 -0
- package/admin/src/translations/fr.json +1 -0
- package/admin/src/utils/api.js +1 -1
- package/package.json +76 -101
- package/server/bootstrap/index.js +3 -0
- package/server/cache/index.d.ts +2 -0
- package/server/cache/index.js +18 -0
- package/server/cache/serviceEnhancers.d.ts +3 -0
- package/server/cache/serviceEnhancers.js +16 -0
- package/server/cache/setupStrategy.d.ts +3 -0
- package/server/cache/setupStrategy.js +38 -0
- package/server/cache/types.d.ts +11 -0
- package/server/cache/types.js +3 -0
- package/server/cache/utils.d.ts +11 -0
- package/server/cache/utils.js +19 -0
- package/server/config/index.js +1 -0
- package/server/config/setupStrategy.js +1 -0
- package/server/content-types/index.d.ts +2 -0
- package/server/content-types/navigation/index.d.ts +1 -0
- package/server/content-types/navigation/index.js +3 -1
- package/server/content-types/navigation/lifecycles.d.ts +3 -0
- package/server/content-types/navigation/lifecycles.js +7 -0
- package/server/content-types/navigation-item/index.d.ts +1 -0
- package/server/content-types/navigation-item/index.js +3 -1
- package/server/content-types/navigation-item/lifecycles.d.ts +3 -0
- package/server/content-types/navigation-item/lifecycles.js +7 -0
- package/server/controllers/admin.js +37 -16
- package/server/controllers/client.js +2 -2
- package/server/graphql/queries/render-navigation-child.d.ts +1 -1
- package/server/graphql/queries/render-navigation.d.ts +1 -1
- package/server/graphql/types/index.js +1 -0
- package/server/graphql/types/navigation-item-additional-field-media.d.ts +5 -0
- package/server/graphql/types/navigation-item-additional-field-media.js +13 -0
- package/server/graphql/types/navigation-item.js +3 -0
- package/server/i18n/navigationSetupStrategy.js +1 -1
- package/server/i18n/utils.d.ts +1 -0
- package/server/i18n/utils.js +4 -0
- package/server/index.d.ts +2 -0
- package/server/routes/admin.js +20 -0
- package/server/services/admin.js +59 -15
- package/server/services/client.js +42 -11
- package/server/services/common.js +16 -0
- package/server/utils/constant.d.ts +3 -0
- package/server/utils/constant.js +21 -1
- package/server/utils/functions.d.ts +11 -3
- package/server/utils/functions.js +21 -3
- package/strapi-server.d.ts +2 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/types/bootstrap.d.ts +3 -0
- package/types/config.d.ts +1 -0
- package/types/contentTypes.d.ts +7 -2
- package/types/controllers.d.ts +14 -3
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/types/lifecycle.d.ts +22 -0
- package/types/lifecycle.js +3 -0
- package/types/services.d.ts +20 -2
- package/__mocks__/strapi.d.ts +0 -3
- package/__mocks__/strapi.d.ts.map +0 -1
- package/__mocks__/strapi.js +0 -206
- package/__mocks__/strapi.js.map +0 -1
- package/admin/src/components/AdditionalFieldInput/index.d.ts.map +0 -1
- package/admin/src/components/AdditionalFieldInput/index.js.map +0 -1
- package/admin/src/components/AdditionalFieldInput/types.d.ts.map +0 -1
- package/admin/src/components/AdditionalFieldInput/types.js.map +0 -1
- package/admin/src/components/Alert/styles.d.ts.map +0 -1
- package/admin/src/components/Alert/styles.js.map +0 -1
- package/admin/src/components/CollapseButton/index.d.ts.map +0 -1
- package/admin/src/components/CollapseButton/index.js.map +0 -1
- package/admin/src/components/ConfirmationDialog/index.d.ts.map +0 -1
- package/admin/src/components/ConfirmationDialog/index.js.map +0 -1
- package/admin/src/components/DragButton/index.d.ts.map +0 -1
- package/admin/src/components/DragButton/index.js.map +0 -1
- package/admin/src/components/EmptyView/index.d.ts.map +0 -1
- package/admin/src/components/EmptyView/index.js.map +0 -1
- package/admin/src/components/Item/ItemCardBadge/index.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardBadge/index.js.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/Wrapper.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/Wrapper.js.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/icons.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/icons.js.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/index.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/index.js.map +0 -1
- package/admin/src/components/Item/ItemCardRemovedOverlay/index.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardRemovedOverlay/index.js.map +0 -1
- package/admin/src/components/Item/Wrapper.d.ts.map +0 -1
- package/admin/src/components/Item/Wrapper.js.map +0 -1
- package/admin/src/components/Item/index.d.ts.map +0 -1
- package/admin/src/components/Item/index.js.map +0 -1
- package/admin/src/components/NavigationItemList/Wrapper.d.ts.map +0 -1
- package/admin/src/components/NavigationItemList/Wrapper.js.map +0 -1
- package/admin/src/components/NavigationItemList/index.d.ts.map +0 -1
- package/admin/src/components/NavigationItemList/index.js.map +0 -1
- package/admin/src/components/RestartAlert/index.d.ts.map +0 -1
- package/admin/src/components/RestartAlert/index.js.map +0 -1
- package/admin/src/components/Search/index.d.ts.map +0 -1
- package/admin/src/components/Search/index.js.map +0 -1
- package/admin/src/components/TextArrayInput/index.d.ts.map +0 -1
- package/admin/src/components/TextArrayInput/index.js.map +0 -1
- package/admin/src/components/icons/navigation.d.ts.map +0 -1
- package/admin/src/components/icons/navigation.js.map +0 -1
- package/admin/src/contexts/DataManagerContext.d.ts.map +0 -1
- package/admin/src/contexts/DataManagerContext.js.map +0 -1
- package/admin/src/hooks/useAllContentTypes.d.ts.map +0 -1
- package/admin/src/hooks/useAllContentTypes.js.map +0 -1
- package/admin/src/hooks/useDataManager.d.ts.map +0 -1
- package/admin/src/hooks/useDataManager.js.map +0 -1
- package/admin/src/hooks/useI18nCopyNavigationItemsModal.d.ts.map +0 -1
- package/admin/src/hooks/useI18nCopyNavigationItemsModal.js.map +0 -1
- package/admin/src/hooks/useNavigationConfig.d.ts.map +0 -1
- package/admin/src/hooks/useNavigationConfig.js.map +0 -1
- package/admin/src/hooks/useNavigationManager.d.ts.map +0 -1
- package/admin/src/hooks/useNavigationManager.js.map +0 -1
- package/admin/src/index.d.ts.map +0 -1
- package/admin/src/index.js.map +0 -1
- package/admin/src/pages/App/index.d.ts.map +0 -1
- package/admin/src/pages/App/index.js.map +0 -1
- package/admin/src/pages/DataManagerProvider/actions.d.ts.map +0 -1
- package/admin/src/pages/DataManagerProvider/actions.js.map +0 -1
- package/admin/src/pages/DataManagerProvider/index.d.ts.map +0 -1
- package/admin/src/pages/DataManagerProvider/index.js.map +0 -1
- package/admin/src/pages/DataManagerProvider/init.d.ts.map +0 -1
- package/admin/src/pages/DataManagerProvider/init.js.map +0 -1
- package/admin/src/pages/DataManagerProvider/reducer.d.ts.map +0 -1
- package/admin/src/pages/DataManagerProvider/reducer.js.map +0 -1
- package/admin/src/pages/NoAccessPage/index.d.ts.map +0 -1
- package/admin/src/pages/NoAccessPage/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldForm/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldForm/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldModal/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldModal/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldTable/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldTable/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/types.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/types.js.map +0 -1
- package/admin/src/pages/SettingsPage/utils/form.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/utils/form.js.map +0 -1
- package/admin/src/pages/SettingsPage/utils/functions.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/utils/functions.js.map +0 -1
- package/admin/src/pages/View/components/I18nCopyNavigationItems/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/I18nCopyNavigationItems/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationContentHeader/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationContentHeader/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationHeader/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationHeader/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationHeader/styles.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationHeader/styles.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/types.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/types.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/utils/form.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/utils/form.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupFooter.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupFooter.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupHeader.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupHeader.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/DeletionConfirm/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/DeletionConfirm/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/ErrorDetails/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/ErrorDetails/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/Footer/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/Footer/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/Form/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/Form/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/NavigationUpdate/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/NavigationUpdate/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/NewNavigation/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/NewNavigation/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/types.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/types.js.map +0 -1
- package/admin/src/pages/View/index.d.ts.map +0 -1
- package/admin/src/pages/View/index.js.map +0 -1
- package/admin/src/pages/View/utils/form.d.ts.map +0 -1
- package/admin/src/pages/View/utils/form.js.map +0 -1
- package/admin/src/pages/View/utils/index.d.ts.map +0 -1
- package/admin/src/pages/View/utils/index.js.map +0 -1
- package/admin/src/pages/View/utils/parsers.d.ts.map +0 -1
- package/admin/src/pages/View/utils/parsers.js.map +0 -1
- package/admin/src/permissions.d.ts.map +0 -1
- package/admin/src/permissions.js.map +0 -1
- package/admin/src/pluginId.d.ts.map +0 -1
- package/admin/src/pluginId.js.map +0 -1
- package/admin/src/translations/index.d.ts.map +0 -1
- package/admin/src/translations/index.js.map +0 -1
- package/admin/src/utils/api.d.ts.map +0 -1
- package/admin/src/utils/api.js.map +0 -1
- package/admin/src/utils/enums.d.ts.map +0 -1
- package/admin/src/utils/enums.js.map +0 -1
- package/admin/src/utils/functions.d.ts.map +0 -1
- package/admin/src/utils/functions.js.map +0 -1
- package/admin/src/utils/index.d.ts.map +0 -1
- package/admin/src/utils/index.js.map +0 -1
- package/permissions.d.ts.map +0 -1
- package/permissions.js.map +0 -1
- package/server/bootstrap/index.d.ts.map +0 -1
- package/server/bootstrap/index.js.map +0 -1
- package/server/config/index.d.ts.map +0 -1
- package/server/config/index.js.map +0 -1
- package/server/config/setupStrategy.d.ts.map +0 -1
- package/server/config/setupStrategy.js.map +0 -1
- package/server/content-types/audience/index.d.ts.map +0 -1
- package/server/content-types/audience/index.js.map +0 -1
- package/server/content-types/audience/schema.d.ts.map +0 -1
- package/server/content-types/audience/schema.js.map +0 -1
- package/server/content-types/index.d.ts.map +0 -1
- package/server/content-types/index.js.map +0 -1
- package/server/content-types/navigation/index.d.ts.map +0 -1
- package/server/content-types/navigation/index.js.map +0 -1
- package/server/content-types/navigation/schema.d.ts.map +0 -1
- package/server/content-types/navigation/schema.js.map +0 -1
- package/server/content-types/navigation-item/index.d.ts.map +0 -1
- package/server/content-types/navigation-item/index.js.map +0 -1
- package/server/content-types/navigation-item/schema.d.ts.map +0 -1
- package/server/content-types/navigation-item/schema.js.map +0 -1
- package/server/content-types/navigations-items-related/index.d.ts.map +0 -1
- package/server/content-types/navigations-items-related/index.js.map +0 -1
- package/server/content-types/navigations-items-related/schema.d.ts.map +0 -1
- package/server/content-types/navigations-items-related/schema.js.map +0 -1
- package/server/controllers/admin.d.ts.map +0 -1
- package/server/controllers/admin.js.map +0 -1
- package/server/controllers/client.d.ts.map +0 -1
- package/server/controllers/client.js.map +0 -1
- package/server/controllers/index.d.ts.map +0 -1
- package/server/controllers/index.js.map +0 -1
- package/server/destroy.d.ts.map +0 -1
- package/server/destroy.js.map +0 -1
- package/server/graphql/config.d.ts.map +0 -1
- package/server/graphql/config.js.map +0 -1
- package/server/graphql/index.d.ts.map +0 -1
- package/server/graphql/index.js.map +0 -1
- package/server/graphql/queries/index.d.ts.map +0 -1
- package/server/graphql/queries/index.js.map +0 -1
- package/server/graphql/queries/render-navigation-child.d.ts.map +0 -1
- package/server/graphql/queries/render-navigation-child.js.map +0 -1
- package/server/graphql/queries/render-navigation.d.ts.map +0 -1
- package/server/graphql/queries/render-navigation.js.map +0 -1
- package/server/graphql/resolvers-config.d.ts.map +0 -1
- package/server/graphql/resolvers-config.js.map +0 -1
- package/server/graphql/setupStrategy.d.ts.map +0 -1
- package/server/graphql/setupStrategy.js.map +0 -1
- package/server/graphql/types/content-types-name-fields.d.ts.map +0 -1
- package/server/graphql/types/content-types-name-fields.js.map +0 -1
- package/server/graphql/types/content-types.d.ts.map +0 -1
- package/server/graphql/types/content-types.js.map +0 -1
- package/server/graphql/types/create-navigation-item.d.ts.map +0 -1
- package/server/graphql/types/create-navigation-item.js.map +0 -1
- package/server/graphql/types/create-navigation-related.d.ts.map +0 -1
- package/server/graphql/types/create-navigation-related.js.map +0 -1
- package/server/graphql/types/create-navigation.d.ts.map +0 -1
- package/server/graphql/types/create-navigation.js.map +0 -1
- package/server/graphql/types/index.d.ts.map +0 -1
- package/server/graphql/types/index.js.map +0 -1
- package/server/graphql/types/navigation-config.d.ts.map +0 -1
- package/server/graphql/types/navigation-config.js.map +0 -1
- package/server/graphql/types/navigation-details.d.ts.map +0 -1
- package/server/graphql/types/navigation-details.js.map +0 -1
- package/server/graphql/types/navigation-item-related-data.d.ts.map +0 -1
- package/server/graphql/types/navigation-item-related-data.js.map +0 -1
- package/server/graphql/types/navigation-item-related.d.ts.map +0 -1
- package/server/graphql/types/navigation-item-related.js.map +0 -1
- package/server/graphql/types/navigation-item.d.ts.map +0 -1
- package/server/graphql/types/navigation-item.js.map +0 -1
- package/server/graphql/types/navigation-render-type.d.ts.map +0 -1
- package/server/graphql/types/navigation-render-type.js.map +0 -1
- package/server/graphql/types/navigation.d.ts.map +0 -1
- package/server/graphql/types/navigation.js.map +0 -1
- package/server/i18n/constant.d.ts.map +0 -1
- package/server/i18n/constant.js.map +0 -1
- package/server/i18n/errors.d.ts.map +0 -1
- package/server/i18n/errors.js.map +0 -1
- package/server/i18n/graphQLEnhancers.d.ts.map +0 -1
- package/server/i18n/graphQLEnhancers.js.map +0 -1
- package/server/i18n/index.d.ts.map +0 -1
- package/server/i18n/index.js.map +0 -1
- package/server/i18n/navigationSetupStrategy.d.ts.map +0 -1
- package/server/i18n/navigationSetupStrategy.js.map +0 -1
- package/server/i18n/serviceEnhancers.d.ts.map +0 -1
- package/server/i18n/serviceEnhancers.js.map +0 -1
- package/server/i18n/types.d.ts.map +0 -1
- package/server/i18n/types.js.map +0 -1
- package/server/i18n/utils.d.ts.map +0 -1
- package/server/i18n/utils.js.map +0 -1
- package/server/index.d.ts.map +0 -1
- package/server/index.js.map +0 -1
- package/server/navigation/index.d.ts.map +0 -1
- package/server/navigation/index.js.map +0 -1
- package/server/navigation/setupStrategy.d.ts.map +0 -1
- package/server/navigation/setupStrategy.js.map +0 -1
- package/server/register/index.d.ts.map +0 -1
- package/server/register/index.js.map +0 -1
- package/server/routes/admin.d.ts.map +0 -1
- package/server/routes/admin.js.map +0 -1
- package/server/routes/client.d.ts.map +0 -1
- package/server/routes/client.js.map +0 -1
- package/server/routes/index.d.ts.map +0 -1
- package/server/routes/index.js.map +0 -1
- package/server/services/__tests__/service.test.d.ts +0 -2
- package/server/services/__tests__/service.test.d.ts.map +0 -1
- package/server/services/__tests__/service.test.js +0 -131
- package/server/services/__tests__/service.test.js.map +0 -1
- package/server/services/admin.d.ts.map +0 -1
- package/server/services/admin.js.map +0 -1
- package/server/services/client.d.ts.map +0 -1
- package/server/services/client.js.map +0 -1
- package/server/services/common.d.ts.map +0 -1
- package/server/services/common.js.map +0 -1
- package/server/services/index.d.ts.map +0 -1
- package/server/services/index.js.map +0 -1
- package/server/utils/__tests__/functions.test.d.ts +0 -2
- package/server/utils/__tests__/functions.test.d.ts.map +0 -1
- package/server/utils/__tests__/functions.test.js +0 -153
- package/server/utils/__tests__/functions.test.js.map +0 -1
- package/server/utils/constant.d.ts.map +0 -1
- package/server/utils/constant.js.map +0 -1
- package/server/utils/functions.d.ts.map +0 -1
- package/server/utils/functions.js.map +0 -1
- package/server/utils/index.d.ts.map +0 -1
- package/server/utils/index.js.map +0 -1
- package/setup-package.d.ts +0 -2
- package/setup-package.d.ts.map +0 -1
- package/setup-package.js +0 -19
- package/setup-package.js.map +0 -1
- package/strapi-admin.d.ts.map +0 -1
- package/strapi-admin.js.map +0 -1
- package/strapi-server.d.ts.map +0 -1
- package/strapi-server.js.map +0 -1
- package/types/bootstrap.d.ts.map +0 -1
- package/types/bootstrap.js.map +0 -1
- package/types/config.d.ts.map +0 -1
- package/types/config.js.map +0 -1
- package/types/contentTypes.d.ts.map +0 -1
- package/types/contentTypes.js.map +0 -1
- package/types/controllers.d.ts.map +0 -1
- package/types/controllers.js.map +0 -1
- package/types/graphQL.d.ts.map +0 -1
- package/types/graphQL.js.map +0 -1
- package/types/i18n.d.ts.map +0 -1
- package/types/i18n.js.map +0 -1
- package/types/index.d.ts.map +0 -1
- package/types/index.js.map +0 -1
- package/types/services.d.ts.map +0 -1
- package/types/services.js.map +0 -1
- package/types/utils.d.ts.map +0 -1
- package/types/utils.js.map +0 -1
- package/utils/InvalidParamNavigationError.d.ts.map +0 -1
- package/utils/InvalidParamNavigationError.js.map +0 -1
- package/utils/NavigationError.d.ts.map +0 -1
- package/utils/NavigationError.js.map +0 -1
|
@@ -54,7 +54,7 @@ const parsers_1 = require("./utils/parsers");
|
|
|
54
54
|
const NoAccessPage_1 = __importDefault(require("../NoAccessPage"));
|
|
55
55
|
const View = () => {
|
|
56
56
|
const toggleNotification = (0, helper_plugin_1.useNotification)();
|
|
57
|
-
const { items: availableNavigations, activeItem: activeNavigation, changedActiveItem: changedActiveNavigation, config, navigationItemPopupOpened, isLoading, isLoadingForAdditionalDataToBeSet, isLoadingForSubmit, handleChangeNavigationItemPopupVisibility, handleChangeSelection, handleChangeNavigationData, handleResetNavigationData, handleSubmitNavigation, handleLocalizationSelection, handleI18nCopy, getContentTypeItems, error, availableLocale: allAvailableLocale, readNavigationItemFromLocale, slugify, permissions, } = (0, useDataManager_1.default)();
|
|
57
|
+
const { items: availableNavigations, activeItem: activeNavigation, changedActiveItem: changedActiveNavigation, config, navigationItemPopupOpened, isLoading, isLoadingForAdditionalDataToBeSet, isLoadingForSubmit, handleChangeNavigationItemPopupVisibility, handleChangeSelection, handleChangeNavigationData, handleResetNavigationData, handleSubmitNavigation, handleLocalizationSelection, handleI18nCopy, getContentTypeItems, error, availableLocale: allAvailableLocale, readNavigationItemFromLocale, slugify, permissions, handleNavigationsPurge, } = (0, useDataManager_1.default)();
|
|
58
58
|
const { canAccess, canUpdate } = permissions;
|
|
59
59
|
const availableLocale = (0, react_1.useMemo)(() => allAvailableLocale.filter(locale => locale !== changedActiveNavigation?.localeCode), [changedActiveNavigation, allAvailableLocale]);
|
|
60
60
|
const { i18nCopyItemsModal, i18nCopySourceLocale, setI18nCopyModalOpened, setI18nCopySourceLocale } = (0, useI18nCopyNavigationItemsModal_1.useI18nCopyNavigationItemsModal)((0, react_1.useCallback)((sourceLocale) => {
|
|
@@ -66,7 +66,7 @@ const View = () => {
|
|
|
66
66
|
const openI18nCopyModalOpened = (0, react_1.useCallback)(() => { i18nCopySourceLocale && setI18nCopyModalOpened(true); }, [setI18nCopyModalOpened, i18nCopySourceLocale]);
|
|
67
67
|
const [activeNavigationItem, setActiveNavigationItemState] = (0, react_1.useState)({});
|
|
68
68
|
const { formatMessage } = (0, react_intl_1.useIntl)();
|
|
69
|
-
const [searchValue, setSearchValue] = (0, react_1.useState)('');
|
|
69
|
+
const [{ value: searchValue, index: searchIndex }, setSearchValue] = (0, react_1.useState)({ value: '' });
|
|
70
70
|
const [structureChanged, setStructureChanged] = (0, react_1.useState)(false);
|
|
71
71
|
const isSearchEmpty = (0, lodash_1.isEmpty)(searchValue);
|
|
72
72
|
const normalisedSearchValue = (searchValue || '').toLowerCase();
|
|
@@ -83,6 +83,9 @@ const View = () => {
|
|
|
83
83
|
const handleSave = () => isLoadingForSubmit || structureHasErrors
|
|
84
84
|
? null
|
|
85
85
|
: handleSubmitNavigation(formatMessage, (0, parsers_1.transformToRESTPayload)(changedActiveNavigation, config));
|
|
86
|
+
const handleCachePurge = () => {
|
|
87
|
+
handleNavigationsPurge([navigationSelectValue]);
|
|
88
|
+
};
|
|
86
89
|
const changeNavigationItemPopupState = (visible, editedItem = {}) => {
|
|
87
90
|
setActiveNavigationItemState(editedItem);
|
|
88
91
|
handleChangeNavigationItemPopupVisibility(visible);
|
|
@@ -114,14 +117,23 @@ const View = () => {
|
|
|
114
117
|
handleChangeNavigationData(changedStructure, true);
|
|
115
118
|
setStructureChanged(true);
|
|
116
119
|
};
|
|
117
|
-
const filteredListFactory = (items, doUse
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
const filteredListFactory = (items, doUse, activeIndex) => {
|
|
121
|
+
const filteredItems = items.reduce((acc, item) => {
|
|
122
|
+
const subItems = !(0, lodash_1.isEmpty)(item.items) ? filteredListFactory(item.items, doUse) : [];
|
|
123
|
+
if (doUse(item))
|
|
124
|
+
return [item, ...subItems, ...acc];
|
|
125
|
+
else
|
|
126
|
+
return [...subItems, ...acc];
|
|
127
|
+
}, []);
|
|
128
|
+
if (activeIndex !== undefined) {
|
|
129
|
+
const index = activeIndex % filteredItems.length;
|
|
130
|
+
return filteredItems.map((item, currentIndex) => {
|
|
131
|
+
return index === currentIndex ? ({ ...item, isSearchActive: true }) : item;
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return filteredItems;
|
|
135
|
+
};
|
|
136
|
+
const filteredList = !isSearchEmpty ? filteredListFactory(changedActiveNavigation.items.map(_ => ({ ..._ })), (item) => (item?.title || '').toLowerCase().includes(normalisedSearchValue), normalisedSearchValue ? searchIndex : undefined) : [];
|
|
125
137
|
const changeCollapseItemDeep = (item, isCollapsed) => {
|
|
126
138
|
if (item.collapsed !== isCollapsed) {
|
|
127
139
|
return {
|
|
@@ -173,6 +185,7 @@ const View = () => {
|
|
|
173
185
|
...item,
|
|
174
186
|
collapsed: !item.collapsed,
|
|
175
187
|
updated: true,
|
|
188
|
+
isSearchActive: false,
|
|
176
189
|
});
|
|
177
190
|
};
|
|
178
191
|
const handleItemEdit = (item, levelPath = '', parentAttachedToMenu = true) => {
|
|
@@ -191,7 +204,7 @@ const View = () => {
|
|
|
191
204
|
};
|
|
192
205
|
const handleChangeNavigationSelection = (...args) => {
|
|
193
206
|
handleChangeSelection(...args);
|
|
194
|
-
setSearchValue('');
|
|
207
|
+
setSearchValue({ value: '', index: 0 });
|
|
195
208
|
};
|
|
196
209
|
const endActions = [
|
|
197
210
|
{
|
|
@@ -223,7 +236,7 @@ const View = () => {
|
|
|
223
236
|
});
|
|
224
237
|
}
|
|
225
238
|
return (react_1.default.createElement(Main_1.Main, { labelledBy: "title", "aria-busy": isLoadingForSubmit },
|
|
226
|
-
react_1.default.createElement(NavigationHeader_1.default, { structureHasErrors: structureHasErrors, structureHasChanged: structureChanged, availableNavigations: availableNavigations, activeNavigation: activeNavigation, handleChangeSelection: handleChangeNavigationSelection, handleSave: handleSave, handleLocalizationSelection: handleLocalizationSelection, config: config, permissions: {
|
|
239
|
+
react_1.default.createElement(NavigationHeader_1.default, { structureHasErrors: structureHasErrors, structureHasChanged: structureChanged, availableNavigations: availableNavigations, activeNavigation: activeNavigation, handleChangeSelection: handleChangeNavigationSelection, handleSave: handleSave, handleCachePurge: handleCachePurge, handleLocalizationSelection: handleLocalizationSelection, config: config, permissions: {
|
|
227
240
|
canAccess, canUpdate
|
|
228
241
|
} }),
|
|
229
242
|
react_1.default.createElement(Layout_1.ContentLayout, null,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function checkFormValidity(data: any, schema: any): Promise<Record<string, import("@strapi/helper-plugin
|
|
1
|
+
export function checkFormValidity(data: any, schema: any): Promise<Record<string, import("@strapi/helper-plugin").TranslationMessage> | null>;
|
|
2
2
|
//# sourceMappingURL=form.d.ts.map
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"notification.navigation.submit": "S'han desat els canvis de navegació",
|
|
28
28
|
"pages.main.header.localization.select.placeholder": "Seleccioneu la configuració regional",
|
|
29
29
|
"pages.main.search.placeholder": "Escriviu per començar a cercar...",
|
|
30
|
+
"pages.main.search.subLabel": "appuyez sur ENTER pour mettre en surbrillance l'élément suivant",
|
|
30
31
|
"pages.settings.actions.disableI18n.confirmation.confirm": "entenc",
|
|
31
32
|
"pages.settings.actions.disableI18n.confirmation.description.line1": "Esteu desactivant la internacionalització per a la navegació. Les navegacions per a configuracions regionals diferents de les predeterminades no estan disponibles per a la visualització i modificacions mitjançant aquesta extensió.",
|
|
32
33
|
"pages.settings.actions.disableI18n.confirmation.description.line2": "Podeu optar per eliminar les navegacions per a altres configuracions regionals.",
|
|
@@ -9,12 +9,14 @@
|
|
|
9
9
|
"header.action.expandAll": "Expand All",
|
|
10
10
|
"submit.cta.cancel": "Cancel",
|
|
11
11
|
"submit.cta.save": "Save",
|
|
12
|
+
"submit.cta.cache.purge": "Clear cache",
|
|
12
13
|
"empty": "Your navigation is empty",
|
|
13
14
|
"empty.cta": "Create first item",
|
|
14
15
|
"popup.item.header.view": "View navigation item",
|
|
15
16
|
"popup.item.header.edit": "Edit navigation item",
|
|
16
17
|
"popup.item.header.new": "New navigation item",
|
|
17
18
|
"popup.item.form.title.label": "Title",
|
|
19
|
+
"popup.item.form.autoSync.label": "Read fields from related",
|
|
18
20
|
"popup.item.form.title.placeholder": "Enter the item title or leave blank to pull from related entity",
|
|
19
21
|
"popup.item.form.uiRouterKey.label": "UI router key",
|
|
20
22
|
"popup.item.form.uiRouterKey.placeholder": "If empty, auto generated by \"Title\"",
|
|
@@ -65,10 +67,14 @@
|
|
|
65
67
|
"popup.navigation.manage.button.goBack": "Go back",
|
|
66
68
|
"popup.navigation.manage.button.cancel": "Cancel",
|
|
67
69
|
"popup.navigation.manage.button.delete": "Delete",
|
|
70
|
+
"popup.navigation.manage.button.purge": "Clear read cache",
|
|
71
|
+
"popup.navigation.manage.footer.button.purge": "Clear",
|
|
72
|
+
"popup.navigation.manage.purge.header": "This action will clear API read cache. This will result in brief slowdown of reads for navigations below.",
|
|
68
73
|
"popup.navigation.manage.button.save": "Save",
|
|
69
74
|
"popup.navigation.manage.button.edit": "Edit",
|
|
70
75
|
"popup.navigation.manage.button.create": "Create",
|
|
71
76
|
"popup.navigation.manage.delete.header": "Following navigations will be removed:",
|
|
77
|
+
"popup.navigation.manage.header.CACHE_PURGE": "Read cache clear",
|
|
72
78
|
"popup.navigation.manage.header.LIST": "All navigations",
|
|
73
79
|
"popup.navigation.manage.header.CREATE": "New navigation",
|
|
74
80
|
"popup.navigation.manage.header.DELETE": "Deleting",
|
|
@@ -84,11 +90,13 @@
|
|
|
84
90
|
"notification.navigation.item.relation.status.published": "published",
|
|
85
91
|
"notification.error": "Error while processing request.",
|
|
86
92
|
"notification.error.customField.type": "Unsupported type of custom field",
|
|
93
|
+
"notification.error.customField.media.missing": "Media input component is missing",
|
|
87
94
|
"notification.error.item.relation": "Relations provided in some items are incorrect",
|
|
88
95
|
"notification.error.item.slug": "Unable to create valid UI Router Key(slug) from \"{ query }\". \"{ result }\" received",
|
|
89
96
|
"page.auth.noAccess": "No access",
|
|
90
97
|
"page.auth.not.allowed": "Oops! It seems like You do not have access to this page...",
|
|
91
98
|
"pages.main.search.placeholder": "Type to start searching...",
|
|
99
|
+
"pages.main.search.subLabel": "press ENTER to highlight next item",
|
|
92
100
|
"pages.main.header.localization.select.placeholder": "Select locale",
|
|
93
101
|
"pages.settings.general.title": "General settings",
|
|
94
102
|
"pages.settings.additional.title": "Additional settings",
|
|
@@ -131,6 +139,8 @@
|
|
|
131
139
|
"pages.settings.form.cascadeMenuAttached.label": "Cascade menu attached",
|
|
132
140
|
"pages.settings.form.cascadeMenuAttached.hint": "Disable if you don't want \"Menu attached\" to cascade on child items",
|
|
133
141
|
"pages.settings.form.contentTypes.label": "Enable navigation for",
|
|
142
|
+
"pages.settings.form.cache.label": "REST cache",
|
|
143
|
+
"pages.settings.form.cache.hint": "Enable caching of client read requests",
|
|
134
144
|
"pages.settings.form.i18n.label": "i18n",
|
|
135
145
|
"pages.settings.form.i18n.hint": "Enable internationalisation",
|
|
136
146
|
"pages.settings.form.i18n.hint.missingDefaultLocale": "Default locale missing!",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"empty.cta": "Créer un premier élément",
|
|
10
10
|
"popup.item.header": "Modifiez les éléments de navigation",
|
|
11
11
|
"popup.item.form.title.label": "Titre",
|
|
12
|
+
"popup.item.form.autoSync.label": "Lire les champs associés",
|
|
12
13
|
"popup.item.form.title.placeholder": "Saisissez le titre de l'élément ou laissez le champ vide pour utiliser celui de l'entité associée",
|
|
13
14
|
"popup.item.form.uiRouterKey.label": "Clé de routeur pour l'interface utilisateur",
|
|
14
15
|
"popup.item.form.uiRouterKey.placeholder": "Si vide, généré automatiquement par \"Title\"",
|
package/admin/src/utils/api.js
CHANGED
|
@@ -9,7 +9,7 @@ const fp_1 = require("lodash/fp");
|
|
|
9
9
|
const pluginId_1 = __importDefault(require("../pluginId"));
|
|
10
10
|
const fetchNavigationConfig = () => (0, helper_plugin_1.request)(`/${pluginId_1.default}/settings/config`, { method: 'GET' });
|
|
11
11
|
exports.fetchNavigationConfig = fetchNavigationConfig;
|
|
12
|
-
const updateNavigationConfig = ({ body }) => (0, helper_plugin_1.request)(`/${pluginId_1.default}/config`, { method: 'PUT', body }, true);
|
|
12
|
+
const updateNavigationConfig = ({ body }) => (0, helper_plugin_1.request)(`/${pluginId_1.default}/config`, { method: 'PUT', body: body }, true);
|
|
13
13
|
exports.updateNavigationConfig = updateNavigationConfig;
|
|
14
14
|
const restoreNavigationConfig = () => (0, helper_plugin_1.request)(`/${pluginId_1.default}/config`, { method: 'DELETE' }, true);
|
|
15
15
|
exports.restoreNavigationConfig = restoreNavigationConfig;
|
package/package.json
CHANGED
|
@@ -1,106 +1,81 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
"name": "strapi-plugin-navigation",
|
|
3
|
+
"version": "2.5.0",
|
|
4
|
+
"description": "Strapi - Navigation plugin",
|
|
5
|
+
"strapi": {
|
|
6
|
+
"name": "navigation",
|
|
7
|
+
"displayName": "Navigation",
|
|
8
|
+
"description": "Create consumable navigation with a simple and straightforward visual builder",
|
|
9
|
+
"kind": "plugin"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/VirtusLab/strapi-plugin-navigation"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {},
|
|
16
|
+
"types": "./types/index.d.ts",
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@sindresorhus/slugify": "1.1.0",
|
|
19
|
+
"@strapi/utils": "^4.23.1",
|
|
20
|
+
"lodash": "^4.17.21",
|
|
21
|
+
"pluralize": "^8.0.0",
|
|
22
|
+
"react": "^17.0.0 || ^18.0.0",
|
|
23
|
+
"react-dom": "^17.0.0 || ^18.0.0",
|
|
24
|
+
"react-intl": "6.4.1",
|
|
25
|
+
"react-router": "^5.3.4",
|
|
26
|
+
"react-router-dom": "^5.2.0",
|
|
27
|
+
"uuid": "^8.3.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {},
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"@strapi/data-transfer": "4.23.1",
|
|
32
|
+
"@strapi/strapi": "4.x",
|
|
33
|
+
"react": "^17.0.0 || ^18.0.0",
|
|
34
|
+
"react-dom": "^17.0.0 || ^18.0.0",
|
|
35
|
+
"react-router-dom": "^5.2.0",
|
|
36
|
+
"styled-components": "^5.2.1"
|
|
37
|
+
},
|
|
38
|
+
"author": {
|
|
39
|
+
"name": "VirtusLab",
|
|
40
|
+
"email": "strapi@virtuslab.com",
|
|
41
|
+
"url": "https://virtuslab.com"
|
|
42
|
+
},
|
|
43
|
+
"maintainers": [
|
|
44
|
+
{
|
|
45
|
+
"name": "VirtusLab // Mateusz Ziarko",
|
|
46
|
+
"email": "mziarko@virtuslab.com",
|
|
47
|
+
"url": "https://virtuslab.com"
|
|
10
48
|
},
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
49
|
+
{
|
|
50
|
+
"name": "VirtusLab // Maksymilian Pamuła",
|
|
51
|
+
"email": "mpamula@virtuslab.com",
|
|
52
|
+
"url": "https://virtuslab.com"
|
|
14
53
|
},
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"test:unit:watch": "jest --watch",
|
|
20
|
-
"build": "tsc",
|
|
21
|
-
"build:dev": "npm run build && cp ./package.json ./build && cd ./build && yarn",
|
|
22
|
-
"clean": "rm -rf build",
|
|
23
|
-
"develop": "nodemon --exec \"npm run build:dev\""
|
|
54
|
+
{
|
|
55
|
+
"name": "VirtusLab // Maciej Witkowski",
|
|
56
|
+
"email": "mwitkowski@virtuslab.com",
|
|
57
|
+
"url": "https://virtuslab.com"
|
|
24
58
|
},
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"@types/jest": "^27.4.1",
|
|
40
|
-
"@types/lodash": "^4.14.181",
|
|
41
|
-
"@types/pluralize": "^0.0.29",
|
|
42
|
-
"@types/uuid": "^8.3.4",
|
|
43
|
-
"codecov": "^3.7.2",
|
|
44
|
-
"formik": "^2.2.9",
|
|
45
|
-
"jest": "^27.5.1",
|
|
46
|
-
"jest-cli": "^27.5.1",
|
|
47
|
-
"jest-styled-components": "^7.0.2",
|
|
48
|
-
"koa": "^2.8.0",
|
|
49
|
-
"nodemon": "^2.0.15",
|
|
50
|
-
"strapi-typed": "1.0.17",
|
|
51
|
-
"ts-jest": "^27.1.3",
|
|
52
|
-
"ts-node": "^10.7.0",
|
|
53
|
-
"typescript": "5.2.2"
|
|
54
|
-
},
|
|
55
|
-
"peerDependencies": {
|
|
56
|
-
"@strapi/data-transfer": "4.15.5",
|
|
57
|
-
"@strapi/strapi": "4.x",
|
|
58
|
-
"react": "^17.0.0 || ^18.0.0",
|
|
59
|
-
"react-dom": "^17.0.0 || ^18.0.0",
|
|
60
|
-
"react-router-dom": "^5.2.0",
|
|
61
|
-
"styled-components": "^5.2.1"
|
|
62
|
-
},
|
|
63
|
-
"author": {
|
|
64
|
-
"name": "VirtusLab",
|
|
65
|
-
"email": "strapi@virtuslab.com",
|
|
66
|
-
"url": "https://virtuslab.com"
|
|
67
|
-
},
|
|
68
|
-
"maintainers": [
|
|
69
|
-
{
|
|
70
|
-
"name": "VirtusLab // Mateusz Ziarko",
|
|
71
|
-
"email": "mziarko@virtuslab.com",
|
|
72
|
-
"url": "https://virtuslab.com"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"name": "VirtusLab // Maksymilian Pamuła",
|
|
76
|
-
"email": "mpamula@virtuslab.com",
|
|
77
|
-
"url": "https://virtuslab.com"
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"name": "VirtusLab // Maciej Witkowski",
|
|
81
|
-
"email": "mwitkowski@virtuslab.com",
|
|
82
|
-
"url": "https://virtuslab.com"
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
"name": "VirtusLab // Tomasz Puch",
|
|
86
|
-
"email": "tpuch@virtuslab.com",
|
|
87
|
-
"url": "https://virtuslab.com"
|
|
88
|
-
}
|
|
89
|
-
],
|
|
90
|
-
"engines": {
|
|
91
|
-
"node": ">=18.0.0 <=20.x.x",
|
|
92
|
-
"npm": ">=6.0.0"
|
|
93
|
-
},
|
|
94
|
-
"nodemonConfig": {
|
|
95
|
-
"ignore": [
|
|
96
|
-
"./build/**/*"
|
|
97
|
-
],
|
|
98
|
-
"ext": "js,json,ts"
|
|
99
|
-
},
|
|
100
|
-
"keywords": [
|
|
101
|
-
"strapi",
|
|
102
|
-
"plugin",
|
|
103
|
-
"navigation"
|
|
59
|
+
{
|
|
60
|
+
"name": "VirtusLab // Tomasz Puch",
|
|
61
|
+
"email": "tpuch@virtuslab.com",
|
|
62
|
+
"url": "https://virtuslab.com"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"engines": {
|
|
66
|
+
"node": ">=18.0.0 <=20.x.x",
|
|
67
|
+
"npm": ">=6.0.0"
|
|
68
|
+
},
|
|
69
|
+
"nodemonConfig": {
|
|
70
|
+
"ignore": [
|
|
71
|
+
"./build/**/*"
|
|
104
72
|
],
|
|
105
|
-
"
|
|
106
|
-
}
|
|
73
|
+
"ext": "js,json,ts"
|
|
74
|
+
},
|
|
75
|
+
"keywords": [
|
|
76
|
+
"strapi",
|
|
77
|
+
"plugin",
|
|
78
|
+
"navigation"
|
|
79
|
+
],
|
|
80
|
+
"license": "MIT"
|
|
81
|
+
}
|
|
@@ -6,6 +6,7 @@ const permissions_1 = __importDefault(require("../../permissions"));
|
|
|
6
6
|
const graphql_1 = require("../graphql");
|
|
7
7
|
const navigation_1 = require("../navigation");
|
|
8
8
|
const config_1 = require("../config");
|
|
9
|
+
const cache_1 = require("../cache");
|
|
9
10
|
const assertUserPermissionsAvailability = ({ strapi }) => {
|
|
10
11
|
if (!strapi.plugin("users-permissions")) {
|
|
11
12
|
throw new Error("In order to make the navigation plugin work the users-permissions plugin is required");
|
|
@@ -14,6 +15,7 @@ const assertUserPermissionsAvailability = ({ strapi }) => {
|
|
|
14
15
|
const setupGraphQL = graphql_1.graphQLSetupStrategy;
|
|
15
16
|
const setupNavigation = navigation_1.navigationSetupStrategy;
|
|
16
17
|
const setupConfig = config_1.configSetupStrategy;
|
|
18
|
+
const setupCache = cache_1.setupCacheStrategy;
|
|
17
19
|
const setupPermissions = async ({ strapi }) => {
|
|
18
20
|
const actions = [
|
|
19
21
|
{
|
|
@@ -43,5 +45,6 @@ module.exports = async ({ strapi }) => {
|
|
|
43
45
|
await setupConfig({ strapi });
|
|
44
46
|
await setupGraphQL({ strapi });
|
|
45
47
|
await setupNavigation({ strapi });
|
|
48
|
+
await setupCache({ strapi });
|
|
46
49
|
};
|
|
47
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./setupStrategy"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addCacheConfigFields = void 0;
|
|
4
|
+
const utils_1 = require("./utils");
|
|
5
|
+
const addCacheConfigFields = async ({ previousConfig, strapi, }) => {
|
|
6
|
+
const { enabled, hasCachePlugin } = await (0, utils_1.getCacheStatus)({
|
|
7
|
+
strapi,
|
|
8
|
+
});
|
|
9
|
+
return {
|
|
10
|
+
...previousConfig,
|
|
11
|
+
isCacheEnabled: enabled,
|
|
12
|
+
isCachePluginEnabled: hasCachePlugin,
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
exports.addCacheConfigFields = addCacheConfigFields;
|
|
16
|
+
//# sourceMappingURL=serviceEnhancers.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setupCacheStrategy = void 0;
|
|
7
|
+
const router_1 = __importDefault(require("@koa/router"));
|
|
8
|
+
const client_1 = __importDefault(require("../routes/client"));
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
const setupCacheStrategy = async ({ strapi, }) => {
|
|
11
|
+
const { enabled, hasCachePlugin } = await (0, utils_1.getCacheStatus)({ strapi });
|
|
12
|
+
if (hasCachePlugin && enabled) {
|
|
13
|
+
const cachePlugin = strapi.plugin("rest-cache");
|
|
14
|
+
const createCacheMiddleware = cachePlugin?.middleware("recv");
|
|
15
|
+
if (!createCacheMiddleware) {
|
|
16
|
+
console.warn("Cache middleware not present in cache plugin. Stopping");
|
|
17
|
+
console.warn("Notify strapi-navigation-plugin-team");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const pluginOption = strapi.config.get("plugin.rest-cache");
|
|
21
|
+
const router = new router_1.default();
|
|
22
|
+
const buildPathFrom = (route) => `/api/${route.info.pluginName}${route.path}`;
|
|
23
|
+
const buildFrom = (route) => ({
|
|
24
|
+
maxAge: pluginOption.strategy?.maxAge ?? 6 * 60 * 1000,
|
|
25
|
+
path: buildPathFrom(route),
|
|
26
|
+
method: "GET",
|
|
27
|
+
paramNames: ["idOrSlug", "childUIKey"],
|
|
28
|
+
keys: { useHeaders: [], useQueryParams: true },
|
|
29
|
+
hitpass: false,
|
|
30
|
+
});
|
|
31
|
+
client_1.default.routes.forEach((route) => {
|
|
32
|
+
router.get(buildPathFrom(route), createCacheMiddleware({ cacheRouteConfig: buildFrom(route) }, { strapi }));
|
|
33
|
+
});
|
|
34
|
+
strapi.server.router.use(router.routes());
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports.setupCacheStrategy = setupCacheStrategy;
|
|
38
|
+
//# sourceMappingURL=setupStrategy.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IStrapi } from "strapi-typed";
|
|
2
|
+
export type AddCacheConfigFieldsInput<T> = {
|
|
3
|
+
previousConfig: T;
|
|
4
|
+
strapi: IStrapi;
|
|
5
|
+
viaSettingsPage?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type CacheConfigFields = {
|
|
8
|
+
isCacheEnabled: boolean;
|
|
9
|
+
isCachePluginEnabled: boolean;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IStrapi } from "strapi-typed";
|
|
2
|
+
type GetCacheStatusInput = {
|
|
3
|
+
strapi: IStrapi;
|
|
4
|
+
};
|
|
5
|
+
type CacheStatus = {
|
|
6
|
+
hasCachePlugin: boolean;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const getCacheStatus: ({ strapi, }: GetCacheStatusInput) => Promise<CacheStatus>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCacheStatus = void 0;
|
|
4
|
+
const getCacheStatus = async ({ strapi, }) => {
|
|
5
|
+
const cachePlugin = strapi.plugin("rest-cache");
|
|
6
|
+
const hasCachePlugin = !!cachePlugin;
|
|
7
|
+
const pluginStore = strapi.store({
|
|
8
|
+
type: "plugin",
|
|
9
|
+
name: "navigation",
|
|
10
|
+
});
|
|
11
|
+
const config = await pluginStore.get({
|
|
12
|
+
key: "config",
|
|
13
|
+
});
|
|
14
|
+
return hasCachePlugin
|
|
15
|
+
? { hasCachePlugin, enabled: config.isCacheEnabled }
|
|
16
|
+
: { hasCachePlugin, enabled: false };
|
|
17
|
+
};
|
|
18
|
+
exports.getCacheStatus = getCacheStatus;
|
|
19
|
+
//# sourceMappingURL=utils.js.map
|
package/server/config/index.js
CHANGED
|
@@ -25,6 +25,7 @@ const configSetupStrategy = async ({ strapi }) => {
|
|
|
25
25
|
pruneObsoleteI18nNavigations: false,
|
|
26
26
|
pathDefaultFields: getWithFallback("pathDefaultFields"),
|
|
27
27
|
cascadeMenuAttached: getWithFallback("cascadeMenuAttached"),
|
|
28
|
+
isCacheEnabled: getWithFallback("isCacheEnabled"),
|
|
28
29
|
};
|
|
29
30
|
handleDeletedContentTypes(config, { strapi });
|
|
30
31
|
(0, utils_1.validateAdditionalFields)(config.additionalFields);
|
|
@@ -79,6 +79,7 @@ declare const _default: {
|
|
|
79
79
|
};
|
|
80
80
|
};
|
|
81
81
|
};
|
|
82
|
+
lifecycles: Record<import("../../types").LifeCycleHookName, import("../../types").Effect<import("../../types").LifeCycleEvent<import("../../types").LifeCycleHookName, unknown, Record<string, unknown>>>>;
|
|
82
83
|
};
|
|
83
84
|
"navigation-item": {
|
|
84
85
|
schema: {
|
|
@@ -182,6 +183,7 @@ declare const _default: {
|
|
|
182
183
|
};
|
|
183
184
|
};
|
|
184
185
|
};
|
|
186
|
+
lifecycles: Record<import("../../types").LifeCycleHookName, import("../../types").Effect<import("../../types").LifeCycleEvent<import("../../types").LifeCycleHookName, unknown, Record<string, unknown>>>>;
|
|
185
187
|
};
|
|
186
188
|
"navigations-items-related": {
|
|
187
189
|
schema: {
|
|
@@ -53,6 +53,7 @@ declare const _default: {
|
|
|
53
53
|
};
|
|
54
54
|
};
|
|
55
55
|
};
|
|
56
|
+
lifecycles: Record<import("../../../types").LifeCycleHookName, import("../../../types").Effect<import("../../../types").LifeCycleEvent<import("../../../types").LifeCycleHookName, unknown, Record<string, unknown>>>>;
|
|
56
57
|
};
|
|
57
58
|
export default _default;
|
|
58
59
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -3,8 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const lifecycles_1 = __importDefault(require("./lifecycles"));
|
|
6
7
|
const schema_1 = __importDefault(require("./schema"));
|
|
7
8
|
exports.default = {
|
|
8
|
-
schema: schema_1.default
|
|
9
|
+
schema: schema_1.default,
|
|
10
|
+
lifecycles: lifecycles_1.default,
|
|
9
11
|
};
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: Record<import("../../../types").LifeCycleHookName, import("../../../types").Effect<import("../../../types").LifeCycleEvent<import("../../../types").LifeCycleHookName, unknown, Record<string, unknown>>>>;
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=lifecycles.d.ts.map
|
|
@@ -100,6 +100,7 @@ declare const _default: {
|
|
|
100
100
|
};
|
|
101
101
|
};
|
|
102
102
|
};
|
|
103
|
+
lifecycles: Record<import("../../../types").LifeCycleHookName, import("../../../types").Effect<import("../../../types").LifeCycleEvent<import("../../../types").LifeCycleHookName, unknown, Record<string, unknown>>>>;
|
|
103
104
|
};
|
|
104
105
|
export default _default;
|
|
105
106
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -3,8 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const lifecycles_1 = __importDefault(require("./lifecycles"));
|
|
6
7
|
const schema_1 = __importDefault(require("./schema"));
|
|
7
8
|
exports.default = {
|
|
8
|
-
schema: schema_1.default
|
|
9
|
+
schema: schema_1.default,
|
|
10
|
+
lifecycles: lifecycles_1.default
|
|
9
11
|
};
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: Record<import("../../../types").LifeCycleHookName, import("../../../types").Effect<import("../../../types").LifeCycleEvent<import("../../../types").LifeCycleHookName, unknown, Record<string, unknown>>>>;
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=lifecycles.d.ts.map
|