@uifabric/utilities
Version:
Fluent UI React utilities for building components.
62 lines (61 loc) • 2.47 kB
TypeScript
import { Point } from './Point';
import { ISize } from './ISize';
/**
* Determines the distance between two points.
*
* @public
*/
export declare function getDistanceBetweenPoints(point1: Point, point2: Point): number;
/**
* The available fit modes. These should match the fit modes for CSS.
*/
export declare type FitMode = 'contain' | 'cover';
/**
* Options for fitting content sizes into bounding sizes.
*/
export interface IFitContentToBoundsOptions {
/**
* The size of the content to fit to the bounds.
* The output will be proportional to this value.
*/
contentSize: ISize;
/**
* The size of the bounds.
*/
boundsSize: ISize;
/**
* The fit mode to apply, either 'contain' or 'cover'.
*/
mode: FitMode;
/**
* An optional maximum scale factor to apply. The default is 1.
* Use Infinity for an unbounded resize.
*/
maxScale?: number;
}
/**
* Produces a proportionally-scaled version of an input content size when fit to a bounding size.
* Given a `contentSize` and a `boundsSize`, this function scales `contentSize` proportionally
* using either `contain` or `cover` fit behaviors.
* Use this function to pre-calculate the layout for the CSS `object-fit` and `background-fit` behaviors.
* With `contain`, the output size must be the largest it can be while completely within the `boundsSize`.
* With `cover`, the output size must be the smallest it can be while completely around the `boundsSize`.
* By default, there is a `maxScale` value of 1, which prevents the `contentSize` from being scaled larger.
*
* @param options - the options for the bounds fit operation
*/
export declare function fitContentToBounds(options: IFitContentToBoundsOptions): ISize;
/**
* Calculates a number's precision based on the number of trailing
* zeros if the number does not have a decimal indicated by a negative
* precision. Otherwise, it calculates the number of digits after
* the decimal point indicated by a positive precision.
* @param value - the value to determine the precision of
*/
export declare function calculatePrecision(value: number | string): number;
/**
* Rounds a number to a certain level of precision. Accepts negative precision.
* @param value - The value that is being rounded.
* @param precision - The number of decimal places to round the number to
*/
export declare function precisionRound(value: number, precision: number, base?: number): number;