UNPKG

@antv/x6

Version:

JavaScript diagramming library that uses SVG and HTML for rendering.

223 lines (222 loc) 8.29 kB
/// <reference types="jquery" /> /// <reference types="jquery-mousewheel" /> import { KeyValue } from '../../types'; import { Rectangle, Point } from '../../geometry'; import { Cell } from '../../model/cell'; import { Node } from '../../model/node'; import { Edge } from '../../model/edge'; import { Model } from '../../model/model'; import { Collection } from '../../model/collection'; import { View } from '../../view/view'; import { CellView } from '../../view/cell'; import { Graph } from '../../graph/graph'; import { Renderer } from '../../graph/renderer'; import { Handle } from '../common'; export declare class Selection extends View<Selection.EventArgs> { readonly options: Selection.Options; protected readonly collection: Collection; protected $container: JQuery<HTMLElement>; protected $selectionContainer: JQuery<HTMLElement>; protected $selectionContent: JQuery<HTMLElement>; protected boxCount: number; protected boxesUpdated: boolean; get graph(): Graph; protected get boxClassName(): string; protected get $boxes(): JQuery<HTMLElement>; protected get handleOptions(): Selection.Options; constructor(options: Selection.Options); protected startListening(): void; protected stopListening(): void; protected onRemove(): void; protected onGraphTransformed(): void; protected onCellChanged(): void; protected translating: boolean; protected onNodePositionChanged({ node, options, }: Collection.EventArgs['node:change:position']): void; protected onModelUpdated({ removed }: Collection.EventArgs['updated']): void; isEmpty(): boolean; isSelected(cell: Cell | string): boolean; get length(): number; get cells(): Cell<Cell.Properties>[]; select(cells: Cell | Cell[], options?: Collection.AddOptions): this; unselect(cells: Cell | Cell[], options?: Collection.RemoveOptions): this; reset(cells?: Cell | Cell[], options?: Collection.SetOptions): this; clean(options?: Collection.SetOptions): this; setFilter(filter?: Selection.Filter): void; setContent(content?: Selection.Content): void; startSelecting(evt: JQuery.MouseDownEvent): void; filter(cells: Cell[]): Cell<Cell.Properties>[]; protected stopSelecting(evt: JQuery.MouseUpEvent): void; protected onMouseUp(evt: JQuery.MouseUpEvent): void; protected onSelectionBoxMouseDown(evt: JQuery.MouseDownEvent): void; protected startTranslating(evt: JQuery.MouseDownEvent): void; protected getSelectionOffset(client: Point, data: EventData.Translating): { dx: number; dy: number; }; protected updateSelectedNodesPosition(offset: { dx: number; dy: number; }): void; protected autoScrollGraph(x: number, y: number): { scrollerX: number; scrollerY: number; }; protected adjustSelection(evt: JQuery.MouseMoveEvent): void; protected translateSelectedNodes(dx: number, dy: number, exclude?: Cell, otherOptions?: KeyValue): void; protected getCellViewsInArea(rect: Rectangle): CellView<Cell<Cell.Properties>, CellView.Options>[]; protected notifyBoxEvent<K extends keyof Selection.BoxEventArgs, T extends JQuery.TriggeredEvent>(name: K, e: T, x: number, y: number): void; protected getSelectedClassName(cell: Cell): string; protected addCellSelectedClassName(cell: Cell): void; protected removeCellUnSelectedClassName(cell: Cell): void; protected destroySelectionBox(cell: Cell): void; protected destroyAllSelectionBoxes(cells: Cell[]): void; hide(): void; protected showRubberband(): void; protected hideRubberband(): void; protected showSelected(): void; protected createContainer(): void; protected updateContainerPosition(offset: { dx: number; dy: number; }): void; protected updateContainer(): void; protected canShowSelectionBox(cell: Cell): boolean; protected createSelectionBox(cell: Cell): void; protected updateSelectionBoxes(options?: Renderer.RequestViewUpdateOptions): void; confirmUpdate(): number; protected getCellViewFromElem(elem: Element): CellView<Cell<Cell.Properties>, CellView.Options> | null; protected onCellRemoved({ cell }: Collection.EventArgs['removed']): void; protected onReseted({ previous, current }: Collection.EventArgs['reseted']): void; protected onCellAdded({ cell }: Collection.EventArgs['added']): void; protected listenCellRemoveEvent(cell: Cell): void; protected onCollectionUpdated({ added, removed, options, }: Collection.EventArgs['updated']): void; protected deleteSelectedCells(): void; protected startRotate({ e }: Handle.EventArgs): void; protected doRotate({ e }: Handle.EventArgs): void; protected stopRotate({ e }: Handle.EventArgs): void; protected startResize({ e }: Handle.EventArgs): void; protected doResize({ e, dx, dy }: Handle.EventArgs): void; protected stopResize({ e }: Handle.EventArgs): void; dispose(): void; } export declare namespace Selection { interface CommonOptions extends Handle.Options { model?: Model; collection?: Collection; className?: string; strict?: boolean; filter?: Filter; showEdgeSelectionBox?: boolean; showNodeSelectionBox?: boolean; movable?: boolean; following?: boolean; useCellGeometry?: boolean; content?: Content; rubberNode?: boolean; rubberEdge?: boolean; pointerEvents?: 'none' | 'auto'; } interface Options extends CommonOptions { graph: Graph; } type Content = null | false | string | ((this: Graph, selection: Selection, contentElement: HTMLElement) => string); type Filter = null | (string | { id: string; })[] | ((this: Graph, cell: Cell) => boolean); } export declare namespace Selection { interface SelectionBoxEventArgs<T> { e: T; view: CellView; cell: Cell; x: number; y: number; } export interface BoxEventArgs { 'box:mousedown': SelectionBoxEventArgs<JQuery.MouseDownEvent>; 'box:mousemove': SelectionBoxEventArgs<JQuery.MouseMoveEvent>; 'box:mouseup': SelectionBoxEventArgs<JQuery.MouseUpEvent>; } export interface SelectionEventArgs { 'cell:selected': { cell: Cell; options: Model.SetOptions; }; 'node:selected': { cell: Cell; node: Node; options: Model.SetOptions; }; 'edge:selected': { cell: Cell; edge: Edge; options: Model.SetOptions; }; 'cell:unselected': { cell: Cell; options: Model.SetOptions; }; 'node:unselected': { cell: Cell; node: Node; options: Model.SetOptions; }; 'edge:unselected': { cell: Cell; edge: Edge; options: Model.SetOptions; }; 'selection:changed': { added: Cell[]; removed: Cell[]; selected: Cell[]; options: Model.SetOptions; }; } export interface EventArgs extends BoxEventArgs, SelectionEventArgs { } export {}; } export interface Selection extends Handle { } declare namespace EventData { interface Common { action: 'selecting' | 'translating'; } interface Selecting extends Common { action: 'selecting'; moving?: boolean; clientX: number; clientY: number; offsetX: number; offsetY: number; scrollerX: number; scrollerY: number; } interface Translating extends Common { action: 'translating'; clientX: number; clientY: number; originX: number; originY: number; } interface SelectionBox { activeView: CellView; } interface Rotation { rotated?: boolean; center: Point.PointLike; start: number; angles: { [id: string]: number; }; } interface Resizing { resized?: boolean; bbox: Rectangle; cells: Cell[]; minWidth: number; minHeight: number; } } export {};