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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { AdditionalFieldInputProps } from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdditionalFieldInputProps } from "./types";
|
|
3
3
|
declare const AdditionalFieldInput: React.FC<AdditionalFieldInputProps>;
|
|
4
4
|
export default AdditionalFieldInput;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -34,9 +34,24 @@ const lodash_1 = require("lodash");
|
|
|
34
34
|
const react_intl_1 = require("react-intl");
|
|
35
35
|
const DEFAULT_STRING_VALUE = "";
|
|
36
36
|
const handlerFactory = ({ field, prop, onChange }) => ({ target }) => {
|
|
37
|
-
onChange(field.name, target[prop]);
|
|
37
|
+
onChange(field.name, target[prop], field.type);
|
|
38
38
|
};
|
|
39
|
-
const
|
|
39
|
+
const mediaAttribute = {
|
|
40
|
+
type: "media",
|
|
41
|
+
multiple: false,
|
|
42
|
+
required: false,
|
|
43
|
+
allowedTypes: ["images"],
|
|
44
|
+
pluginOptions: {
|
|
45
|
+
i18n: {
|
|
46
|
+
localized: false,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
const AdditionalFieldInput = ({ field, isLoading, onChange, value: baseValue, disabled, error, }) => {
|
|
51
|
+
const { fields } = (0, helper_plugin_1.useLibrary)();
|
|
52
|
+
const value = (0, react_1.useMemo)(() => field.type === "media" && baseValue
|
|
53
|
+
? JSON.parse(baseValue)
|
|
54
|
+
: baseValue, [baseValue, field.type]);
|
|
40
55
|
const toggleNotification = (0, helper_plugin_1.useNotification)();
|
|
41
56
|
const { formatMessage } = (0, react_intl_1.useIntl)();
|
|
42
57
|
const defaultInputProps = (0, react_1.useMemo)(() => ({
|
|
@@ -48,21 +63,34 @@ const AdditionalFieldInput = ({ field, isLoading, onChange, value, disabled, err
|
|
|
48
63
|
}), [field, isLoading, error]);
|
|
49
64
|
const handleBoolean = (0, react_1.useMemo)(() => handlerFactory({ field, onChange, prop: "checked" }), [onChange, field]);
|
|
50
65
|
const handleString = (0, react_1.useMemo)(() => handlerFactory({ field, onChange, prop: "value" }), [onChange, field]);
|
|
66
|
+
const handleMedia = (0, react_1.useMemo)(() => handlerFactory({ field, onChange, prop: "value" }), [onChange, field]);
|
|
67
|
+
const MediaInput = (fields?.media ??
|
|
68
|
+
(() => react_1.default.createElement(react_1.default.Fragment, null)));
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
70
|
+
if (!MediaInput) {
|
|
71
|
+
toggleNotification({
|
|
72
|
+
type: "warning",
|
|
73
|
+
message: (0, translations_1.getTrad)("notification.error.customField.media.missing"),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}, []);
|
|
51
77
|
switch (field.type) {
|
|
52
|
-
case
|
|
78
|
+
case "boolean":
|
|
53
79
|
if (!(0, lodash_1.isNil)(value))
|
|
54
80
|
(0, types_1.assertBoolean)(value);
|
|
55
81
|
return (react_1.default.createElement(ToggleInput_1.ToggleInput, { ...defaultInputProps, checked: !!value, onChange: handleBoolean, onLabel: "true", offLabel: "false" }));
|
|
56
|
-
case
|
|
82
|
+
case "string":
|
|
57
83
|
if (!(0, lodash_1.isNil)(value))
|
|
58
84
|
(0, types_1.assertString)(value);
|
|
59
85
|
return (react_1.default.createElement(TextInput_1.TextInput, { ...defaultInputProps, onChange: handleString, value: value || DEFAULT_STRING_VALUE }));
|
|
60
|
-
case
|
|
61
|
-
return (react_1.default.createElement(Select_1.Select, { ...defaultInputProps, onChange: (v) => onChange(field.name, v), value: (0, lodash_1.isNil)(value) ? field.multi ? [] : null : value, multi: field.multi, withTags: field.multi }, field.options.map((option, index) => (react_1.default.createElement(Select_1.Option, { key: `${field.name}-option-${index}`, value: option }, option)))));
|
|
86
|
+
case "select":
|
|
87
|
+
return (react_1.default.createElement(Select_1.Select, { ...defaultInputProps, onChange: (v) => onChange(field.name, v, "select"), value: (0, lodash_1.isNil)(value) ? (field.multi ? [] : null) : value, multi: field.multi, withTags: field.multi }, field.options.map((option, index) => (react_1.default.createElement(Select_1.Option, { key: `${field.name}-option-${index}`, value: option }, option)))));
|
|
88
|
+
case "media":
|
|
89
|
+
return (react_1.default.createElement(MediaInput, { ...defaultInputProps, id: "navigation-item-media", onChange: handleMedia, value: value || [], intlLabel: defaultInputProps.label, attribute: mediaAttribute }));
|
|
62
90
|
default:
|
|
63
91
|
toggleNotification({
|
|
64
|
-
type:
|
|
65
|
-
message: (0, translations_1.getTrad)(
|
|
92
|
+
type: "warning",
|
|
93
|
+
message: (0, translations_1.getTrad)("notification.error.customField.type"),
|
|
66
94
|
});
|
|
67
95
|
throw new Error(`Type of custom field is unsupported`);
|
|
68
96
|
}
|
|
@@ -3,7 +3,7 @@ import { NavigationItemCustomField } from "../../../../types";
|
|
|
3
3
|
export type AdditionalFieldInputProps = {
|
|
4
4
|
field: NavigationItemCustomField;
|
|
5
5
|
isLoading: boolean;
|
|
6
|
-
onChange: (name: string, value: string) => void;
|
|
6
|
+
onChange: (name: string, value: string, fieldType: string) => void;
|
|
7
7
|
value: string | boolean | string[] | null;
|
|
8
8
|
disabled: boolean;
|
|
9
9
|
error: MessageDescriptor | null;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const DragButton: React.ForwardRefExoticComponent<
|
|
2
|
+
declare const DragButton: React.ForwardRefExoticComponent<{
|
|
3
|
+
isActive?: boolean | undefined;
|
|
4
|
+
} & React.RefAttributes<unknown>>;
|
|
3
5
|
export default DragButton;
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -16,10 +16,11 @@ const DragButtonWrapper = styled_components_1.default.span `
|
|
|
16
16
|
width: ${DRAG_BUTTON_SIZE_IN_REM}rem;
|
|
17
17
|
padding: ${({ theme }) => theme.spaces[2]};
|
|
18
18
|
|
|
19
|
-
background: ${({ theme }) => theme.colors.neutral0};
|
|
19
|
+
background: ${({ theme, isActive }) => isActive ? theme.colors.neutral150 : theme.colors.neutral0};
|
|
20
20
|
border: 1px solid ${({ theme }) => theme.colors.neutral200};
|
|
21
21
|
border-radius: ${({ theme }) => theme.borderRadius};
|
|
22
22
|
cursor: pointer;
|
|
23
|
+
transition: background-color 0.3s ease-in;
|
|
23
24
|
|
|
24
25
|
svg {
|
|
25
26
|
height: ${({ theme }) => theme.spaces[3]};
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const styled_components_1 = __importDefault(require("styled-components"));
|
|
7
8
|
const Flex_1 = require("@strapi/design-system/Flex");
|
|
8
9
|
const Typography_1 = require("@strapi/design-system/Typography");
|
|
9
10
|
const IconButton_1 = require("@strapi/design-system/IconButton");
|
|
@@ -15,9 +16,9 @@ const utils_1 = require("../../../utils");
|
|
|
15
16
|
const icons_1 = require("./icons");
|
|
16
17
|
const wrapperStyle = { zIndex: 2 };
|
|
17
18
|
const pathWrapperStyle = { maxWidth: "425px" };
|
|
18
|
-
const ItemCardHeader = ({ title, path, icon, removed, canUpdate, onItemRemove, onItemEdit, onItemRestore, dragRef }) => (react_1.default.createElement(Wrapper_1.default, null,
|
|
19
|
+
const ItemCardHeader = ({ title, path, icon, removed, canUpdate, onItemRemove, onItemEdit, onItemRestore, dragRef, isSearchActive }) => (react_1.default.createElement(Wrapper_1.default, null,
|
|
19
20
|
react_1.default.createElement(Flex_1.Flex, { alignItems: "center" },
|
|
20
|
-
canUpdate && (react_1.default.createElement(DragButton_1.default, { ref: dragRef })),
|
|
21
|
+
canUpdate && (react_1.default.createElement(DragButton_1.default, { ref: dragRef, isActive: isSearchActive })),
|
|
21
22
|
react_1.default.createElement(Typography_1.Typography, { variant: "omega", fontWeight: "bold" }, title),
|
|
22
23
|
react_1.default.createElement(Typography_1.Typography, { variant: "omega", fontWeight: "bold", textColor: 'neutral500', ellipsis: true, style: pathWrapperStyle }, path),
|
|
23
24
|
react_1.default.createElement(Flex_1.Flex, null,
|
|
@@ -25,9 +26,13 @@ const ItemCardHeader = ({ title, path, icon, removed, canUpdate, onItemRemove, o
|
|
|
25
26
|
react_1.default.createElement(Flex_1.Flex, { alignItems: "center", style: wrapperStyle },
|
|
26
27
|
removed &&
|
|
27
28
|
(react_1.default.createElement(ItemCardBadge_1.default, { borderColor: "danger200", backgroundColor: "danger100", textColor: "danger600" }, (0, utils_1.getMessage)("components.navigationItem.badge.removed"))),
|
|
28
|
-
react_1.default.createElement(
|
|
29
|
+
react_1.default.createElement(IconButton, { isActive: isSearchActive, disabled: removed, onClick: onItemEdit, label: (0, utils_1.getMessage)(`components.navigationItem.action.${canUpdate ? 'edit' : 'view'}`, canUpdate ? 'Edit' : 'View'), icon: canUpdate ? icons_1.pencilIcon : icons_1.eyeIcon }),
|
|
29
30
|
canUpdate && (react_1.default.createElement(react_1.default.Fragment, null, removed ?
|
|
30
|
-
react_1.default.createElement(
|
|
31
|
-
react_1.default.createElement(
|
|
31
|
+
react_1.default.createElement(IconButton, { isActive: isSearchActive, onClick: onItemRestore, label: (0, utils_1.getMessage)('components.navigationItem.action.restore', "Restore"), icon: icons_1.refreshIcon }) :
|
|
32
|
+
react_1.default.createElement(IconButton, { isActive: isSearchActive, onClick: onItemRemove, label: (0, utils_1.getMessage)('components.navigationItem.action.remove', "Remove"), icon: icons_1.trashIcon }))))));
|
|
33
|
+
const IconButton = (0, styled_components_1.default)(IconButton_1.IconButton) `
|
|
34
|
+
transition: background-color 0.3s ease-in;
|
|
35
|
+
${({ isActive, theme }) => isActive ? `background-color: ${theme.colors.neutral150} ;` : ''}
|
|
36
|
+
`;
|
|
32
37
|
exports.default = ItemCardHeader;
|
|
33
38
|
//# sourceMappingURL=index.js.map
|
|
@@ -30,6 +30,7 @@ const react_1 = __importStar(require("react"));
|
|
|
30
30
|
const prop_types_1 = __importDefault(require("prop-types"));
|
|
31
31
|
const react_dnd_1 = require("react-dnd");
|
|
32
32
|
const lodash_1 = require("lodash");
|
|
33
|
+
const styled_components_1 = require("styled-components");
|
|
33
34
|
const Card_1 = require("@strapi/design-system/Card");
|
|
34
35
|
const Divider_1 = require("@strapi/design-system/Divider");
|
|
35
36
|
const Flex_1 = require("@strapi/design-system/Flex");
|
|
@@ -47,7 +48,7 @@ const utils_1 = require("../../utils");
|
|
|
47
48
|
const CollapseButton_1 = __importDefault(require("../CollapseButton"));
|
|
48
49
|
const Item = (props) => {
|
|
49
50
|
const { item, isLast = false, level = 0, levelPath = '', allowedLevels, relatedRef, isParentAttachedToMenu, onItemLevelAdd, onItemRemove, onItemRestore, onItemEdit, onItemReOrder, onItemToggleCollapse, error, displayChildren, config = {}, permissions = {}, } = props;
|
|
50
|
-
const { viewId, title, type, path, removed, externalPath, menuAttached, collapsed, structureId, items = [], } = item;
|
|
51
|
+
const { viewId, title, type, path, removed, externalPath, menuAttached, collapsed, structureId, items = [], isSearchActive, } = item;
|
|
51
52
|
const { contentTypes = [], contentTypesNameFields } = config;
|
|
52
53
|
const isExternal = type === utils_1.navigationItemType.EXTERNAL;
|
|
53
54
|
const isWrapper = type === utils_1.navigationItemType.WRAPPER;
|
|
@@ -110,11 +111,29 @@ const Item = (props) => {
|
|
|
110
111
|
const generatePreviewUrl = entity => {
|
|
111
112
|
const { isSingle } = contentType;
|
|
112
113
|
const entityLocale = entity?.locale ? `?plugins[i18n][locale]=${entity?.locale}` : '';
|
|
113
|
-
return `/content-manager/${isSingle ? '
|
|
114
|
+
return `/content-manager/${isSingle ? 'single-types' : 'collection-types'}/${entity?.__collectionUid}${!isSingle ? '/' + entity?.id : ''}${entityLocale}`;
|
|
114
115
|
};
|
|
115
116
|
const onNewItemClick = (0, react_1.useCallback)((event) => canUpdate && onItemLevelAdd(event, viewId, isNextMenuAllowedLevel, absolutePath, menuAttached, `${structureId}.${items.length}`), [viewId, isNextMenuAllowedLevel, absolutePath, menuAttached, structureId, items, canUpdate]);
|
|
117
|
+
(0, react_1.useEffect)(() => {
|
|
118
|
+
if (isSearchActive) {
|
|
119
|
+
refs.dropRef.current?.scrollIntoView?.({
|
|
120
|
+
behavior: "smooth",
|
|
121
|
+
block: "center",
|
|
122
|
+
inline: "center",
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}, [isSearchActive, refs.dropRef.current]);
|
|
126
|
+
const theme = (0, styled_components_1.useTheme)();
|
|
116
127
|
return (react_1.default.createElement(Wrapper_1.default, { level: level, isLast: isLast, style: { opacity: isDragging ? 0.2 : 1 }, ref: refs ? refs.dropRef : null },
|
|
117
|
-
react_1.default.createElement(Card_1.Card, { style: {
|
|
128
|
+
react_1.default.createElement(Card_1.Card, { style: {
|
|
129
|
+
width: "728px",
|
|
130
|
+
zIndex: 1,
|
|
131
|
+
position: "relative",
|
|
132
|
+
overflow: "hidden",
|
|
133
|
+
backgroundColor: isSearchActive ? theme.colors.neutral150 : undefined,
|
|
134
|
+
borderColor: isSearchActive ? theme.colors.neutral300 : undefined,
|
|
135
|
+
transition: "background-color 0.3s ease-in"
|
|
136
|
+
} },
|
|
118
137
|
removed && (react_1.default.createElement(ItemCardRemovedOverlay_1.ItemCardRemovedOverlay, null)),
|
|
119
138
|
react_1.default.createElement("div", { ref: refs.previewRef },
|
|
120
139
|
react_1.default.createElement(Card_1.CardBody, null,
|
|
@@ -122,7 +141,8 @@ const Item = (props) => {
|
|
|
122
141
|
...item,
|
|
123
142
|
isMenuAllowedLevel,
|
|
124
143
|
isParentAttachedToMenu,
|
|
125
|
-
|
|
144
|
+
isSearchActive: false,
|
|
145
|
+
}, levelPath, isParentAttachedToMenu), onItemRestore: () => onItemRestore(item), dragRef: refs.dragRef, removed: removed, canUpdate: canUpdate, isSearchActive: isSearchActive })),
|
|
126
146
|
react_1.default.createElement(Divider_1.Divider, null),
|
|
127
147
|
!isExternal && (react_1.default.createElement(Card_1.CardBody, { style: { padding: '8px' } },
|
|
128
148
|
react_1.default.createElement(Flex_1.Flex, { style: { width: '100%' }, direction: "row", alignItems: "center", justifyContent: "space-between" },
|
|
@@ -12,7 +12,7 @@ const List = ({ allowedLevels, error, isParentAttachedToMenu = false, items, lev
|
|
|
12
12
|
return (react_1.default.createElement(Item_1.default, { key: `list-item-${item.viewId || n}`, item: itemProps, isLast: n === items.length - 1, relatedRef: relatedRef, level: level, levelPath: levelPath, isParentAttachedToMenu: isParentAttachedToMenu, allowedLevels: allowedLevels, onItemRestore: onItemRestore, onItemLevelAdd: onItemLevelAdd, onItemRemove: onItemRemove, onItemEdit: onItemEdit, onItemReOrder: onItemReOrder, onItemToggleCollapse: onItemToggleCollapse, error: error, displayChildren: displayFlat, config: {
|
|
13
13
|
contentTypes,
|
|
14
14
|
contentTypesNameFields
|
|
15
|
-
}, permissions: permissions }));
|
|
15
|
+
}, permissions: permissions, isSearchActive: !!item.isSearchActive }));
|
|
16
16
|
})));
|
|
17
17
|
List.propTypes = {
|
|
18
18
|
allowedLevels: prop_types_1.default.number,
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import { Effect } from "../../../../types";
|
|
2
|
+
interface Props {
|
|
3
|
+
value: string;
|
|
4
|
+
setValue: Effect<{
|
|
5
|
+
value: string;
|
|
6
|
+
index: number;
|
|
7
|
+
}>;
|
|
8
|
+
initialIndex?: number;
|
|
9
|
+
}
|
|
10
|
+
declare const Search: ({ value, setValue, initialIndex }: Props) => JSX.Element;
|
|
1
11
|
export default Search;
|
|
2
|
-
declare function Search({ value, setValue }: {
|
|
3
|
-
value: any;
|
|
4
|
-
setValue: any;
|
|
5
|
-
}): JSX.Element;
|
|
6
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -30,25 +30,64 @@ const react_1 = __importStar(require("react"));
|
|
|
30
30
|
const react_intl_1 = require("react-intl");
|
|
31
31
|
const IconButton_1 = require("@strapi/design-system/IconButton");
|
|
32
32
|
const Searchbar_1 = require("@strapi/design-system/Searchbar");
|
|
33
|
+
const Typography_1 = require("@strapi/design-system/Typography");
|
|
33
34
|
const Search_1 = __importDefault(require("@strapi/icons/Search"));
|
|
34
35
|
const translations_1 = require("../../translations");
|
|
35
|
-
const
|
|
36
|
+
const DEFAULT_INDEX = 0;
|
|
37
|
+
const Search = ({ value, setValue, initialIndex = DEFAULT_INDEX }) => {
|
|
38
|
+
const [currentValue, setCurrentValue] = (0, react_1.useState)(value);
|
|
39
|
+
const [previousValue, setPreviousValue] = (0, react_1.useState)(value);
|
|
40
|
+
const [currentIndex, setCurrentIndex] = (0, react_1.useState)(initialIndex);
|
|
36
41
|
const [isOpen, setIsOpen] = (0, react_1.useState)(!!value);
|
|
37
42
|
const wrapperRef = (0, react_1.useRef)(null);
|
|
38
43
|
const { formatMessage } = (0, react_intl_1.useIntl)();
|
|
39
44
|
(0, react_1.useEffect)(() => {
|
|
40
45
|
if (isOpen) {
|
|
41
46
|
setTimeout(() => {
|
|
42
|
-
wrapperRef.current
|
|
47
|
+
wrapperRef.current?.querySelector("input")?.focus();
|
|
43
48
|
}, 0);
|
|
44
49
|
}
|
|
45
50
|
}, [isOpen]);
|
|
51
|
+
(0, react_1.useEffect)(() => {
|
|
52
|
+
if (currentIndex && currentValue === previousValue) {
|
|
53
|
+
setValue({
|
|
54
|
+
value: currentValue,
|
|
55
|
+
index: currentIndex,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}, [currentIndex, currentValue, previousValue]);
|
|
59
|
+
(0, react_1.useEffect)(() => {
|
|
60
|
+
if (currentValue !== previousValue) {
|
|
61
|
+
setPreviousValue(currentValue);
|
|
62
|
+
setCurrentIndex(DEFAULT_INDEX);
|
|
63
|
+
setValue({
|
|
64
|
+
value: currentValue,
|
|
65
|
+
index: DEFAULT_INDEX,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}, [currentValue, previousValue]);
|
|
69
|
+
const onKeyDown = (0, react_1.useCallback)((e) => {
|
|
70
|
+
if (e.code.toLowerCase() === "enter") {
|
|
71
|
+
setCurrentIndex((current) => current + 1);
|
|
72
|
+
}
|
|
73
|
+
}, []);
|
|
74
|
+
const onChange = (0, react_1.useCallback)((e) => {
|
|
75
|
+
setCurrentValue(e.target.value);
|
|
76
|
+
}, [setCurrentValue]);
|
|
77
|
+
const onClear = (0, react_1.useCallback)(() => {
|
|
78
|
+
setCurrentValue("");
|
|
79
|
+
setIsOpen(false);
|
|
80
|
+
}, [setCurrentValue, setIsOpen]);
|
|
46
81
|
if (isOpen) {
|
|
47
82
|
return (react_1.default.createElement("div", { ref: wrapperRef },
|
|
48
|
-
react_1.default.createElement(Searchbar_1.Searchbar, { name: "searchbar", onClear:
|
|
49
|
-
id: (0, translations_1.getTradId)(
|
|
50
|
-
defaultMessage:
|
|
51
|
-
}) }, "Search for navigation items")
|
|
83
|
+
react_1.default.createElement(Searchbar_1.Searchbar, { name: "searchbar", onClear: onClear, value: value, size: "S", onChange: onChange, clearLabel: "Clearing the search", placeholder: formatMessage({
|
|
84
|
+
id: (0, translations_1.getTradId)("pages.main.search.placeholder"),
|
|
85
|
+
defaultMessage: "Type to start searching...",
|
|
86
|
+
}), onKeyDown: onKeyDown }, "Search for navigation items"),
|
|
87
|
+
react_1.default.createElement(Typography_1.Typography, { variant: "pi", fontColor: "neutral150", style: { margin: "3px 0 0", display: "inline-block" } }, formatMessage({
|
|
88
|
+
id: (0, translations_1.getTradId)("pages.main.search.subLabel"),
|
|
89
|
+
defaultMessage: "press ENTER to highlight next item",
|
|
90
|
+
}))));
|
|
52
91
|
}
|
|
53
92
|
else {
|
|
54
93
|
return (react_1.default.createElement(IconButton_1.IconButton, { icon: react_1.default.createElement(Search_1.default, null), onClick: () => setIsOpen(!isOpen) }));
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Effect } from '../../../../types';
|
|
3
|
+
import { GenericInputProps } from "@strapi/helper-plugin";
|
|
3
4
|
interface IProps {
|
|
4
5
|
onChange: Effect<string[]>;
|
|
5
6
|
initialValue?: string[];
|
|
@@ -7,7 +8,7 @@ interface IProps {
|
|
|
7
8
|
name?: string;
|
|
8
9
|
label?: string;
|
|
9
10
|
disabled?: boolean;
|
|
10
|
-
error?:
|
|
11
|
+
error?: GenericInputProps["error"];
|
|
11
12
|
}
|
|
12
13
|
declare const TextArrayInput: React.FC<IProps>;
|
|
13
14
|
export default TextArrayInput;
|
|
@@ -13,6 +13,8 @@ export const GET_CONFIG_SUCCEEDED: "GET_CONFIG_SUCCEEDED";
|
|
|
13
13
|
export const SUBMIT_NAVIGATION: "SUBMIT_NAVIGATION";
|
|
14
14
|
export const SUBMIT_NAVIGATION_SUCCEEDED: "SUBMIT_NAVIGATION_SUCCEEDED";
|
|
15
15
|
export const SUBMIT_NAVIGATION_ERROR: "SUBMIT_NAVIGATION_ERROR";
|
|
16
|
+
export const CACHE_CLEAR: "CACHE_CLEAR";
|
|
17
|
+
export const CACHE_CLEAR_SUCCEEDED: "CACHE_CLEAR_SUCCEEDED";
|
|
16
18
|
export const RELOAD_PLUGIN: "RELOAD_PLUGIN";
|
|
17
19
|
export const I18N_COPY_NAVIGATION: "I18N_COPY_NAVIGATION";
|
|
18
20
|
export const I18N_COPY_NAVIGATION_SUCCESS: "I18N_COPY_NAVIGATION_SUCCESS";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.I18N_COPY_NAVIGATION_SUCCESS = exports.I18N_COPY_NAVIGATION = exports.RELOAD_PLUGIN = exports.SUBMIT_NAVIGATION_ERROR = exports.SUBMIT_NAVIGATION_SUCCEEDED = exports.SUBMIT_NAVIGATION = exports.GET_CONFIG_SUCCEEDED = exports.GET_CONFIG = exports.GET_CONTENT_TYPE_ITEMS_SUCCEEDED = exports.GET_CONTENT_TYPE_ITEMS = exports.CHANGE_NAVIGATION_ITEM_POPUP_VISIBILITY = exports.CHANGE_NAVIGATION_POPUP_VISIBILITY = exports.RESET_NAVIGATION_DATA = exports.CHANGE_NAVIGATION_DATA = exports.GET_NAVIGATION_DATA_SUCCEEDED = exports.GET_NAVIGATION_DATA = exports.GET_LIST_DATA_SUCCEEDED = exports.GET_LIST_DATA = void 0;
|
|
3
|
+
exports.I18N_COPY_NAVIGATION_SUCCESS = exports.I18N_COPY_NAVIGATION = exports.RELOAD_PLUGIN = exports.CACHE_CLEAR_SUCCEEDED = exports.CACHE_CLEAR = exports.SUBMIT_NAVIGATION_ERROR = exports.SUBMIT_NAVIGATION_SUCCEEDED = exports.SUBMIT_NAVIGATION = exports.GET_CONFIG_SUCCEEDED = exports.GET_CONFIG = exports.GET_CONTENT_TYPE_ITEMS_SUCCEEDED = exports.GET_CONTENT_TYPE_ITEMS = exports.CHANGE_NAVIGATION_ITEM_POPUP_VISIBILITY = exports.CHANGE_NAVIGATION_POPUP_VISIBILITY = exports.RESET_NAVIGATION_DATA = exports.CHANGE_NAVIGATION_DATA = exports.GET_NAVIGATION_DATA_SUCCEEDED = exports.GET_NAVIGATION_DATA = exports.GET_LIST_DATA_SUCCEEDED = exports.GET_LIST_DATA = void 0;
|
|
4
4
|
exports.GET_LIST_DATA = "GET_LIST_DATA";
|
|
5
5
|
exports.GET_LIST_DATA_SUCCEEDED = "GET_LIST_DATA_SUCCEEDED";
|
|
6
6
|
exports.GET_NAVIGATION_DATA = "GET_NAVIGATION_DATA";
|
|
@@ -16,6 +16,8 @@ exports.GET_CONFIG_SUCCEEDED = "GET_CONFIG_SUCCEEDED";
|
|
|
16
16
|
exports.SUBMIT_NAVIGATION = "SUBMIT_NAVIGATION";
|
|
17
17
|
exports.SUBMIT_NAVIGATION_SUCCEEDED = "SUBMIT_NAVIGATION_SUCCEEDED";
|
|
18
18
|
exports.SUBMIT_NAVIGATION_ERROR = "SUBMIT_NAVIGATION_ERROR";
|
|
19
|
+
exports.CACHE_CLEAR = "CACHE_CLEAR";
|
|
20
|
+
exports.CACHE_CLEAR_SUCCEEDED = "CACHE_CLEAR_SUCCEEDED";
|
|
19
21
|
exports.RELOAD_PLUGIN = "RELOAD_PLUGIN";
|
|
20
22
|
exports.I18N_COPY_NAVIGATION = "I18N_COPY_NAVIGATION";
|
|
21
23
|
exports.I18N_COPY_NAVIGATION_SUCCESS = "I18N_COPY_NAVIGATION_SUCCESS";
|
|
@@ -296,6 +296,33 @@ const DataManagerProvider = ({ children }) => {
|
|
|
296
296
|
}
|
|
297
297
|
};
|
|
298
298
|
const handleNavigationsDeletion = (ids) => Promise.all(ids.map(handleNavigationDeletion));
|
|
299
|
+
const handleNavigationsPurge = async (ids, withLangVersions = false, skipDispatch = false) => {
|
|
300
|
+
if (!skipDispatch) {
|
|
301
|
+
dispatch({ type: actions_1.CACHE_CLEAR });
|
|
302
|
+
}
|
|
303
|
+
try {
|
|
304
|
+
if (ids.length) {
|
|
305
|
+
await Promise.all(ids.map((id) => handleNavigationPurgeReq(id, withLangVersions)));
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
await handleNavigationsPurgeReq();
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
console.error("Unable to clear navigation cache");
|
|
313
|
+
}
|
|
314
|
+
if (!skipDispatch) {
|
|
315
|
+
dispatch({ type: actions_1.CACHE_CLEAR_SUCCEEDED });
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
const handleNavigationPurgeReq = (id, withLangVersions) => (0, helper_plugin_1.request)(`/${pluginId_1.default}/cache/purge/${id}?clearLocalisations=${!!withLangVersions}`, {
|
|
319
|
+
method: "DELETE",
|
|
320
|
+
signal,
|
|
321
|
+
});
|
|
322
|
+
const handleNavigationsPurgeReq = () => (0, helper_plugin_1.request)(`/${pluginId_1.default}/cache/purge`, {
|
|
323
|
+
method: "DELETE",
|
|
324
|
+
signal,
|
|
325
|
+
});
|
|
299
326
|
const handleNavigationDeletion = (id) => (0, helper_plugin_1.request)(`/${pluginId_1.default}/${id}`, {
|
|
300
327
|
method: "DELETE",
|
|
301
328
|
signal,
|
|
@@ -340,6 +367,7 @@ const DataManagerProvider = ({ children }) => {
|
|
|
340
367
|
availableLocale,
|
|
341
368
|
readNavigationItemFromLocale,
|
|
342
369
|
handleNavigationsDeletion,
|
|
370
|
+
handleNavigationsPurge,
|
|
343
371
|
hardReset,
|
|
344
372
|
slugify,
|
|
345
373
|
permissions: {
|
|
@@ -116,6 +116,14 @@ const reducer = (state, action) => (0, immer_1.default)(state, draftState => {
|
|
|
116
116
|
draftState.isLoading = false;
|
|
117
117
|
break;
|
|
118
118
|
}
|
|
119
|
+
case actions_1.CACHE_CLEAR: {
|
|
120
|
+
draftState.isLoading = true;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case actions_1.CACHE_CLEAR_SUCCEEDED: {
|
|
124
|
+
draftState.isLoading = false;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
119
127
|
default:
|
|
120
128
|
return draftState;
|
|
121
129
|
}
|
|
@@ -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("./const"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -37,21 +37,23 @@ const utils_1 = require("../../../../utils");
|
|
|
37
37
|
const lodash_1 = require("lodash");
|
|
38
38
|
const translations_1 = require("../../../../translations");
|
|
39
39
|
const TextArrayInput_1 = __importDefault(require("../../../../components/TextArrayInput"));
|
|
40
|
+
const common_1 = require("../../common");
|
|
40
41
|
const tradPrefix = 'pages.settings.form.customFields.popup.';
|
|
41
|
-
const customFieldsTypes = ["string", "boolean", "select"];
|
|
42
42
|
const prepareSelectOptions = (options) => options.map((option, index) => ({
|
|
43
|
-
key: index
|
|
43
|
+
key: `${option}-${index}`,
|
|
44
44
|
metadatas: {
|
|
45
45
|
intlLabel: {
|
|
46
46
|
id: option,
|
|
47
47
|
defaultMessage: option,
|
|
48
|
-
}
|
|
48
|
+
},
|
|
49
|
+
hidden: false,
|
|
50
|
+
disabled: false,
|
|
49
51
|
},
|
|
50
52
|
value: option,
|
|
51
53
|
label: option,
|
|
52
54
|
}));
|
|
53
55
|
const CustomFieldForm = ({ isEditForm, customField, onSubmit, onClose, usedCustomFieldNames }) => {
|
|
54
|
-
const typeSelectOptions = prepareSelectOptions(customFieldsTypes);
|
|
56
|
+
const typeSelectOptions = prepareSelectOptions(common_1.customFieldsTypes);
|
|
55
57
|
const initialValues = (0, react_1.useMemo)(() => {
|
|
56
58
|
if ((0, lodash_1.isNil)(customField.type)) {
|
|
57
59
|
return formDefinition.defaultValues;
|
|
@@ -85,18 +87,21 @@ const CustomFieldForm = ({ isEditForm, customField, onSubmit, onClose, usedCusto
|
|
|
85
87
|
validationSchema: formDefinition.schemaFactory(usedCustomFieldNames),
|
|
86
88
|
validateOnChange: false,
|
|
87
89
|
});
|
|
88
|
-
const defaultProps = (0, react_1.useCallback)((fieldName) =>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
const defaultProps = (0, react_1.useCallback)((fieldName) => {
|
|
91
|
+
const error = mapError(errors[fieldName]);
|
|
92
|
+
return {
|
|
93
|
+
intlLabel: (0, translations_1.getTrad)(`${tradPrefix}${fieldName}.label`),
|
|
94
|
+
onChange: handleChange,
|
|
95
|
+
name: fieldName,
|
|
96
|
+
value: values[fieldName],
|
|
97
|
+
error,
|
|
98
|
+
};
|
|
99
|
+
}, [values, errors, handleChange]);
|
|
95
100
|
return (react_1.default.createElement("form", null,
|
|
96
101
|
react_1.default.createElement(ModalLayout_1.ModalBody, null,
|
|
97
102
|
react_1.default.createElement(Grid_1.Grid, { gap: 5 },
|
|
98
103
|
react_1.default.createElement(Grid_1.GridItem, { key: "name", col: 12 },
|
|
99
|
-
react_1.default.createElement(helper_plugin_1.GenericInput, { ...defaultProps("name"),
|
|
104
|
+
react_1.default.createElement(helper_plugin_1.GenericInput, { ...defaultProps("name"), placeholder: (0, translations_1.getTrad)(`${tradPrefix}name.placeholder`), description: (0, translations_1.getTrad)(`${tradPrefix}name.description`), type: "text", disabled: isEditForm })),
|
|
100
105
|
react_1.default.createElement(Grid_1.GridItem, { key: "label", col: 12 },
|
|
101
106
|
react_1.default.createElement(helper_plugin_1.GenericInput, { ...defaultProps("label"), placeholder: (0, translations_1.getTrad)(`${tradPrefix}label.placeholder`), description: (0, translations_1.getTrad)(`${tradPrefix}label.description`), type: "text" })),
|
|
102
107
|
react_1.default.createElement(Grid_1.GridItem, { key: "type", col: 12 },
|
|
@@ -111,4 +116,14 @@ const CustomFieldForm = ({ isEditForm, customField, onSubmit, onClose, usedCusto
|
|
|
111
116
|
react_1.default.createElement(ModalLayout_1.ModalFooter, { startActions: react_1.default.createElement(Button_1.Button, { onClick: onClose, variant: "tertiary" }, (0, utils_1.getMessage)('popup.item.form.button.cancel')), endActions: react_1.default.createElement(Button_1.Button, { onClick: handleSubmit, disabled: !(0, lodash_1.isEmpty)(errors) || isSubmitting }, (0, utils_1.getMessage)(`popup.item.form.button.save`)) })));
|
|
112
117
|
};
|
|
113
118
|
exports.default = CustomFieldForm;
|
|
119
|
+
const mapError = (err) => {
|
|
120
|
+
if (typeof err === "string") {
|
|
121
|
+
return err;
|
|
122
|
+
}
|
|
123
|
+
if (typeof err === "object" &&
|
|
124
|
+
err &&
|
|
125
|
+
(err.id || err.description || err.defaultMessage)) {
|
|
126
|
+
return err;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
114
129
|
//# sourceMappingURL=index.js.map
|
|
@@ -61,7 +61,7 @@ const CustomFieldTable = ({ data, onOpenModal, onRemoveCustomField, onToggleCust
|
|
|
61
61
|
type: 'warning',
|
|
62
62
|
message: {
|
|
63
63
|
id: (0, translations_1.getTradId)(`${tradPrefix}confirmation.error`),
|
|
64
|
-
|
|
64
|
+
defaultMessage: 'Something went wrong',
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
import { Form } from "@strapi/helper-plugin";
|
|
1
|
+
import React, { FC } from "react";
|
|
3
2
|
interface Form {
|
|
4
3
|
pruneNavigations: boolean;
|
|
5
4
|
enabled: boolean;
|
|
@@ -14,7 +13,7 @@ interface Props {
|
|
|
14
13
|
onSubmit: SubmitEffect;
|
|
15
14
|
onCancel: CancelEffect;
|
|
16
15
|
}
|
|
17
|
-
export declare const DisableI18nModal:
|
|
16
|
+
export declare const DisableI18nModal: FC<Props>;
|
|
18
17
|
export declare const useDisableI18nModal: (onSubmit: SubmitEffect) => {
|
|
19
18
|
setDisableI18nModalOpened: React.Dispatch<React.SetStateAction<boolean>>;
|
|
20
19
|
setI18nModalOnCancel: React.Dispatch<React.SetStateAction<() => void>>;
|
|
@@ -31,7 +31,6 @@ const react_1 = __importStar(require("react"));
|
|
|
31
31
|
const ConfirmationDialog_1 = __importDefault(require("../../../../components/ConfirmationDialog"));
|
|
32
32
|
const utils_1 = require("../../../../utils");
|
|
33
33
|
const formik_1 = require("formik");
|
|
34
|
-
const helper_plugin_1 = require("@strapi/helper-plugin");
|
|
35
34
|
const Stack_1 = require("@strapi/design-system/Stack");
|
|
36
35
|
const Box_1 = require("@strapi/design-system/Box");
|
|
37
36
|
const Grid_1 = require("@strapi/design-system/Grid");
|
|
@@ -45,25 +44,24 @@ const DisableI18nModal = ({ onSubmit, onCancel }) => {
|
|
|
45
44
|
onSubmit(state);
|
|
46
45
|
}, [onSubmit, state]);
|
|
47
46
|
return (react_1.default.createElement(ConfirmationDialog_1.default, { isVisible: true, header: (0, utils_1.getMessage)("pages.settings.actions.disableI18n.confirmation.header"), labelConfirm: (0, utils_1.getMessage)("pages.settings.actions.disableI18n.confirmation.confirm"), iconConfirm: refreshIcon, mainIcon: refreshIcon, onConfirm: onConfirm, onCancel: onCancel },
|
|
48
|
-
react_1.default.createElement(formik_1.Formik, { initialValues: INITIAL_VALUES, onSubmit: onConfirm }, ({
|
|
47
|
+
react_1.default.createElement(formik_1.Formik, { initialValues: INITIAL_VALUES, onSubmit: onConfirm }, ({ setFieldValue, values }) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
49
48
|
react_1.default.createElement(Grid_1.Grid, { gap: 4 },
|
|
50
49
|
react_1.default.createElement(Grid_1.GridItem, { col: 12 },
|
|
51
50
|
react_1.default.createElement(Box_1.Box, { padding: 2 }, (0, utils_1.getMessage)("pages.settings.actions.disableI18n.confirmation.description.line1")),
|
|
52
51
|
react_1.default.createElement(Box_1.Box, { padding: 2 }, (0, utils_1.getMessage)("pages.settings.actions.disableI18n.confirmation.description.line2")),
|
|
53
52
|
react_1.default.createElement(Box_1.Box, { padding: 2 },
|
|
54
53
|
react_1.default.createElement(Typography_1.Typography, { fontWeight: "bold" }, (0, utils_1.getMessage)("pages.settings.actions.disableI18n.confirmation.description.line3"))))),
|
|
55
|
-
react_1.default.createElement(
|
|
56
|
-
react_1.default.createElement(
|
|
57
|
-
react_1.default.createElement(Grid_1.
|
|
58
|
-
react_1.default.createElement(
|
|
59
|
-
react_1.default.createElement(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}, onLabel: (0, utils_1.getMessage)("pages.settings.actions.disableI18n.prune.on"), offLabel: (0, utils_1.getMessage)("pages.settings.actions.disableI18n.prune.off") })))))))))));
|
|
54
|
+
react_1.default.createElement(Stack_1.Stack, { spacing: 4 },
|
|
55
|
+
react_1.default.createElement(Grid_1.Grid, { gap: 4 },
|
|
56
|
+
react_1.default.createElement(Grid_1.GridItem, { col: 12 },
|
|
57
|
+
react_1.default.createElement(Box_1.Box, { padding: 2 },
|
|
58
|
+
react_1.default.createElement(ToggleInput_1.ToggleInput, { name: "audienceFieldChecked", label: (0, utils_1.getMessage)("pages.settings.actions.disableI18n.prune.label"), hint: "", checked: values.pruneNavigations, onChange: ({ target: { checked }, }) => {
|
|
59
|
+
setFieldValue("pruneNavigations", checked, false);
|
|
60
|
+
setState((state) => ({
|
|
61
|
+
...state,
|
|
62
|
+
pruneNavigations: checked,
|
|
63
|
+
}));
|
|
64
|
+
}, onLabel: (0, utils_1.getMessage)("pages.settings.actions.disableI18n.prune.on"), offLabel: (0, utils_1.getMessage)("pages.settings.actions.disableI18n.prune.off") }))))))))));
|
|
67
65
|
};
|
|
68
66
|
exports.DisableI18nModal = DisableI18nModal;
|
|
69
67
|
const useDisableI18nModal = (onSubmit) => {
|