advanced-cropper
Version:
The core of the advanced cropper libraries family
36 lines (31 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var utils = require('./utils.js');
var helpers = require('./helpers.js');
var copyState = require('../state/copyState.js');
require('../types/index.js');
require('../state/setCoordinates.js');
var approximateSize = require('./approximateSize.js');
function fitVisibleArea(state, settings) {
var result = copyState.copyState(state);
if (state.visibleArea) {
var areaSizeRestrictions = helpers.getAreaSizeRestrictions(state, settings);
// Fit the visible area to its size restrictions and boundary aspect ratio:
result.visibleArea = tslib.__assign(tslib.__assign({}, state.visibleArea), approximateSize.approximateSize({
width: state.visibleArea.width,
height: state.visibleArea.height,
aspectRatio: {
minimum: utils.ratio(result.boundary),
maximum: utils.ratio(result.boundary),
},
sizeRestrictions: areaSizeRestrictions,
}));
// Return the visible area to previous center
result.visibleArea = utils.applyMove(result.visibleArea, utils.diff(utils.getCenter(state.visibleArea), utils.getCenter(result.visibleArea)));
// Fit the visible area to positions restrictions
result.visibleArea = utils.moveToPositionRestrictions(result.visibleArea, helpers.getAreaPositionRestrictions(result, settings));
}
return result;
}
exports.fitVisibleArea = fitVisibleArea;