import { ApiPath, BlockSettings, EnterpriseGlossaryInformationProviderId, EnterpriseGlossaryInformationSourceSettings, GuidValue, IBlockInstance, MultilingualString, SpacingSettings, ThemeDefinition } from "@omnia/fx/models"; import { ScopedSlots, VueComponentBase } from "@omnia/fx/ux"; export interface TaxonomyNavigationQuerySettings { enterpriseGlossaryInstanceId: number; } export interface TaxonomyCardStyle { theming: ThemeDefinition; width: number; spacing: SpacingSettings; } export interface TaxonomyNavigationSelectionViewSettings { cardStyle: TaxonomyCardStyle; } export interface TaxonomyNavigationViewSettings { numberOfParentLevels: number; numberOfChildrensLimit: number; showTaxonomyName: boolean; lineColor: string; defaultView: TaxonomyNavigationSelectionViewSettings; currentView: TaxonomyNavigationSelectionViewSettings; } export declare abstract class EnterpriseGlossaryTaxonomyNavigationSettingsProvider extends EnterpriseGlossaryInformationSourceSettings { abstract readonly displayProviderManifestId: GuidValue; } export declare abstract class EnterpriseGlossaryTaxonomyNavigationDisplayProvider extends EnterpriseGlossaryInformationSourceSettings { } export interface TaxonomyNavigationBlockSettings extends BlockSettings { backgroundColor: string; textColor: string; borderColor: string; spacing: SpacingSettings; title: MultilingualString; query: TQuery; view: TView; provider: EnterpriseGlossaryTaxonomyNavigationSettingsProvider; } export interface ITaxonomyNavigationRegistration { registerSettingsProvider: (provider: ITaxonomyNavigationSettingsProvider) => void; registerDisplayProvider: (providerId: EnterpriseGlossaryInformationProviderId, provider: new () => TaxonomyNavigationDisplayProviderBase) => void; } export interface ITaxonomyNavigationSettingsProvider { provider: EnterpriseGlossaryTaxonomyNavigationSettingsProvider; renderQuerySettings?: (settings: TQuery, omponentRef: VueComponentBase) => JSX.Element; renderViewSettings?: (settings: TView, omponentRef: VueComponentBase) => JSX.Element; } export declare abstract class TaxonomyNavigationDisplayProviderBase { provider: EnterpriseGlossaryTaxonomyNavigationDisplayProvider; abstract triggered(settings: TaxonomyNavigationBlockSettings, blockInstance: IBlockInstance>, componentRef: VueComponentBase, /** @deprecated element parameter does not reactive correctly and will be removed in future major version, use scopedSlots parameter instead. */ renderingCallBack: (element: TaxonomyNavigationDisplayProviderRenderResult, scopedSlots: ScopedSlots) => void, setCurrentState: (value: boolean) => void, setChildrenState: (value: number) => void): void; abstract dispose(): void; } export type TaxonomyNavigationDisplayProviderRenderResult = { current: JSX.Element; parents: JSX.Element[]; childrens: JSX.Element[]; }; export interface TaxonomyNavigationDisplayProviderScopedSlots { current: void; parents: void; childrens: void; } declare module "./WorkplaceApi" { interface IWorkplaceApi { taxonomyNavigation: { registration: { settings: Promise; display: Promise; }; }; } interface IWorkplaceExtendApiManifest { taxonomyNavigation: { registration: { settings: ApiPath; display: ApiPath; }; }; } }