ngx-animating-datepicker
Version:
An Animating Datepicker for Angular 2+, for some smooth date picking :).
56 lines • 4.97 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
export class UtilitiesService {
/**
* @private
* @return {?}
*/
static getScrollOffset() {
/** @type {?} */
const x = window.pageXOffset || document.documentElement.scrollLeft;
/** @type {?} */
const y = window.pageYOffset || document.documentElement.scrollTop;
return { x: x, y: y };
}
/**
* @param {?} el
* @return {?}
*/
static getPageOffset(el) {
/** @type {?} */
const scrollOffset = UtilitiesService.getScrollOffset();
/** @type {?} */
const width = el.offsetWidth;
/** @type {?} */
const height = el.offsetHeight;
if (el.getBoundingClientRect) {
/** @type {?} */
const props = el.getBoundingClientRect();
/** @type {?} */
const position = {
top: props.top + scrollOffset.y,
left: props.left + scrollOffset.x,
right: props.left + scrollOffset.x + width,
bottom: props.top + scrollOffset.y + height,
forRight: window.innerWidth - props.left,
forBottom: window.innerHeight - (props.top + scrollOffset.y)
};
return position;
}
}
/**
* @param {?} start
* @param {?} end
* @return {?}
*/
createArray(start, end) {
return new Array(end - start + 1).fill(1).map((_, idx) => start + idx);
}
}
UtilitiesService.decorators = [
{ type: Injectable },
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW5pbWF0aW5nLWRhdGVwaWNrZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTTs7Ozs7SUFDRyxNQUFNLENBQUMsZUFBZTs7Y0FDdkIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxVQUFVOztjQUM3RCxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVM7UUFDbEUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFlOztjQUM3QixZQUFZLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxFQUFFOztjQUNqRCxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVc7O2NBQ3RCLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWTtRQUU5QixJQUFJLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTs7a0JBQ3ZCLEtBQUssR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUU7O2tCQUNsQyxRQUFRLEdBQUc7Z0JBQ2hCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxDQUFDO2dCQUMvQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQztnQkFDakMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsR0FBRyxLQUFLO2dCQUMxQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsQ0FBQyxHQUFHLE1BQU07Z0JBQzNDLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJO2dCQUN4QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUM1RDtZQUVELE9BQU8sUUFBUSxDQUFDO1NBQ2hCO0lBQ0YsQ0FBQzs7Ozs7O0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxHQUFXO1FBQ3JDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7OztZQTlCRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXRpbGl0aWVzU2VydmljZSB7XG5cdHByaXZhdGUgc3RhdGljIGdldFNjcm9sbE9mZnNldCgpIHtcblx0XHRjb25zdCB4ID0gd2luZG93LnBhZ2VYT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xuXHRcdGNvbnN0IHkgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcblx0XHRyZXR1cm4geyB4OiB4LCB5OiB5IH07XG5cdH1cblxuXHRzdGF0aWMgZ2V0UGFnZU9mZnNldChlbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb25zdCBzY3JvbGxPZmZzZXQgPSBVdGlsaXRpZXNTZXJ2aWNlLmdldFNjcm9sbE9mZnNldCgpO1xuXHRcdGNvbnN0IHdpZHRoID0gZWwub2Zmc2V0V2lkdGg7XG5cdFx0Y29uc3QgaGVpZ2h0ID0gZWwub2Zmc2V0SGVpZ2h0O1xuXG5cdFx0aWYgKGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xuXHRcdFx0Y29uc3QgcHJvcHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0XHRcdGNvbnN0IHBvc2l0aW9uID0ge1xuXHRcdFx0XHR0b3A6IHByb3BzLnRvcCArIHNjcm9sbE9mZnNldC55LFxuXHRcdFx0XHRsZWZ0OiBwcm9wcy5sZWZ0ICsgc2Nyb2xsT2Zmc2V0LngsXG5cdFx0XHRcdHJpZ2h0OiBwcm9wcy5sZWZ0ICsgc2Nyb2xsT2Zmc2V0LnggKyB3aWR0aCxcblx0XHRcdFx0Ym90dG9tOiBwcm9wcy50b3AgKyBzY3JvbGxPZmZzZXQueSArIGhlaWdodCxcblx0XHRcdFx0Zm9yUmlnaHQ6IHdpbmRvdy5pbm5lcldpZHRoIC0gcHJvcHMubGVmdCxcblx0XHRcdFx0Zm9yQm90dG9tOiB3aW5kb3cuaW5uZXJIZWlnaHQgLSAocHJvcHMudG9wICsgc2Nyb2xsT2Zmc2V0LnkpXG5cdFx0XHR9O1xuXG5cdFx0XHRyZXR1cm4gcG9zaXRpb247XG5cdFx0fVxuXHR9XG5cblx0Y3JlYXRlQXJyYXkoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBudW1iZXJbXSB7XG5cdFx0cmV0dXJuIG5ldyBBcnJheShlbmQgLSBzdGFydCArIDEpLmZpbGwoMSkubWFwKChfLCBpZHgpID0+IHN0YXJ0ICsgaWR4KTtcblx0fVxufVxuIl19