UNPKG

strapi-plugin-navigation

Version:
584 lines (583 loc) 24.4 kB
declare const _default: { bootstrap: (context: { strapi: import("@strapi/types/dist/core").Strapi; }) => Promise<void>; destroy: ({ strapi }: { strapi: import("@strapi/types/dist/core").Strapi; }) => void; register: ({ strapi }: { strapi: import("@strapi/types/dist/core").Strapi; }) => void; config: { default: { additionalFields: never[]; allowedLevels: number; contentTypes: never[]; contentTypesNameFields: {}; contentTypesPopulate: {}; gql: { navigationItemRelated: never[]; }; i18nEnabled: boolean; pathDefaultFields: {}; pruneObsoleteI18nNavigations: boolean; cascadeMenuAttached: boolean; preferCustomContentTypes: boolean; isCacheEnabled: boolean; }; }; controllers: { admin: typeof import("./controllers/admin").default; client: typeof import("./controllers/client").default; }; contentTypes: { audience: { schema: { collectionName: string; info: { singularName: string; pluralName: string; displayName: string; name: string; }; options: { increments: boolean; comment: string; }; attributes: { name: { type: string; required: boolean; }; key: { type: string; targetField: string; }; }; }; }; navigation: { schema: { collectionName: string; info: { singularName: string; pluralName: string; displayName: string; name: string; }; options: { comment: string; }; pluginOptions: { 'content-manager': { visible: boolean; }; 'content-type-builder': { visible: boolean; }; i18n: { localized: boolean; }; }; attributes: { name: { type: string; configurable: boolean; required: boolean; }; slug: { type: string; target: string; configurable: boolean; required: boolean; }; visible: { type: string; default: boolean; configurable: boolean; }; items: { type: string; relation: string; target: string; configurable: boolean; mappedBy: string; }; }; }; lifecycles: Record<string, import("./types").Effect<import("./types").LifeCycleEvent<import("./types").LifeCycleHookName, unknown, Record<string, unknown>>>>; }; 'navigation-item': { schema: { collectionName: string; info: { singularName: string; pluralName: string; /** * Plugin server methods */ displayName: string; name: string; }; options: { increments: boolean; timestamps: boolean; comment: string; }; pluginOptions: { 'content-manager': { visible: boolean; }; 'content-type-builder': { visible: boolean; }; i18n: { localized: boolean; }; }; attributes: { title: { type: string; configurable: boolean; required: boolean; pluginOptions: { i18n: { localized: boolean; }; }; }; type: { type: string; enum: string[]; default: string; configurable: boolean; }; path: { type: string; targetField: string; configurable: boolean; }; externalPath: { type: string; configurable: boolean; }; uiRouterKey: { type: string; configurable: boolean; }; menuAttached: { type: string; default: boolean; configurable: boolean; }; order: { type: string; default: number; configurable: boolean; }; collapsed: { type: string; default: boolean; configurable: boolean; }; autoSync: { type: string; default: boolean; configurable: boolean; }; related: { type: string; relation: string; required: boolean; configurable: boolean; }; parent: { type: string; relation: string; target: string; configurable: boolean; default: null; }; master: { type: string; relation: string; target: string; configurable: boolean; inversedBy: string; }; audience: { type: string; relation: string; target: string; }; additionalFields: { type: string; require: boolean; default: {}; }; }; }; lifecycles: Record<string, import("./types").Effect<import("./types").LifeCycleEvent<import("./types").LifeCycleHookName, unknown, Record<string, unknown>>>>; }; }; middlewares: {}; policies: {}; routes: { admin: { type: string; routes: ({ method: string; path: string; /** * Plugin server methods */ handler: string; config: { policies: { name: string; config: { actions: string[]; }; }[]; }; } | { method: string; path: string; handler: string; config: { policies: string[]; }; })[]; }; 'content-api': { type: string; routes: { method: string; path: string; handler: string; config: { policies: never[]; }; }[]; }; }; services: { admin: (context: { strapi: import("@strapi/types/dist/core").Strapi; }) => { config({ viaSettingsPage }: import("./services/admin/types").ConfigInput): Promise<import("./dtos").NavigationPluginConfigDTO>; configContentTypes({ viaSettingsPage, }: import("./services/admin/types").ConfigInput): Promise<import("./dtos").ConfigContentTypeDTO[]>; get({ ids, locale }: import("./services/admin/types").GetInput): Promise<{ name: string; id: number; documentId: string; slug: string; locale: string; visible: boolean; items?: import("./schemas").NavigationItemDBSchema[] | undefined; }[]>; getById({ documentId, locale, populate }: import("./services/admin/types").GetByIdInput): Promise<{ name: string; id: number; documentId: string; slug: string; locale: string; visible: boolean; items?: import("./schemas").NavigationItemDBSchema[] | undefined; }>; post({ auditLog, payload }: import("./services/admin/types").PostInput): Promise<import("./dtos").NavigationDTO>; put({ auditLog, payload }: import("./services/admin/types").PutInput): Promise<{ name: string; id: number; documentId: string; slug: string; locale: string; visible: boolean; items?: import("./schemas").NavigationItemDBSchema[] | undefined; }>; delete({ auditLog, documentId }: import("./services/admin/types").DeleteInput): Promise<void>; restart(): Promise<void>; restoreConfig(): Promise<void>; updateConfig({ config: newConfig }: import("./services/admin/types").UpdateConfigInput): Promise<void>; fillFromOtherLocale({ auditLog, source, target, documentId, }: import("./services/admin/types").FillFromOtherLocaleInput): Promise<{ name: string; id: number; documentId: string; slug: string; locale: string; visible: boolean; items?: import("./schemas").NavigationItemDBSchema[] | undefined; }>; i18nNavigationContentsCopy({ source, target, }: import("./services/admin/types").I18nNavigationContentsCopyInput): Promise<void>; readNavigationItemFromLocale({ path, source, target, }: import("./services/admin/types").ReadNavigationItemFromLocaleInput): Promise<{ type: "INTERNAL" | "EXTERNAL" | "WRAPPER"; title: string; uiRouterKey: string; path?: string | null | undefined; externalPath?: string | null | undefined; related?: unknown; }>; getContentTypeItems({ query, uid, }: import("./services/admin/types").GetContentTypeItemsInput): Promise<{ documentId: string; }[]>; purgeNavigationCache(documentId: string, clearLocalisations?: boolean | undefined): Promise<{ success: boolean; }>; purgeNavigationsCache(): Promise<{ success: boolean; }>; }; common: (context: { strapi: import("@strapi/types/dist/core").Strapi; }) => { getPluginStore(): Promise<{ get(params?: Partial<{ key: string; type?: string | undefined; environment?: string | undefined; name?: string | undefined; tag?: string | undefined; }> | undefined): Promise<unknown>; set(params?: Partial<{ key: string; value: unknown; type?: string | undefined; environment?: string | undefined; name?: string | undefined; tag?: string | undefined; /** * Plugin server methods */ }> | undefined): Promise<void>; delete(params?: Partial<{ key: string; type?: string | undefined; environment?: string | undefined; name?: string | undefined; tag?: string | undefined; }> | undefined): Promise<void>; }>; mapToNavigationItemDTO({ locale, master, navigationItems, parent, populate, }: import("./services/common/types").MapToNavigationItemDTOInput): Promise<import("./dtos").NavigationItemDTO[]>; setDefaultConfig(): Promise<{ additionalFields: ("audience" | { type: "string" | "boolean"; name: string; label: string; options?: string[] | undefined; required?: boolean | undefined; enabled?: boolean | undefined; multi?: false | undefined; } | { type: "media"; name: string; label: string; options?: string[] | undefined; required?: boolean | undefined; enabled?: boolean | undefined; multi?: false | undefined; } | { options: string[]; type: "select"; name: string; label: string; multi: boolean; required?: boolean | undefined; enabled?: boolean | undefined; })[]; allowedLevels: number; contentTypes: string[]; contentTypesNameFields: Record<string, string[]>; contentTypesPopulate: Record<string, string[]>; gql: { navigationItemRelated: string[]; }; pathDefaultFields: Record<string, any>; cascadeMenuAttached: boolean; preferCustomContentTypes: boolean; isCacheEnabled?: boolean | undefined; }>; getBranchName({ item }: import("./services/common/types").GetBranchNameInput): void | import("./types").NavigationActionsCategories; analyzeBranch({ masterEntity, navigationItems, parentItem, prevAction, }: import("./services/common/types").AnalyzeBranchInput): Promise<import("./types").NavigationAction[]>; removeBranch({ navigationItems, action, }: import("./services/common/types").RemoveBranchInput): Promise<import("./types").NavigationAction[]>; createBranch({ action, masterEntity, navigationItems, parentItem, }: import("./services/common/types").CreateBranchInput): Promise<import("./types").NavigationAction[]>; updateBranch({ masterEntity, navigationItems, action, parentItem, }: import("./services/common/types").UpdateBranchInput): Promise<import("./types").NavigationAction[]>; emitEvent({ entity, event, uid }: import("./services/common/types").EmitEventInput<any, any>): Promise<void>; pruneCustomFields({ removedFields }: { removedFields: ({ type: "string" | "boolean"; name: string; label: string; options?: string[] | undefined; required?: boolean | undefined; enabled?: boolean | undefined; multi?: false | undefined; } | { type: "media"; name: string; label: string; options?: string[] | undefined; required?: boolean | undefined; enabled?: boolean | undefined; multi?: false | undefined; } | { options: string[]; type: "select"; name: string; label: string; multi: boolean; required?: boolean | undefined; enabled?: boolean | undefined; })[]; }): Promise<void>; getSlug({ query }: import("./services/common/types").GetSlugInput): Promise<string>; registerLifeCycleHook({ callback, contentTypeName, hookName }: import("./services/common/types").RegisterLifeCycleHookInput): void; runLifeCycleHook({ contentTypeName, event, hookName }: import("./services/common/types").RunLifeCycleHookInput): Promise<void>; buildNestedStructure({ navigationItems, id, }: import("./services/common/types").BuildNestedStructureInput): import("./schemas").NavigationItemDBSchema[]; readLocale(): Promise<{ defaultLocale: string; restLocale: string[]; }>; }; client: (context: { strapi: import("@strapi/types/dist/core").Strapi; }) => { readAll({ locale, orderBy, orderDirection }: import("./services/client/types").ReadAllInput): Promise<{ name: string; id: number; documentId: string; slug: string; locale: string; visible: boolean; items?: import("./schemas").NavigationItemDBSchema[] | undefined; }[]>; renderRFRNavigationItem({ item }: import("./services/client/types").RenderRFRNavInput): import("./dtos").RFRNavigationItemDTO; renderRFRPage({ item, parent, enabledCustomFieldsNames }: import("./services/client/types").RenderRFRPageInput): import("./dtos").RFRPageDTO; renderRFR({ items, parent, parentNavItem, contentTypes, enabledCustomFieldsNames, }: import("./services/client/types").RenderRFRInput): { pages: {}; nav: {}; }; renderTree({ items, documentId, path, itemParser, }: import("./services/client/types").RenderTreeInput): Promise<import("./dtos").NavigationItemDTO[]>; getCustomFields(additionalFields: ("audience" | { type: "string" | "boolean"; name: string; label: string; options?: string[] | undefined; required?: boolean | undefined; enabled?: boolean | undefined; multi?: false | undefined; } | { type: "media"; name: string; label: string; options?: string[] | undefined; required?: boolean | undefined; enabled?: boolean | undefined; multi?: false | undefined; } | { options: string[]; type: "select"; name: string; label: string; multi: boolean; required?: boolean | undefined; enabled?: boolean | undefined; })[]): ({ type: "string" | "boolean"; name: string; label: string; options?: string[] | undefined; required?: boolean | undefined; enabled?: boolean | undefined; multi?: false | undefined; } | { type: "media"; name: string; label: string; options?: string[] | undefined; required?: boolean | undefined; enabled?: boolean | undefined; multi?: false | undefined; } | { options: string[]; type: "select"; name: string; label: string; multi: boolean; required?: boolean | undefined; enabled?: boolean | undefined; })[]; renderType({ criteria, filter, itemCriteria, locale, populate, rootPath, type, wrapRelated, }: import("./services/client/types").RenderTypeInput): Promise<import("./dtos").NavigationItemDTO[] | { pages: {}; nav: {}; } | { audience: string[] | undefined; title: string; related: any; items: null; additionalFields: {}; path?: string | null | undefined; type: "INTERNAL" | "EXTERNAL" | "WRAPPER"; id: number; documentId: string; slug?: string | null | undefined; externalPath?: string | null | undefined; uiRouterKey: string; menuAttached: boolean; order: number; collapsed: boolean; autoSync?: boolean | null | undefined; master?: import("./dtos").NavigationDTO | undefined; parent?: import("./dtos").NavigationItemDTO | null | undefined; }[]>; renderChildren({ childUIKey, idOrSlug, locale, menuOnly, type, wrapRelated, }: import("./services/client/types").RenderChildrenInput): Promise<import("./dtos").NavigationItemDTO[] | { pages: {}; nav: {}; } | { audience: string[] | undefined; title: string; related: any; items: null; additionalFields: {}; path?: string | null | undefined; type: "INTERNAL" | "EXTERNAL" | "WRAPPER"; id: number; documentId: string; slug?: string | null | undefined; externalPath?: string | null | undefined; uiRouterKey: string; menuAttached: boolean; order: number; collapsed: boolean; autoSync?: boolean | null | undefined; master?: import("./dtos").NavigationDTO | undefined; parent?: import("./dtos").NavigationItemDTO | null | undefined; }[]>; render({ idOrSlug, locale, menuOnly, populate, rootPath, type, wrapRelated, }: import("./services/client/types").RenderInput): Promise<import("./dtos").NavigationItemDTO[] | { pages: {}; nav: {}; } | { audience: string[] | undefined; title: string; related: any; items: null; additionalFields: {}; path?: string | null | undefined; type: "INTERNAL" | "EXTERNAL" | "WRAPPER"; id: number; documentId: string; slug?: string | null | undefined; externalPath?: string | null | undefined; uiRouterKey: string; menuAttached: boolean; order: number; collapsed: boolean; autoSync?: boolean | null | undefined; master?: import("./dtos").NavigationDTO | undefined; parent?: import("./dtos").NavigationItemDTO | null | undefined; }[]>; }; migrate: (context: { strapi: import("@strapi/types/dist/core").Strapi; }) => { migrateRelatedIdToDocumentId(): Promise<void>; }; }; }; export default _default;