UNPKG

advanced-cropper

Version:

The core of the advanced cropper libraries family

36 lines (31 loc) 1.54 kB
'use strict'; 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;