
* style: spelling * refact: canvases replaced with konva * refact: area text calculated by words * refact: moved konva files out of test dir
30 lines
937 B
TypeScript
30 lines
937 B
TypeScript
import { RectangleCoordinates } from '../components/DocumentCanvas/types'
|
|
|
|
const getNormalizedRectToBounds = (rect: RectangleCoordinates, width: number, height: number, scale: number = 1): RectangleCoordinates => {
|
|
let startX: number, endX: number
|
|
if (rect.startX < rect.endX) {
|
|
startX = Math.floor(rect.startX / scale)
|
|
endX = Math.floor(rect.endX / scale)
|
|
} else {
|
|
startX = Math.floor(rect.endX / scale)
|
|
endX = Math.floor(rect.startX / scale)
|
|
}
|
|
|
|
let startY: number, endY: number
|
|
if (rect.startY < rect.endY) {
|
|
startY = Math.floor(rect.startY / scale)
|
|
endY = Math.floor(rect.endY / scale)
|
|
} else {
|
|
startY = Math.floor(rect.endY / scale)
|
|
endY = Math.floor(rect.startY / scale)
|
|
}
|
|
|
|
if (startX < 0) startX = 0
|
|
if (startY < 0) startY = 0
|
|
if (endX > width) endX = width
|
|
if (endY > height) endY = height
|
|
|
|
return { startX, startY, endX, endY }
|
|
}
|
|
|
|
export default getNormalizedRectToBounds |