UNPKG

ngx-gridster

Version:
890 lines 91.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { ChangeDetectorRef, Component, ElementRef, Input, NgZone, Renderer2, ViewEncapsulation, Inject } from '@angular/core'; import { GridsterConfigService } from './gridsterConfig.constant'; import { GridsterUtils } from './gridsterUtils.service'; import { GridsterEmptyCell } from './gridsterEmptyCell.service'; import { GridsterCompact } from './gridsterCompact.service'; import { GridsterRenderer } from './gridsterRenderer.service'; import { GridType } from './gridsterConfig.interface'; var GridsterComponent = /** @class */ (function () { function GridsterComponent(el, renderer, cdRef, zone) { this.renderer = renderer; this.cdRef = cdRef; this.zone = zone; this.columns = 0; this.rows = 0; this.gridColumns = []; this.gridRows = []; this.el = el.nativeElement; this.$options = JSON.parse(JSON.stringify(GridsterConfigService)); this.calculateLayoutDebounce = GridsterUtils.debounce(this.calculateLayout.bind(this), 0); this.mobile = false; this.curWidth = 0; this.curHeight = 0; this.grid = []; this.curColWidth = 0; this.curRowHeight = 0; this.dragInProgress = false; this.emptyCell = new GridsterEmptyCell(this); this.compact = new GridsterCompact(this); this.gridRenderer = new GridsterRenderer(this); } /** * @param {?} item * @param {?} item2 * @return {?} */ GridsterComponent.checkCollisionTwoItems = /** * @param {?} item * @param {?} item2 * @return {?} */ function (item, item2) { return item.x < item2.x + item2.cols && item.x + item.cols > item2.x && item.y < item2.y + item2.rows && item.y + item.rows > item2.y; }; /** * @return {?} */ GridsterComponent.prototype.ngOnInit = /** * @return {?} */ function () { if (this.options.initCallback) { this.options.initCallback(this); } }; /** * @param {?} changes * @return {?} */ GridsterComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes.options) { this.setOptions(); this.options.api = { optionsChanged: this.optionsChanged.bind(this), resize: this.onResize.bind(this), getNextPossiblePosition: this.getNextPossiblePosition.bind(this), getFirstPossiblePosition: this.getFirstPossiblePosition.bind(this), getLastPossiblePosition: this.getLastPossiblePosition.bind(this), }; this.columns = this.$options.minCols; this.rows = this.$options.minRows; this.setGridSize(); this.calculateLayout(); } }; /** * @return {?} */ GridsterComponent.prototype.resize = /** * @return {?} */ function () { /** @type {?} */ var height; /** @type {?} */ var width; if (this.$options.gridType === 'fit' && !this.mobile) { width = this.el.offsetWidth; height = this.el.offsetHeight; } else { width = this.el.clientWidth; height = this.el.clientHeight; } if ((width !== this.curWidth || height !== this.curHeight) && this.checkIfToResize()) { this.onResize(); } }; /** * @return {?} */ GridsterComponent.prototype.setOptions = /** * @return {?} */ function () { this.$options = GridsterUtils.merge(this.$options, this.options, this.$options); if (!this.$options.disableWindowResize && !this.windowResize) { this.windowResize = this.renderer.listen('window', 'resize', this.onResize.bind(this)); } else if (this.$options.disableWindowResize && this.windowResize) { this.windowResize(); this.windowResize = null; } this.emptyCell.updateOptions(); }; /** * @return {?} */ GridsterComponent.prototype.optionsChanged = /** * @return {?} */ function () { this.setOptions(); /** @type {?} */ var widgetsIndex = this.grid.length - 1; /** @type {?} */ var widget; for (; widgetsIndex >= 0; widgetsIndex--) { widget = this.grid[widgetsIndex]; widget.updateOptions(); } this.calculateLayout(); }; /** * @return {?} */ GridsterComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this.windowResize) { this.windowResize(); } if (this.options && this.options.destroyCallback) { this.options.destroyCallback(this); } if (this.options && this.options.api) { this.options.api.resize = undefined; this.options.api.optionsChanged = undefined; this.options.api.getNextPossiblePosition = undefined; this.options.api = undefined; } this.emptyCell.destroy(); delete this.emptyCell; this.compact.destroy(); delete this.compact; }; /** * @return {?} */ GridsterComponent.prototype.onResize = /** * @return {?} */ function () { this.setGridSize(); this.calculateLayout(); }; /** * @return {?} */ GridsterComponent.prototype.checkIfToResize = /** * @return {?} */ function () { /** @type {?} */ var clientWidth = this.el.clientWidth; /** @type {?} */ var offsetWidth = this.el.offsetWidth; /** @type {?} */ var scrollWidth = this.el.scrollWidth; /** @type {?} */ var clientHeight = this.el.clientHeight; /** @type {?} */ var offsetHeight = this.el.offsetHeight; /** @type {?} */ var scrollHeight = this.el.scrollHeight; /** @type {?} */ var verticalScrollPresent = clientWidth < offsetWidth && scrollHeight > offsetHeight && scrollHeight - offsetHeight < offsetWidth - clientWidth; /** @type {?} */ var horizontalScrollPresent = clientHeight < offsetHeight && scrollWidth > offsetWidth && scrollWidth - offsetWidth < offsetHeight - clientHeight; if (verticalScrollPresent) { return false; } return !horizontalScrollPresent; }; /** * @return {?} */ GridsterComponent.prototype.setGridSize = /** * @return {?} */ function () { /** @type {?} */ var el = this.el; /** @type {?} */ var width = el.clientWidth; /** @type {?} */ var height = el.clientHeight; if (this.$options.setGridSize || this.$options.gridType === 'fit' && !this.mobile) { width = el.offsetWidth; height = el.offsetHeight; } else { width = el.clientWidth; height = el.clientHeight; } this.curWidth = width; this.curHeight = height; }; /** * @return {?} */ GridsterComponent.prototype.setGridDimensions = /** * @return {?} */ function () { this.setGridSize(); if (!this.mobile && this.$options.mobileBreakpoint > this.curWidth) { this.mobile = !this.mobile; this.renderer.addClass(this.el, 'mobile'); } else if (this.mobile && this.$options.mobileBreakpoint < this.curWidth) { this.mobile = !this.mobile; this.renderer.removeClass(this.el, 'mobile'); } /** @type {?} */ var rows = this.$options.minRows; /** @type {?} */ var columns = this.$options.minCols; if (this.$options.gridType === GridType.FitToGridOptions) { rows = this.$options.maxRows; columns = this.$options.maxCols; } else { /** @type {?} */ var widgetsIndex = this.grid.length - 1; /** @type {?} */ var widget = void 0; for (; widgetsIndex >= 0; widgetsIndex--) { widget = this.grid[widgetsIndex]; if (!widget.notPlaced) { rows = Math.max(rows, widget.$item.y + widget.$item.rows); columns = Math.max(columns, widget.$item.x + widget.$item.cols); } } } if (this.columns !== columns || this.rows !== rows) { this.columns = columns; this.rows = rows; if (this.options.gridSizeChangedCallback) { this.options.gridSizeChangedCallback(this); } } }; /** * @return {?} */ GridsterComponent.prototype.calculateLayout = /** * @return {?} */ function () { if (this.compact) { this.compact.checkCompact(); } this.setGridDimensions(); if (this.$options.outerMargin) { /** @type {?} */ var marginWidth = -this.$options.margin; if (this.$options.outerMarginLeft !== null) { marginWidth += this.$options.outerMarginLeft; this.renderer.setStyle(this.el, 'padding-left', this.$options.outerMarginLeft + 'px'); } else { marginWidth += this.$options.margin; this.renderer.setStyle(this.el, 'padding-left', this.$options.margin + 'px'); } if (this.$options.outerMarginRight !== null) { marginWidth += this.$options.outerMarginRight; this.renderer.setStyle(this.el, 'padding-right', this.$options.outerMarginRight + 'px'); } else { marginWidth += this.$options.margin; this.renderer.setStyle(this.el, 'padding-right', this.$options.margin + 'px'); } this.curColWidth = (this.curWidth - marginWidth) / this.columns; /** @type {?} */ var marginHeight = -this.$options.margin; if (this.$options.outerMarginTop !== null) { marginHeight += this.$options.outerMarginTop; this.renderer.setStyle(this.el, 'padding-top', this.$options.outerMarginTop + 'px'); } else { marginHeight += this.$options.margin; this.renderer.setStyle(this.el, 'padding-top', this.$options.margin + 'px'); } if (this.$options.outerMarginBottom !== null) { marginHeight += this.$options.outerMarginBottom; this.renderer.setStyle(this.el, 'padding-bottom', this.$options.outerMarginBottom + 'px'); } else { marginHeight += this.$options.margin; this.renderer.setStyle(this.el, 'padding-bottom', this.$options.margin + 'px'); } this.curRowHeight = (this.curHeight - marginHeight) / this.rows; } else { this.curColWidth = (this.curWidth + this.$options.margin) / this.columns; this.curRowHeight = (this.curHeight + this.$options.margin) / this.rows; this.renderer.setStyle(this.el, 'padding-left', 0 + 'px'); this.renderer.setStyle(this.el, 'padding-right', 0 + 'px'); this.renderer.setStyle(this.el, 'padding-top', 0 + 'px'); this.renderer.setStyle(this.el, 'padding-bottom', 0 + 'px'); } this.gridRenderer.updateGridster(); this.updateGrid(); if (this.$options.setGridSize) { this.renderer.setStyle(this.el, 'width', (this.columns * this.curColWidth + this.$options.margin) + 'px'); this.renderer.setStyle(this.el, 'height', (this.rows * this.curRowHeight + this.$options.margin) + 'px'); } else { this.renderer.setStyle(this.el, 'width', ''); this.renderer.setStyle(this.el, 'height', ''); } /** @type {?} */ var widgetsIndex = this.grid.length - 1; /** @type {?} */ var widget; for (; widgetsIndex >= 0; widgetsIndex--) { widget = this.grid[widgetsIndex]; widget.setSize(); widget.drag.toggle(); widget.resize.toggle(); } setTimeout(this.resize.bind(this), 100); }; /** * @return {?} */ GridsterComponent.prototype.updateGrid = /** * @return {?} */ function () { if (this.$options.displayGrid === 'always' && !this.mobile) { this.renderer.addClass(this.el, 'display-grid'); } else if (this.$options.displayGrid === 'onDrag&Resize' && this.dragInProgress) { this.renderer.addClass(this.el, 'display-grid'); } else if (this.$options.displayGrid === 'none' || !this.dragInProgress || this.mobile) { this.renderer.removeClass(this.el, 'display-grid'); } this.setGridDimensions(); if (this.$options.gridType === GridType.FitToGridOptions) { this.gridColumns.length = this.$options.maxCols; this.gridRows.length = this.$options.maxRows; } else { this.gridColumns.length = Math.max(this.columns, Math.floor(this.curWidth / this.curColWidth)) || 0; this.gridRows.length = Math.max(this.rows, Math.floor(this.curHeight / this.curRowHeight)) || 0; } this.cdRef.markForCheck(); }; /** * @param {?} itemComponent * @return {?} */ GridsterComponent.prototype.addItem = /** * @param {?} itemComponent * @return {?} */ function (itemComponent) { if (itemComponent.$item.cols === undefined) { itemComponent.$item.cols = this.$options.defaultItemCols; itemComponent.item.cols = itemComponent.$item.cols; itemComponent.itemChanged(); } if (itemComponent.$item.rows === undefined) { itemComponent.$item.rows = this.$options.defaultItemRows; itemComponent.item.rows = itemComponent.$item.rows; itemComponent.itemChanged(); } if (itemComponent.$item.x === -1 || itemComponent.$item.y === -1) { this.autoPositionItem(itemComponent); } else if (this.checkCollision(itemComponent.$item)) { if (!this.$options.disableWarnings) { itemComponent.notPlaced = true; console.warn('Can\'t be placed in the bounds of the dashboard, trying to auto position!/n' + JSON.stringify(itemComponent.item, ['cols', 'rows', 'x', 'y'])); } if (!this.$options.disableAutoPositionOnConflict) { this.autoPositionItem(itemComponent); } else { itemComponent.notPlaced = true; } } this.grid.push(itemComponent); this.calculateLayoutDebounce(); }; /** * @param {?} itemComponent * @return {?} */ GridsterComponent.prototype.removeItem = /** * @param {?} itemComponent * @return {?} */ function (itemComponent) { this.grid.splice(this.grid.indexOf(itemComponent), 1); this.calculateLayoutDebounce(); if (this.options.itemRemovedCallback) { this.options.itemRemovedCallback(itemComponent.item, itemComponent); } }; /** * @param {?} item * @return {?} */ GridsterComponent.prototype.checkCollision = /** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var collision = false; if (this.options.itemValidateCallback) { collision = !this.options.itemValidateCallback(item); } if (!collision && this.checkGridCollision(item)) { collision = true; } if (!collision) { /** @type {?} */ var c = this.findItemWithItem(item); if (c) { collision = c; } } return collision; }; /** * @param {?} item * @return {?} */ GridsterComponent.prototype.checkGridCollision = /** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var noNegativePosition = item.y > -1 && item.x > -1; /** @type {?} */ var maxGridCols = item.cols + item.x <= this.$options.maxCols; /** @type {?} */ var maxGridRows = item.rows + item.y <= this.$options.maxRows; /** @type {?} */ var maxItemCols = item.maxItemCols === undefined ? this.$options.maxItemCols : item.maxItemCols; /** @type {?} */ var minItemCols = item.minItemCols === undefined ? this.$options.minItemCols : item.minItemCols; /** @type {?} */ var maxItemRows = item.maxItemRows === undefined ? this.$options.maxItemRows : item.maxItemRows; /** @type {?} */ var minItemRows = item.minItemRows === undefined ? this.$options.minItemRows : item.minItemRows; /** @type {?} */ var inColsLimits = item.cols <= maxItemCols && item.cols >= minItemCols; /** @type {?} */ var inRowsLimits = item.rows <= maxItemRows && item.rows >= minItemRows; /** @type {?} */ var minAreaLimit = item.minItemArea === undefined ? this.$options.minItemArea : item.minItemArea; /** @type {?} */ var maxAreaLimit = item.maxItemArea === undefined ? this.$options.maxItemArea : item.maxItemArea; /** @type {?} */ var area = item.cols * item.rows; /** @type {?} */ var inMinArea = minAreaLimit <= area; /** @type {?} */ var inMaxArea = maxAreaLimit >= area; return !(noNegativePosition && maxGridCols && maxGridRows && inColsLimits && inRowsLimits && inMinArea && inMaxArea); }; /** * @param {?} item * @return {?} */ GridsterComponent.prototype.findItemWithItem = /** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var widgetsIndex = this.grid.length - 1; /** @type {?} */ var widget; for (; widgetsIndex > -1; widgetsIndex--) { widget = this.grid[widgetsIndex]; if (widget.$item !== item && GridsterComponent.checkCollisionTwoItems(widget.$item, item)) { return widget; } } return false; }; /** * @param {?} item * @return {?} */ GridsterComponent.prototype.findItemsWithItem = /** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var a = []; /** @type {?} */ var widgetsIndex = this.grid.length - 1; /** @type {?} */ var widget; for (; widgetsIndex > -1; widgetsIndex--) { widget = this.grid[widgetsIndex]; if (widget.$item !== item && GridsterComponent.checkCollisionTwoItems(widget.$item, item)) { a.push(widget); } } return a; }; /** * @param {?} itemComponent * @return {?} */ GridsterComponent.prototype.autoPositionItem = /** * @param {?} itemComponent * @return {?} */ function (itemComponent) { if (this.getNextPossiblePosition(itemComponent.$item)) { itemComponent.notPlaced = false; itemComponent.item.x = itemComponent.$item.x; itemComponent.item.y = itemComponent.$item.y; itemComponent.itemChanged(); } else { itemComponent.notPlaced = true; if (!this.$options.disableWarnings) { console.warn('Can\'t be placed in the bounds of the dashboard!/n' + JSON.stringify(itemComponent.item, ['cols', 'rows', 'x', 'y'])); } } }; /** * @param {?} newItem * @param {?=} startingFrom * @return {?} */ GridsterComponent.prototype.getNextPossiblePosition = /** * @param {?} newItem * @param {?=} startingFrom * @return {?} */ function (newItem, startingFrom) { if (startingFrom === void 0) { startingFrom = {}; } if (newItem.cols === -1) { newItem.cols = this.$options.defaultItemCols; } if (newItem.rows === -1) { newItem.rows = this.$options.defaultItemRows; } this.setGridDimensions(); /** @type {?} */ var rowsIndex = startingFrom.y || 0; /** @type {?} */ var colsIndex; for (; rowsIndex < this.rows; rowsIndex++) { newItem.y = rowsIndex; colsIndex = startingFrom.x || 0; for (; colsIndex < this.columns; colsIndex++) { newItem.x = colsIndex; if (!this.checkCollision(newItem)) { return true; } } } /** @type {?} */ var canAddToRows = this.$options.maxRows >= this.rows + newItem.rows; /** @type {?} */ var canAddToColumns = this.$options.maxCols >= this.columns + newItem.cols; /** @type {?} */ var addToRows = this.rows <= this.columns && canAddToRows; if (!addToRows && canAddToColumns) { newItem.x = this.columns; newItem.y = 0; return true; } else if (canAddToRows) { newItem.y = this.rows; newItem.x = 0; return true; } return false; }; /** * @param {?} item * @return {?} */ GridsterComponent.prototype.getFirstPossiblePosition = /** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var tmpItem = Object.assign({}, item); this.getNextPossiblePosition(tmpItem); return tmpItem; }; /** * @param {?} item * @return {?} */ GridsterComponent.prototype.getLastPossiblePosition = /** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var farthestItem = { y: 0, x: 0 }; farthestItem = this.grid.reduce((/** * @param {?} prev * @param {?} curr * @return {?} */ function (prev, curr) { /** @type {?} */ var currCoords = { y: curr.$item.y + curr.$item.rows - 1, x: curr.$item.x + curr.$item.cols - 1 }; if (GridsterUtils.compareItems(prev, currCoords) === 1) { return currCoords; } else { return prev; } }), farthestItem); /** @type {?} */ var tmpItem = Object.assign({}, item); this.getNextPossiblePosition(tmpItem, farthestItem); return tmpItem; }; /** * @param {?} x * @param {?} roundingMethod * @param {?=} noLimit * @return {?} */ GridsterComponent.prototype.pixelsToPositionX = /** * @param {?} x * @param {?} roundingMethod * @param {?=} noLimit * @return {?} */ function (x, roundingMethod, noLimit) { /** @type {?} */ var position = roundingMethod(x / this.curColWidth); if (noLimit) { return position; } else { return Math.max(position, 0); } }; /** * @param {?} y * @param {?} roundingMethod * @param {?=} noLimit * @return {?} */ GridsterComponent.prototype.pixelsToPositionY = /** * @param {?} y * @param {?} roundingMethod * @param {?=} noLimit * @return {?} */ function (y, roundingMethod, noLimit) { /** @type {?} */ var position = roundingMethod(y / this.curRowHeight); if (noLimit) { return position; } else { return Math.max(position, 0); } }; /** * @param {?} x * @return {?} */ GridsterComponent.prototype.positionXToPixels = /** * @param {?} x * @return {?} */ function (x) { return x * this.curColWidth; }; /** * @param {?} y * @return {?} */ GridsterComponent.prototype.positionYToPixels = /** * @param {?} y * @return {?} */ function (y) { return y * this.curRowHeight; }; // ------ Functions for swapWhileDragging option // identical to checkCollision() except that here we add bondaries. // ------ Functions for swapWhileDragging option // identical to checkCollision() except that here we add bondaries. /** * @param {?} item * @param {?} item2 * @return {?} */ GridsterComponent.checkCollisionTwoItemsForSwaping = // ------ Functions for swapWhileDragging option // identical to checkCollision() except that here we add bondaries. /** * @param {?} item * @param {?} item2 * @return {?} */ function (item, item2) { // if the cols or rows of the items are 1 , doesnt make any sense to set a boundary. Only if the item is bigger we set a boundary /** @type {?} */ var horizontalBoundaryItem1 = item.cols === 1 ? 0 : 1; /** @type {?} */ var horizontalBoundaryItem2 = item2.cols === 1 ? 0 : 1; /** @type {?} */ var verticalBoundaryItem1 = item.rows === 1 ? 0 : 1; /** @type {?} */ var verticalBoundaryItem2 = item2.rows === 1 ? 0 : 1; return item.x + horizontalBoundaryItem1 < item2.x + item2.cols && item.x + item.cols > item2.x + horizontalBoundaryItem2 && item.y + verticalBoundaryItem1 < item2.y + item2.rows && item.y + item.rows > item2.y + verticalBoundaryItem2; }; // identical to checkCollision() except that this function calls findItemWithItemForSwaping() instead of findItemWithItem() // identical to checkCollision() except that this function calls findItemWithItemForSwaping() instead of findItemWithItem() /** * @param {?} item * @return {?} */ GridsterComponent.prototype.checkCollisionForSwaping = // identical to checkCollision() except that this function calls findItemWithItemForSwaping() instead of findItemWithItem() /** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var collision = false; if (this.options.itemValidateCallback) { collision = !this.options.itemValidateCallback(item); } if (!collision && this.checkGridCollision(item)) { collision = true; } if (!collision) { /** @type {?} */ var c = this.findItemWithItemForSwaping(item); if (c) { collision = c; } } return collision; }; // identical to findItemWithItem() except that this function calls checkCollisionTwoItemsForSwaping() instead of checkCollisionTwoItems() // identical to findItemWithItem() except that this function calls checkCollisionTwoItemsForSwaping() instead of checkCollisionTwoItems() /** * @param {?} item * @return {?} */ GridsterComponent.prototype.findItemWithItemForSwaping = // identical to findItemWithItem() except that this function calls checkCollisionTwoItemsForSwaping() instead of checkCollisionTwoItems() /** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var widgetsIndex = this.grid.length - 1; /** @type {?} */ var widget; for (; widgetsIndex > -1; widgetsIndex--) { widget = this.grid[widgetsIndex]; if (widget.$item !== item && GridsterComponent.checkCollisionTwoItemsForSwaping(widget.$item, item)) { return widget; } } return false; }; GridsterComponent.decorators = [ { type: Component, args: [{ selector: 'gridster', template: "<div class=\"gridster-column\" *ngFor=\"let column of gridColumns; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"></div>\r\n<div class=\"gridster-row\" *ngFor=\"let row of gridRows; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"></div>\r\n<ng-content></ng-content>\r\n<gridster-preview class=\"gridster-preview\"></gridster-preview>\r\n", encapsulation: ViewEncapsulation.None, styles: ["gridster{position:relative;box-sizing:border-box;background:grey;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block}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}gridster.mobile gridster-item{position:relative}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid #fff;border-right:1px solid #fff}gridster .gridster-row{border-top:1px solid #fff;border-bottom:1px solid #fff}"] }] } ]; /** @nocollapse */ GridsterComponent.ctorParameters = function () { return [ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }, { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] }, { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] }, { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] } ]; }; GridsterComponent.propDecorators = { options: [{ type: Input }] }; return GridsterComponent; }()); export { GridsterComponent }; if (false) { /** @type {?} */ GridsterComponent.prototype.options; /** @type {?} */ GridsterComponent.prototype.calculateLayoutDebounce; /** @type {?} */ GridsterComponent.prototype.movingItem; /** @type {?} */ GridsterComponent.prototype.previewStyle; /** @type {?} */ GridsterComponent.prototype.el; /** @type {?} */ GridsterComponent.prototype.$options; /** @type {?} */ GridsterComponent.prototype.mobile; /** @type {?} */ GridsterComponent.prototype.curWidth; /** @type {?} */ GridsterComponent.prototype.curHeight; /** @type {?} */ GridsterComponent.prototype.grid; /** @type {?} */ GridsterComponent.prototype.columns; /** @type {?} */ GridsterComponent.prototype.rows; /** @type {?} */ GridsterComponent.prototype.curColWidth; /** @type {?} */ GridsterComponent.prototype.curRowHeight; /** @type {?} */ GridsterComponent.prototype.gridColumns; /** @type {?} */ GridsterComponent.prototype.gridRows; /** @type {?} */ GridsterComponent.prototype.windowResize; /** @type {?} */ GridsterComponent.prototype.dragInProgress; /** @type {?} */ GridsterComponent.prototype.emptyCell; /** @type {?} */ GridsterComponent.prototype.compact; /** @type {?} */ GridsterComponent.prototype.gridRenderer; /** @type {?} */ GridsterComponent.prototype.renderer; /** @type {?} */ GridsterComponent.prototype.cdRef; /** @type {?} */ GridsterComponent.prototype.zone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWdyaWRzdGVyLyIsInNvdXJjZXMiOlsibGliL2dyaWRzdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBSU4sU0FBUyxFQUVULGlCQUFpQixFQUNqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUk1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEQ7SUE2QkUsMkJBQ3NCLEVBQWMsRUFFM0IsUUFBbUIsRUFFbkIsS0FBd0IsRUFDUixJQUFZO1FBSDVCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFbkIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDUixTQUFJLEdBQUosSUFBSSxDQUFRO1FBbEJyQyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osU0FBSSxHQUFHLENBQUMsQ0FBQztRQUdULGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFlWixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FB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