UNPKG

@hxui/angular

Version:

* * *

43 lines 4.13 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { Injectable, ElementRef } from '@angular/core'; import { positionElements } from './ng-positioning'; export class PositioningService { /** * @param {?} options * @return {?} */ position(options) { const { element, target, attachment, appendToBody } = options; positionElements(this._getHtmlElement(target), this._getHtmlElement(element), (/** @type {?} */ (attachment)), appendToBody); } /** * @param {?} element * @return {?} */ isElementBelowTheFold(element) { /** @type {?} */ const rect = element.getBoundingClientRect(); return ((rect.top + rect.height) > document.body.clientHeight); } /** * @param {?} element * @return {?} */ _getHtmlElement(element) { // it means that we got a selector if (typeof element === 'string') { return (/** @type {?} */ (document.querySelector(element))); } if (element instanceof ElementRef) { return element.nativeElement; } return (/** @type {?} */ (element)); } } PositioningService.decorators = [ { type: Injectable }, ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25pbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoeHVpL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvcG9zaXRpb25pbmcvcG9zaXRpb25pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLcEQsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7SUFDdEIsUUFBUSxDQUFDLE9BQTJCO2NBQ25DLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFDLEdBQUcsT0FBTztRQUMzRCxnQkFBZ0IsQ0FDZCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUM3QixtQkFBSyxVQUFVLEVBQUEsRUFDZixZQUFZLENBQUMsQ0FBQztJQUNsQixDQUFDOzs7OztJQUVNLHFCQUFxQixDQUFDLE9BQW9COztjQUN6QyxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFO1FBQzVDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUU7SUFDbEUsQ0FBQzs7Ozs7SUFFTyxlQUFlLENBQUMsT0FBWTtRQUNsQyxrQ0FBa0M7UUFDbEMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDL0IsT0FBTyxtQkFBQSxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFlLENBQUM7U0FDdkQ7UUFFRCxJQUFJLE9BQU8sWUFBWSxVQUFVLEVBQUU7WUFDakMsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQzlCO1FBRUQsT0FBTyxtQkFBQSxPQUFPLEVBQWUsQ0FBQztJQUNoQyxDQUFDOzs7WUEzQkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcG9zaXRpb25FbGVtZW50cyB9IGZyb20gJy4vbmctcG9zaXRpb25pbmcnO1xyXG5pbXBvcnQge1Bvc2l0aW9uaW5nT3B0aW9uc30gZnJvbSAnLi9wb3NpdGlvbmluZy5vcHRpb25zJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQb3NpdGlvbmluZ1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBwb3NpdGlvbihvcHRpb25zOiBQb3NpdGlvbmluZ09wdGlvbnMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHtlbGVtZW50LCB0YXJnZXQsIGF0dGFjaG1lbnQsIGFwcGVuZFRvQm9keX0gPSBvcHRpb25zO1xyXG4gICAgcG9zaXRpb25FbGVtZW50cyhcclxuICAgICAgdGhpcy5fZ2V0SHRtbEVsZW1lbnQodGFyZ2V0KSxcclxuICAgICAgdGhpcy5fZ2V0SHRtbEVsZW1lbnQoZWxlbWVudCksXHJcbiAgICAgIDxhbnk+YXR0YWNobWVudCxcclxuICAgICAgYXBwZW5kVG9Cb2R5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0VsZW1lbnRCZWxvd1RoZUZvbGQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuICgocmVjdC50b3AgKyByZWN0LmhlaWdodCkgPiBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCkgO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0SHRtbEVsZW1lbnQoZWxlbWVudDogYW55KTogSFRNTEVsZW1lbnQge1xyXG4gICAgLy8gaXQgbWVhbnMgdGhhdCB3ZSBnb3QgYSBzZWxlY3RvclxyXG4gICAgaWYgKHR5cGVvZiBlbGVtZW50ID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlbGVtZW50KSBhcyBIVE1MRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnRSZWYpIHtcclxuICAgICAgcmV0dXJuIGVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICB9XHJcbn1cclxuIl19