mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-30 19:58:50 +00:00
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import type { DevicePlacement } from './device-position-history';
|
|
import type { OpeningDimension } from './opening-dimensions';
|
|
import type { OpeningPlacementCore } from './opening-placement';
|
|
import type { OpeningFaceOffset } from './opening-symbol-placement';
|
|
import type { ResolvedPartitionOpening, PartitionOpeningOrphanReason } from './partition-openings';
|
|
import type { OpeningCfg } from './types';
|
|
|
|
/** Opening rulers shared by the card shell and lazy editor runtime. */
|
|
export interface OpMeasure {
|
|
labels: Array<{ x: number; y: number; text: string; dimension?: OpeningDimension }>;
|
|
guide: { x: number; y: number; angle: number } | null;
|
|
}
|
|
|
|
export type OpeningPlacementCandidate = Omit<OpeningPlacementCore, 'measure'> & {
|
|
face: OpeningFaceOffset;
|
|
measure: OpMeasure;
|
|
};
|
|
|
|
export type RenderOpening = OpeningCfg & {
|
|
rx: number; ry: number; rlen: number;
|
|
partitionHost?: ResolvedPartitionOpening;
|
|
orphanReason?: PartitionOpeningOrphanReason;
|
|
};
|
|
|
|
export interface DeviceDragState {
|
|
id: string;
|
|
spaceId: string;
|
|
displayName: string;
|
|
pointerId: number;
|
|
source: Element | null;
|
|
sx: number;
|
|
sy: number;
|
|
ox: number;
|
|
oy: number;
|
|
moved: boolean;
|
|
before: DevicePlacement | null;
|
|
start: DevicePlacement;
|
|
}
|