import DataUnit from "../dataunit/DataUnit.js"; export interface IElementIDInfo { id?: string; dataUnit?: DataUnit; } /** * `ElementIDUtils`: O ElementIDUtils é um utilitário responsável por criar e adicionar identificadores únicos aos componentes através do atributo data-element-id. * A finalidade dele é otimizar a automação dos testes e melhorar a eficiência na manipulação dos componentes do Design System, garantindo seleções precisas e seguras. */ export declare class ElementIDUtils { static DATA_ELEMENT_ID_ATTRIBUTE_NAME: string; static INTERNAL_INPUT_NAME: string; private static REGEX_DATAUNIT_NAME; /** * Cria e adiciona a propriedade `data-element-id` em um elemento. * * @param element - Elemento HTML a ser modificado (HTMLElement). * @param suffix - Sufixo/Texto para ser adicionado. * @param iDInfo - ID para ser adicionado. * @returns - O data-element-id gerado. */ static addIDInfo(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo): string; static addIDInfoIfNotExists(element: HTMLElement, suffix?: string, iDInfo?: IElementIDInfo): string; static getInternalIDInfo(sufix: string): string; /** * Obtém o `data-element-id` do elemento com adição do sufixo e ID. * * @param element - Elemento HTML a ser modificado (HTMLElement). * @param suffix - Sufixo/Texto para ser adicionado. * @param iDInfo - ID para ser adicionado. * @returns - Atributo `data-element-id` do elemento modificado com sufixo e/ou ID. */ private static getDataElementID; /** * Obtém ID válido para o elemento. * * @param element - Elemento HTML a ser modificado (HTMLElement). * @param iDInfo - ID para ser adicionado. * @returns - ID para ser adicionado ao elemento conforme ordem de prioridade. */ private static getAttributeValid; /** * Adiciona sufixo ao atributo `data-element-id` de um elemento, utilizado para montar a hierarquia dos ids dos componentes em tela. * * @param dataElementID - ID para ser adicionado ao `data-element-id`. * @param suffix - Sufixo/Texto para ser adicionado ao `data-element-id`. * @param element - Elemento HTML a ser modificado (HTMLElement). * @returns - `data-element-id` com sufixo. * * @example * Um ez-combo-box tem data-element-id = codparc_input_embedded_combo. * Dentro desse ez-combo-box existe um ez-text-input. O data-element-id teria como sufixo o id 'codparc_input_embedded_combo' referente ao seu pai. */ private static addSuffix; /** * Adiciona a propriedade name do DataUnit como prefixo do data-element-id do elemento. * * @param iDInfo - ID para ser adicionado ao `data-element-id`. * @param dataElementID - Sufixo/Texto para ser adicionado ao `data-element-id`. * @returns - String contendo informação para ser usada no `data-element-id` do elemento. */ private static addPrefix; /** * Remove caracteres especiais. * * @param value - Texto que terá os caracteres especiais removidos. * @returns - Retorna a string sem caracteres especiais e em camelCase. */ private static formatDescription; private static getDataElementIDAttribute; private static parseDataUnitName; }