advanced-cropper
Version:
The core of the advanced cropper libraries family
93 lines (88 loc) • 3.42 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var index = require('../utils/index.js');
var helpers = require('./helpers.js');
function normalizeResizeDirections(state, directions) {
var coefficient = helpers.getCoefficient(state);
return {
left: index.isNumber(directions.left) ? directions.left * coefficient : 0,
top: index.isNumber(directions.top) ? directions.top * coefficient : 0,
right: index.isNumber(directions.right) ? directions.right * coefficient : 0,
bottom: index.isNumber(directions.bottom) ? directions.bottom * coefficient : 0,
};
}
function normalizeCenter(state, center) {
var coefficient = helpers.getCoefficient(state);
if (state.visibleArea) {
return {
left: center.left * coefficient + state.visibleArea.left,
top: center.top * coefficient + state.visibleArea.top,
};
}
return center;
}
function normalizeFlip(state, flip) {
if (state) {
var normalizedAngle = Math.abs(state.transforms.rotate % 180);
if (normalizedAngle <= 45 || normalizedAngle >= 135) {
return flip;
}
else {
return {
horizontal: flip.vertical,
vertical: flip.horizontal,
};
}
}
return flip;
}
function fillMoveDirections(directions) {
return {
left: index.isNumber(directions.left) ? directions.left : 0,
top: index.isNumber(directions.top) ? directions.top : 0,
};
}
function fillResizeDirections(directions) {
return {
left: index.isNumber(directions.left) ? directions.left : 0,
top: index.isNumber(directions.top) ? directions.top : 0,
right: index.isNumber(directions.right) ? directions.right : 0,
bottom: index.isNumber(directions.bottom) ? directions.bottom : 0,
};
}
function normalizeMoveDirections(state, directions) {
var coefficient = helpers.getCoefficient(state);
return {
left: index.isNumber(directions.left) ? directions.left * coefficient : 0,
top: index.isNumber(directions.top) ? directions.top * coefficient : 0,
};
}
function normalizeImageTransform(state, transform) {
if (transform.scale) {
transform.scale = {
factor: index.isNumber(transform.scale) ? transform.scale : transform.scale.factor,
center: !index.isNumber(transform.scale) && transform.scale.center
? normalizeCenter(state, transform.scale.center)
: undefined,
};
}
if (transform.rotate) {
transform.rotate = {
angle: index.isNumber(transform.rotate) ? transform.rotate : transform.rotate.angle,
center: !index.isNumber(transform.rotate) && transform.rotate.center
? normalizeCenter(state, transform.rotate.center)
: undefined,
};
}
if (transform.move) {
transform.move = normalizeMoveDirections(state, transform.move);
}
return transform;
}
exports.fillMoveDirections = fillMoveDirections;
exports.fillResizeDirections = fillResizeDirections;
exports.normalizeCenter = normalizeCenter;
exports.normalizeFlip = normalizeFlip;
exports.normalizeImageTransform = normalizeImageTransform;
exports.normalizeMoveDirections = normalizeMoveDirections;
exports.normalizeResizeDirections = normalizeResizeDirections;