@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
46 lines • 5.97 kB
JavaScript
import { __extends } from "tslib";
import { ScrollStrategy } from './scroll-strategy';
/**
* Prevents scrolling while the overlay content is shown.
*/
var BlockScrollStrategy = /** @class */ (function (_super) {
__extends(BlockScrollStrategy, _super);
function BlockScrollStrategy(scrollContainer) {
var _this = _super.call(this, scrollContainer) || this;
_this._initialized = false;
_this.onScroll = function (ev) {
ev.preventDefault();
if (!_this._sourceElement || _this._sourceElement !== ev.target) {
_this._sourceElement = ev.target;
_this._initialScrollTop = _this._sourceElement.scrollTop;
_this._initialScrollLeft = _this._sourceElement.scrollLeft;
}
_this._sourceElement.scrollTop = _this._initialScrollTop;
_this._sourceElement.scrollLeft = _this._initialScrollLeft;
};
return _this;
}
/** @inheritdoc */
BlockScrollStrategy.prototype.initialize = function (document, overlayService, id) {
if (this._initialized) {
return;
}
this._document = document;
this._initialized = true;
};
/** @inheritdoc */
BlockScrollStrategy.prototype.attach = function () {
this._document.addEventListener('scroll', this.onScroll, true);
};
/** @inheritdoc */
BlockScrollStrategy.prototype.detach = function () {
this._document.removeEventListener('scroll', this.onScroll, true);
this._sourceElement = null;
this._initialScrollTop = 0;
this._initialScrollLeft = 0;
this._initialized = false;
};
return BlockScrollStrategy;
}(ScrollStrategy));
export { BlockScrollStrategy };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9vdmVybGF5L3Njcm9sbC9ibG9jay1zY3JvbGwtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRDs7R0FFRztBQUNIO0lBQXlDLHVDQUFjO0lBT25ELDZCQUFZLGVBQTZCO1FBQXpDLFlBQ0ksa0JBQU0sZUFBZSxDQUFDLFNBQ3pCO1FBUk8sa0JBQVksR0FBRyxLQUFLLENBQUM7UUFrQ3JCLGNBQVEsR0FBRyxVQUFDLEVBQVM7WUFDekIsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFJLENBQUMsY0FBYyxJQUFJLEtBQUksQ0FBQyxjQUFjLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRTtnQkFDM0QsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUMsTUFBaUIsQ0FBQztnQkFDM0MsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUN2RCxLQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7YUFDNUQ7WUFFRCxLQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxLQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDdkQsS0FBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEdBQUcsS0FBSSxDQUFDLGtCQUFrQixDQUFDO1FBQzdELENBQUMsQ0FBQTs7SUFwQ0QsQ0FBQztJQUVELGtCQUFrQjtJQUNYLHdDQUFVLEdBQWpCLFVBQWtCLFFBQWtCLEVBQUUsY0FBaUMsRUFBRSxFQUFVO1FBQy9FLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsb0NBQU0sR0FBYjtRQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGtCQUFrQjtJQUNYLG9DQUFNLEdBQWI7UUFDSSxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBYUwsMEJBQUM7QUFBRCxDQUFDLEFBOUNELENBQXlDLGNBQWMsR0E4Q3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWd4T3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi9vdmVybGF5JztcbmltcG9ydCB7IFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi9zY3JvbGwtc3RyYXRlZ3knO1xuXG4vKipcbiAqIFByZXZlbnRzIHNjcm9sbGluZyB3aGlsZSB0aGUgb3ZlcmxheSBjb250ZW50IGlzIHNob3duLlxuICovXG5leHBvcnQgY2xhc3MgQmxvY2tTY3JvbGxTdHJhdGVneSBleHRlbmRzIFNjcm9sbFN0cmF0ZWd5IHtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudDtcbiAgICBwcml2YXRlIF9pbml0aWFsU2Nyb2xsVG9wOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbFNjcm9sbExlZnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zb3VyY2VFbGVtZW50OiBFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3Ioc2Nyb2xsQ29udGFpbmVyPzogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgc3VwZXIoc2Nyb2xsQ29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShkb2N1bWVudDogRG9jdW1lbnQsIG92ZXJsYXlTZXJ2aWNlOiBJZ3hPdmVybGF5U2VydmljZSwgaWQ6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBwdWJsaWMgYXR0YWNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBwdWJsaWMgZGV0YWNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLCB0cnVlKTtcbiAgICAgICAgdGhpcy5fc291cmNlRWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2luaXRpYWxTY3JvbGxUb3AgPSAwO1xuICAgICAgICB0aGlzLl9pbml0aWFsU2Nyb2xsTGVmdCA9IDA7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNjcm9sbCA9IChldjogRXZlbnQpID0+IHtcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VFbGVtZW50IHx8IHRoaXMuX3NvdXJjZUVsZW1lbnQgIT09IGV2LnRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5fc291cmNlRWxlbWVudCA9IGV2LnRhcmdldCBhcyBFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbFNjcm9sbFRvcCA9IHRoaXMuX3NvdXJjZUVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbFNjcm9sbExlZnQgPSB0aGlzLl9zb3VyY2VFbGVtZW50LnNjcm9sbExlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zb3VyY2VFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuX2luaXRpYWxTY3JvbGxUb3A7XG4gICAgICAgIHRoaXMuX3NvdXJjZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMuX2luaXRpYWxTY3JvbGxMZWZ0O1xuICAgIH1cbn1cbiJdfQ==