12345678910111213141516171819202122232425262728293031 |
- import { collision, layoutCheck } from "./collison";
- export var 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
- */
- export var correctItem = function (item, col) {
- var _a = checkInContainer(item.GridX, item.GridY, col, item.w), GridX = _a.GridX, GridY = _a.GridY;
- item.GridX = GridX;
- item.GridY = GridY;
- };
- export var correctLayout = function (layout, col) {
- var copy = layout.slice();
- for (var i = 0; i < layout.length - 1; i++) {
- correctItem(copy[i], col);
- correctItem(copy[i + 1], col);
- if (collision(copy[i], copy[i + 1])) {
- copy = layoutCheck(copy, copy[i], copy[i].UniqueKey + '', copy[i].UniqueKey + '', 0);
- }
- }
- return copy;
- };
|