/** * interact.js 1.10.27 * * Copyright (c) 2012-present Taye Adeyemi * Released under the MIT License. * https://raw.github.com/taye/interact.js/main/LICENSE */ import extend from "../../utils/extend.js"; import * as rectUtils from "../../utils/rect.js"; import { makeModifier } from '../base.js'; import { restrictEdges } from './edges.js'; import { getRestrictionRect } from './pointer.js'; import '../Modification.js'; import "../../utils/clone.js"; import "../../utils/is.js"; const noMin = { width: -Infinity, height: -Infinity }; const noMax = { width: +Infinity, height: +Infinity }; function start(arg) { return restrictEdges.start(arg); } function set(arg) { const { interaction, state, rect, edges } = arg; const { options } = state; if (!edges) { return; } const minSize = rectUtils.tlbrToXywh(getRestrictionRect(options.min, interaction, arg.coords)) || noMin; const maxSize = rectUtils.tlbrToXywh(getRestrictionRect(options.max, interaction, arg.coords)) || noMax; state.options = { endOnly: options.endOnly, inner: extend({}, restrictEdges.noInner), outer: extend({}, restrictEdges.noOuter) }; if (edges.top) { state.options.inner.top = rect.bottom - minSize.height; state.options.outer.top = rect.bottom - maxSize.height; } else if (edges.bottom) { state.options.inner.bottom = rect.top + minSize.height; state.options.outer.bottom = rect.top + maxSize.height; } if (edges.left) { state.options.inner.left = rect.right - minSize.width; state.options.outer.left = rect.right - maxSize.width; } else if (edges.right) { state.options.inner.right = rect.left + minSize.width; state.options.outer.right = rect.left + maxSize.width; } restrictEdges.set(arg); state.options = options; } const defaults = { min: null, max: null, endOnly: false, enabled: false }; const restrictSize = { start, set, defaults }; var restrictSize$1 = makeModifier(restrictSize, 'restrictSize'); export { restrictSize$1 as default, restrictSize }; //# sourceMappingURL=size.js.map