md2
Version:
Angular2 based Material Design components, directives and services are Accordion, Autocomplete, Chips(Tags), Collapse, Colorpicker, Data Table, Datepicker, Dialog(Modal), Menu, Multiselect, Select, Tabs, Tags(Chips), Toast and Tooltip.
64 lines • 2.73 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Directive, ElementRef, NgZone, Renderer2 } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { ScrollDispatcher } from './scroll-dispatcher';
import 'rxjs/add/observable/fromEvent';
/**
* Sends an event when the directive's element is scrolled. Registers itself with the
* ScrollDispatcher service to include itself as part of its collection of scrolling events that it
* can be listened to through the service.
*/
var Scrollable = (function () {
function Scrollable(_elementRef, _scroll, _ngZone, _renderer) {
this._elementRef = _elementRef;
this._scroll = _scroll;
this._ngZone = _ngZone;
this._renderer = _renderer;
this._elementScrolled = new Subject();
}
Scrollable.prototype.ngOnInit = function () {
var _this = this;
this._scrollListener = this._ngZone.runOutsideAngular(function () {
return _this._renderer.listen(_this.getElementRef().nativeElement, 'scroll', function (event) {
_this._elementScrolled.next(event);
});
});
this._scroll.register(this);
};
Scrollable.prototype.ngOnDestroy = function () {
this._scroll.deregister(this);
if (this._scrollListener) {
this._scrollListener();
this._scrollListener = null;
}
};
/**
* Returns observable that emits when a scroll event is fired on the host element.
*/
Scrollable.prototype.elementScrolled = function () {
return this._elementScrolled.asObservable();
};
Scrollable.prototype.getElementRef = function () {
return this._elementRef;
};
return Scrollable;
}());
Scrollable = __decorate([
Directive({
selector: '[cdk-scrollable], [cdkScrollable]'
}),
__metadata("design:paramtypes", [ElementRef,
ScrollDispatcher,
NgZone,
Renderer2])
], Scrollable);
export { Scrollable };
//# sourceMappingURL=scrollable.js.map