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 { AbstractDisplacementState, AbstractDisplacementStateEvent } from '../core-state/AbstractDisplacementState';
|
||||||
import { State } from '../core-state/State';
|
import { State } from '../core-state/State';
|
||||||
|
|
||||||
@ -8,7 +9,7 @@ export interface DragCanvasStateOptions {
|
|||||||
allowDrag?: boolean;
|
allowDrag?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class DragCanvasState extends AbstractDisplacementState {
|
export class DragCanvasState<E extends CanvasEngine = CanvasEngine> extends AbstractDisplacementState<E> {
|
||||||
// store this as we drag the canvas
|
// store this as we drag the canvas
|
||||||
initialCanvasX: number;
|
initialCanvasX: number;
|
||||||
initialCanvasY: number;
|
initialCanvasY: number;
|
||||||
|
@ -2,8 +2,9 @@ import { State } from '../core-state/State';
|
|||||||
import { Action, ActionEvent, InputType } from '../core-actions/Action';
|
import { Action, ActionEvent, InputType } from '../core-actions/Action';
|
||||||
import { SelectionBoxState } from './SelectionBoxState';
|
import { SelectionBoxState } from './SelectionBoxState';
|
||||||
import { MouseEvent } from 'react';
|
import { MouseEvent } from 'react';
|
||||||
|
import { CanvasEngine } from '../CanvasEngine';
|
||||||
|
|
||||||
export class SelectingState extends State {
|
export class SelectingState<E extends CanvasEngine = CanvasEngine> extends State<E> {
|
||||||
constructor() {
|
constructor() {
|
||||||
super({
|
super({
|
||||||
name: 'selecting'
|
name: 'selecting'
|
||||||
|
@ -4,6 +4,7 @@ import { SelectionLayerModel } from '../entities/selection/SelectionLayerModel';
|
|||||||
import { Point, Rectangle } from '@projectstorm/geometry';
|
import { Point, Rectangle } from '@projectstorm/geometry';
|
||||||
import { BasePositionModel } from '../core-models/BasePositionModel';
|
import { BasePositionModel } from '../core-models/BasePositionModel';
|
||||||
import { ModelGeometryInterface } from '../core/ModelGeometryInterface';
|
import { ModelGeometryInterface } from '../core/ModelGeometryInterface';
|
||||||
|
import { CanvasEngine } from '../CanvasEngine';
|
||||||
|
|
||||||
export interface SimpleClientRect {
|
export interface SimpleClientRect {
|
||||||
left: number;
|
left: number;
|
||||||
@ -14,7 +15,7 @@ export interface SimpleClientRect {
|
|||||||
bottom: number;
|
bottom: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SelectionBoxState extends AbstractDisplacementState {
|
export class SelectionBoxState<E extends CanvasEngine = CanvasEngine> extends AbstractDisplacementState<E> {
|
||||||
layer: SelectionLayerModel;
|
layer: SelectionLayerModel;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -6,7 +6,7 @@ import { PortModel } from '../entities/port/PortModel';
|
|||||||
import { MouseEvent } from 'react';
|
import { MouseEvent } from 'react';
|
||||||
import { LinkModel } from '../entities/link/LinkModel';
|
import { LinkModel } from '../entities/link/LinkModel';
|
||||||
|
|
||||||
export class DragDiagramItemsState extends MoveItemsState<DiagramEngine> {
|
export class DragDiagramItemsState<E extends DiagramEngine = DiagramEngine> extends MoveItemsState<E> {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this.registerAction(
|
this.registerAction(
|
||||||
|
@ -22,7 +22,7 @@ export interface DragNewLinkStateOptions {
|
|||||||
allowLinksFromLockedPorts?: boolean;
|
allowLinksFromLockedPorts?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class DragNewLinkState extends AbstractDisplacementState<DiagramEngine> {
|
export class DragNewLinkState<E extends DiagramEngine = DiagramEngine> extends AbstractDisplacementState<E> {
|
||||||
port: PortModel;
|
port: PortModel;
|
||||||
link: LinkModel;
|
link: LinkModel;
|
||||||
config: DragNewLinkStateOptions;
|
config: DragNewLinkStateOptions;
|
||||||
|
Reference in New Issue
Block a user