angular-gridster2
Advanced tools
Comparing version 4.6.3 to 4.7.0
@@ -52,3 +52,8 @@ import { ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core'; | ||
autoPositionItem(itemComponent: GridsterItemComponentInterface): void; | ||
getNextPossiblePosition(newItem: GridsterItemS): boolean; | ||
getNextPossiblePosition(newItem: GridsterItemS, startingFrom?: { | ||
rows?: number; | ||
cols?: number; | ||
}): boolean; | ||
getFirstPossiblePosition(item: GridsterItemS): GridsterItemS; | ||
getLastPossiblePosition(item: GridsterItemS): GridsterItemS; | ||
pixelsToPositionX(x: number, roundingMethod: Function): number; | ||
@@ -55,0 +60,0 @@ pixelsToPositionY(y: number, roundingMethod: Function): number; |
@@ -42,3 +42,5 @@ "use strict"; | ||
resize: this.onResize.bind(this), | ||
getNextPossiblePosition: this.getNextPossiblePosition.bind(this) | ||
getNextPossiblePosition: this.getNextPossiblePosition.bind(this), | ||
getFirstPossiblePosition: this.getFirstPossiblePosition.bind(this), | ||
getLastPossiblePosition: this.getLastPossiblePosition.bind(this), | ||
}; | ||
@@ -345,3 +347,4 @@ this.columns = this.$options.minCols; | ||
}; | ||
GridsterComponent.prototype.getNextPossiblePosition = function (newItem) { | ||
GridsterComponent.prototype.getNextPossiblePosition = function (newItem, startingFrom) { | ||
if (startingFrom === void 0) { startingFrom = {}; } | ||
if (newItem.cols === -1) { | ||
@@ -354,6 +357,6 @@ newItem.cols = this.$options.defaultItemCols; | ||
this.setGridDimensions(); | ||
var rowsIndex = 0, colsIndex; | ||
var rowsIndex = startingFrom.rows || 0, colsIndex; | ||
for (; rowsIndex < this.rows; rowsIndex++) { | ||
newItem.y = rowsIndex; | ||
colsIndex = 0; | ||
colsIndex = startingFrom.cols || 0; | ||
for (; colsIndex < this.columns; colsIndex++) { | ||
@@ -381,2 +384,21 @@ newItem.x = colsIndex; | ||
}; | ||
GridsterComponent.prototype.getFirstPossiblePosition = function (item) { | ||
var tmpItem = Object.assign({}, item); | ||
this.getNextPossiblePosition(tmpItem); | ||
return tmpItem; | ||
}; | ||
GridsterComponent.prototype.getLastPossiblePosition = function (item) { | ||
var farthestItem; | ||
farthestItem = this.grid.reduce(function (prev, curr) { | ||
var currCoords = { y: curr.$item.y + curr.$item.rows - 1, x: curr.$item.x + curr.$item.cols - 1 }; | ||
var cmpResult = gridsterUtils_service_1.GridsterUtils.compareItems({ y: prev.rows, x: prev.cols }, { y: currCoords.y, x: currCoords.x }); | ||
return cmpResult === 1 ? { rows: currCoords.y, cols: currCoords.x, item: curr } : prev; | ||
}, { rows: 0, cols: 0, item: null }); | ||
var tmpItem = Object.assign({}, item); | ||
this.getNextPossiblePosition(tmpItem, { | ||
rows: farthestItem.rows - farthestItem.item.$item.rows + 1, | ||
cols: farthestItem.cols | ||
}); | ||
return tmpItem; | ||
}; | ||
GridsterComponent.prototype.pixelsToPositionX = function (x, roundingMethod) { | ||
@@ -383,0 +405,0 @@ return Math.max(roundingMethod(x / this.curColWidth), 0); |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":4,"metadata":{"GridsterComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"gridster","template":"<gridster-grid class=\"gridster-grid\"></gridster-grid> <ng-content></ng-content> <gridster-preview class=\"gridster-preview\"></gridster-preview>","styles":["gridster { position: relative; display: flex; overflow: auto; flex: 1 auto; background: grey; width: 100%; height: 100%; user-select: none; } gridster.fit { overflow-x: hidden; overflow-y: hidden; } gridster.scrollVertical { overflow-x: hidden; overflow-y: auto; } gridster.scrollHorizontal { overflow-x: auto; overflow-y: hidden; } gridster.fixed { overflow: auto; } gridster.mobile { overflow-x: hidden; overflow-y: auto; display: block; } gridster.mobile gridster-item { position: relative; }"],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":28,"character":17},"member":"None"}}]}],"members":{"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":51,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":51,"character":47},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":51,"character":72}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"resize":[{"__symbolic":"method"}],"setOptions":[{"__symbolic":"method"}],"optionsChanged":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onResize":[{"__symbolic":"method"}],"checkIfToResize":[{"__symbolic":"method"}],"setGridSize":[{"__symbolic":"method"}],"setGridDimensions":[{"__symbolic":"method"}],"calculateLayout":[{"__symbolic":"method"}],"addItem":[{"__symbolic":"method"}],"removeItem":[{"__symbolic":"method"}],"checkCollision":[{"__symbolic":"method"}],"checkGridCollision":[{"__symbolic":"method"}],"findItemWithItem":[{"__symbolic":"method"}],"findItemsWithItem":[{"__symbolic":"method"}],"autoPositionItem":[{"__symbolic":"method"}],"getNextPossiblePosition":[{"__symbolic":"method"}],"pixelsToPositionX":[{"__symbolic":"method"}],"pixelsToPositionY":[{"__symbolic":"method"}],"positionXToPixels":[{"__symbolic":"method"}],"positionYToPixels":[{"__symbolic":"method"}]},"statics":{"checkCollisionTwoItems":{"__symbolic":"function","parameters":["item","item2"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"<","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"x"},"right":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"x"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"cols"}}},"right":{"__symbolic":"binop","operator":">","left":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"x"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"cols"}},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"x"}}},"right":{"__symbolic":"binop","operator":"<","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"y"},"right":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"y"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"rows"}}}},"right":{"__symbolic":"binop","operator":">","left":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"y"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"rows"}},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"y"}}}}}}}}] | ||
[{"__symbolic":"module","version":4,"metadata":{"GridsterComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"gridster","template":"<gridster-grid class=\"gridster-grid\"></gridster-grid> <ng-content></ng-content> <gridster-preview class=\"gridster-preview\"></gridster-preview>","styles":["gridster { position: relative; display: flex; overflow: auto; flex: 1 auto; background: grey; width: 100%; height: 100%; user-select: none; } gridster.fit { overflow-x: hidden; overflow-y: hidden; } gridster.scrollVertical { overflow-x: hidden; overflow-y: auto; } gridster.scrollHorizontal { overflow-x: auto; overflow-y: hidden; } gridster.fixed { overflow: auto; } gridster.mobile { overflow-x: hidden; overflow-y: auto; display: block; } gridster.mobile gridster-item { position: relative; }"],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":28,"character":17},"member":"None"}}]}],"members":{"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":51,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":51,"character":47},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":51,"character":72}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"resize":[{"__symbolic":"method"}],"setOptions":[{"__symbolic":"method"}],"optionsChanged":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onResize":[{"__symbolic":"method"}],"checkIfToResize":[{"__symbolic":"method"}],"setGridSize":[{"__symbolic":"method"}],"setGridDimensions":[{"__symbolic":"method"}],"calculateLayout":[{"__symbolic":"method"}],"addItem":[{"__symbolic":"method"}],"removeItem":[{"__symbolic":"method"}],"checkCollision":[{"__symbolic":"method"}],"checkGridCollision":[{"__symbolic":"method"}],"findItemWithItem":[{"__symbolic":"method"}],"findItemsWithItem":[{"__symbolic":"method"}],"autoPositionItem":[{"__symbolic":"method"}],"getNextPossiblePosition":[{"__symbolic":"method"}],"getFirstPossiblePosition":[{"__symbolic":"method"}],"getLastPossiblePosition":[{"__symbolic":"method"}],"pixelsToPositionX":[{"__symbolic":"method"}],"pixelsToPositionY":[{"__symbolic":"method"}],"positionXToPixels":[{"__symbolic":"method"}],"positionYToPixels":[{"__symbolic":"method"}]},"statics":{"checkCollisionTwoItems":{"__symbolic":"function","parameters":["item","item2"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"<","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"x"},"right":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"x"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"cols"}}},"right":{"__symbolic":"binop","operator":">","left":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"x"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"cols"}},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"x"}}},"right":{"__symbolic":"binop","operator":"<","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"y"},"right":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"y"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"rows"}}}},"right":{"__symbolic":"binop","operator":">","left":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"y"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"rows"}},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item2"},"member":"y"}}}}}}}}] |
@@ -65,3 +65,3 @@ "use strict"; | ||
if (widgetMovedUp) { | ||
this.checkCompactUp(); | ||
this.checkCompact(); | ||
} | ||
@@ -96,3 +96,3 @@ }; | ||
if (widgetMovedUp) { | ||
this.checkCompactLeft(); | ||
this.checkCompact(); | ||
} | ||
@@ -99,0 +99,0 @@ }; |
@@ -88,2 +88,4 @@ import { GridsterItem } from './gridsterItem.interface'; | ||
getNextPossiblePosition?: (newItem: GridsterItem) => boolean; | ||
getFirstPossiblePosition?: (item: GridsterItem) => GridsterItem; | ||
getLastPossiblePosition?: (item: GridsterItem) => GridsterItem; | ||
}; | ||
@@ -90,0 +92,0 @@ [propName: string]: any; |
@@ -54,2 +54,4 @@ import { compactTypes, displayGrids, gridTypes } from './gridsterConfig.interface'; | ||
getNextPossiblePosition: (newItem: GridsterItem) => boolean; | ||
getFirstPossiblePosition: (item: GridsterItem) => GridsterItem; | ||
getLastPossiblePosition: (item: GridsterItem) => GridsterItem; | ||
}; | ||
@@ -56,0 +58,0 @@ [propName: string]: any; |
@@ -9,2 +9,9 @@ import { GridsterComponentInterface } from './gridster.interface'; | ||
static checkContentClass(target: any, current: any, contentClass: string): boolean; | ||
static compareItems(item1: { | ||
x: number; | ||
y: number; | ||
}, item2: { | ||
x: number; | ||
y: number; | ||
}): number; | ||
} |
@@ -72,2 +72,16 @@ "use strict"; | ||
}; | ||
GridsterUtils.compareItems = function (item1, item2) { | ||
if (item1.y > item2.y) { | ||
return -1; | ||
} | ||
else if (item1.y < item2.y) { | ||
return 1; | ||
} | ||
else if (item1.x > item2.x) { | ||
return -1; | ||
} | ||
else { | ||
return 1; | ||
} | ||
}; | ||
GridsterUtils.decorators = [ | ||
@@ -74,0 +88,0 @@ { type: core_1.Injectable }, |
{ | ||
"name": "angular-gridster2", | ||
"version": "4.6.3", | ||
"version": "4.7.0", | ||
"license": "MIT", | ||
@@ -49,17 +49,17 @@ "main": "dist/index.js", | ||
"devDependencies": { | ||
"@angular/animations": "5.2.5", | ||
"@angular/cdk": "5.2.1", | ||
"@angular/cli": "1.7.0", | ||
"@angular/common": "5.2.5", | ||
"@angular/compiler": "5.2.5", | ||
"@angular/compiler-cli": "5.2.5", | ||
"@angular/core": "5.2.5", | ||
"@angular/forms": "5.2.5", | ||
"@angular/http": "5.2.5", | ||
"@angular/language-service": "5.2.5", | ||
"@angular/material": "5.2.1", | ||
"@angular/platform-browser": "5.2.5", | ||
"@angular/platform-browser-dynamic": "5.2.5", | ||
"@angular/platform-server": "5.2.5", | ||
"@angular/router": "5.2.5", | ||
"@angular/animations": "5.2.6", | ||
"@angular/cdk": "5.2.3", | ||
"@angular/cli": "1.7.1", | ||
"@angular/common": "5.2.6", | ||
"@angular/compiler": "5.2.6", | ||
"@angular/compiler-cli": "5.2.6", | ||
"@angular/core": "5.2.6", | ||
"@angular/forms": "5.2.6", | ||
"@angular/http": "5.2.6", | ||
"@angular/language-service": "5.2.6", | ||
"@angular/material": "5.2.3", | ||
"@angular/platform-browser": "5.2.6", | ||
"@angular/platform-browser-dynamic": "5.2.6", | ||
"@angular/platform-server": "5.2.6", | ||
"@angular/router": "5.2.6", | ||
"@types/jasmine": "2.8.6", | ||
@@ -85,3 +85,3 @@ "@types/node": "9.4.6", | ||
"ts-helpers": "1.1.2", | ||
"ts-node": "4.1.0", | ||
"ts-node": "5.0.0", | ||
"tslib": "1.9.0", | ||
@@ -88,0 +88,0 @@ "tslint": "5.9.1", |
@@ -189,2 +189,4 @@ angular-gridster2 | ||
this.options.api.getNextPossiblePosition(item: GridsterItem); // call to get a viable position for item. Returns true if found | ||
this.options.api.getFirstPossiblePosition(item: GridsterItem); // call to get the first viable position for an item. Returns a copy of the item with the future position | ||
this.options.api.getLastPossiblePosition(item: GridsterItem); // call to get a viable position for item. Returns a copy of the item with the future position | ||
@@ -191,0 +193,0 @@ // if you want to push items from code use the GridsterPush service |
200098
3501
282