import { ApplySchemaAttributes } from '@remirror/core'; import { CellSelection } from '@remirror/pm/tables'; import { CommandFunction } from '@remirror/core'; import { CreateExtensionPlugin } from '@remirror/core'; import type { CreateTableCommand } from '@remirror/extension-tables'; import { Decoration } from '@remirror/pm/view'; import { DispatchFunction } from '@remirror/core'; import { EditorSchema } from '@remirror/core'; import { EditorState } from '@remirror/core'; import { EditorView } from '@remirror/core'; import { EditorView as EditorView_2 } from '@remirror/pm'; import { FindProsemirrorNodeResult } from '@remirror/core'; import { MouseEventHandler } from 'react'; import { Node as Node_2 } from '@remirror/pm/model'; import { NodeSpecOverride } from '@remirror/core'; import { NodeView } from '@remirror/core'; import { NodeViewMethod } from '@remirror/core'; import { Plugin as Plugin_2 } from '@remirror/pm/state'; import { PluginKey } from '@remirror/pm/state'; import { Positioner } from '@remirror/extension-positioner'; import { ProsemirrorNode } from '@remirror/core'; import { ProsemirrorNode as ProsemirrorNode_2 } from '@remirror/pm'; import { ProsemirrorPlugin } from '@remirror/core'; import { default as React_2 } from 'react'; import { ResolvedPos } from '@remirror/pm'; import { ResolvedPos as ResolvedPos_2 } from '@remirror/core'; import { Selection as Selection_2 } from '@remirror/pm/state'; import { TableCellExtension as TableCellExtension_2 } from '@remirror/extension-tables'; import { TableControllerCellExtension as TableControllerCellExtension_2 } from '@remirror/extension-tables'; import { TableExtension as TableExtension_2 } from '@remirror/extension-tables'; import { TableHeaderCellExtension as TableHeaderCellExtension_2 } from '@remirror/extension-tables'; import { TableMap } from '@remirror/pm/tables'; import { TableRect } from '@remirror/pm/tables'; import { TableRowExtension as TableRowExtension_2 } from '@remirror/extension-tables'; import type { TableSchemaSpec } from '@remirror/extension-tables'; import { Transaction } from '@remirror/pm/state'; import { Transaction as Transaction_2 } from '@remirror/core'; import { Transform } from '@remirror/pm/transform'; import type { UsePositionerReturn } from '@remirror/react-hooks'; /** * Add a column at the given position in a table. * * Taken from https://github.com/ProseMirror/prosemirror-tables/blob/v1.1.1/src/commands.js#L39 * Use the next column instead of the previous column as the reference, so that the controller * cell will not be duplicated. */ export declare function addColumn(tr: Transaction, { map, tableStart, table }: { map: TableMap; tableStart: number; table: ProsemirrorNode; }, col: number): Transaction; /** * Command to add a column after the column with the selection. */ export declare function addColumnAfter(state: EditorState, dispatch: DispatchFunction | undefined): boolean; /** * Command to add a column before the column with the selection. */ export declare function addColumnBefore(state: EditorState, dispatch: DispatchFunction | undefined): boolean; /** * Add a row at the given position in a table. * * Taken from https://github.com/ProseMirror/prosemirror-tables/blob/v1.1.1/src/commands.js#L127 * Use the next row instead of the previous row as the reference, so that the controller * cell will not be duplicated. */ export declare function addRow(tr: Transaction, { map, tableStart, table }: { map: TableMap; tableStart: number; table: ProsemirrorNode; }, row: number): Transaction; /** * Add a table row after the selection. */ export declare function addRowAfter(state: EditorState, dispatch: DispatchFunction | undefined): boolean; /** * Add a table row before the selection. */ export declare function addRowBefore(state: EditorState, dispatch: DispatchFunction | undefined): boolean; declare type AnimationEventHandler = EventHandler; declare type Attrs = Record; export declare const borderWidth = 1; export declare interface CellAxis { row: number; col: number; } export declare function cellSelectionToSelection(selection: CellSelection): Selection_2; export declare enum CellSelectionType { row = 1, col = 2, table = 3, other = 4 } declare type ClipboardEventHandler = EventHandler; export declare function columnResizing({ handleWidth, cellMinWidth, View, lastColumnResizable, firstResizableColumn, }?: { handleWidth?: number | undefined; cellMinWidth?: number | undefined; View?: typeof TableView | undefined; lastColumnResizable?: boolean | undefined; firstResizableColumn?: number | undefined; }): Plugin_2; declare type CompositionEventHandler = EventHandler; declare class ControllerState { action: ControllerStateProps; values: ControllerStateValues; constructor(action: ControllerStateProps); apply(tr: Transaction): ControllerState; } declare type ControllerStateProps = Omit, 'tableNodeResult'>; declare interface ControllerStateValues { tableNodeResult: FindProsemirrorNodeResult | null | undefined; preselectTable: boolean; preselectColumn: number; preselectRow: number; predelete: boolean; insertButtonAttrs: InsertButtonAttrs | null; } export declare enum ControllerType { ROW_CONTROLLER = 1, COLUMN_CONTROLLER = 2, CORNER_CONTROLLER = 3 } declare interface Coord { x: number; y: number; } export declare function createControllerEvents({ view, findTable, }: { view: EditorView; findTable: FindTable; }): DOMEvents; export declare function createTableControllerPlugin(): ProsemirrorPlugin; export declare const default_alias: ({ view, getPos, contentDOM, }: TableControllerCellProps) => HTMLElement; export declare const default_alias_1: ({ view, findTable, }: { view: EditorView_2; findTable: FindTable; }) => HTMLElement[]; export declare function default_alias_2({ view, tableRect, attrs, removeInsertButton, }: TableInsertButtonProps): HTMLElement; export declare const default_alias_3: () => HTMLElement[]; export declare function domCellAround(target: EventTarget | null): HTMLElement | null; export declare interface DOMEvents { onCopy?: ClipboardEventHandler | undefined; onCopyCapture?: ClipboardEventHandler | undefined; onCut?: ClipboardEventHandler | undefined; onCutCapture?: ClipboardEventHandler | undefined; onPaste?: ClipboardEventHandler | undefined; onPasteCapture?: ClipboardEventHandler | undefined; onCompositionEnd?: CompositionEventHandler | undefined; onCompositionEndCapture?: CompositionEventHandler | undefined; onCompositionStart?: CompositionEventHandler | undefined; onCompositionStartCapture?: CompositionEventHandler | undefined; onCompositionUpdate?: CompositionEventHandler | undefined; onCompositionUpdateCapture?: CompositionEventHandler | undefined; onFocus?: FocusEventHandler | undefined; onFocusCapture?: FocusEventHandler | undefined; onBlur?: FocusEventHandler | undefined; onBlurCapture?: FocusEventHandler | undefined; onChange?: FormEventHandler | undefined; onChangeCapture?: FormEventHandler | undefined; onBeforeInput?: FormEventHandler | undefined; onBeforeInputCapture?: FormEventHandler | undefined; onInput?: FormEventHandler | undefined; onInputCapture?: FormEventHandler | undefined; onReset?: FormEventHandler | undefined; onResetCapture?: FormEventHandler | undefined; onSubmit?: FormEventHandler | undefined; onSubmitCapture?: FormEventHandler | undefined; onInvalid?: FormEventHandler | undefined; onInvalidCapture?: FormEventHandler | undefined; onKeyDown?: KeyboardEventHandler | undefined; onKeyDownCapture?: KeyboardEventHandler | undefined; onKeyPress?: KeyboardEventHandler | undefined; onKeyPressCapture?: KeyboardEventHandler | undefined; onKeyUp?: KeyboardEventHandler | undefined; onKeyUpCapture?: KeyboardEventHandler | undefined; onAuxClick?: MouseEventHandler_2 | undefined; onAuxClickCapture?: MouseEventHandler_2 | undefined; onClick?: MouseEventHandler_2 | undefined; onClickCapture?: MouseEventHandler_2 | undefined; onContextMenu?: MouseEventHandler_2 | undefined; onContextMenuCapture?: MouseEventHandler_2 | undefined; onDblClick?: MouseEventHandler_2 | undefined; onDblClickCapture?: MouseEventHandler_2 | undefined; onDoubleClick?: MouseEventHandler_2 | undefined; onDoubleClickCapture?: MouseEventHandler_2 | undefined; onDrag?: DragEventHandler | undefined; onDragCapture?: DragEventHandler | undefined; onDragEnd?: DragEventHandler | undefined; onDragEndCapture?: DragEventHandler | undefined; onDragEnter?: DragEventHandler | undefined; onDragEnterCapture?: DragEventHandler | undefined; onDragExit?: DragEventHandler | undefined; onDragExitCapture?: DragEventHandler | undefined; onDragLeave?: DragEventHandler | undefined; onDragLeaveCapture?: DragEventHandler | undefined; onDragOver?: DragEventHandler | undefined; onDragOverCapture?: DragEventHandler | undefined; onDragStart?: DragEventHandler | undefined; onDragStartCapture?: DragEventHandler | undefined; onDrop?: DragEventHandler | undefined; onDropCapture?: DragEventHandler | undefined; onMouseDown?: MouseEventHandler_2 | undefined; onMouseDownCapture?: MouseEventHandler_2 | undefined; onMouseEnter?: MouseEventHandler_2 | undefined; onMouseLeave?: MouseEventHandler_2 | undefined; onMouseMove?: MouseEventHandler_2 | undefined; onMouseMoveCapture?: MouseEventHandler_2 | undefined; onMouseOut?: MouseEventHandler_2 | undefined; onMouseOutCapture?: MouseEventHandler_2 | undefined; onMouseOver?: MouseEventHandler_2 | undefined; onMouseOverCapture?: MouseEventHandler_2 | undefined; onMouseUp?: MouseEventHandler_2 | undefined; onMouseUpCapture?: MouseEventHandler_2 | undefined; onTouchCancel?: TouchEventHandler | undefined; onTouchCancelCapture?: TouchEventHandler | undefined; onTouchEnd?: TouchEventHandler | undefined; onTouchEndCapture?: TouchEventHandler | undefined; onTouchMove?: TouchEventHandler | undefined; onTouchMoveCapture?: TouchEventHandler | undefined; onTouchStart?: TouchEventHandler | undefined; onTouchStartCapture?: TouchEventHandler | undefined; onPointerDown?: PointerEventHandler | undefined; onPointerDownCapture?: PointerEventHandler | undefined; onPointerMove?: PointerEventHandler | undefined; onPointerMoveCapture?: PointerEventHandler | undefined; onPointerUp?: PointerEventHandler | undefined; onPointerUpCapture?: PointerEventHandler | undefined; onPointerCancel?: PointerEventHandler | undefined; onPointerCancelCapture?: PointerEventHandler | undefined; onPointerEnter?: PointerEventHandler | undefined; onPointerEnterCapture?: PointerEventHandler | undefined; onPointerLeave?: PointerEventHandler | undefined; onPointerLeaveCapture?: PointerEventHandler | undefined; onPointerOver?: PointerEventHandler | undefined; onPointerOverCapture?: PointerEventHandler | undefined; onPointerOut?: PointerEventHandler | undefined; onPointerOutCapture?: PointerEventHandler | undefined; onGotPointerCapture?: PointerEventHandler | undefined; onGotPointerCaptureCapture?: PointerEventHandler | undefined; onLostPointerCapture?: PointerEventHandler | undefined; onLostPointerCaptureCapture?: PointerEventHandler | undefined; onScroll?: UIEventHandler | undefined; onScrollCapture?: UIEventHandler | undefined; onWheel?: WheelEventHandler | undefined; onWheelCapture?: WheelEventHandler | undefined; onAnimationStart?: AnimationEventHandler | undefined; onAnimationStartCapture?: AnimationEventHandler | undefined; onAnimationEnd?: AnimationEventHandler | undefined; onAnimationEndCapture?: AnimationEventHandler | undefined; onAnimationIteration?: AnimationEventHandler | undefined; onAnimationIterationCapture?: AnimationEventHandler | undefined; onTransitionEnd?: TransitionEventHandler | undefined; onTransitionEndCapture?: TransitionEventHandler | undefined; } declare type DragEventHandler = EventHandler; declare type EventHandler = (this: T, event: E) => void; export declare type FindTable = () => FindProsemirrorNodeResult | undefined; declare type FocusEventHandler = EventHandler; declare type FormEventHandler = EventHandler; export declare function getAbsoluteCoord(relativeCoord: Coord, parent: Element): Coord; export declare function getCellAxisByCoords(view: EditorView, coords: { left: number; top: number; }): CellAxis | null; export declare function getCellAxisByMouseEvent(view: EditorView, event: MouseEvent): CellAxis | null; /** * @deprecated */ export declare function getCellAxisV1($cellPos: ResolvedPos_2): CellAxis; export declare function getCellSelectionType(selection: CellSelection): CellSelectionType; export declare function getRelativeCoord(absoluteCoord: Coord, parent: Element): Coord; export declare function getTableStyle(attrs: ControllerStateValues): string; export declare function h(tagName: T, attrs?: HTMLAttributes | null, ...children: Array): HTMLElementTagNameMap[T]; declare type HTMLAttributes = Partial & { style: Partial; }> & DOMEvents; export declare function injectControllers({ schema, getMap, table: oldTable, }: InjectControllersProps): Node_2; export declare interface InjectControllersProps { schema: EditorSchema; getMap: () => TableMap; table: Node_2; } export declare interface InsertButtonAttrs { x: number; y: number; triggerRect: DOMRect; row: number; col: number; } export declare const key: PluginKey; declare const key_2: PluginKey; export { key_2 as tableControllerPluginKey } export { key_2 as tableControllerPluginKey_alias_1 } declare type KeyboardEventHandler = EventHandler; /** * Creates a positioner for the current table cell node which will show the * cell menu. * * It spans the full width and height of the table cell node. */ export declare const menuCellPositioner: Positioner; declare type MouseEventHandler_2 = EventHandler; declare type PointerEventHandler = EventHandler; export declare function pointsAtCell($pos: ResolvedPos): false | null | ProsemirrorNode_2; export declare interface ReactTableControllerCellAttrs { colspan: number; rowspan: number; colwidth: null | number; background: null | string; } export declare type ReactTableNodeAttrs = Record> = T & { isControllersInjected: boolean; insertButtonAttrs: InsertButtonAttrs | null; }; export declare function repeat(val: T, times: number): T[]; export declare function replaceChildren(parent: HTMLElement, children: HTMLElement[]): void; export declare function resetControllerPluginMeta(tr: Transaction): Transaction; export declare function selectionToCellSelection(selection: Selection_2): CellSelection; export declare function setAttr(attrs: Record, name: string, value: T): Record; export declare function setControllerPluginMeta(tr: Transaction, props: ControllerStateProps): Transaction; export declare function setNodeAttrs(tr: T, pos: number, attrs: Attrs, node?: ProsemirrorNode_2 | null | undefined): T; export declare function setPredelete(view: EditorView, value: boolean): void; export declare function shouldHideInsertButton(attrs: InsertButtonAttrs, e: MouseEvent): boolean; export declare function stopEvent(e: Pick): void; declare class TableCellExtension extends TableCellExtension_2 { get name(): "tableCell"; createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): TableSchemaSpec; } export { TableCellExtension } export { TableCellExtension as TableCellExtension_alias_1 } declare const TableCellMenu: React_2.FC; export { TableCellMenu } export { TableCellMenu as TableCellMenu_alias_1 } declare type TableCellMenuComponent = React_2.ComponentType; declare interface TableCellMenuComponentProps { popupOpen: boolean; setPopupOpen: React_2.Dispatch>; } export { TableCellMenuComponentProps } export { TableCellMenuComponentProps as TableCellMenuComponentProps_alias_1 } declare interface TableCellMenuProps { Component?: TableCellMenuComponent; } export { TableCellMenuProps } export { TableCellMenuProps as TableCellMenuProps_alias_1 } declare const TableComponents: React_2.FC; export { TableComponents } export { TableComponents as TableComponents_alias_1 } export declare interface TableComponentsProps { /** * Whether to use `TableCellMenu`. * * @defaultValue true */ enableTableCellMenu?: boolean; /** * The props that will passed to `TableCellMenu` */ tableCellMenuProps?: TableCellMenuProps; /** * Whether to use `TableDeleteRowColumnButton`. * * @defaultValue true */ enableTableDeleteRowColumnButton?: boolean; /** * The props that will passed to `TableDeleteRowColumnButton` */ tableDeleteRowColumnButtonProps?: TableDeleteRowColumnButtonProps; /** * Whether to use `TableDeleteButton`. * * @defaultValue true */ enableTableDeleteButton?: boolean; /** * The props that will passed to `TableDeleteButton` */ tableDeleteButtonProps?: TableDeleteButtonProps; } declare class TableControllerCellExtension extends TableControllerCellExtension_2 { createNodeSpec(extra: ApplySchemaAttributes): TableSchemaSpec; createNodeViews(): NodeViewMethod; createExtensions(): never[]; createPlugin(): CreateExtensionPlugin; } export { TableControllerCellExtension } export { TableControllerCellExtension as TableControllerCellExtension_alias_1 } export declare interface TableControllerCellProps { view: EditorView; getPos: () => number; contentDOM: HTMLElement; } export declare class TableControllerCellView implements NodeView { node: Node_2; view: EditorView; getPos: () => number; dom: HTMLElement; contentDOM: HTMLElement; constructor(node: Node_2, view: EditorView, getPos: () => number); ignoreMutation(): boolean; stopEvent(): boolean; } declare const TableDeleteButton: React_2.FC; export { TableDeleteButton } export { TableDeleteButton as TableDeleteButton_alias_1 } declare interface TableDeleteButtonProps { Component?: React_2.ComponentType; } export { TableDeleteButtonProps } export { TableDeleteButtonProps as TableDeleteButtonProps_alias_1 } declare const TableDeleteInnerButton: React_2.FC; export { TableDeleteInnerButton } export { TableDeleteInnerButton as TableDeleteInnerButton_alias_1 } declare interface TableDeleteInnerButtonProps { /** * The position of the button */ position: UsePositionerReturn; /** * The action when the button is pressed. */ onClick: MouseEventHandler; /** * The action when the mouse is pressed on the button. */ onMouseDown: MouseEventHandler; /** * The action when the mouse is over the button. */ onMouseEnter: MouseEventHandler; /** * The action when the mouse level the button. */ onMouseLeave: MouseEventHandler; } export { TableDeleteInnerButtonProps } export { TableDeleteInnerButtonProps as TableDeleteInnerButtonProps_alias_1 } declare const TableDeleteRowColumnButton: React_2.FC; export { TableDeleteRowColumnButton } export { TableDeleteRowColumnButton as TableDeleteRowColumnButton_alias_1 } declare interface TableDeleteRowColumnButtonProps { Component?: React_2.ComponentType; } export { TableDeleteRowColumnButtonProps } export { TableDeleteRowColumnButtonProps as TableDeleteRowColumnButtonProps_alias_1 } declare const TableDeleteRowColumnInnerButton: React_2.FC; export { TableDeleteRowColumnInnerButton } export { TableDeleteRowColumnInnerButton as TableDeleteRowColumnInnerButton_alias_1 } declare interface TableDeleteRowColumnInnerButtonProps { /** * The position of the button */ position: UsePositionerReturn; /** * The action when the button is pressed. */ onClick: MouseEventHandler; /** * The action when the mouse is pressed on the button. */ onMouseDown: MouseEventHandler; /** * The action when the mouse is over the button. */ onMouseOver: MouseEventHandler; /** * The action when the mouse level the button. */ onMouseOut: MouseEventHandler; } export { TableDeleteRowColumnInnerButtonProps } export { TableDeleteRowColumnInnerButtonProps as TableDeleteRowColumnInnerButtonProps_alias_1 } declare class TableExtension extends TableExtension_2 { get name(): "table"; createNodeViews(): NodeViewMethod; /** * Add the table plugins to the editor. */ createExternalPlugins(): ProsemirrorPlugin[]; createNodeSpec(extra: ApplySchemaAttributes): TableSchemaSpec; /** * Create the table extensions. Set the priority to low so that they appear * lower down in the node list. */ createExtensions(): TableRowExtension[]; onView(view: EditorView): void; /** * Create a table in the editor at the current selection point. */ createTable(options?: CreateTableCommand): CommandFunction; /** * Command to add a column before the column with the selection. */ addTableColumnBefore(): CommandFunction; /** * Command to add a column after the column with the selection. */ addTableColumnAfter(): CommandFunction; /** * Add a table row before the current selection. */ addTableRowBefore(): CommandFunction; /** * Add a table row after the current selection. */ addTableRowAfter(): CommandFunction; createPlugin(): CreateExtensionPlugin; } export { TableExtension } export { TableExtension as TableExtension_alias_1 } declare class TableHeaderCellExtension extends TableHeaderCellExtension_2 { get name(): "tableHeaderCell"; createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): TableSchemaSpec; } export { TableHeaderCellExtension } export { TableHeaderCellExtension as TableHeaderCellExtension_alias_1 } export declare interface TableInsertButtonProps { view: EditorView; tableRect: TableRect; attrs: InsertButtonAttrs; removeInsertButton: (tr: Transaction_2) => Transaction_2; } declare class TableRowExtension extends TableRowExtension_2 { get name(): "tableRow"; createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): TableSchemaSpec; /** * Automatically create the `TableCellExtension`,`TableHeaderCellExtension` * and `TableControllerCellExtension`. This is placed here so that this * extension can be tested independently from the `TableExtension`. */ createExtensions(): (TableCellExtension | TableControllerCellExtension | TableHeaderCellExtension)[]; } export { TableRowExtension } export { TableRowExtension as TableRowExtension_alias_1 } export declare class TableView implements NodeView { node: Node_2; cellMinWidth: number; decorations: readonly Decoration[]; view: EditorView; getPos: () => number; readonly root: HTMLElement; readonly table: HTMLTableElement; readonly colgroup: HTMLTableColElement; readonly tbody: HTMLTableSectionElement; readonly insertButtonWrapper: HTMLElement; private readonly handleMouseMove; private showInsertButton; private removeInsertButton?; map: TableMap; get dom(): HTMLElement; get contentDOM(): HTMLElement; constructor(node: Node_2, cellMinWidth: number, decorations: readonly Decoration[], view: EditorView, getPos: () => number); update(node: Node_2, decorations: readonly Decoration[]): boolean; private render; private renderTable; private renderInsertButton; private attrs; ignoreMutation(): boolean; destroy(): void; } declare type TouchEventHandler = EventHandler; declare type TransitionEventHandler = EventHandler; declare type UIEventHandler = EventHandler; declare type WheelEventHandler = EventHandler; export { }