advanced-cropper
Version:
The core of the advanced cropper libraries family
30 lines (25 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var utils = require('../service/utils.js');
var helpers = require('../service/helpers.js');
var copyState = require('./copyState.js');
require('../types/index.js');
require('./setCoordinates.js');
var resizeCoordinatesAlgorithm = require('../algorithms/resizeCoordinatesAlgorithm.js');
function resizeCoordinates(state, settings, anchor, directions, options) {
var minimumSize = helpers.getMinimumSize(state);
var sizeRestrictions = helpers.getSizeRestrictions(state, settings);
return helpers.isInitializedState(state)
? tslib.__assign(tslib.__assign({}, copyState.copyState(state)), { coordinates: resizeCoordinatesAlgorithm.anchoredResizeCoordinatesAlgorithm(state.coordinates, anchor, directions, options, {
positionRestrictions: utils.mergePositionRestrictions(helpers.getPositionRestrictions(state, settings), utils.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: helpers.getAspectRatio(state, settings),
}) }) : state;
}
exports.resizeCoordinates = resizeCoordinates;