UNPKG

ng-ytl-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

60 lines (50 loc) 1.8 kB
import { Injectable } from '@angular/core'; @Injectable() export class NzSliderService { pauseEvent(e: Event): void { e.stopPropagation(); e.preventDefault(); } getPrecision(num: number): number { const numStr = num.toString(); const dotIndex = numStr.indexOf('.'); return dotIndex >= 0 ? numStr.length - dotIndex - 1 : 0; } cloneArray<T>(arr: T[]): T[] { return arr.slice(); } isNotTouchEvent(e: TouchEvent): boolean { return !e.touches || e.touches.length > 1 || (e.type.toLowerCase() === 'touchend' && e.touches.length > 0); } // convert value to offset in percent valueToOffset(min: number, max: number, value: number): number { return (value - min) / (max - min) * 100; } correctNumLimit(num: number, min: number, max: number): number { let res = +num; if (isNaN(res)) { return min; } if (num < min) { res = min; } else if (num > max) { res = max; } return res; } /** * get the offset of an element relative to the document (Reference from jquery's offset()) * @param elem HTMLElement ref */ getElementOffset(elem: HTMLElement): { top: number, left: number } { // Return zeros for disconnected and hidden (display: none) elements (gh-2310) // Support: IE <=11 only // Running getBoundingClientRect on a // disconnected node in IE throws an error if (!elem.getClientRects().length) { return { top: 0, left: 0 }; } // Get document-relative position by adding viewport scroll to viewport-relative gBCR const rect = elem.getBoundingClientRect(); const win = elem.ownerDocument.defaultView; return { top: rect.top + win.pageYOffset, left: rect.left + win.pageXOffset }; } }