import { Observable } from 'rxjs'; import { Destroy } from '../destroy/destroy'; /** * Service to measure the theorical size of a text inside a container */ export declare class DejaTextMetricsService extends Destroy { private canvas; private element$; private computedStyles; private charSize$; /** * Constructor * Add observable to wait for element to be set. And then take its properties to measure all ASCII char size. */ constructor(); /** Setter for base element */ set metricsElem(elem: HTMLElement); /** * Calcule la longeur (en pixels) d'une chaine de caractères * * @param text Le texte à mesurer * @param elem Le conteneur du texte * * @return la largeur du texte donné */ getTextWidth(text: string, elem: HTMLElement): number; /** * Retourne la largeur maximum d'un tableau de strings. * * @param texts les textes à comparer. * @param elem Le conteneur du texte * * @return la width du texte le plus long dans le tableau donné en param. */ getTextMaxWidth(texts: string[], elem: HTMLElement): number; /** * Mesure la heuteur théorique d'un texte contenu dans un conteneur d'une taille donnée. * * @param maxWidth taille du conteneur * @param text texte à mesurer * * @return Hauteur théorique du conteneur. */ getTextHeight(maxWidth: number, text: string): Observable; /** * Calcule le nombre de lignes qu'un texte va prendre en fonction de la largeur de son conteneur. * * @param maxWidth taille du conteneur * @param text texte à mesurer * * @return Nombre de lignes théoriques du conteneur. */ private getNumberOfLines; }