@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
35 lines (34 loc) • 2.14 kB
TypeScript
import { type IntlShape } from 'react-intl-next';
import type { UIAnalyticsEvent } from '@atlaskit/analytics-next';
import type { Node } from '@atlaskit/editor-prosemirror/model';
import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
import type { ACTION, EditorAnalyticsAPI, INPUT_METHOD } from '../analytics';
import { type CardAppearance, type CardProvider } from '../provider-factory';
import type { Command, FloatingToolbarItem } from '../types';
export interface OptionConfig {
appearance?: CardAppearance;
title: string;
onClick: Command;
selected: boolean;
testId: string;
disabled?: boolean;
hidden?: boolean;
tooltip?: string;
}
export type CardReplacementInputMethod = INPUT_METHOD.CLIPBOARD | INPUT_METHOD.AUTO_DETECT | INPUT_METHOD.FORMATTING | INPUT_METHOD.MANUAL | INPUT_METHOD.TYPEAHEAD | INPUT_METHOD.FLOATING_TB;
export type QueueCardsFromTransactionAction = (state: EditorState, tr: Transaction, source: CardReplacementInputMethod, analyticsAction?: ACTION, normalizeLinkText?: boolean, sourceEvent?: UIAnalyticsEvent | null | undefined, appearance?: CardAppearance) => Transaction;
export type HideLinkToolbarAction = (tr: Transaction) => Transaction;
export type ChangeSelectedCardToLink = (text?: string, href?: string, sendAnalytics?: boolean, node?: Node, pos?: number, editorAnalyticsApi?: EditorAnalyticsAPI) => Command;
export type SetSelectedCardAppearance = (appearance: CardAppearance, editorAnalyticsApi: EditorAnalyticsAPI | undefined) => Command;
export type GetStartingToolbarItems = (intl: IntlShape, link: string, onEditLink: Command, metadata: {
url: string;
title: string;
}) => FloatingToolbarItem<Command>[];
export type GetEndingToolbarItems = (intl: IntlShape, link: string) => FloatingToolbarItem<Command>[];
export type CardPluginActions = {
queueCardsFromChangedTr: QueueCardsFromTransactionAction;
hideLinkToolbar: HideLinkToolbarAction;
getStartingToolbarItems: GetStartingToolbarItems;
getEndingToolbarItems: GetEndingToolbarItems;
setProvider: (provider: Promise<CardProvider>) => Promise<boolean>;
};