UNPKG

@blare/angular2gridster

Version:

[![npm version](https://badge.fury.io/js/angular2gridster.svg)](https://badge.fury.io/js/angular2gridster)

119 lines 11.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { of, fromEvent, merge } from 'rxjs'; import { debounceTime, map, distinctUntilChanged } from 'rxjs/operators'; var GridsterOptions = /** @class */ (function () { function GridsterOptions(config, element) { var _this = this; this.defaults = { lanes: 5, direction: 'horizontal', widthHeightRatio: 1, shrink: false, responsiveView: true, responsiveSizes: false, dragAndDrop: true, resizable: false, useCSSTransforms: false, floating: true, tolerance: 'pointer', }; this.responsiveOptions = []; this.breakpointsMap = { sm: 576, // Small devices md: 768, // Medium devices lg: 992, // Large devices xl: 1200 // Extra large }; this.basicOptions = config; this.responsiveOptions = this.extendResponsiveOptions(config.responsiveOptions || []); this.change = merge(of(this.getOptionsByWidth(document.documentElement.clientWidth)), fromEvent(window, 'resize').pipe(debounceTime(config.responsiveDebounce || 0), map(function (event) { return _this.getOptionsByWidth(element.nativeElement.offsetWidth); }))).pipe(distinctUntilChanged(null, function (options) { return options.minWidth; })); } /** * @param {?} width * @return {?} */ GridsterOptions.prototype.getOptionsByWidth = /** * @param {?} width * @return {?} */ function (width) { /** @type {?} */ var i = 0; /** @type {?} */ var options = Object.assign({}, this.defaults, this.basicOptions); while (this.responsiveOptions[i]) { if (this.responsiveOptions[i].minWidth <= width) { options = this.responsiveOptions[i]; } i++; } return options; }; /** * @param {?} responsiveOptions * @return {?} */ GridsterOptions.prototype.extendResponsiveOptions = /** * @param {?} responsiveOptions * @return {?} */ function (responsiveOptions) { var _this = this; return responsiveOptions // responsive options are valid only with "breakpoint" property .filter(function (options) { return options.breakpoint; }) // set default minWidth if not given .map(function (options) { return Object.assign({ minWidth: _this.breakpointsMap[options.breakpoint] || 0 }, options); }) .sort(function (curr, next) { return curr.minWidth - next.minWidth; }) .map(function (options) { return (/** @type {?} */ (Object.assign({}, _this.defaults, _this.basicOptions, options))); }); }; return GridsterOptions; }()); export { GridsterOptions }; if (false) { /** @type {?} */ GridsterOptions.prototype.direction; /** @type {?} */ GridsterOptions.prototype.lanes; /** @type {?} */ GridsterOptions.prototype.widthHeightRatio; /** @type {?} */ GridsterOptions.prototype.heightToFontSizeRatio; /** @type {?} */ GridsterOptions.prototype.responsiveView; /** @type {?} */ GridsterOptions.prototype.responsiveSizes; /** @type {?} */ GridsterOptions.prototype.dragAndDrop; /** @type {?} */ GridsterOptions.prototype.resizable; /** @type {?} */ GridsterOptions.prototype.shrink; /** @type {?} */ GridsterOptions.prototype.minWidth; /** @type {?} */ GridsterOptions.prototype.useCSSTransforms; /** @type {?} */ GridsterOptions.prototype.defaults; /** @type {?} */ GridsterOptions.prototype.change; /** @type {?} */ GridsterOptions.prototype.responsiveOptions; /** @type {?} */ GridsterOptions.prototype.basicOptions; /** @type {?} */ GridsterOptions.prototype.breakpointsMap; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JpZHN0ZXJPcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGJsYXJlL2FuZ3VsYXIyZ3JpZHN0ZXIvIiwic291cmNlcyI6WyJsaWIvR3JpZHN0ZXJPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBUSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUt6RTtJQXVDSSx5QkFBWSxNQUF3QixFQUFFLE9BQW1CO1FBQXpELGlCQWNDO1FBeENELGFBQVEsR0FBcUI7WUFDekIsS0FBSyxFQUFFLENBQUM7WUFDUixTQUFTLEVBQUUsWUFBWTtZQUN2QixnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLE1BQU0sRUFBRSxLQUFLO1lBQ2IsY0FBYyxFQUFFLElBQUk7WUFDcEIsZUFBZSxFQUFFLEtBQUs7WUFDdEIsV0FBVyxFQUFFLElBQUk7WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixRQUFRLEVBQUUsSUFBSTtZQUNkLFNBQVMsRUFBRSxTQUFTO1NBQ3ZCLENBQUM7UUFJRixzQkFBaUIsR0FBNEIsRUFBRSxDQUFDO1FBR2hELG1CQUFjLEdBQUc7WUFDYixFQUFFLEVBQUUsR0FBRzs7WUFDUCxFQUFFLEVBQUUsR0FBRzs7WUFDUCxFQUFFLEVBQUUsR0FBRzs7WUFDUCxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDMUIsQ0FBQztRQUdFLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBRTNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRGLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUNYLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNoRSxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDNUIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUMsRUFDNUMsR0FBRyxDQUFDLFVBQUMsS0FBWTtZQUNmLE9BQU8sS0FBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsVUFBQyxPQUFZLElBQUssT0FBQSxPQUFPLENBQUMsUUFBUSxFQUFoQixDQUFnQixDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDOzs7OztJQUVELDJDQUFpQjs7OztJQUFqQixVQUFrQixLQUFhOztZQUN2QixDQUFDLEdBQUcsQ0FBQzs7WUFDTCxPQUFPLEdBQXFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUVuRixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksS0FBSyxFQUFFO2dCQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO1lBQ0QsQ0FBQyxFQUFFLENBQUM7U0FDUDtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Ozs7O0lBRU8saURBQXVCOzs7O0lBQS9CLFVBQWdDLGlCQUEwQztRQUExRSxpQkFZQztRQVhHLE9BQU8saUJBQWlCO1lBQ3BCLCtEQUErRDthQUM5RCxNQUFNLENBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxPQUFPLENBQUMsVUFBVSxFQUFsQixDQUFrQixDQUFDO1lBQ3RDLG9DQUFvQzthQUNuQyxHQUFHLENBQUMsVUFBQyxPQUFPO1lBQ1QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNqQixRQUFRLEVBQUUsS0FBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQzthQUN6RCxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxVQUFDLElBQUksRUFBRSxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQTdCLENBQTZCLENBQUM7YUFDbkQsR0FBRyxDQUFDLFVBQUMsT0FBTyxXQUFLLG1CQUFrQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFJLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLEVBQUEsR0FBQSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQWxGRCxJQWtGQzs7OztJQWpGRyxvQ0FBa0I7O0lBQ2xCLGdDQUFjOztJQUNkLDJDQUF5Qjs7SUFDekIsZ0RBQThCOztJQUM5Qix5Q0FBd0I7O0lBQ3hCLDBDQUF5Qjs7SUFDekIsc0NBQXFCOztJQUNyQixvQ0FBbUI7O0lBQ25CLGlDQUFnQjs7SUFDaEIsbUNBQWlCOztJQUNqQiwyQ0FBMEI7O0lBRTFCLG1DQVlFOztJQUVGLGlDQUFxQzs7SUFFckMsNENBQWdEOztJQUNoRCx1Q0FBK0I7O0lBRS9CLHlDQUtFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGZyb21FdmVudCwgcGlwZSwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSUdyaWRzdGVyT3B0aW9ucyB9IGZyb20gJy4vSUdyaWRzdGVyT3B0aW9ucyc7XG5pbXBvcnQge0VsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgR3JpZHN0ZXJPcHRpb25zIHtcbiAgICBkaXJlY3Rpb246IHN0cmluZztcbiAgICBsYW5lczogbnVtYmVyO1xuICAgIHdpZHRoSGVpZ2h0UmF0aW86IG51bWJlcjtcbiAgICBoZWlnaHRUb0ZvbnRTaXplUmF0aW86IG51bWJlcjtcbiAgICByZXNwb25zaXZlVmlldzogYm9vbGVhbjtcbiAgICByZXNwb25zaXZlU2l6ZXM6IGJvb2xlYW47XG4gICAgZHJhZ0FuZERyb3A6IGJvb2xlYW47XG4gICAgcmVzaXphYmxlOiBib29sZWFuO1xuICAgIHNocmluazogYm9vbGVhbjtcbiAgICBtaW5XaWR0aDogbnVtYmVyO1xuICAgIHVzZUNTU1RyYW5zZm9ybXM6IGJvb2xlYW47XG5cbiAgICBkZWZhdWx0czogSUdyaWRzdGVyT3B0aW9ucyA9IHtcbiAgICAgICAgbGFuZXM6IDUsXG4gICAgICAgIGRpcmVjdGlvbjogJ2hvcml6b250YWwnLFxuICAgICAgICB3aWR0aEhlaWdodFJhdGlvOiAxLFxuICAgICAgICBzaHJpbms6IGZhbHNlLFxuICAgICAgICByZXNwb25zaXZlVmlldzogdHJ1ZSxcbiAgICAgICAgcmVzcG9uc2l2ZVNpemVzOiBmYWxzZSxcbiAgICAgICAgZHJhZ0FuZERyb3A6IHRydWUsXG4gICAgICAgIHJlc2l6YWJsZTogZmFsc2UsXG4gICAgICAgIHVzZUNTU1RyYW5zZm9ybXM6IGZhbHNlLFxuICAgICAgICBmbG9hdGluZzogdHJ1ZSxcbiAgICAgICAgdG9sZXJhbmNlOiAncG9pbnRlcicsXG4gICAgfTtcblxuICAgIGNoYW5nZTogT2JzZXJ2YWJsZTxJR3JpZHN0ZXJPcHRpb25zPjtcblxuICAgIHJlc3BvbnNpdmVPcHRpb25zOiBBcnJheTxJR3JpZHN0ZXJPcHRpb25zPiA9IFtdO1xuICAgIGJhc2ljT3B0aW9uczogSUdyaWRzdGVyT3B0aW9ucztcblxuICAgIGJyZWFrcG9pbnRzTWFwID0ge1xuICAgICAgICBzbTogNTc2LCAvLyBTbWFsbCBkZXZpY2VzXG4gICAgICAgIG1kOiA3NjgsIC8vIE1lZGl1bSBkZXZpY2VzXG4gICAgICAgIGxnOiA5OTIsIC8vIExhcmdlIGRldmljZXNcbiAgICAgICAgeGw6IDEyMDAgLy8gRXh0cmEgbGFyZ2VcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBJR3JpZHN0ZXJPcHRpb25zLCBlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuYmFzaWNPcHRpb25zID0gY29uZmlnO1xuXG4gICAgICAgIHRoaXMucmVzcG9uc2l2ZU9wdGlvbnMgPSB0aGlzLmV4dGVuZFJlc3BvbnNpdmVPcHRpb25zKGNvbmZpZy5yZXNwb25zaXZlT3B0aW9ucyB8fCBbXSk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2UgPSBtZXJnZShcbiAgICAgICAgICAgICAgICBvZih0aGlzLmdldE9wdGlvbnNCeVdpZHRoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkpLFxuICAgICAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoY29uZmlnLnJlc3BvbnNpdmVEZWJvdW5jZSB8fCAwKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25zQnlXaWR0aChlbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZChudWxsLCAob3B0aW9uczogYW55KSA9PiBvcHRpb25zLm1pbldpZHRoKSk7XG4gICAgfVxuXG4gICAgZ2V0T3B0aW9uc0J5V2lkdGgod2lkdGg6IG51bWJlcik6IElHcmlkc3Rlck9wdGlvbnMge1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGxldCBvcHRpb25zOiBJR3JpZHN0ZXJPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZWZhdWx0cywgdGhpcy5iYXNpY09wdGlvbnMpO1xuXG4gICAgICAgIHdoaWxlICh0aGlzLnJlc3BvbnNpdmVPcHRpb25zW2ldKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNwb25zaXZlT3B0aW9uc1tpXS5taW5XaWR0aCA8PSB3aWR0aCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLnJlc3BvbnNpdmVPcHRpb25zW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRlbmRSZXNwb25zaXZlT3B0aW9ucyhyZXNwb25zaXZlT3B0aW9uczogQXJyYXk8SUdyaWRzdGVyT3B0aW9ucz4pOiBBcnJheTxJR3JpZHN0ZXJPcHRpb25zPiB7XG4gICAgICAgIHJldHVybiByZXNwb25zaXZlT3B0aW9uc1xuICAgICAgICAgICAgLy8gcmVzcG9uc2l2ZSBvcHRpb25zIGFyZSB2YWxpZCBvbmx5IHdpdGggXCJicmVha3BvaW50XCIgcHJvcGVydHlcbiAgICAgICAgICAgIC5maWx0ZXIob3B0aW9ucyA9PiBvcHRpb25zLmJyZWFrcG9pbnQpXG4gICAgICAgICAgICAvLyBzZXQgZGVmYXVsdCBtaW5XaWR0aCBpZiBub3QgZ2l2ZW5cbiAgICAgICAgICAgIC5tYXAoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiB0aGlzLmJyZWFrcG9pbnRzTWFwW29wdGlvbnMuYnJlYWtwb2ludF0gfHwgMFxuICAgICAgICAgICAgICAgIH0sIG9wdGlvbnMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zb3J0KChjdXJyLCBuZXh0KSA9PiBjdXJyLm1pbldpZHRoIC0gbmV4dC5taW5XaWR0aClcbiAgICAgICAgICAgIC5tYXAoKG9wdGlvbnMpID0+IDxJR3JpZHN0ZXJPcHRpb25zPk9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMsIHRoaXMuYmFzaWNPcHRpb25zLCBvcHRpb25zKSk7XG4gICAgfVxufVxuIl19