@hxui/angular
Version:
This README includes the steps that are necessary to import the HxUi-angular into a project or to contribute with development.
52 lines (51 loc) • 4.46 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} 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) {
const /** @type {?} */ 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 },
];
function PositioningService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
PositioningService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
PositioningService.ctorParameters;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25pbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoeHVpL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvcG9zaXRpb25pbmcvcG9zaXRpb25pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLcEQsTUFBTTs7Ozs7SUFDRyxRQUFRLENBQUMsT0FBMkI7UUFDekMsTUFBTSxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBQyxHQUFHLE9BQU8sQ0FBQztRQUM1RCxnQkFBZ0IsQ0FDZCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxvQkFDeEIsVUFBVSxHQUNmLFlBQVksQ0FBQyxDQUFDOzs7Ozs7SUFHWCxxQkFBcUIsQ0FBQyxPQUFvQjtRQUMvQyx1QkFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFFOzs7Ozs7SUFHMUQsZUFBZSxDQUFDLE9BQVk7O1FBRWxDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxtQkFBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBZ0IsRUFBQztTQUN2RDtRQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQzlCO1FBRUQsTUFBTSxtQkFBQyxPQUFzQixFQUFDOzs7O1lBMUJqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBwb3NpdGlvbkVsZW1lbnRzIH0gZnJvbSAnLi9uZy1wb3NpdGlvbmluZyc7XHJcbmltcG9ydCB7UG9zaXRpb25pbmdPcHRpb25zfSBmcm9tICcuL3Bvc2l0aW9uaW5nLm9wdGlvbnMnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uaW5nU2VydmljZSB7XHJcbiAgcHVibGljIHBvc2l0aW9uKG9wdGlvbnM6IFBvc2l0aW9uaW5nT3B0aW9ucyk6IHZvaWQge1xyXG4gICAgY29uc3Qge2VsZW1lbnQsIHRhcmdldCwgYXR0YWNobWVudCwgYXBwZW5kVG9Cb2R5fSA9IG9wdGlvbnM7XHJcbiAgICBwb3NpdGlvbkVsZW1lbnRzKFxyXG4gICAgICB0aGlzLl9nZXRIdG1sRWxlbWVudCh0YXJnZXQpLFxyXG4gICAgICB0aGlzLl9nZXRIdG1sRWxlbWVudChlbGVtZW50KSxcclxuICAgICAgPGFueT5hdHRhY2htZW50LFxyXG4gICAgICBhcHBlbmRUb0JvZHkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzRWxlbWVudEJlbG93VGhlRm9sZChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICByZXR1cm4gKChyZWN0LnRvcCArIHJlY3QuaGVpZ2h0KSA+IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KSA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRIdG1sRWxlbWVudChlbGVtZW50OiBhbnkpOiBIVE1MRWxlbWVudCB7XHJcbiAgICAvLyBpdCBtZWFucyB0aGF0IHdlIGdvdCBhIHNlbGVjdG9yXHJcbiAgICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGVsZW1lbnQpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xyXG4gICAgICByZXR1cm4gZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gIH1cclxufVxyXG4iXX0=