strapi-plugin-navigation 2.5.4 → 3.0.0-beta.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/README.md +21 -43
- package/admin/api/client.js +107 -0
- package/admin/api/index.js +1 -0
- package/admin/api/validators.js +248 -0
- package/admin/components/ConfirmationDialog/index.js +21 -0
- package/admin/components/Initializer.js +10 -0
- package/admin/components/RestartAlert/index.js +7 -0
- package/admin/components/TextArrayInput/index.js +18 -0
- package/admin/components/icons/index.js +1 -0
- package/admin/components/icons/navigation.js +9 -0
- package/admin/components/icons/pluginIcon.js +9 -0
- package/admin/index.js +48 -0
- package/admin/pages/App.js +10 -0
- package/admin/pages/HomePage/components/AdditionalFieldInput/index.js +58 -0
- package/admin/pages/HomePage/components/CollapseButton/index.js +15 -0
- package/admin/{src → pages/HomePage}/components/DragButton/index.js +9 -16
- package/admin/pages/HomePage/components/I18nCopyNavigationItems/index.js +9 -0
- package/admin/pages/HomePage/components/NavigationContentHeader/index.js +5 -0
- package/admin/pages/HomePage/components/NavigationHeader/hooks.js +14 -0
- package/admin/pages/HomePage/components/NavigationHeader/index.js +29 -0
- package/admin/pages/HomePage/components/NavigationHeader/styles.js +11 -0
- package/admin/pages/HomePage/components/NavigationItemForm/index.js +277 -0
- package/admin/pages/HomePage/components/NavigationItemForm/types.js +1 -0
- package/admin/pages/HomePage/components/NavigationItemForm/utils/form.js +105 -0
- package/admin/pages/HomePage/components/NavigationItemForm/utils/hooks.js +12 -0
- package/admin/pages/HomePage/components/NavigationItemForm/utils/properties.js +51 -0
- package/admin/pages/HomePage/components/NavigationItemList/Wrapper.js +21 -0
- package/admin/pages/HomePage/components/NavigationItemList/index.js +6 -0
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardBadge/index.js +20 -0
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/Wrapper.js +14 -0
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/icons.js +6 -0
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardHeader/index.js +19 -0
- package/admin/pages/HomePage/components/NavigationItemListItem/ItemCardRemovedOverlay/index.js +11 -0
- package/admin/pages/HomePage/components/NavigationItemListItem/Wrapper.js +38 -0
- package/admin/pages/HomePage/components/NavigationItemListItem/index.js +165 -0
- package/admin/pages/HomePage/components/NavigationItemPopup/NavigationItemPopupFooter.js +11 -0
- package/admin/pages/HomePage/components/NavigationItemPopup/NavigationItemPopupHeader.js +12 -0
- package/admin/pages/HomePage/components/NavigationItemPopup/index.js +34 -0
- package/admin/pages/HomePage/components/NavigationManager/AllNavigations/icons.js +5 -0
- package/admin/pages/HomePage/components/NavigationManager/AllNavigations/index.js +79 -0
- package/admin/pages/HomePage/components/NavigationManager/DeletionConfirm/index.js +25 -0
- package/admin/pages/HomePage/components/NavigationManager/ErrorDetails/index.js +29 -0
- package/admin/pages/HomePage/components/NavigationManager/Footer/index.js +6 -0
- package/admin/pages/HomePage/components/NavigationManager/Form/hooks.js +19 -0
- package/admin/pages/HomePage/components/NavigationManager/Form/index.js +26 -0
- package/admin/pages/HomePage/components/NavigationManager/NavigationUpdate/index.js +32 -0
- package/admin/pages/HomePage/components/NavigationManager/NewNavigation/index.js +35 -0
- package/admin/pages/HomePage/components/NavigationManager/PurgeCacheConfirm/index.js +25 -0
- package/admin/pages/HomePage/components/NavigationManager/index.js +236 -0
- package/admin/pages/HomePage/components/NavigationManager/types.js +1 -0
- package/admin/pages/HomePage/components/Search/index.js +58 -0
- package/admin/pages/HomePage/components/index.js +1 -0
- package/admin/pages/HomePage/hooks/index.js +165 -0
- package/admin/pages/HomePage/index.js +231 -0
- package/admin/pages/HomePage/utils/index.js +16 -0
- package/admin/pages/HomePage/utils/parsers.js +187 -0
- package/admin/pages/SettingsPage/common/const.js +1 -0
- package/admin/pages/SettingsPage/common/index.js +1 -0
- package/admin/pages/SettingsPage/components/CustomFieldForm/hooks/index.js +10 -0
- package/admin/pages/SettingsPage/components/CustomFieldForm/index.js +36 -0
- package/admin/pages/SettingsPage/components/CustomFieldModal/index.js +16 -0
- package/admin/pages/SettingsPage/components/CustomFieldTable/index.js +45 -0
- package/admin/pages/SettingsPage/hooks/index.js +111 -0
- package/admin/pages/SettingsPage/index.js +189 -0
- package/admin/pages/SettingsPage/types.js +1 -0
- package/admin/pages/SettingsPage/utils/index.js +25 -0
- package/admin/pluginId.js +1 -0
- package/admin/schemas/config.js +53 -0
- package/admin/schemas/content-type.js +14 -0
- package/admin/schemas/index.js +2 -0
- package/admin/{src/translations → translations}/en.json +7 -9
- package/admin/translations/index.js +15 -0
- package/admin/types.js +1 -0
- package/admin/utils/constants.js +1 -0
- package/admin/utils/getTranslation.js +4 -0
- package/admin/utils/permissions.js +16 -0
- package/admin/utils/prefixPluginTranslations.js +3 -0
- package/package.json +13 -11
- package/server/app-errors.js +20 -0
- package/server/bootstrap.js +13 -0
- package/server/cache/index.js +34 -15
- package/server/config/index.js +7 -5
- package/server/config/{setupStrategy.js → setup.js} +30 -26
- package/server/content-types/audience/index.js +0 -1
- package/server/content-types/audience/schema.js +0 -1
- package/server/content-types/index.js +4 -7
- package/server/content-types/navigation/index.js +0 -1
- package/server/content-types/navigation/lifecycles.js +1 -2
- package/server/content-types/navigation/schema.js +29 -32
- package/server/content-types/navigation-item/index.js +0 -1
- package/server/content-types/navigation-item/lifecycles.js +1 -2
- package/server/content-types/navigation-item/schema.js +51 -58
- package/server/controllers/admin.js +119 -158
- package/server/controllers/client.js +71 -60
- package/server/controllers/index.js +1 -3
- package/server/controllers/utils.js +22 -0
- package/{admin/src/hooks/useNavigationManager.js → server/controllers/validators.js} +23 -16
- package/server/destroy.js +3 -2
- package/{types/i18n.js → server/dtos/config.js} +0 -1
- package/server/{navigation → dtos}/index.js +3 -2
- package/server/dtos/navigation-item.js +2 -0
- package/{admin/src/pages/SettingsPage/types.js → server/dtos/navigation.js} +0 -1
- package/server/graphql/config.js +14 -16
- package/server/graphql/index.js +1 -2
- package/server/graphql/queries/index.js +8 -4
- package/server/graphql/queries/render-navigation-child.js +19 -8
- package/server/graphql/queries/render-navigation.js +30 -14
- package/server/graphql/resolvers-config.js +4 -2
- package/server/graphql/{setupStrategy.js → setup.js} +4 -5
- package/server/graphql/types/content-types-name-fields.js +10 -9
- package/server/graphql/types/content-types.js +15 -15
- package/server/graphql/types/create-navigation-item.js +16 -16
- package/server/graphql/types/create-navigation-related.js +7 -7
- package/server/graphql/types/create-navigation.js +6 -6
- package/server/graphql/types/index.js +35 -15
- package/server/graphql/types/navigation-config.js +8 -8
- package/server/graphql/types/navigation-details.js +2 -2
- package/server/graphql/types/navigation-item-additional-field-media.js +10 -10
- package/server/graphql/types/navigation-item-related-data.js +6 -6
- package/server/graphql/types/navigation-item-related.js +3 -3
- package/server/graphql/types/navigation-item.js +30 -27
- package/server/graphql/types/navigation-render-type.js +4 -5
- package/server/graphql/types/navigation.js +8 -8
- package/server/i18n/index.js +29 -20
- package/server/index.js +15 -8
- package/server/middlewares/index.js +3 -0
- package/server/permissions/index.js +10 -0
- package/{permissions.js → server/permissions/permissions.js} +0 -1
- package/server/permissions/setup.js +32 -0
- package/server/permissions.js +39 -0
- package/server/policies/index.js +3 -0
- package/server/register.js +6 -0
- package/server/repositories/audience.js +12 -0
- package/server/repositories/generic.js +20 -0
- package/server/repositories/index.js +11 -0
- package/server/repositories/navigation-item.js +51 -0
- package/server/repositories/navigation.js +65 -0
- package/server/routes/admin.js +86 -79
- package/server/routes/client.js +0 -1
- package/server/routes/index.js +0 -1
- package/server/schemas/config.js +68 -0
- package/server/schemas/content-type.js +140 -0
- package/{admin/src/pages/SettingsPage/common → server/schemas}/index.js +3 -2
- package/server/schemas/navigation.js +107 -0
- package/server/services/admin/admin.js +483 -0
- package/server/{content-types/navigations-items-related → services/admin}/index.js +2 -5
- package/{admin/src/pages/View/components/NavigationItemForm → server/services/admin}/types.js +0 -1
- package/server/services/admin/utils.js +84 -0
- package/server/services/client/client.js +397 -0
- package/server/services/client/index.js +7 -0
- package/{admin/src/pages/View/components/NavigationManager → server/services/client}/types.js +0 -1
- package/server/services/client/utils.js +88 -0
- package/server/services/common/common.js +307 -0
- package/server/services/common/index.js +7 -0
- package/{admin/src/components/AdditionalFieldInput → server/services/common}/types.js +0 -1
- package/server/services/common/utils.js +24 -0
- package/server/services/index.js +4 -6
- package/server/types.js +2 -0
- package/server/utils/constants.js +35 -0
- package/server/utils/functions.js +71 -299
- package/server/utils/index.js +1 -2
- package/strapi-admin.js +5 -8
- package/strapi-server.js +3 -7
- package/tsconfig.tsbuildinfo +1 -1
- package/admin/src/components/AdditionalFieldInput/index.d.ts +0 -5
- package/admin/src/components/AdditionalFieldInput/index.js +0 -99
- package/admin/src/components/AdditionalFieldInput/types.d.ts +0 -15
- package/admin/src/components/Alert/styles.d.ts +0 -2
- package/admin/src/components/Alert/styles.js +0 -14
- package/admin/src/components/CollapseButton/index.d.ts +0 -7
- package/admin/src/components/CollapseButton/index.js +0 -30
- package/admin/src/components/ConfirmationDialog/index.d.ts +0 -28
- package/admin/src/components/ConfirmationDialog/index.js +0 -34
- package/admin/src/components/DragButton/index.d.ts +0 -6
- package/admin/src/components/EmptyView/index.d.ts +0 -3
- package/admin/src/components/EmptyView/index.js +0 -30
- package/admin/src/components/Item/ItemCardBadge/index.d.ts +0 -3
- package/admin/src/components/Item/ItemCardBadge/index.js +0 -26
- package/admin/src/components/Item/ItemCardHeader/Wrapper.d.ts +0 -3
- package/admin/src/components/Item/ItemCardHeader/Wrapper.js +0 -21
- package/admin/src/components/Item/ItemCardHeader/icons.d.ts +0 -5
- package/admin/src/components/Item/ItemCardHeader/icons.js +0 -13
- package/admin/src/components/Item/ItemCardHeader/index.d.ts +0 -17
- package/admin/src/components/Item/ItemCardHeader/index.js +0 -38
- package/admin/src/components/Item/ItemCardRemovedOverlay/index.d.ts +0 -2
- package/admin/src/components/Item/ItemCardRemovedOverlay/index.js +0 -18
- package/admin/src/components/Item/Wrapper.d.ts +0 -3
- package/admin/src/components/Item/Wrapper.js +0 -43
- package/admin/src/components/Item/index.d.ts +0 -31
- package/admin/src/components/Item/index.js +0 -188
- package/admin/src/components/NavigationItemList/Wrapper.d.ts +0 -3
- package/admin/src/components/NavigationItemList/Wrapper.js +0 -26
- package/admin/src/components/NavigationItemList/index.d.ts +0 -36
- package/admin/src/components/NavigationItemList/index.js +0 -32
- package/admin/src/components/RestartAlert/index.d.ts +0 -3
- package/admin/src/components/RestartAlert/index.js +0 -13
- package/admin/src/components/Search/index.d.ts +0 -12
- package/admin/src/components/Search/index.js +0 -97
- package/admin/src/components/TextArrayInput/index.d.ts +0 -15
- package/admin/src/components/TextArrayInput/index.js +0 -45
- package/admin/src/components/icons/navigation.d.ts +0 -6
- package/admin/src/components/icons/navigation.js +0 -12
- package/admin/src/contexts/DataManagerContext.d.ts +0 -3
- package/admin/src/contexts/DataManagerContext.js +0 -6
- package/admin/src/hooks/useAllContentTypes.d.ts +0 -3
- package/admin/src/hooks/useAllContentTypes.js +0 -8
- package/admin/src/hooks/useDataManager.d.ts +0 -3
- package/admin/src/hooks/useDataManager.js +0 -10
- package/admin/src/hooks/useI18nCopyNavigationItemsModal.d.ts +0 -9
- package/admin/src/hooks/useI18nCopyNavigationItemsModal.js +0 -51
- package/admin/src/hooks/useNavigationConfig.d.ts +0 -10
- package/admin/src/hooks/useNavigationConfig.js +0 -54
- package/admin/src/hooks/useNavigationManager.d.ts +0 -6
- package/admin/src/index.d.ts +0 -14
- package/admin/src/index.js +0 -87
- package/admin/src/pages/App/index.d.ts +0 -3
- package/admin/src/pages/App/index.js +0 -43
- package/admin/src/pages/DataManagerProvider/actions.d.ts +0 -21
- package/admin/src/pages/DataManagerProvider/actions.js +0 -24
- package/admin/src/pages/DataManagerProvider/index.d.ts +0 -12
- package/admin/src/pages/DataManagerProvider/index.js +0 -382
- package/admin/src/pages/DataManagerProvider/init.d.ts +0 -3
- package/admin/src/pages/DataManagerProvider/init.js +0 -7
- package/admin/src/pages/DataManagerProvider/reducer.d.ts +0 -20
- package/admin/src/pages/DataManagerProvider/reducer.js +0 -132
- package/admin/src/pages/NoAccessPage/index.d.ts +0 -3
- package/admin/src/pages/NoAccessPage/index.js +0 -31
- package/admin/src/pages/SettingsPage/common/const.d.ts +0 -2
- package/admin/src/pages/SettingsPage/common/const.js +0 -5
- package/admin/src/pages/SettingsPage/common/index.d.ts +0 -2
- package/admin/src/pages/SettingsPage/components/CustomFieldForm/index.d.ts +0 -12
- package/admin/src/pages/SettingsPage/components/CustomFieldForm/index.js +0 -129
- package/admin/src/pages/SettingsPage/components/CustomFieldModal/index.d.ts +0 -12
- package/admin/src/pages/SettingsPage/components/CustomFieldModal/index.js +0 -20
- package/admin/src/pages/SettingsPage/components/CustomFieldTable/index.d.ts +0 -11
- package/admin/src/pages/SettingsPage/components/CustomFieldTable/index.js +0 -105
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.d.ts +0 -23
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.js +0 -86
- package/admin/src/pages/SettingsPage/index.d.ts +0 -3
- package/admin/src/pages/SettingsPage/index.js +0 -321
- package/admin/src/pages/SettingsPage/types.d.ts +0 -35
- package/admin/src/pages/SettingsPage/utils/form.d.ts +0 -20
- package/admin/src/pages/SettingsPage/utils/form.js +0 -37
- package/admin/src/pages/SettingsPage/utils/functions.d.ts +0 -3
- package/admin/src/pages/SettingsPage/utils/functions.js +0 -26
- package/admin/src/pages/View/components/I18nCopyNavigationItems/index.d.ts +0 -14
- package/admin/src/pages/View/components/I18nCopyNavigationItems/index.js +0 -15
- package/admin/src/pages/View/components/NavigationContentHeader/index.d.ts +0 -6
- package/admin/src/pages/View/components/NavigationContentHeader/index.js +0 -14
- package/admin/src/pages/View/components/NavigationHeader/index.d.ts +0 -14
- package/admin/src/pages/View/components/NavigationHeader/index.js +0 -92
- package/admin/src/pages/View/components/NavigationHeader/styles.d.ts +0 -2
- package/admin/src/pages/View/components/NavigationHeader/styles.js +0 -18
- package/admin/src/pages/View/components/NavigationItemForm/index.d.ts +0 -5
- package/admin/src/pages/View/components/NavigationItemForm/index.js +0 -470
- package/admin/src/pages/View/components/NavigationItemForm/types.d.ts +0 -99
- package/admin/src/pages/View/components/NavigationItemForm/utils/form.d.ts +0 -28
- package/admin/src/pages/View/components/NavigationItemForm/utils/form.js +0 -123
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupFooter.d.ts +0 -25
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupFooter.js +0 -31
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupHeader.d.ts +0 -5
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupHeader.js +0 -20
- package/admin/src/pages/View/components/NavigationItemPopup/index.d.ts +0 -33
- package/admin/src/pages/View/components/NavigationItemPopup/index.js +0 -90
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.d.ts +0 -4
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.js +0 -12
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/index.d.ts +0 -8
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/index.js +0 -151
- package/admin/src/pages/View/components/NavigationManager/DeletionConfirm/index.d.ts +0 -8
- package/admin/src/pages/View/components/NavigationManager/DeletionConfirm/index.js +0 -34
- package/admin/src/pages/View/components/NavigationManager/ErrorDetails/index.d.ts +0 -8
- package/admin/src/pages/View/components/NavigationManager/ErrorDetails/index.js +0 -53
- package/admin/src/pages/View/components/NavigationManager/Footer/index.d.ts +0 -24
- package/admin/src/pages/View/components/NavigationManager/Footer/index.js +0 -13
- package/admin/src/pages/View/components/NavigationManager/Form/index.d.ts +0 -19
- package/admin/src/pages/View/components/NavigationManager/Form/index.js +0 -103
- package/admin/src/pages/View/components/NavigationManager/NavigationUpdate/index.d.ts +0 -8
- package/admin/src/pages/View/components/NavigationManager/NavigationUpdate/index.js +0 -59
- package/admin/src/pages/View/components/NavigationManager/NewNavigation/index.d.ts +0 -9
- package/admin/src/pages/View/components/NavigationManager/NewNavigation/index.js +0 -62
- package/admin/src/pages/View/components/NavigationManager/PurgeCacheConfirm/index.d.ts +0 -8
- package/admin/src/pages/View/components/NavigationManager/PurgeCacheConfirm/index.js +0 -34
- package/admin/src/pages/View/components/NavigationManager/index.d.ts +0 -10
- package/admin/src/pages/View/components/NavigationManager/index.js +0 -203
- package/admin/src/pages/View/components/NavigationManager/types.d.ts +0 -44
- package/admin/src/pages/View/index.d.ts +0 -4
- package/admin/src/pages/View/index.js +0 -269
- package/admin/src/pages/View/utils/form.d.ts +0 -2
- package/admin/src/pages/View/utils/form.js +0 -16
- package/admin/src/pages/View/utils/index.d.ts +0 -2
- package/admin/src/pages/View/utils/index.js +0 -11
- package/admin/src/pages/View/utils/parsers.d.ts +0 -51
- package/admin/src/pages/View/utils/parsers.js +0 -272
- package/admin/src/pages/View/utils/types.d.ts +0 -3
- package/admin/src/pages/View/utils/types.js +0 -3
- package/admin/src/permissions.d.ts +0 -16
- package/admin/src/permissions.js +0 -13
- package/admin/src/pluginId.d.ts +0 -3
- package/admin/src/pluginId.js +0 -5
- package/admin/src/translations/index.d.ts +0 -15
- package/admin/src/translations/index.js +0 -21
- package/admin/src/utils/api.d.ts +0 -9
- package/admin/src/utils/api.js +0 -20
- package/admin/src/utils/enums.d.ts +0 -25
- package/admin/src/utils/enums.js +0 -30
- package/admin/src/utils/functions.d.ts +0 -16
- package/admin/src/utils/functions.js +0 -46
- package/admin/src/utils/index.d.ts +0 -4
- package/admin/src/utils/index.js +0 -20
- package/permissions.d.ts +0 -10
- package/server/bootstrap/index.d.ts +0 -4
- package/server/bootstrap/index.js +0 -50
- package/server/cache/index.d.ts +0 -2
- package/server/cache/serviceEnhancers.d.ts +0 -3
- package/server/cache/serviceEnhancers.js +0 -16
- package/server/cache/setupStrategy.d.ts +0 -3
- package/server/cache/setupStrategy.js +0 -38
- package/server/cache/types.d.ts +0 -11
- package/server/cache/types.js +0 -3
- package/server/cache/utils.d.ts +0 -11
- package/server/cache/utils.js +0 -19
- package/server/config/index.d.ts +0 -5
- package/server/config/setupStrategy.d.ts +0 -3
- package/server/content-types/audience/index.d.ts +0 -27
- package/server/content-types/audience/schema.d.ts +0 -25
- package/server/content-types/index.d.ts +0 -244
- package/server/content-types/navigation/index.d.ts +0 -59
- package/server/content-types/navigation/lifecycles.d.ts +0 -3
- package/server/content-types/navigation/schema.d.ts +0 -56
- package/server/content-types/navigation-item/index.d.ts +0 -111
- package/server/content-types/navigation-item/lifecycles.d.ts +0 -3
- package/server/content-types/navigation-item/schema.d.ts +0 -108
- package/server/content-types/navigations-items-related/index.d.ts +0 -51
- package/server/content-types/navigations-items-related/schema.d.ts +0 -49
- package/server/content-types/navigations-items-related/schema.js +0 -50
- package/server/controllers/admin.d.ts +0 -4
- package/server/controllers/client.d.ts +0 -4
- package/server/controllers/index.d.ts +0 -4
- package/server/destroy.d.ts +0 -3
- package/server/graphql/config.d.ts +0 -4
- package/server/graphql/index.d.ts +0 -2
- package/server/graphql/queries/index.d.ts +0 -3
- package/server/graphql/queries/render-navigation-child.d.ts +0 -15
- package/server/graphql/queries/render-navigation.d.ts +0 -21
- package/server/graphql/resolvers-config.d.ts +0 -10
- package/server/graphql/setupStrategy.d.ts +0 -3
- package/server/graphql/types/content-types-name-fields.d.ts +0 -6
- package/server/graphql/types/content-types.d.ts +0 -5
- package/server/graphql/types/create-navigation-item.d.ts +0 -5
- package/server/graphql/types/create-navigation-related.d.ts +0 -5
- package/server/graphql/types/create-navigation.d.ts +0 -5
- package/server/graphql/types/index.d.ts +0 -3
- package/server/graphql/types/navigation-config.d.ts +0 -5
- package/server/graphql/types/navigation-details.d.ts +0 -5
- package/server/graphql/types/navigation-item-additional-field-media.d.ts +0 -5
- package/server/graphql/types/navigation-item-related-data.d.ts +0 -5
- package/server/graphql/types/navigation-item-related.d.ts +0 -7
- package/server/graphql/types/navigation-item.d.ts +0 -6
- package/server/graphql/types/navigation-render-type.d.ts +0 -5
- package/server/graphql/types/navigation.d.ts +0 -5
- package/server/i18n/constant.d.ts +0 -2
- package/server/i18n/constant.js +0 -5
- package/server/i18n/errors.d.ts +0 -7
- package/server/i18n/errors.js +0 -14
- package/server/i18n/graphQLEnhancers.d.ts +0 -10
- package/server/i18n/graphQLEnhancers.js +0 -10
- package/server/i18n/index.d.ts +0 -8
- package/server/i18n/navigationSetupStrategy.d.ts +0 -3
- package/server/i18n/navigationSetupStrategy.js +0 -147
- package/server/i18n/serviceEnhancers.d.ts +0 -13
- package/server/i18n/serviceEnhancers.js +0 -156
- package/server/i18n/types.d.ts +0 -60
- package/server/i18n/types.js +0 -3
- package/server/i18n/utils.d.ts +0 -13
- package/server/i18n/utils.js +0 -33
- package/server/index.d.ts +0 -262
- package/server/navigation/index.d.ts +0 -2
- package/server/navigation/setupStrategy.d.ts +0 -3
- package/server/navigation/setupStrategy.js +0 -39
- package/server/register/index.d.ts +0 -3
- package/server/register/index.js +0 -4
- package/server/routes/admin.d.ts +0 -4
- package/server/routes/client.d.ts +0 -4
- package/server/routes/index.d.ts +0 -6
- package/server/services/admin.d.ts +0 -5
- package/server/services/admin.js +0 -347
- package/server/services/client.d.ts +0 -5
- package/server/services/client.js +0 -335
- package/server/services/common.d.ts +0 -5
- package/server/services/common.js +0 -385
- package/server/services/index.d.ts +0 -7
- package/server/utils/constant.d.ts +0 -27
- package/server/utils/constant.js +0 -43
- package/server/utils/functions.d.ts +0 -157
- package/server/utils/index.d.ts +0 -3
- package/strapi-admin.d.ts +0 -3
- package/strapi-server.d.ts +0 -262
- package/types/bootstrap.d.ts +0 -16
- package/types/bootstrap.js +0 -3
- package/types/config.d.ts +0 -27
- package/types/config.js +0 -3
- package/types/contentTypes.d.ts +0 -112
- package/types/contentTypes.js +0 -3
- package/types/controllers.d.ts +0 -65
- package/types/controllers.js +0 -5
- package/types/graphQL.d.ts +0 -3
- package/types/graphQL.js +0 -3
- package/types/i18n.d.ts +0 -9
- package/types/index.d.ts +0 -10
- package/types/index.js +0 -26
- package/types/lifecycle.d.ts +0 -22
- package/types/lifecycle.js +0 -3
- package/types/services.d.ts +0 -106
- package/types/services.js +0 -3
- package/types/utils.d.ts +0 -72
- package/types/utils.js +0 -41
- package/utils/InvalidParamNavigationError.d.ts +0 -4
- package/utils/InvalidParamNavigationError.js +0 -8
- package/utils/NavigationError.d.ts +0 -5
- package/utils/NavigationError.js +0 -11
- /package/admin/{src/translations → translations}/ca.json +0 -0
- /package/admin/{src/translations → translations}/fr.json +0 -0
|
@@ -1,321 +0,0 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const react_1 = __importStar(require("react"));
|
|
30
|
-
const lodash_1 = require("lodash");
|
|
31
|
-
const formik_1 = require("formik");
|
|
32
|
-
const helper_plugin_1 = require("@strapi/helper-plugin");
|
|
33
|
-
const Main_1 = require("@strapi/design-system/Main");
|
|
34
|
-
const Layout_1 = require("@strapi/design-system/Layout");
|
|
35
|
-
const Accordion_1 = require("@strapi/design-system/Accordion");
|
|
36
|
-
const Button_1 = require("@strapi/design-system/Button");
|
|
37
|
-
const Box_1 = require("@strapi/design-system/Box");
|
|
38
|
-
const Stack_1 = require("@strapi/design-system/Stack");
|
|
39
|
-
const Typography_1 = require("@strapi/design-system/Typography");
|
|
40
|
-
const Grid_1 = require("@strapi/design-system/Grid");
|
|
41
|
-
const ToggleInput_1 = require("@strapi/design-system/ToggleInput");
|
|
42
|
-
const NumberInput_1 = require("@strapi/design-system/NumberInput");
|
|
43
|
-
const Select_1 = require("@strapi/design-system/Select");
|
|
44
|
-
const Tooltip_1 = require("@strapi/design-system/Tooltip");
|
|
45
|
-
const icons_1 = require("@strapi/icons");
|
|
46
|
-
const permissions_1 = __importDefault(require("../../permissions"));
|
|
47
|
-
const useNavigationConfig_1 = __importDefault(require("../../hooks/useNavigationConfig"));
|
|
48
|
-
const useAllContentTypes_1 = __importDefault(require("../../hooks/useAllContentTypes"));
|
|
49
|
-
const utils_1 = require("../../utils");
|
|
50
|
-
const ConfirmationDialog_1 = __importDefault(require("../../components/ConfirmationDialog"));
|
|
51
|
-
const RestartAlert_1 = __importDefault(require("../../components/RestartAlert"));
|
|
52
|
-
const utils_2 = require("../../utils");
|
|
53
|
-
const functions_1 = require("./utils/functions");
|
|
54
|
-
const styles_1 = require("../../components/Alert/styles");
|
|
55
|
-
const DisableI18nModal_1 = require("./components/DisableI18nModal");
|
|
56
|
-
const CustomFieldModal_1 = __importDefault(require("./components/CustomFieldModal"));
|
|
57
|
-
const CustomFieldTable_1 = __importDefault(require("./components/CustomFieldTable"));
|
|
58
|
-
const permissions_2 = __importDefault(require("../../permissions"));
|
|
59
|
-
const NoAccessPage_1 = __importDefault(require("../NoAccessPage"));
|
|
60
|
-
const RESTART_NOT_REQUIRED = { required: false };
|
|
61
|
-
const RESTART_REQUIRED = { required: true, reasons: [] };
|
|
62
|
-
const RELATION_ATTRIBUTE_TYPES = ['relation', 'media', 'component'];
|
|
63
|
-
const STRING_ATTRIBUTE_TYPES = ['string', 'uid'];
|
|
64
|
-
const BOX_DEFAULT_PROPS = {
|
|
65
|
-
background: "neutral0",
|
|
66
|
-
hasRadius: true,
|
|
67
|
-
shadow: "filterShadow",
|
|
68
|
-
padding: 6,
|
|
69
|
-
};
|
|
70
|
-
const noopFallback = () => { };
|
|
71
|
-
const SettingsPage = () => {
|
|
72
|
-
const { lockApp = noopFallback, unlockApp = noopFallback } = (0, helper_plugin_1.useOverlayBlocker)();
|
|
73
|
-
const { lockAppWithAutoreload = noopFallback, unlockAppWithAutoreload = noopFallback } = (0, helper_plugin_1.useAutoReloadOverlayBlocker)();
|
|
74
|
-
const [restartStatus, setRestartStatus] = (0, react_1.useState)(RESTART_NOT_REQUIRED);
|
|
75
|
-
const [pruneObsoleteI18nNavigations, setPruneObsoleteI18nNavigations] = (0, react_1.useState)(false);
|
|
76
|
-
const [isCustomFieldModalOpen, setIsCustomFieldModalOpen] = (0, react_1.useState)(false);
|
|
77
|
-
const [customFieldSelected, setCustomFieldSelected] = (0, react_1.useState)(null);
|
|
78
|
-
const [customFields, setCustomFields] = (0, react_1.useState)([]);
|
|
79
|
-
const [isRestorePopupOpen, setIsRestorePopupOpen] = (0, react_1.useState)(false);
|
|
80
|
-
const [contentTypeExpanded, setContentTypeExpanded] = (0, react_1.useState)(undefined);
|
|
81
|
-
const { data: navigationConfigData, isLoading: isConfigLoading, error: configErr, submitMutation, restoreMutation, restartMutation } = (0, useNavigationConfig_1.default)();
|
|
82
|
-
const { data: allContentTypesData, isLoading: isContentTypesLoading, error: contentTypesErr } = (0, useAllContentTypes_1.default)();
|
|
83
|
-
const viewPermissions = (0, react_1.useMemo)(() => ({
|
|
84
|
-
settings: permissions_2.default.settings
|
|
85
|
-
}), []);
|
|
86
|
-
const { isLoading: isLoadingForPermissions, allowedActions: { canSettings: canManageSettings, }, } = (0, helper_plugin_1.useRBAC)(viewPermissions);
|
|
87
|
-
const isLoading = isConfigLoading || isContentTypesLoading;
|
|
88
|
-
const isError = configErr || contentTypesErr;
|
|
89
|
-
const configContentTypes = navigationConfigData?.contentTypes || [];
|
|
90
|
-
const formikInitialValues = (0, react_1.useMemo)(() => ({
|
|
91
|
-
allowedLevels: (0, lodash_1.get)(navigationConfigData, "allowedLevels", 2),
|
|
92
|
-
audienceFieldChecked: (0, lodash_1.get)(navigationConfigData, "additionalFields", []).includes(utils_1.navigationItemAdditionalFields.AUDIENCE),
|
|
93
|
-
cascadeMenuAttachedChecked: (0, lodash_1.get)(navigationConfigData, "cascadeMenuAttached", true),
|
|
94
|
-
i18nEnabled: (0, lodash_1.get)(navigationConfigData, "i18nEnabled", false),
|
|
95
|
-
nameFields: (0, lodash_1.get)(navigationConfigData, "contentTypesNameFields", {}),
|
|
96
|
-
pathDefaultFields: (0, lodash_1.get)(navigationConfigData, "pathDefaultFields", {}),
|
|
97
|
-
populate: (0, lodash_1.get)(navigationConfigData, "contentTypesPopulate", {}),
|
|
98
|
-
selectedContentTypes: configContentTypes.map(item => item.uid),
|
|
99
|
-
isCacheEnabled: (0, lodash_1.get)(navigationConfigData, "isCacheEnabled", false),
|
|
100
|
-
preferCustomContentTypes: (0, lodash_1.get)(navigationConfigData, "preferCustomContentTypes", true) ?? true,
|
|
101
|
-
}), [configContentTypes, navigationConfigData, utils_1.navigationItemAdditionalFields]);
|
|
102
|
-
const { disableI18nModal, setDisableI18nModalOpened, setI18nModalOnCancel, } = (0, DisableI18nModal_1.useDisableI18nModal)(({ pruneNavigations }) => {
|
|
103
|
-
setPruneObsoleteI18nNavigations(pruneNavigations);
|
|
104
|
-
});
|
|
105
|
-
(0, react_1.useEffect)(() => {
|
|
106
|
-
const additionalFields = navigationConfigData?.additionalFields
|
|
107
|
-
?.filter((field) => field !== utils_1.navigationItemAdditionalFields.AUDIENCE);
|
|
108
|
-
setCustomFields(additionalFields || []);
|
|
109
|
-
}, [navigationConfigData]);
|
|
110
|
-
const preparePayload = (0, react_1.useCallback)(({ form: { allowedLevels, audienceFieldChecked, cascadeMenuAttachedChecked, i18nEnabled, nameFields, pathDefaultFields, populate, selectedContentTypes, isCacheEnabled, preferCustomContentTypes, }, pruneObsoleteI18nNavigations }) => ({
|
|
111
|
-
additionalFields: audienceFieldChecked ? ['audience', ...customFields] : [...customFields],
|
|
112
|
-
allowedLevels,
|
|
113
|
-
cascadeMenuAttached: cascadeMenuAttachedChecked,
|
|
114
|
-
contentTypes: selectedContentTypes,
|
|
115
|
-
contentTypesNameFields: nameFields,
|
|
116
|
-
contentTypesPopulate: populate,
|
|
117
|
-
i18nEnabled,
|
|
118
|
-
pathDefaultFields,
|
|
119
|
-
pruneObsoleteI18nNavigations,
|
|
120
|
-
gql: {
|
|
121
|
-
navigationItemRelated: selectedContentTypes.map((uid) => (0, functions_1.resolveGlobalLikeId)(uid)),
|
|
122
|
-
},
|
|
123
|
-
isCacheEnabled,
|
|
124
|
-
preferCustomContentTypes,
|
|
125
|
-
}), [customFields]);
|
|
126
|
-
const onSave = async (form) => {
|
|
127
|
-
lockApp();
|
|
128
|
-
const payload = preparePayload({ form, pruneObsoleteI18nNavigations });
|
|
129
|
-
await submitMutation({ body: payload });
|
|
130
|
-
const isContentTypesChanged = !(0, lodash_1.isEqual)(payload.contentTypes, navigationConfigData.contentTypes);
|
|
131
|
-
const isI18nChanged = !(0, lodash_1.isEqual)(payload.i18nEnabled, navigationConfigData.i18nEnabled);
|
|
132
|
-
const isCacheChanged = !(0, lodash_1.isEqual)(payload.isCacheEnabled, navigationConfigData.isCacheEnabled);
|
|
133
|
-
const restartReasons = [];
|
|
134
|
-
if (isI18nChanged) {
|
|
135
|
-
restartReasons.push('I18N');
|
|
136
|
-
}
|
|
137
|
-
if (isCacheChanged) {
|
|
138
|
-
restartReasons.push('CACHE');
|
|
139
|
-
}
|
|
140
|
-
if (isContentTypesChanged && navigationConfigData.isGQLPluginEnabled) {
|
|
141
|
-
restartReasons.push('GRAPH_QL');
|
|
142
|
-
}
|
|
143
|
-
if (pruneObsoleteI18nNavigations) {
|
|
144
|
-
restartReasons.push('I18N_NAVIGATIONS_PRUNE');
|
|
145
|
-
}
|
|
146
|
-
if (restartReasons.length) {
|
|
147
|
-
setRestartStatus({
|
|
148
|
-
...RESTART_REQUIRED,
|
|
149
|
-
reasons: restartReasons,
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
setDisableI18nModalOpened(false);
|
|
153
|
-
setPruneObsoleteI18nNavigations(false);
|
|
154
|
-
unlockApp();
|
|
155
|
-
};
|
|
156
|
-
const onPopupClose = async (isConfirmed) => {
|
|
157
|
-
setIsRestorePopupOpen(false);
|
|
158
|
-
if (isConfirmed) {
|
|
159
|
-
lockApp();
|
|
160
|
-
await restoreMutation();
|
|
161
|
-
unlockApp();
|
|
162
|
-
setRestartStatus(RESTART_REQUIRED);
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
const handleRestart = async () => {
|
|
166
|
-
lockAppWithAutoreload();
|
|
167
|
-
await restartMutation();
|
|
168
|
-
unlockAppWithAutoreload();
|
|
169
|
-
setRestartStatus(RESTART_NOT_REQUIRED);
|
|
170
|
-
};
|
|
171
|
-
const handleRestartDiscard = () => setRestartStatus(RESTART_NOT_REQUIRED);
|
|
172
|
-
const handleSetContentTypeExpanded = key => setContentTypeExpanded(key === contentTypeExpanded ? undefined : key);
|
|
173
|
-
if (!(isLoadingForPermissions || canManageSettings)) {
|
|
174
|
-
return (react_1.default.createElement(NoAccessPage_1.default, null));
|
|
175
|
-
}
|
|
176
|
-
if (isLoading || isError) {
|
|
177
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
178
|
-
react_1.default.createElement(helper_plugin_1.SettingsPageTitle, { name: (0, utils_2.getMessage)('Settings.email.plugin.title', 'Configuration') }),
|
|
179
|
-
react_1.default.createElement(helper_plugin_1.LoadingIndicatorPage, null, "Fetching plugin config...")));
|
|
180
|
-
}
|
|
181
|
-
const isI18NPluginEnabled = navigationConfigData?.isI18NPluginEnabled;
|
|
182
|
-
const isCachePluginEnabled = navigationConfigData?.isCachePluginEnabled;
|
|
183
|
-
const defaultLocale = navigationConfigData?.defaultLocale;
|
|
184
|
-
const handleSubmitCustomField = (field) => {
|
|
185
|
-
const filteredFields = customFields.filter(f => f.name !== field.name);
|
|
186
|
-
setCustomFields([...filteredFields, field]);
|
|
187
|
-
setCustomFieldSelected(null);
|
|
188
|
-
setIsCustomFieldModalOpen(false);
|
|
189
|
-
};
|
|
190
|
-
const handleOpenCustomFieldModal = (field) => {
|
|
191
|
-
setCustomFieldSelected(field);
|
|
192
|
-
setIsCustomFieldModalOpen(true);
|
|
193
|
-
};
|
|
194
|
-
const handleRemoveCustomField = (field) => {
|
|
195
|
-
const filteredFields = customFields.filter(f => f.name !== field.name);
|
|
196
|
-
setCustomFields(filteredFields);
|
|
197
|
-
setCustomFieldSelected(null);
|
|
198
|
-
setIsCustomFieldModalOpen(false);
|
|
199
|
-
};
|
|
200
|
-
const handleToggleCustomField = (field) => {
|
|
201
|
-
const updatedField = { ...field, enabled: !(0, lodash_1.get)(field, 'enabled', false) };
|
|
202
|
-
const filteredFields = customFields.filter(f => f.name !== field.name);
|
|
203
|
-
setCustomFields([...filteredFields, updatedField]);
|
|
204
|
-
};
|
|
205
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
206
|
-
react_1.default.createElement(helper_plugin_1.SettingsPageTitle, { name: (0, utils_2.getMessage)('Settings.email.plugin.title', 'Configuration') }),
|
|
207
|
-
react_1.default.createElement(Main_1.Main, { labelledBy: "title" },
|
|
208
|
-
react_1.default.createElement(formik_1.Formik, { initialValues: formikInitialValues, onSubmit: onSave }, ({ handleSubmit, setFieldValue, values }) => {
|
|
209
|
-
const allContentTypes = !isLoading ? (0, lodash_1.sortBy)(Object.values(allContentTypesData).filter(({ uid }) => (0, functions_1.isContentTypeEligible)(uid, {
|
|
210
|
-
allowedContentTypes: navigationConfigData?.allowedContentTypes,
|
|
211
|
-
restrictedContentTypes: navigationConfigData?.restrictedContentTypes,
|
|
212
|
-
selectedContentTypes: values?.selectedContentTypes,
|
|
213
|
-
preferCustomContentTypes: values?.preferCustomContentTypes,
|
|
214
|
-
})).map(ct => {
|
|
215
|
-
const type = configContentTypes.find(_ => _.uid === ct.uid);
|
|
216
|
-
if (type) {
|
|
217
|
-
const { available, isSingle } = type;
|
|
218
|
-
return {
|
|
219
|
-
...ct,
|
|
220
|
-
available,
|
|
221
|
-
isSingle,
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
return ct;
|
|
225
|
-
}), ct => ct.info.displayName) : [];
|
|
226
|
-
return (react_1.default.createElement(formik_1.Form, { noValidate: true, onSubmit: handleSubmit },
|
|
227
|
-
react_1.default.createElement(Layout_1.HeaderLayout, { title: (0, utils_2.getMessage)('pages.settings.header.title'), subtitle: (0, utils_2.getMessage)('pages.settings.header.description'), primaryAction: react_1.default.createElement(helper_plugin_1.CheckPermissions, { permissions: permissions_1.default.access },
|
|
228
|
-
react_1.default.createElement(Button_1.Button, { type: "submit", startIcon: react_1.default.createElement(icons_1.Check, null), disabled: restartStatus.required }, (0, utils_2.getMessage)('pages.settings.actions.submit'))) }),
|
|
229
|
-
react_1.default.createElement(Layout_1.ContentLayout, null,
|
|
230
|
-
react_1.default.createElement(Stack_1.Stack, { spacing: 7 },
|
|
231
|
-
restartStatus.required && (react_1.default.createElement(RestartAlert_1.default, { closeLabel: (0, utils_2.getMessage)('pages.settings.actions.restart.alert.cancel'), title: (0, utils_2.getMessage)('pages.settings.actions.restart.alert.title'), action: react_1.default.createElement(Box_1.Box, null,
|
|
232
|
-
react_1.default.createElement(Button_1.Button, { onClick: handleRestart, startIcon: react_1.default.createElement(icons_1.Play, null) }, (0, utils_2.getMessage)('pages.settings.actions.restart'))), onClose: handleRestartDiscard },
|
|
233
|
-
react_1.default.createElement(react_1.default.Fragment, null,
|
|
234
|
-
react_1.default.createElement(Box_1.Box, { paddingBottom: 1 }, (0, utils_2.getMessage)('pages.settings.actions.restart.alert.description')),
|
|
235
|
-
restartStatus.reasons?.map((reason, i) => react_1.default.createElement(Box_1.Box, { paddingBottom: 1, key: i, children: (0, utils_2.getMessage)(`pages.settings.actions.restart.alert.reason.${reason}`) }))))),
|
|
236
|
-
react_1.default.createElement(Box_1.Box, { ...BOX_DEFAULT_PROPS },
|
|
237
|
-
react_1.default.createElement(Stack_1.Stack, { size: 4 },
|
|
238
|
-
react_1.default.createElement(Typography_1.Typography, { variant: "delta", as: "h2" }, (0, utils_2.getMessage)('pages.settings.general.title')),
|
|
239
|
-
react_1.default.createElement(Grid_1.Grid, { gap: 4 },
|
|
240
|
-
react_1.default.createElement(Grid_1.GridItem, { col: 12, s: 12, xs: 12 },
|
|
241
|
-
react_1.default.createElement(ToggleInput_1.ToggleInput, { name: "preferCustomContentTypes", label: (0, utils_2.getMessage)('pages.settings.form.preferCustomContentTypes.label', 'Prefer custom content types'), hint: (0, utils_2.getMessage)('pages.settings.form.preferCustomContentTypes.hint', 'Prefer if to use only api:: prefixed content types'), checked: values.preferCustomContentTypes, onChange: ({ target: { checked } }) => {
|
|
242
|
-
setFieldValue('preferCustomContentTypes', checked, true);
|
|
243
|
-
}, onLabel: "Enabled", offLabel: "Disabled", disabled: restartStatus.required })),
|
|
244
|
-
react_1.default.createElement(Grid_1.GridItem, { col: 12, s: 12, xs: 12 },
|
|
245
|
-
react_1.default.createElement(Select_1.Select, { name: "selectedContentTypes", label: (0, utils_2.getMessage)('pages.settings.form.contentTypes.label'), placeholder: (0, utils_2.getMessage)('pages.settings.form.contentTypes.placeholder'), hint: (0, utils_2.getMessage)('pages.settings.form.contentTypes.hint'), onClear: () => setFieldValue('selectedContentTypes', [], false), value: values.selectedContentTypes, onChange: (value) => setFieldValue('selectedContentTypes', value, false), multi: true, withTags: true, disabled: restartStatus.required }, allContentTypes.map((item) => react_1.default.createElement(Select_1.Option, { key: item.uid, value: item.uid }, item.info.displayName)))),
|
|
246
|
-
!(0, lodash_1.isEmpty)(values.selectedContentTypes) && (react_1.default.createElement(Grid_1.GridItem, { col: 12 },
|
|
247
|
-
react_1.default.createElement(Accordion_1.AccordionGroup, { label: (0, utils_2.getMessage)('pages.settings.form.contentTypesSettings.label'), labelAction: react_1.default.createElement(Tooltip_1.Tooltip, { description: (0, utils_2.getMessage)('pages.settings.form.contentTypesSettings.tooltip') },
|
|
248
|
-
react_1.default.createElement(icons_1.Information, { "aria-hidden": true })) }, (0, lodash_1.orderBy)(values.selectedContentTypes).map(uid => {
|
|
249
|
-
const contentType = allContentTypes.find(item => item.uid == uid);
|
|
250
|
-
if (!contentType)
|
|
251
|
-
return;
|
|
252
|
-
const { info: { displayName }, available, isSingle } = contentType;
|
|
253
|
-
const attributeKeys = Object.keys(contentType.attributes).sort();
|
|
254
|
-
const stringAttributes = attributeKeys.filter(key => STRING_ATTRIBUTE_TYPES.includes(contentType.attributes[key].type));
|
|
255
|
-
const relationAttributes = attributeKeys.filter(key => RELATION_ATTRIBUTE_TYPES.includes(contentType.attributes[key].type));
|
|
256
|
-
const key = `collectionSettings-${uid}`;
|
|
257
|
-
return (react_1.default.createElement(Accordion_1.Accordion, { expanded: contentTypeExpanded === key, toggle: () => handleSetContentTypeExpanded(key), key: key, id: key, size: "S" },
|
|
258
|
-
react_1.default.createElement(Accordion_1.AccordionToggle, { title: displayName, togglePosition: "left", startIcon: (isSingle && !available) ? (react_1.default.createElement(icons_1.ExclamationMarkCircle, { "aria-hidden": true })) : null }),
|
|
259
|
-
react_1.default.createElement(Accordion_1.AccordionContent, null,
|
|
260
|
-
react_1.default.createElement(Box_1.Box, { padding: 6 },
|
|
261
|
-
react_1.default.createElement(Stack_1.Stack, { size: 4 },
|
|
262
|
-
(isSingle && !available) && (react_1.default.createElement(styles_1.PermanentAlert, { title: (0, utils_2.getMessage)('pages.settings.form.contentTypesSettings.initializationWarning.title'), variant: "danger", onClose: (e) => e.preventDefault() }, (0, utils_2.getMessage)('pages.settings.form.contentTypesSettings.initializationWarning.content'))),
|
|
263
|
-
react_1.default.createElement(Select_1.Select, { name: `collectionSettings-${uid}-entryLabel`, label: (0, utils_2.getMessage)('pages.settings.form.nameField.label'), hint: (0, utils_2.getMessage)(`pages.settings.form.nameField.${(0, lodash_1.isEmpty)(stringAttributes) ? 'empty' : 'hint'}`), placeholder: (0, utils_2.getMessage)('pages.settings.form.nameField.placeholder'), onClear: () => setFieldValue('nameFields', (0, utils_1.prepareNewValueForRecord)(uid, values.nameFields, [])), value: values.nameFields[uid] || [], onChange: (value) => setFieldValue('nameFields', (0, utils_1.prepareNewValueForRecord)(uid, values.nameFields, value)), multi: true, withTags: true, disabled: restartStatus.required || (0, lodash_1.isEmpty)(stringAttributes) }, stringAttributes.map(key => (react_1.default.createElement(Select_1.Option, { key: uid + key, value: key }, (0, lodash_1.capitalize)(key.split('_').join(' ')))))),
|
|
264
|
-
react_1.default.createElement(Select_1.Select, { name: `collectionSettings-${uid}-populate`, label: (0, utils_2.getMessage)('pages.settings.form.populate.label'), hint: (0, utils_2.getMessage)(`pages.settings.form.populate.${(0, lodash_1.isEmpty)(relationAttributes) ? 'empty' : 'hint'}`), placeholder: (0, utils_2.getMessage)('pages.settings.form.populate.placeholder'), onClear: () => setFieldValue('populate', (0, utils_1.prepareNewValueForRecord)(uid, values.populate, [])), value: values.populate[uid] || [], onChange: (value) => setFieldValue('populate', (0, utils_1.prepareNewValueForRecord)(uid, values.populate, value)), multi: true, withTags: true, disabled: restartStatus.required || (0, lodash_1.isEmpty)(relationAttributes) }, relationAttributes.map(key => (react_1.default.createElement(Select_1.Option, { key: uid + key, value: key }, (0, lodash_1.capitalize)(key.split('_').join(' ')))))),
|
|
265
|
-
react_1.default.createElement(Select_1.Select, { name: `collectionSettings-${uid}-pathDefaultFields`, label: (0, utils_2.getMessage)('pages.settings.form.pathDefaultFields.label'), hint: (0, utils_2.getMessage)(`pages.settings.form.pathDefaultFields.${(0, lodash_1.isEmpty)(stringAttributes) ? 'empty' : 'hint'}`), placeholder: (0, utils_2.getMessage)('pages.settings.form.pathDefaultFields.placeholder'), onClear: () => setFieldValue('pathDefaultFields', (0, utils_1.prepareNewValueForRecord)(uid, values.pathDefaultFields, [])), value: values.pathDefaultFields[uid] || [], onChange: (value) => setFieldValue('pathDefaultFields', (0, utils_1.prepareNewValueForRecord)(uid, values.pathDefaultFields, value)), multi: true, withTags: true, disabled: restartStatus.required || (0, lodash_1.isEmpty)(stringAttributes) }, stringAttributes.map(key => (react_1.default.createElement(Select_1.Option, { key: uid + key, value: key }, (0, lodash_1.capitalize)(key.split('_').join(' ')))))))))));
|
|
266
|
-
}))))))),
|
|
267
|
-
react_1.default.createElement(Box_1.Box, { ...BOX_DEFAULT_PROPS },
|
|
268
|
-
react_1.default.createElement(Stack_1.Stack, { size: 4 },
|
|
269
|
-
react_1.default.createElement(Typography_1.Typography, { variant: "delta", as: "h2" }, (0, utils_2.getMessage)('pages.settings.additional.title')),
|
|
270
|
-
react_1.default.createElement(Grid_1.Grid, { gap: 4 },
|
|
271
|
-
react_1.default.createElement(Grid_1.GridItem, { col: 6, s: 6, xs: 12 },
|
|
272
|
-
react_1.default.createElement(Box_1.Box, { style: { maxWidth: 257 } },
|
|
273
|
-
react_1.default.createElement(NumberInput_1.NumberInput, { name: "allowedLevels", label: (0, utils_2.getMessage)('pages.settings.form.allowedLevels.label'), placeholder: (0, utils_2.getMessage)('pages.settings.form.allowedLevels.placeholder'), hint: (0, utils_2.getMessage)('pages.settings.form.allowedLevels.hint'), onValueChange: (value) => setFieldValue('allowedLevels', value, false), value: values.allowedLevels, disabled: restartStatus.required }))),
|
|
274
|
-
react_1.default.createElement(Grid_1.GridItem, { col: 6, s: 12, xs: 12 },
|
|
275
|
-
react_1.default.createElement(ToggleInput_1.ToggleInput, { name: "cascadeMenuAttachedChecked", label: (0, utils_2.getMessage)('pages.settings.form.cascadeMenuAttached.label'), hint: (0, utils_2.getMessage)('pages.settings.form.cascadeMenuAttached.hint'), checked: values.cascadeMenuAttachedChecked, onChange: ({ target: { checked } }) => {
|
|
276
|
-
setFieldValue('cascadeMenuAttachedChecked', checked, true);
|
|
277
|
-
}, onLabel: "Enabled", offLabel: "Disabled", disabled: restartStatus.required }))),
|
|
278
|
-
react_1.default.createElement(Grid_1.Grid, { gap: 4 },
|
|
279
|
-
react_1.default.createElement(Grid_1.GridItem, { col: 6, s: 12, xs: 12 },
|
|
280
|
-
react_1.default.createElement(ToggleInput_1.ToggleInput, { name: "audienceFieldChecked", label: (0, utils_2.getMessage)('pages.settings.form.audience.label'), hint: (0, utils_2.getMessage)('pages.settings.form.audience.hint'), checked: values.audienceFieldChecked, onChange: () => setFieldValue('audienceFieldChecked', !values.audienceFieldChecked, false), onLabel: "Enabled", offLabel: "Disabled", disabled: restartStatus.required })),
|
|
281
|
-
isI18NPluginEnabled && (react_1.default.createElement(Grid_1.GridItem, { col: 6, s: 12, xs: 12 },
|
|
282
|
-
react_1.default.createElement(ToggleInput_1.ToggleInput, { name: "i18nEnabled", label: (0, utils_2.getMessage)('pages.settings.form.i18n.label'), hint: defaultLocale
|
|
283
|
-
? (0, utils_2.getMessage)('pages.settings.form.i18n.hint')
|
|
284
|
-
: (0, utils_2.getMessage)('pages.settings.form.i18n.hint.missingDefaultLocale'), checked: values.i18nEnabled, onChange: ({ target: { checked } }) => {
|
|
285
|
-
setFieldValue('i18nEnabled', checked, false);
|
|
286
|
-
if (checked) {
|
|
287
|
-
setPruneObsoleteI18nNavigations(false);
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
290
|
-
setDisableI18nModalOpened(true);
|
|
291
|
-
setI18nModalOnCancel(() => () => {
|
|
292
|
-
setFieldValue('i18nEnabled', true);
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
}, onLabel: "Enabled", offLabel: "Disabled", disabled: restartStatus.required || !defaultLocale })))),
|
|
296
|
-
isCachePluginEnabled && (react_1.default.createElement(Grid_1.Grid, { gap: 4 },
|
|
297
|
-
react_1.default.createElement(Grid_1.GridItem, { col: 12, s: 12, xs: 12 },
|
|
298
|
-
react_1.default.createElement(ToggleInput_1.ToggleInput, { name: "cacheEnabled", label: (0, utils_2.getMessage)('pages.settings.form.cache.label'), hint: (0, utils_2.getMessage)('pages.settings.form.cache.hint'), checked: values.isCacheEnabled, onChange: ({ target: { checked } }) => {
|
|
299
|
-
setFieldValue('isCacheEnabled', checked, false);
|
|
300
|
-
}, onLabel: "Enabled", offLabel: "Disabled", disabled: restartStatus.required })))))),
|
|
301
|
-
react_1.default.createElement(Box_1.Box, { ...BOX_DEFAULT_PROPS },
|
|
302
|
-
react_1.default.createElement(Stack_1.Stack, { size: 4 },
|
|
303
|
-
react_1.default.createElement(Typography_1.Typography, { variant: "delta", as: "h2" }, (0, utils_2.getMessage)('pages.settings.customFields.title')),
|
|
304
|
-
react_1.default.createElement(CustomFieldTable_1.default, { data: customFields, onOpenModal: handleOpenCustomFieldModal, onRemoveCustomField: handleRemoveCustomField, onToggleCustomField: handleToggleCustomField }))),
|
|
305
|
-
react_1.default.createElement(Box_1.Box, { ...BOX_DEFAULT_PROPS },
|
|
306
|
-
react_1.default.createElement(Stack_1.Stack, { size: 4 },
|
|
307
|
-
react_1.default.createElement(Typography_1.Typography, { variant: "delta", as: "h2" }, (0, utils_2.getMessage)('pages.settings.restoring.title')),
|
|
308
|
-
react_1.default.createElement(Grid_1.Grid, { gap: 4 },
|
|
309
|
-
react_1.default.createElement(Grid_1.GridItem, { col: 12, s: 12, xs: 12 },
|
|
310
|
-
react_1.default.createElement(Typography_1.Typography, null, (0, utils_2.getMessage)('pages.settings.actions.restore.description'))),
|
|
311
|
-
react_1.default.createElement(Grid_1.GridItem, { col: 6, s: 12, xs: 12 },
|
|
312
|
-
react_1.default.createElement(helper_plugin_1.CheckPermissions, { permissions: permissions_1.default.access },
|
|
313
|
-
react_1.default.createElement(Button_1.Button, { variant: "danger-light", startIcon: react_1.default.createElement(icons_1.Refresh, null), onClick: () => setIsRestorePopupOpen(true) }, (0, utils_2.getMessage)('pages.settings.actions.restore'))),
|
|
314
|
-
react_1.default.createElement(ConfirmationDialog_1.default, { isVisible: isRestorePopupOpen, header: (0, utils_2.getMessage)('pages.settings.actions.restore.confirmation.header'), labelConfirm: (0, utils_2.getMessage)('pages.settings.actions.restore.confirmation.confirm'), iconConfirm: react_1.default.createElement(icons_1.Refresh, null), onConfirm: () => onPopupClose(true), onCancel: () => onPopupClose(false) }, (0, utils_2.getMessage)('pages.settings.actions.restore.confirmation.description')),
|
|
315
|
-
disableI18nModal))))))));
|
|
316
|
-
})),
|
|
317
|
-
isCustomFieldModalOpen &&
|
|
318
|
-
react_1.default.createElement(CustomFieldModal_1.default, { onClose: () => setIsCustomFieldModalOpen(false), onSubmit: handleSubmitCustomField, isOpen: isCustomFieldModalOpen, data: customFieldSelected, usedCustomFieldNames: customFields.filter(f => f.name !== customFieldSelected?.name).map(f => f.name) })));
|
|
319
|
-
};
|
|
320
|
-
exports.default = SettingsPage;
|
|
321
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { StrapiContentTypeFullSchema } from "strapi-typed";
|
|
2
|
-
import { Effect, NavigationPluginConfig } from "../../../../types";
|
|
3
|
-
export type RawPayload = {
|
|
4
|
-
allowedLevels: number;
|
|
5
|
-
audienceFieldChecked: boolean;
|
|
6
|
-
cascadeMenuAttachedChecked: boolean;
|
|
7
|
-
i18nEnabled: boolean;
|
|
8
|
-
nameFields: Record<string, string[]>;
|
|
9
|
-
pathDefaultFields: Record<string, string[]>;
|
|
10
|
-
populate: Record<string, string[]>;
|
|
11
|
-
selectedContentTypes: string[];
|
|
12
|
-
isCacheEnabled: boolean;
|
|
13
|
-
preferCustomContentTypes: boolean;
|
|
14
|
-
};
|
|
15
|
-
export type StrapiContentTypeSchema = StrapiContentTypeFullSchema & {
|
|
16
|
-
available: boolean;
|
|
17
|
-
isSingle: boolean;
|
|
18
|
-
plugin: string;
|
|
19
|
-
label: string;
|
|
20
|
-
};
|
|
21
|
-
export type PreparePayload = (payload: {
|
|
22
|
-
form: RawPayload;
|
|
23
|
-
pruneObsoleteI18nNavigations: boolean;
|
|
24
|
-
}) => NavigationPluginConfig;
|
|
25
|
-
export type OnSave = Effect<RawPayload>;
|
|
26
|
-
export type OnPopupClose = Effect<boolean>;
|
|
27
|
-
export type HandleSetContentTypeExpanded = Effect<string | undefined>;
|
|
28
|
-
export type RestartReasons = 'I18N' | 'GRAPH_QL' | 'I18N_NAVIGATIONS_PRUNE' | 'CACHE';
|
|
29
|
-
export type RestartStatus = {
|
|
30
|
-
required: true;
|
|
31
|
-
reasons?: RestartReasons[];
|
|
32
|
-
} | {
|
|
33
|
-
required: false;
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { NavigationItemCustomField } from "../../../../../types";
|
|
2
|
-
export declare const schemaFactory: (usedCustomFieldNames: string[]) => import("yup/lib/object").OptionalObjectSchema<{
|
|
3
|
-
name: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
|
|
4
|
-
label: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
|
|
5
|
-
type: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
6
|
-
required: import("yup/lib/boolean").RequiredBooleanSchema<boolean | undefined, Record<string, any>>;
|
|
7
|
-
multi: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
8
|
-
options: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
9
|
-
enabled: import("yup").BooleanSchema<boolean | undefined, Record<string, any>, boolean | undefined>;
|
|
10
|
-
}, Record<string, any>, import("yup/lib/object").TypeOfShape<{
|
|
11
|
-
name: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
|
|
12
|
-
label: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
|
|
13
|
-
type: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
14
|
-
required: import("yup/lib/boolean").RequiredBooleanSchema<boolean | undefined, Record<string, any>>;
|
|
15
|
-
multi: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
16
|
-
options: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
17
|
-
enabled: import("yup").BooleanSchema<boolean | undefined, Record<string, any>, boolean | undefined>;
|
|
18
|
-
}>>;
|
|
19
|
-
export declare const defaultValues: NavigationItemCustomField;
|
|
20
|
-
//# sourceMappingURL=form.d.ts.map
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultValues = exports.schemaFactory = void 0;
|
|
4
|
-
const yup_1 = require("yup");
|
|
5
|
-
const helper_plugin_1 = require("@strapi/helper-plugin");
|
|
6
|
-
const translations_1 = require("../../../translations");
|
|
7
|
-
const common_1 = require("../common");
|
|
8
|
-
const schemaFactory = (usedCustomFieldNames) => {
|
|
9
|
-
return (0, yup_1.object)({
|
|
10
|
-
name: (0, yup_1.string)().matches(/^\S+$/, "Invalid name string. Name cannot contain spaces").required(helper_plugin_1.translatedErrors.required).notOneOf(usedCustomFieldNames, helper_plugin_1.translatedErrors.unique),
|
|
11
|
-
label: (0, yup_1.string)().required(helper_plugin_1.translatedErrors.required),
|
|
12
|
-
type: (0, yup_1.mixed)().required(helper_plugin_1.translatedErrors.required).oneOf(common_1.customFieldsTypes, (0, translations_1.getTradId)("notification.error.customField.type")),
|
|
13
|
-
required: (0, yup_1.bool)().required(helper_plugin_1.translatedErrors.required),
|
|
14
|
-
multi: (0, yup_1.mixed)().when('type', {
|
|
15
|
-
is: (val) => val === 'select',
|
|
16
|
-
then: (0, yup_1.bool)().required(helper_plugin_1.translatedErrors.required),
|
|
17
|
-
otherwise: (0, yup_1.bool)().notRequired()
|
|
18
|
-
}),
|
|
19
|
-
options: (0, yup_1.mixed)().when('type', {
|
|
20
|
-
is: (val) => val === 'select',
|
|
21
|
-
then: (0, yup_1.array)().of((0, yup_1.string)()),
|
|
22
|
-
otherwise: (0, yup_1.mixed)().notRequired(),
|
|
23
|
-
}),
|
|
24
|
-
enabled: (0, yup_1.bool)().notRequired(),
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
exports.schemaFactory = schemaFactory;
|
|
28
|
-
exports.defaultValues = {
|
|
29
|
-
name: "",
|
|
30
|
-
label: "",
|
|
31
|
-
type: "string",
|
|
32
|
-
required: false,
|
|
33
|
-
multi: false,
|
|
34
|
-
options: [],
|
|
35
|
-
enabled: true,
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=form.js.map
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
const { capitalize } = require("lodash");
|
|
3
|
-
const UID_REGEX = /^(?<type>[a-z0-9-]+)\:{2}(?<api>[a-z0-9-]+)\.{1}(?<contentType>[a-z0-9-]+)$/i;
|
|
4
|
-
const splitTypeUid = (uid = '') => {
|
|
5
|
-
return uid.split(UID_REGEX).filter((s) => s && s.length > 0);
|
|
6
|
-
};
|
|
7
|
-
module.exports = {
|
|
8
|
-
resolveGlobalLikeId(uid = '') {
|
|
9
|
-
const parse = (str) => str.split('-')
|
|
10
|
-
.map(_ => capitalize(_))
|
|
11
|
-
.join('');
|
|
12
|
-
const [type, scope, contentTypeName] = splitTypeUid(uid);
|
|
13
|
-
if (type === 'api') {
|
|
14
|
-
return parse(contentTypeName);
|
|
15
|
-
}
|
|
16
|
-
return `${parse(scope)}${parse(contentTypeName)}`;
|
|
17
|
-
},
|
|
18
|
-
isContentTypeEligible(uid = '', config = {}) {
|
|
19
|
-
const { allowedContentTypes: baseAllowedContentTypes = [], restrictedContentTypes = [], preferCustomContentTypes = false, selectedContentTypes = [], } = config;
|
|
20
|
-
const allowedContentTypes = preferCustomContentTypes ? ["api::", ...selectedContentTypes] : baseAllowedContentTypes;
|
|
21
|
-
const isOneOfAllowedType = allowedContentTypes.filter(_ => uid.includes(_) || (uid === _)).length > 0;
|
|
22
|
-
const isNoneOfRestricted = restrictedContentTypes.filter(_ => uid.includes(_) || (uid === _)).length === 0;
|
|
23
|
-
return !!uid && isOneOfAllowedType && isNoneOfRestricted;
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=functions.js.map
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { VFC } from "react";
|
|
2
|
-
export interface ConfirmEffect {
|
|
3
|
-
(source: string): void;
|
|
4
|
-
}
|
|
5
|
-
export interface CancelEffect {
|
|
6
|
-
(): void;
|
|
7
|
-
}
|
|
8
|
-
interface Props {
|
|
9
|
-
onConfirm: ConfirmEffect;
|
|
10
|
-
onCancel: CancelEffect;
|
|
11
|
-
}
|
|
12
|
-
export declare const I18nCopyNavigationItemsModal: VFC<Props>;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,15 +0,0 @@
|
|
|
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.I18nCopyNavigationItemsModal = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const ConfirmationDialog_1 = __importDefault(require("../../../../components/ConfirmationDialog"));
|
|
9
|
-
const utils_1 = require("../../../../utils");
|
|
10
|
-
const refreshIcon = react_1.default.createElement(react_1.default.Fragment, null);
|
|
11
|
-
const I18nCopyNavigationItemsModal = ({ onConfirm, onCancel, }) => {
|
|
12
|
-
return (react_1.default.createElement(ConfirmationDialog_1.default, { isVisible: true, header: (0, utils_1.getMessage)("pages.view.actions.i18nCopyItems.confirmation.header"), labelConfirm: (0, utils_1.getMessage)("pages.view.actions.i18nCopyItems.confirmation.confirm"), iconConfirm: refreshIcon, mainIcon: refreshIcon, onConfirm: onConfirm, onCancel: onCancel }, (0, utils_1.getMessage)("pages.view.actions.i18nCopyItems.confirmation.content")));
|
|
13
|
-
};
|
|
14
|
-
exports.I18nCopyNavigationItemsModal = I18nCopyNavigationItemsModal;
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const Flex_1 = require("@strapi/design-system/Flex");
|
|
8
|
-
const NavigationContentHeader = ({ startActions, endActions }) => {
|
|
9
|
-
return (react_1.default.createElement(Flex_1.Flex, { justifyContent: "space-between", width: "100%" },
|
|
10
|
-
react_1.default.createElement(Flex_1.Flex, { alignItems: "space-between" }, startActions),
|
|
11
|
-
react_1.default.createElement(Flex_1.Flex, { alignItems: "space-between" }, endActions)));
|
|
12
|
-
};
|
|
13
|
-
exports.default = NavigationContentHeader;
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export default NavigationHeader;
|
|
2
|
-
declare function NavigationHeader({ activeNavigation, availableNavigations, structureHasErrors, structureHasChanged, handleChangeSelection, handleLocalizationSelection, handleSave, handleCachePurge, config, permissions, }: {
|
|
3
|
-
activeNavigation: any;
|
|
4
|
-
availableNavigations: any;
|
|
5
|
-
structureHasErrors: any;
|
|
6
|
-
structureHasChanged: any;
|
|
7
|
-
handleChangeSelection: any;
|
|
8
|
-
handleLocalizationSelection: any;
|
|
9
|
-
handleSave: any;
|
|
10
|
-
handleCachePurge: any;
|
|
11
|
-
config: any;
|
|
12
|
-
permissions?: {} | undefined;
|
|
13
|
-
}): JSX.Element;
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,92 +0,0 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const react_1 = __importStar(require("react"));
|
|
30
|
-
const react_intl_1 = require("react-intl");
|
|
31
|
-
const Layout_1 = require("@strapi/design-system/Layout");
|
|
32
|
-
const Stack_1 = require("@strapi/design-system/Stack");
|
|
33
|
-
const Button_1 = require("@strapi/design-system/Button");
|
|
34
|
-
const Check_1 = __importDefault(require("@strapi/icons/Check"));
|
|
35
|
-
const More_1 = __importDefault(require("@strapi/icons/More"));
|
|
36
|
-
const Information_1 = __importDefault(require("@strapi/icons/Information"));
|
|
37
|
-
const Tag_1 = require("@strapi/design-system/Tag");
|
|
38
|
-
const translations_1 = require("../../../../translations");
|
|
39
|
-
const styles_1 = require("./styles");
|
|
40
|
-
const Select_1 = require("@strapi/design-system/Select");
|
|
41
|
-
const Box_1 = require("@strapi/design-system/Box");
|
|
42
|
-
const Grid_1 = require("@strapi/design-system/Grid");
|
|
43
|
-
const lodash_1 = require("lodash");
|
|
44
|
-
const useNavigationManager_1 = require("../../../../hooks/useNavigationManager");
|
|
45
|
-
const submitIcon = react_1.default.createElement(Check_1.default, null);
|
|
46
|
-
const pickDefaultLocaleNavigation = ({ activeNavigation, config }) => config.i18nEnabled
|
|
47
|
-
? activeNavigation
|
|
48
|
-
? activeNavigation.localeCode === config.defaultLocale
|
|
49
|
-
? activeNavigation
|
|
50
|
-
: activeNavigation?.localizations.find(({ localeCode }) => localeCode === config.defaultLocale)
|
|
51
|
-
: null
|
|
52
|
-
: activeNavigation;
|
|
53
|
-
const NavigationHeader = ({ activeNavigation, availableNavigations, structureHasErrors, structureHasChanged, handleChangeSelection, handleLocalizationSelection, handleSave, handleCachePurge, config, permissions = {}, }) => {
|
|
54
|
-
const { formatMessage } = (0, react_intl_1.useIntl)();
|
|
55
|
-
const allLocaleVersions = (0, react_1.useMemo)(() => activeNavigation?.localizations.length && config.i18nEnabled
|
|
56
|
-
? (0, lodash_1.uniqBy)([activeNavigation, ...(activeNavigation.localizations ?? [])].sort((a, b) => a.localeCode.localeCompare(b.localeCode)), 'id')
|
|
57
|
-
: [], [activeNavigation, config]);
|
|
58
|
-
const hasLocalizations = config.i18nEnabled && allLocaleVersions.length;
|
|
59
|
-
const passedActiveNavigation = pickDefaultLocaleNavigation({ activeNavigation, config });
|
|
60
|
-
const { closeNavigationManagerModal, openNavigationManagerModal, navigationManagerModal } = (0, useNavigationManager_1.useNavigationManager)();
|
|
61
|
-
const { canUpdate } = permissions;
|
|
62
|
-
return (react_1.default.createElement(Layout_1.HeaderLayout, { secondaryAction: react_1.default.createElement(Tag_1.Tag, { icon: react_1.default.createElement(Information_1.default, { "aria-hidden": true }) }, activeNavigation
|
|
63
|
-
? formatMessage((0, translations_1.getTrad)('header.meta'), {
|
|
64
|
-
id: activeNavigation?.id,
|
|
65
|
-
key: activeNavigation?.slug
|
|
66
|
-
})
|
|
67
|
-
: null), primaryAction: react_1.default.createElement(Stack_1.Stack, { horizontal: true, size: 2 },
|
|
68
|
-
react_1.default.createElement(Box_1.Box, { marginRight: "8px" },
|
|
69
|
-
react_1.default.createElement(Grid_1.Grid, { gap: 4, style: config.isCacheEnabled ? { display: "flex" } : undefined },
|
|
70
|
-
!hasLocalizations ? (react_1.default.createElement(Grid_1.GridItem, { col: 2 })) : null,
|
|
71
|
-
canUpdate && (react_1.default.createElement(Grid_1.GridItem, { col: 3 },
|
|
72
|
-
react_1.default.createElement(Button_1.Button, { onClick: openNavigationManagerModal, startIcon: null, type: "button", variant: "secondary", fullWidth: true, size: "S" }, formatMessage((0, translations_1.getTrad)('header.action.manage'))))),
|
|
73
|
-
react_1.default.createElement(Grid_1.GridItem, { col: canUpdate ? 4 : 10 },
|
|
74
|
-
react_1.default.createElement(Select_1.Select, { type: "select", placeholder: "Change navigation", name: "navigationSelect", onChange: handleChangeSelection, value: passedActiveNavigation?.id, size: "S", style: null }, availableNavigations.map(({ id, name }) => react_1.default.createElement(Select_1.Option, { key: id, value: id }, name)))),
|
|
75
|
-
hasLocalizations
|
|
76
|
-
? react_1.default.createElement(Grid_1.GridItem, { col: 2 },
|
|
77
|
-
react_1.default.createElement(Select_1.Select, { type: "select", placeholder: formatMessage((0, translations_1.getTrad)('pages.main.header.localization.select.placeholder')), name: "navigationLocalizationSelect", onChange: handleLocalizationSelection, value: activeNavigation?.id, size: "S" }, allLocaleVersions.map(({ id, localeCode }) => react_1.default.createElement(Select_1.Option, { key: id, value: id }, localeCode))))
|
|
78
|
-
: null,
|
|
79
|
-
canUpdate && (react_1.default.createElement(Grid_1.GridItem, { col: 3 },
|
|
80
|
-
react_1.default.createElement(Button_1.Button, { onClick: handleSave, startIcon: submitIcon, disabled: structureHasErrors || !structureHasChanged, type: "submit", fullWidth: true, size: "S" }, formatMessage((0, translations_1.getTrad)('submit.cta.save'))))),
|
|
81
|
-
config.isCacheEnabled && (react_1.default.createElement(Grid_1.GridItem, { col: 3 },
|
|
82
|
-
react_1.default.createElement(Button_1.Button, { onClick: handleCachePurge, variant: "danger", type: "submit", fullWidth: true, size: "S" }, formatMessage((0, translations_1.getTrad)('submit.cta.cache.purge'))))))),
|
|
83
|
-
canUpdate && navigationManagerModal), title: formatMessage({
|
|
84
|
-
id: (0, translations_1.getTrad)('header.title'),
|
|
85
|
-
defaultMessage: 'UI Navigation',
|
|
86
|
-
}), subtitle: formatMessage({
|
|
87
|
-
id: (0, translations_1.getTrad)('header.description'),
|
|
88
|
-
defaultMessage: 'Define your portal navigation',
|
|
89
|
-
}) }));
|
|
90
|
-
};
|
|
91
|
-
exports.default = NavigationHeader;
|
|
92
|
-
//# sourceMappingURL=index.js.map
|