mirror of
https://github.com/projectstorm/react-diagrams.git
synced 2025-08-06 14:49:40 +08:00
Allow more derived State classes to provide a generic type
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import { CanvasEngine } from '../CanvasEngine';
|
||||
import { AbstractDisplacementState, AbstractDisplacementStateEvent } from '../core-state/AbstractDisplacementState';
|
||||
import { State } from '../core-state/State';
|
||||
|
||||
@ -8,7 +9,7 @@ export interface DragCanvasStateOptions {
|
||||
allowDrag?: boolean;
|
||||
}
|
||||
|
||||
export class DragCanvasState extends AbstractDisplacementState {
|
||||
export class DragCanvasState<E extends CanvasEngine = CanvasEngine> extends AbstractDisplacementState<E> {
|
||||
// store this as we drag the canvas
|
||||
initialCanvasX: number;
|
||||
initialCanvasY: number;
|
||||
|
@ -2,8 +2,9 @@ import { State } from '../core-state/State';
|
||||
import { Action, ActionEvent, InputType } from '../core-actions/Action';
|
||||
import { SelectionBoxState } from './SelectionBoxState';
|
||||
import { MouseEvent } from 'react';
|
||||
import { CanvasEngine } from '../CanvasEngine';
|
||||
|
||||
export class SelectingState extends State {
|
||||
export class SelectingState<E extends CanvasEngine = CanvasEngine> extends State<E> {
|
||||
constructor() {
|
||||
super({
|
||||
name: 'selecting'
|
||||
|
@ -4,6 +4,7 @@ import { SelectionLayerModel } from '../entities/selection/SelectionLayerModel';
|
||||
import { Point, Rectangle } from '@projectstorm/geometry';
|
||||
import { BasePositionModel } from '../core-models/BasePositionModel';
|
||||
import { ModelGeometryInterface } from '../core/ModelGeometryInterface';
|
||||
import { CanvasEngine } from '../CanvasEngine';
|
||||
|
||||
export interface SimpleClientRect {
|
||||
left: number;
|
||||
@ -14,7 +15,7 @@ export interface SimpleClientRect {
|
||||
bottom: number;
|
||||
}
|
||||
|
||||
export class SelectionBoxState extends AbstractDisplacementState {
|
||||
export class SelectionBoxState<E extends CanvasEngine = CanvasEngine> extends AbstractDisplacementState<E> {
|
||||
layer: SelectionLayerModel;
|
||||
|
||||
constructor() {
|
||||
|
@ -6,7 +6,7 @@ import { PortModel } from '../entities/port/PortModel';
|
||||
import { MouseEvent } from 'react';
|
||||
import { LinkModel } from '../entities/link/LinkModel';
|
||||
|
||||
export class DragDiagramItemsState extends MoveItemsState<DiagramEngine> {
|
||||
export class DragDiagramItemsState<E extends DiagramEngine = DiagramEngine> extends MoveItemsState<E> {
|
||||
constructor() {
|
||||
super();
|
||||
this.registerAction(
|
||||
|
@ -22,7 +22,7 @@ export interface DragNewLinkStateOptions {
|
||||
allowLinksFromLockedPorts?: boolean;
|
||||
}
|
||||
|
||||
export class DragNewLinkState extends AbstractDisplacementState<DiagramEngine> {
|
||||
export class DragNewLinkState<E extends DiagramEngine = DiagramEngine> extends AbstractDisplacementState<E> {
|
||||
port: PortModel;
|
||||
link: LinkModel;
|
||||
config: DragNewLinkStateOptions;
|
||||
|
Reference in New Issue
Block a user