UNPKG

@atlaskit/editor-plugin-layout

Version:

Layout plugin for @atlaskit/editor-core

76 lines (75 loc) 4.63 kB
import type { Valign } from '@atlaskit/adf-schema/layout-column'; import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics'; import { INPUT_METHOD } from '@atlaskit/editor-common/analytics'; import type { Command, EditorCommand, ExtractInjectionAPI, TOOLBAR_MENU_TYPE } from '@atlaskit/editor-common/types'; import type { Node } from '@atlaskit/editor-prosemirror/model'; import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state'; import type { LayoutPlugin } from '../layoutPluginType'; import type { Change, PresetLayout } from '../types'; export declare const ONE_COL_LAYOUTS: PresetLayout[]; export declare const TWO_COL_LAYOUTS: PresetLayout[]; export declare const THREE_COL_LAYOUTS: PresetLayout[]; /** * Finds layout preset based on the width attrs of all the layoutColumn nodes * inside the layoutSection node */ export declare const getPresetLayout: (section: Node) => PresetLayout | undefined; export declare const getSelectedLayout: (maybeLayoutSection: Node | undefined, current: PresetLayout) => PresetLayout; export declare const createMultiColumnLayoutSection: (state: EditorState, numberOfColumns?: number) => Node; export declare const createDefaultLayoutSection: (state: EditorState) => Node; export declare const insertLayoutColumns: Command; export type InsertLayoutColumnsInputMethod = TOOLBAR_MENU_TYPE | INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.ELEMENT_BROWSER; export declare const insertLayoutColumnsWithAnalytics: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (inputMethod: InsertLayoutColumnsInputMethod) => Command; /** * Forces a layout section node to match the given preset layout by adjusting * its column structure and widths, then restoring the original selection. */ export declare function forceSectionToPresetLayout(state: EditorState, node: Node, pos: number, presetLayout: PresetLayout): Transaction; export declare const setPresetLayout: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => (layout: PresetLayout) => Command; export declare const fixColumnSizes: (changedTr: Transaction, state: EditorState) => Change | undefined; export declare const fixColumnStructure: (state: EditorState) => Transaction | undefined; export declare const deleteActiveLayoutNode: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined, inputMethod?: INPUT_METHOD.FLOATING_TB) => Command; export type InsertLayoutColumnSide = 'left' | 'right'; export declare const LAYOUT_COLUMN_INSERT_META = "layoutColumnInsert"; export type LayoutColumnInsertMeta = { insertedColumnNodeSize: number; insertedColumnPos: number; side: InsertLayoutColumnSide; }; type LayoutPluginAPI = ExtractInjectionAPI<LayoutPlugin> | undefined; export type LayoutColumnActionInputMethod = INPUT_METHOD.LAYOUT_COLUMN_MENU | INPUT_METHOD.SHORTCUT; /** * Returns the active maximum layout column count for the current advanced layouts experiment state. */ export declare function getEffectiveMaxLayoutColumns(): number; export type InsertLayoutColumnOptions = { inputMethod?: LayoutColumnActionInputMethod; side: InsertLayoutColumnSide; }; export declare const insertLayoutColumn: ({ side, inputMethod }: InsertLayoutColumnOptions, editorAnalyticsAPI?: EditorAnalyticsAPI, api?: LayoutPluginAPI) => EditorCommand; export type SetLayoutColumnValignOptions = { inputMethod?: INPUT_METHOD.LAYOUT_COLUMN_MENU; valign: Valign; }; export declare const setLayoutColumnValign: ({ valign, inputMethod }: SetLayoutColumnValignOptions, editorAnalyticsAPI?: EditorAnalyticsAPI, api?: LayoutPluginAPI) => EditorCommand; export type DistributeLayoutColumnsOptions = { inputMethod?: INPUT_METHOD.LAYOUT_COLUMN_MENU | INPUT_METHOD.FLOATING_TB; target?: 'selectedColumns' | 'allColumns'; }; export declare const distributeLayoutColumns: (editorAnalyticsAPI?: EditorAnalyticsAPI, api?: LayoutPluginAPI) => ({ inputMethod, target, }?: DistributeLayoutColumnsOptions) => EditorCommand; export type ToggleLayoutColumnMenuOptions = { anchorPos: number; isOpen?: undefined; openedViaKeyboard?: boolean; } | { anchorPos?: number; isOpen: boolean; openedViaKeyboard?: boolean; }; export declare const toggleLayoutColumnMenu: (options: ToggleLayoutColumnMenuOptions) => EditorCommand; export declare const setLayoutColumnDangerPreview: (show: boolean) => EditorCommand; export type DeleteLayoutColumnOptions = { inputMethod?: LayoutColumnActionInputMethod; }; export declare const deleteLayoutColumn: ({ inputMethod }?: DeleteLayoutColumnOptions, editorAnalyticsAPI?: EditorAnalyticsAPI, api?: LayoutPluginAPI) => EditorCommand; export {};