UNPKG

advanced-cropper

Version:

The core of the advanced cropper libraries family

26 lines (23 loc) 1.6 kB
import { __assign } from 'tslib'; import { mergePositionRestrictions, coordinatesToPositionRestrictions } from '../service/utils.js'; import { getMinimumSize, getSizeRestrictions, isInitializedState, getPositionRestrictions, getAspectRatio } from '../service/helpers.js'; import { copyState } from './copyState.js'; import '../types/index.js'; import './setCoordinates.js'; import { anchoredResizeCoordinatesAlgorithm } from '../algorithms/resizeCoordinatesAlgorithm.js'; function resizeCoordinates(state, settings, anchor, directions, options) { var minimumSize = getMinimumSize(state); var sizeRestrictions = getSizeRestrictions(state, settings); return isInitializedState(state) ? __assign(__assign({}, copyState(state)), { coordinates: anchoredResizeCoordinatesAlgorithm(state.coordinates, anchor, directions, options, { positionRestrictions: mergePositionRestrictions(getPositionRestrictions(state, settings), coordinatesToPositionRestrictions(state.visibleArea)), sizeRestrictions: { maxWidth: Math.min(sizeRestrictions.maxWidth, state.visibleArea.width), maxHeight: Math.min(sizeRestrictions.maxHeight, state.visibleArea.height), minWidth: Math.max(Math.min(sizeRestrictions.minWidth, state.visibleArea.width), minimumSize), minHeight: Math.max(Math.min(sizeRestrictions.minHeight, state.visibleArea.height), minimumSize), }, aspectRatio: getAspectRatio(state, settings), }) }) : state; } export { resizeCoordinates };