import { PoDensityMode } from '../enums/po-density-mode.enum'; import { ElementRef } from '@angular/core'; import { PoThemeA11yEnum } from '../services/po-theme/enum/po-theme-a11y.enum'; import { PoThemeService } from '../services/po-theme/po-theme.service'; /** * Converte e formata os bytes em formato mais legível para o usuário. * * Por exemplo: * - 31457280 em 30 MB. * - 21474836480 em 20 GB. * - 12.5666666 em 12.57 Bytes (duas casas decimais). * * @param bytes {number} Valor em bytes * @param decimals {number} Quantidade de casas decimais que terá após a conversão. */ export declare function formatBytes(bytes: number, decimals?: number): string; /** * Retorna o idioma atual do navegador */ export declare function getBrowserLanguage(): string; /** * @deprecated use getDefaultSizeFn * * Retorna o tamanho padrão dos componentes conforme o nível de acessibilidade. */ export declare function getDefaultSize(poThemeService: PoThemeService, sizeEnum: T): T[keyof T]; /** * Retorna o tamanho padrão dos componentes conforme o nível de acessibilidade. */ export declare function getDefaultSizeFn(sizeEnum: T): T[keyof T]; /** * Retorna o idioma do navegador, com somente as duas primeiras letras. Por exemplo: "pt" ou "es". * * Caso o valor retornado pelo navegador não estiver dentro dos idiomas suportados pelo PO, * será retornado a linguagem padrão (poLocaleDefault). */ export declare function getShortBrowserLanguage(): string; /** * Retorna o idioma com somente a abreviação do idioma (duas primeiras letras). * Por exemplo: "pt" ou "es". * * @param language {string} linguagem. * * @returns sigla do idioma padrão {string}. * * @default pt */ export declare function getShortLanguage(language: string): string; export declare function isLanguage(value: any): boolean; export declare function reloadCurrentPage(): void; export declare function isValidUrl(url: string, location?: Location): boolean; export declare function convertToBoolean(val: any): boolean; export declare function convertToInt(value: any, valueDefault?: any): number; export declare function isTypeof(object: any, type: any): boolean; /** * * @param fn Função que será executada dentro do contexto. Podendo ser o nome da função * ou a referência da mesma. * * @param context Contexto do qual a função será executada. */ export declare function callFunction(fn: any, context: any, param?: any): void; export declare function convertIsoToDate(value: string, start: boolean, end: boolean): Date; export declare function convertDateToISODate(date: Date): string; export declare function convertDateToISOExtended(date: Date, time?: string): string; /** * Transforma o ano em uma string no formato yyyy e caso o ano seja menor que 1000 preenche com zeros a esquerda. * * @param year Ano */ export declare function formatYear(year: number): string; export declare function isIEOrEdge(): boolean; export declare function isIE(): boolean; export declare function isFirefox(): boolean; export declare function isSafari(): boolean; export declare function isMobile(): RegExpMatchArray; export declare function isEquals(value: any, comparedValue: any): boolean; export declare function isKeyCodeEnter(event: any): boolean; export declare function isKeyCodeSpace(event: any): boolean; /** * Caso o ano original da data seja entre 0 e 100 atribui esse valor ao ano, pois o `new Date` do javascript transforma o ano para 190X. * * @param date Data * @param year Ano original */ export declare function setYearFrom0To100(date: Date, year: number): void; export declare function sortOptionsByProperty(options: Array, property: string): void; /** * Ordena o campos baseado no valor da propriedade `order`. * * Só serão aceitos valores com números inteiros maiores do que zero para a ordenação. * * Campos sem `order` ou com valores negativos, zerados ou inválidos * receberão o valor default e seguirão o posicionamento dentro do * array. * * @param fields campo que se deseja ordenar. * @param defaultOrdering valor que será utilizado para manter na posição do array. */ export declare function sortFields(fields?: any[], defaultOrdering?: number): any[]; export declare function removeDuplicatedOptions(list: Array): void; export declare function removeDuplicatedOptionsWithFieldValue(list: Array, newValue: any): void; export declare function removeUndefinedAndNullOptions(list: Array): void; export declare function removeUndefinedAndNullOptionsWithFieldValue(list: Array, newValue: any): void; export declare function validValue(value: any): boolean; export declare function isExternalLink(url: any): boolean; export declare function openExternalLink(url: any): void; export declare function getFormattedLink(link: string): string; /** * Método responsável por ordenar dois valores. * * @param leftSide Primeiro valor a ser comparado. * @param rightSide Segundo valor a ser comparado. * @param ascending Determina se será em ordem ascendente ou descendente. */ export declare function sortValues(leftSide: string | Date, rightSide: string | Date, ascending?: boolean): number; export declare function validateDateRange(date: Date, dateStart: Date, dateEnd: Date): boolean; export declare function uuid(): string; export declare function capitalizeFirstLetter(text: string): string; /** * Mapeia um novo array apenas com as propriedades definidas pelo desenvolvedor baseado em um array de * origem. * * Exemplo: * * ``` * const people = [ * { id: 1, name: 'Fulano', birthdate: '1980-11-01', genre: 'Male', city: 'São Paulo', dependents: 2 }, * { id: 2, name: 'Beltrano', birthdate: '1997-01-21', genre: 'Female', city: 'Joinville', dependents: 0 }, * { id: 3, name: 'Siclano', birthdate: '1995-07-15', genre: 'Male', city: 'Joinville', dependents: 0 } * ]; * * const properties = ['id', 'name']; * * const idAndName = mapArrayByProperties(people, properties); * * console.log(idAndName); // [{ id: 1, name: 'Fulano' }, { id: 2, name: 'Beltrano' }, { id: 3, name: 'Siclano' }] * ``` * * Um outro uso para o método é "parear" todos os objetos do array com as mesmas propriedades. * * ``` * const customers = [ * { id: 1, name: 'Fulano', city: 'São Paulo', dependents: 2 }, // sem genre * { id: 2, name: 'Beltrano', genre: 'Female', city: 'Joinville' }, // sem dependents * { id: 3, name: 'Siclano', genre: 'Male', city: 'Joinville', dependents: 0 } * ]; * const properties = ['id', 'name', 'city', 'genre', 'dependents']; * * const pattern = mapArrayByProperties(customers, properties); * console.log(pattern); * * // [ * // { id: 1, name: 'Fulano', city: 'São Paulo', genre: undefined, dependents: 2 }, * // { id: 2, name: 'Beltrano', city: 'Joinville', genre: 'Female', dependents: undefined }, * // { id: 3, name: 'Siclano', city: 'Joinville', genre: 'Male', dependents: 0 } * // ] * ``` * * @param items {Array} Array de items original. * @param properties {Array} Array de string com a lista de propriedades que devem ser retornadas. * * @returns Array */ export declare function mapArrayByProperties(items?: Array, properties?: Array): Array; /** * Mapeia um novo objeto apenas com as propriedades definidas pelo desenvolvedor. * * Exemplo: * * ``` * const person = { id: 1, name: 'Fulano', birthdate: '1980-11-01', genre: 'Male', city: 'São Paulo', dependents: 2 }; * * const properties = ['id', 'name']; * * const idAndName = mapObjectByProperties(person, properties); * * console.log(idAndName); // { id: 1, name: 'Fulano' } * ``` * * @param object {Array} Array de items original. * @param properties {Array} Array de string com a lista de propriedades que devem ser retornadas. * * @returns Array */ export declare function mapObjectByProperties(object?: any, properties?: Array): any; /** * Retorna os valores de um objeto dentro de um array. * * > Simula o Object.values(obj), o mesmo deve ser removido assim que a versão typescrit for atualizada. * * @param object Objeto de onde será pego os valores. */ export declare function valuesFromObject(object?: any): Array; /** * Converte um arquivo em base64. * * @param file arquivo que será convertido. */ export declare function convertImageToBase64(file: File): Promise; /** * Valida se a imagem é do tipo base64 valida * */ export declare function isValidImageBase64(value: string): boolean; /** * Converte um número em decimal baseado na quantidade de casas decimais. * * Caso o valor seja inválido, será retornado o valor `undefined`. * Valores inválidos são: `false`, `NaN`, `strings` que não numéricas, `undefined` e `null`. * * @param number valor que será convertido * @param decimalsPlace quantidade de casas decimais */ export declare function convertNumberToDecimal(number: any, decimalsPlace: number): number; /** * Retorna uma copia do objeto sujo, sem as propriedades nulas ou indefinidas. * Retorna o objeto sem as propriedades que contém valores nulos ou indefinidos. * * @param dirtyObject */ export declare function clearObject(dirtyObject: object): any; export declare function validateObjectType(value: any): any; /** * Retorna os elementos DOM capazes de receber foco. * * > Atualmente são considerados "focáveis" os elementos DOM `input`, `select`, * `textarea`, `button` e `a`. * * @param parentElement Elemento DOM pai. * @returns Lista dos elementos DOM filhos "focáveis". */ export declare function getFocusableElements(parentElement: Element): NodeListOf; export declare function replaceFormatSeparator(format: string, separator: string): string; /** * Recebe um array de objetos para ordenação utilizando chave como comparativo e * se a order é crescente(true) ou descrescente(false) * * Exemplo: * * ``` * items: [{country: 'japao'}, {country: 'brasil'} , {country: 'china'}] * key: 'country' * isAscendingOrder: true * Resultado do retorno: * [{country: 'brasil'}, {country: 'china'} , {country: 'japao'}] * ``` * * * @param items : lista de itens. * @param key : propriedade utilizada na comparação. * @param isAscendingOrder : ordenação crescente ou descrescente. */ export declare function sortArrayOfObjects(items: any, key: any, isAscendingOrder: any): any; /** * @deprecated use validateSizeFn * * Valida e retorna um tamanho permitido para os componentes, considerando a acessibilidade. */ export declare function validateSize(value: string, poThemeService: PoThemeService, sizeEnum: T): T[keyof T]; /** * Valida e retorna um tamanho permitido para os componentes, considerando a acessibilidade. */ export declare function validateSizeFn(value: string, sizeEnum: T): T[keyof T]; /** * Retorna a preferência global de tamanho dos componentes. * * @returns `'small'` ou `'medium'`. */ export declare function getA11yDefaultSize(): string; /** * Retorna o nível de acessibilidade configurado no tema. * Se não estiver configurado, retorna `AAA` como padrão. * @returns {PoThemeA11yEnum} O nível de acessibilidade, que pode ser `AA` ou `AAA`. */ export declare function getA11yLevel(): PoThemeA11yEnum; /** * Retorna o modo de adensamento dos componentes agrupadores. * Se não estiver configurado, retorna `medium` como padrão. * @returns {PoDensityMode} O modo de adensamento, que pode ser `small` ou `medium`. */ export declare function getDensityMode(): PoDensityMode; /** * Realiza a tradução das propriedades de ajuda dos componentes. * Type do Helper default é 'help' e size 'medium'. * @returns Objeto {helperSettings} com as propriedades do helper * @returns Propriedade {hideAdditionalHelp} para controle ao esconder o ícone de ajuda adicional depreciado. */ export declare function setHelperSettings(label: string, additionalHelpTooltip: string, poHelperComponent?: any, size?: string, onClick?: any): { hideAdditionalHelp: boolean; helperSettings?: any; }; /** Atualiza o estado do tooltip baseado na propriedade scrollWidth e clientWidth do labelElement. * @param isTooltipActive Indica se o tooltip já está ativo * @param labelElement ElementRef do label que será verificado se está com ellipsis * @returns boolean indicando se o tooltip deve ser ativado ou desativado */ export declare function updateTooltip(isTooltipActive: boolean, labelElement: ElementRef): boolean; /** * Retorna o elemento label que deve ser medido para verificar se está com ellipsis. * @param labelElement ElementRef do label que será verificado se está com ellipsis * @returns O elemento que deve ser medido para verificar se está com ellipsis. */ export declare function getMeasurableEl(labelElement: ElementRef): Element; /** * Retorna a cor do texto baseada no tema atual. * @param type Tipo de cor do texto, pode ser 'lightest' ou 'darkest'. * @returns Valor da cor no formato definido pela propriedade customizada CSS (por exemplo, '#ffffff', 'rgb(255,255,255)'). */ export declare function getTextColor(type: 'lightest' | 'darkest'): string; /** * Retorna a cor do texto baseada na cor de fundo informada. * @param backgroundColor Cor de fundo em formato 'rgb(r,g,b)' ou 'rgba(r,g,b,a)'. * @returns Valor da cor do texto (por exemplo, '#ffffff', 'rgb(255,255,255)') baseado no brilho percebido da cor de fundo usando a fórmula do espaço de cor YIQ. */ export declare function getTextColorFromBackgroundColor(backgroundColor: string): string; /** * Retorna o tamanho do ícone de loading baseado no tamanho do field. * * @param size Tamanho do campo (`small`, `medium` ou outros valores). * @returns Tamanho do ícone de loading correspondente: * - `small` → `xs` * - `medium` → `sm` * - qualquer outro valor → `sm` */ export declare function mapInputSizeToLoadingIcon(size?: string): string; export declare const PoUtils: { capitalizeFirstLetter: typeof capitalizeFirstLetter; convertDateToISODate: typeof convertDateToISODate; convertDateToISOExtended: typeof convertDateToISOExtended; convertImageToBase64: typeof convertImageToBase64; convertToBoolean: typeof convertToBoolean; convertToInt: typeof convertToInt; formatYear: typeof formatYear; getA11yLevel: typeof getA11yLevel; getBrowserLanguage: typeof getBrowserLanguage; getDensityMode: typeof getDensityMode; getShortBrowserLanguage: typeof getShortBrowserLanguage; isExternalLink: typeof isExternalLink; isFirefox: typeof isFirefox; isIE: typeof isIE; isIEOrEdge: typeof isIEOrEdge; isKeyCodeEnter: typeof isKeyCodeEnter; isLanguage: typeof isLanguage; isMobile: typeof isMobile; isTypeof: typeof isTypeof; openExternalLink: typeof openExternalLink; reloadCurrentPage: typeof reloadCurrentPage; removeDuplicatedOptions: typeof removeDuplicatedOptions; removeDuplicatedOptionsWithFieldValue: typeof removeDuplicatedOptionsWithFieldValue; removeUndefinedAndNullOptions: typeof removeUndefinedAndNullOptions; removeUndefinedAndNullOptionsWithFieldValue: typeof removeUndefinedAndNullOptionsWithFieldValue; replaceFormatSeparator: typeof replaceFormatSeparator; setYearFrom0To100: typeof setYearFrom0To100; sortOptionsByProperty: typeof sortOptionsByProperty; sortValues: typeof sortValues; uuid: typeof uuid; validateDateRange: typeof validateDateRange; }; export declare const PO_TABLE_ROW_HEIGHT_BY_SPACING: { extraSmall: number; small: number; medium: number; large: number; };