UNPKG

igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

103 lines 7.63 kB
/** * @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==