Utilitaires pour les types

TypeUtils est un ensemble de fonctions et de classes permettant d’étendre les types de base pour les visuels de Power BI.

Installation

Pour installer le package, exécutez la commande suivante dans le répertoire avec votre visuel personnalisé actuel :

npm install powerbi-visuals-utils-typeutils --save

Cette commande installe le package et ajoute un package à votre fichier package.json en tant que dépendance.

Double

Le module Double fournit des possibilités de manipulation de la précision des nombres.

Il propose les fonctions suivantes :

pow10

Cette fonction retourne une puissance de 10.

function pow10(exp: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.pow10(25);

// returns: 1e+25

log10

Cette fonction retourne un logarithme de base 10 du nombre.

function log10(val: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.log10(25);

// returns: 1

getPrecision

Cette fonction retourne une puissance de 10 représentant la précision du nombre.

function getPrecision(x: number, decimalDigits?: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.getPrecision(562344, 6);

// returns: 0.1

equalWithPrecision

Cette fonction vérifie si un delta entre deux nombres est inférieur à la précision fournie.

function equalWithPrecision(x: number, y: number, precision?: number): boolean;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.equalWithPrecision(1, 1.005, 0.01);

// returns: true

lessWithPrecision

Cette fonction vérifie si la première valeur est inférieure à la deuxième valeur.

function lessWithPrecision(x: number, y: number, precision?: number): boolean;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.lessWithPrecision(0.995, 1, 0.001);

// returns: true

lessOrEqualWithPrecision

Cette fonction vérifie si la première valeur est inférieure ou égale à la deuxième valeur.

function lessOrEqualWithPrecision(x: number, y: number, precision?: number): boolean;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.lessOrEqualWithPrecision(1.005, 1, 0.01);

// returns: true

greaterWithPrecision

Cette fonction vérifie si la première valeur est supérieure à la deuxième valeur.

function greaterWithPrecision(x: number, y: number, precision?: number): boolean;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.greaterWithPrecision(1, 0.995, 0.01);

// returns: false

greaterOrEqualWithPrecision

Cette fonction vérifie si la première valeur est supérieure ou égale à la deuxième valeur.

function greaterOrEqualWithPrecision(x: number, y: number, precision?: number): boolean;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.greaterOrEqualWithPrecision(1, 1.005, 0.01);

// returns: true

floorWithPrecision

Cette fonction arrondit le nombre à l’entier inférieur ou égal avec la précision fournie.

function floorWithPrecision(x: number, precision?: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.floorWithPrecision(5.96, 0.001);

// returns: 5

ceilWithPrecision

Cette fonction ceils le nombre à l’entier supérieur ou égal avec la précision fournie.

function ceilWithPrecision(x: number, precision?: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.ceilWithPrecision(5.06, 0.001);

// returns: 6

floorToPrecision

Cette fonction arrondit le nombre vers le bas à la précision fournie.

function floorToPrecision(x: number, precision?: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.floorToPrecision(5.96, 0.1);

// returns: 5.9

ceilToPrecision

Cette fonction ceils le nombre vers le haut à la précision fournie.

function ceilToPrecision(x: number, precision?: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.ceilToPrecision(-506, 10);

// returns: -500

roundToPrecision

Cette fonction arrondit le nombre à la précision fournie.

function roundToPrecision(x: number, precision?: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.roundToPrecision(596, 10);

// returns: 600

ensureInRange

Cette fonction retourne un nombre compris entre le minimum et le maximum.

function ensureInRange(x: number, min: number, max: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.ensureInRange(-27.2, -10, -5);

// returns: -10

round

Cette fonction arrondit le nombre.

function round(x: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.round(27.45);

// returns: 27

removeDecimalNoise

Cette fonction arrondit le nombre pour éliminer certains espaces décimaux.

function removeDecimalNoise(value: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.removeDecimalNoise(21.493000000000002);

// returns: 21.493

isInteger

Cette fonction vérifie si le nombre est un entier.

function isInteger(value: number): boolean;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.isInteger(21.493000000000002);

// returns: false

toIncrement

Cette fonction incrémente le nombre du nombre fourni et retourne le nombre arrondi.

function toIncrement(value: number, increment: number): number;

Exemple :

import { double } from "powerbi-visuals-utils-typeutils";
// ...

double.toIncrement(0.6383723, 0.05);

// returns: 0.65

Prototype

Le module Prototype offre la possibilité d’hériter des objets.

Il propose les fonctions suivantes :

inherit

Cette fonction retourne un nouvel objet avec l’objet fourni comme son prototype.

function inherit<T>(obj: T, extension?: (inherited: T) => void): T;

Exemple :

import { prototype } from "powerbi-visuals-utils-typeutils";
// ...

let base = { Microsoft: "Power BI" };

prototype.inherit(base);

/* returns: {
    __proto__: {
        Microsoft: "Power BI"
    }
}*/

inheritSingle

Cette fonction retourne un nouvel objet avec l’objet fourni comme son prototype si et seulement si le prototype n’a pas été défini.

function inheritSingle<T>(obj: T): T;

Exemple :

import { prototype } from "powerbi-visuals-utils-typeutils";
// ...

let base = { Microsoft: "Power BI" };

prototype.inheritSingle(base);

/* returns: {
    __proto__: {
        Microsoft: "Power BI"
    }
}*/

PixelConverter

Le module PixelConverter offre la possibilité de convertir des pixels en points et des points en pixels.

Il propose les fonctions suivantes :

toString

Cette fonction convertit la valeur de pixel en chaîne.

function toString(px: number): string;

Exemple :

import { pixelConverter } from "powerbi-visuals-utils-typeutils";
// ...

pixelConverter.toString(25);

// returns: 25px

fromPoint

Cette fonction convertit la valeur de point fournie en valeur de pixel et retourne l’interprétation en chaîne.

function fromPoint(pt: number): string;

Exemple :

import { pixelConverter } from "powerbi-visuals-utils-typeutils";
// ...

pixelConverter.fromPoint(8);

// returns: 33.33333333333333px

fromPointToPixel

Cette fonction convertit la valeur de point fournie en valeur de pixel.

function fromPointToPixel(pt: number): number;

Exemple :

import { pixelConverter } from "powerbi-visuals-utils-typeutils";
// ...

pixelConverter.fromPointToPixel(8);

// returns: 10.666666666666666

toPoint

Cette fonction convertit la valeur de pixel fournie en valeur de point.

function toPoint(px: number): number;

Exemple :

import { pixelConverter } from "powerbi-visuals-utils-typeutils";
// ...

pixelConverter.toPoint(8);

// returns: 6