igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
103 lines • 7.63 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ScrollStrategy } from './scroll-strategy';
/**
* Prevents scrolling while the overlay content is shown.
*/
export class BlockScrollStrategy extends ScrollStrategy {
/**
* @param {?=} scrollContainer
*/
constructor(scrollContainer) {
super(scrollContainer);
this._initialized = false;
this.onScroll = (ev) => {
ev.preventDefault();
if (!this._sourceElement || this._sourceElement !== ev.srcElement) {
this._sourceElement = ev.srcElement;
this._initialScrollTop = this._sourceElement.scrollTop;
this._initialScrollLeft = this._sourceElement.scrollLeft;
}
this._sourceElement.scrollTop = this._initialScrollTop;
this._sourceElement.scrollLeft = this._initialScrollLeft;
};
}
/**
* \@inheritdoc
* @param {?} document
* @param {?} overlayService
* @param {?} id
* @return {?}
*/
initialize(document, overlayService, id) {
if (this._initialized) {
return;
}
this._document = document;
this._initialized = true;
}
/**
* \@inheritdoc
* @return {?}
*/
attach() {
this._document.addEventListener('scroll', this.onScroll, true);
this._document.addEventListener('wheel', this.onWheel, true);
}
/**
* \@inheritdoc
* @return {?}
*/
detach() {
this._document.removeEventListener('scroll', this.onScroll, true);
this._document.removeEventListener('wheel', this.onWheel, true);
this._sourceElement = null;
this._initialScrollTop = 0;
this._initialScrollLeft = 0;
this._initialized = false;
}
/**
* @private
* @param {?} ev
* @return {?}
*/
onWheel(ev) {
ev.stopImmediatePropagation();
ev.preventDefault();
}
}
if (false) {
/**
* @type {?}
* @private
*/
BlockScrollStrategy.prototype._initialized;
/**
* @type {?}
* @private
*/
BlockScrollStrategy.prototype._document;
/**
* @type {?}
* @private
*/
BlockScrollStrategy.prototype._initialScrollTop;
/**
* @type {?}
* @private
*/
BlockScrollStrategy.prototype._initialScrollLeft;
/**
* @type {?}
* @private
*/
BlockScrollStrategy.prototype._sourceElement;
/**
* @type {?}
* @private
*/
BlockScrollStrategy.prototype.onScroll;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9vdmVybGF5L3Njcm9sbC9ibG9jay1zY3JvbGwtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUtuRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYzs7OztJQU9uRCxZQUFZLGVBQTZCO1FBQ3JDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQVBuQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQW9DckIsYUFBUSxHQUFHLENBQUMsRUFBUyxFQUFFLEVBQUU7WUFDN0IsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzthQUM1RDtZQUVELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUN2RCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDN0QsQ0FBQyxDQUFBO0lBdENELENBQUM7Ozs7Ozs7O0lBR00sVUFBVSxDQUFDLFFBQWtCLEVBQUUsY0FBaUMsRUFBRSxFQUFVO1FBQy9FLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDOzs7OztJQUdNLE1BQU07UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7Ozs7SUFHTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDOzs7Ozs7SUFjTyxPQUFPLENBQUMsRUFBYztRQUMxQixFQUFFLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUM5QixFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNKOzs7Ozs7SUFwREcsMkNBQTZCOzs7OztJQUM3Qix3Q0FBNEI7Ozs7O0lBQzVCLGdEQUFrQzs7Ozs7SUFDbEMsaURBQW1DOzs7OztJQUNuQyw2Q0FBZ0M7Ozs7O0lBZ0NoQyx1Q0FVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElneE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vb3ZlcmxheSc7XG5pbXBvcnQgeyBTY3JvbGxTdHJhdGVneSB9IGZyb20gJy4vc2Nyb2xsLXN0cmF0ZWd5JztcblxuLyoqXG4gKiBQcmV2ZW50cyBzY3JvbGxpbmcgd2hpbGUgdGhlIG92ZXJsYXkgY29udGVudCBpcyBzaG93bi5cbiAqL1xuZXhwb3J0IGNsYXNzIEJsb2NrU2Nyb2xsU3RyYXRlZ3kgZXh0ZW5kcyBTY3JvbGxTdHJhdGVneSB7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQ7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbFNjcm9sbFRvcDogbnVtYmVyO1xuICAgIHByaXZhdGUgX2luaXRpYWxTY3JvbGxMZWZ0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfc291cmNlRWxlbWVudDogRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHNjcm9sbENvbnRhaW5lcj86IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHN1cGVyKHNjcm9sbENvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcHVibGljIGluaXRpYWxpemUoZG9jdW1lbnQ6IERvY3VtZW50LCBvdmVybGF5U2VydmljZTogSWd4T3ZlcmxheVNlcnZpY2UsIGlkOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kb2N1bWVudCA9IGRvY3VtZW50O1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcHVibGljIGF0dGFjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgdGhpcy5vbldoZWVsLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBwdWJsaWMgZGV0YWNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLCB0cnVlKTtcbiAgICAgICAgdGhpcy5fZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCB0aGlzLm9uV2hlZWwsIHRydWUpO1xuICAgICAgICB0aGlzLl9zb3VyY2VFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5faW5pdGlhbFNjcm9sbFRvcCA9IDA7XG4gICAgICAgIHRoaXMuX2luaXRpYWxTY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uU2Nyb2xsID0gKGV2OiBFdmVudCkgPT4ge1xuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoIXRoaXMuX3NvdXJjZUVsZW1lbnQgfHwgdGhpcy5fc291cmNlRWxlbWVudCAhPT0gZXYuc3JjRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fc291cmNlRWxlbWVudCA9IGV2LnNyY0VsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsU2Nyb2xsVG9wID0gdGhpcy5fc291cmNlRWxlbWVudC5zY3JvbGxUb3A7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsU2Nyb2xsTGVmdCA9IHRoaXMuX3NvdXJjZUVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NvdXJjZUVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5faW5pdGlhbFNjcm9sbFRvcDtcbiAgICAgICAgdGhpcy5fc291cmNlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5faW5pdGlhbFNjcm9sbExlZnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbldoZWVsKGV2OiBXaGVlbEV2ZW50KSB7XG4gICAgICAgIGV2LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbn1cbiJdfQ==