123456789101112131415161718192021222324252627282930313233 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var collison_1 = require("./collison");
- exports.checkInContainer = function (GridX, GridY, col, w) {
- /**防止元素出container */
- if (GridX + w > col - 1)
- GridX = col - w; //右边界
- if (GridX < 0)
- GridX = 0; //左边界
- if (GridY < 0)
- GridY = 0; //上边界
- return { GridX: GridX, GridY: GridY };
- };
- /**
- * 这个函数会有副作用,不是纯函数,会改变item的Gridx和GridY
- * @param {*} item
- */
- exports.correctItem = function (item, col) {
- var _a = exports.checkInContainer(item.GridX, item.GridY, col, item.w), GridX = _a.GridX, GridY = _a.GridY;
- item.GridX = GridX;
- item.GridY = GridY;
- };
- exports.correctLayout = function (layout, col) {
- var copy = layout.slice();
- for (var i = 0; i < layout.length - 1; i++) {
- exports.correctItem(copy[i], col);
- exports.correctItem(copy[i + 1], col);
- if (collison_1.collision(copy[i], copy[i + 1])) {
- copy = collison_1.layoutCheck(copy, copy[i], copy[i].UniqueKey, copy[i].UniqueKey, 0);
- }
- }
- return copy;
- };
|