UNPKG

ngx-sp-infra

Version:
149 lines (148 loc) 8.64 kB
import { AfterContentInit, AfterViewInit, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; import { AbstractControl, FormControl } from '@angular/forms'; import { RecordCombobox } from '../../models/combobox/record-combobox'; import * as i0 from "@angular/core"; /** * @component LibComboboxComponent * @selector lib-combobox * * @description * O componente LibComboboxComponent é projetado para fornecer aos usuários uma interface para pesquisar e selecionar itens de uma lista. * Ele suporta a filtragem de itens com base na entrada do usuário, permitindo uma seleção mais fácil em listas extensas. * * ## Funcionalidades: * - Pesquisa e filtragem de itens na lista do combobox. * - Seleção de itens com feedback visual. * - Emissão de eventos personalizados para interações do usuário, como recarregar a lista ou selecionar um item. * - Ajuste dinâmico da largura do dropdown para corresponder ao input principal. * - Inicialização de um valor selecionado, se fornecido. * * ## Inputs: * - `control` (FormControl | AbstractControl): Control para seleção dos valores, atualizará automaticamente o control do componente pai também * - `comboboxList` (RecordCombobox[]): Lista de registros que serão exibidos no combo, enquanto eles estiverem carregando será exibido um spinner * - `labelText` (string): Texto do rótulo que será exibido acima do combo. Caso não informado nada será exibido * - `disabled` (boolean): Define se o campo está desabilitado. Deve ser usado para validações de habilitação dinâmica do campo * - `libRequired` (boolean): Define se o campo é obrigatório, vai exibir o '*' vermelho ao lado do label (se ele estiver presente) * - `mainInputPlaceholder` (string): Placeholder do campo principal do combo * - `searchInputPlaceholder` (string): Placeholder do campo de pesquisa dentro do combo * - `colorTheme` ("primary" | "secondary" | "success" | "danger" | "warning" | "info" | "light" | "dark"): Define o tema de cor do componente, como "primary", "success", ou "danger" * - `returnRecord` (boolean): Define se o tipo de retorno ao selecionar uma opção será o Record inteiro ou apenas o ID * * ## Outputs: * - `onReloadList` (EventEmitter<string>): Evento emitido quando a lista precisa ser recarregada. */ export declare class LibComboboxComponent implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, OnChanges { protected textoPesquisa: string; protected get ariaExpanded(): boolean; protected set ariaExpanded(value: boolean); protected innerControl: FormControl; protected invalidControl: boolean; protected isRequired: boolean; protected invalid: boolean; protected dirty: boolean; protected touched: boolean; protected comboboxID: string; protected labelID: string; private _labelText; private _disabled?; private _ariaExpanded; private _subscription; private _outerControl; /** (obrigatório) Control para seleção dos valores, atualizará automaticamente o control do componente pai também * @alias 'control' * @type {FormControl<any> | AbstractControl<any>} */ get control(): FormControl<unknown>; set control(value: FormControl<unknown> | AbstractControl<unknown>); /** (obrigatório) Lista de registros que serão exibidos no combo, enquanto eles estiverem carregando será exibido um spinner * @alias 'list' * @type {RecordCombobox[]} */ list?: RecordCombobox[]; /** (opcional) Texto do rótulo que será exibido acima do combo. Caso não informado nada será exibido * @type {string | null | undefined} */ get labelText(): string | null | undefined; set labelText(value: string | null | undefined); /** (opcional) Texto ou caractere separador entre a informação de ID e LABEL * @example " - " * @type {string} */ separator?: string; /** (opcional) Define se o campo é obrigatório, vai exibir o '*' vermelho ao lado do label (se ele estiver presente) * @type {boolean} */ libRequired?: boolean; /** (opcional) Define se o campo está desabilitado. Deve ser usado para validações de habilitação dinâmica do campo * @type {boolean} * @default false */ get disabled(): boolean; set disabled(value: boolean | undefined); /** (opcional) Placeholder do campo principal do combo * @alias 'mainPlaceholder' * @type {string} * @default "Selecione uma opção..." */ mainPlaceholder?: string; /** (opcional) Placeholder do campo de pesquisa dentro do combo * @alias 'searchPlaceholder' * @type {string} * @default "Pesquisa..." */ searchPlaceholder?: string; /** (opcional) Define o tema de cor do componente, como "primary", "success", ou "danger" * @alias 'theme' * @type {string} * @default "primary" */ theme?: string; /** (opcional) Define se o tipo de retorno ao selecionar uma opção será o Record inteiro ou apenas o ID. * @type {boolean} * @default false */ returnRecord?: boolean; /** (opcional) Define se o código extra chamado 'AdditionalStringProperty1' será exibido em negrito ou não. * @type { boolean } * @default true */ additionalStringBold?: boolean; /** (opcional) Define se a mensagem de erro do input deve ser exibida ou escondida em caso de erro de valor no input. * @type { boolean } * @default true */ showErrorMessage?: boolean; /** Evento emitido ao recarregar a lista de registros * @example Ao ser emitido, o componente pai pode refazer o GET da lista, por exemplo. * @emits EventEmitter<string> que leva o valor string da pesquisa feita para ser enviada para o GET * @type {EventEmitter<string>} */ reloadListChange: EventEmitter<string>; /** Evento emitido ao selecionar um registro da lista do combobox * @example Ao ser emitido, o componente pai pode realizar uma validação com o valor selecionado. * @emits EventEmitter<string|number|null> que leva o valor string da pesquisa feita para ser enviada para o GET * @type {EventEmitter<string | number | null>} */ changeValue: EventEmitter<RecordCombobox | string | number | null>; /** Evento emitido ao mudar o valor do campo de pesquisa * @example Ao ser emitido, o componente pai pode realizar uma validação ou nova query com o valor selecionado. * @emits EventEmitter<string> que leva o valor string da pesquisa feita para ser enviada para o GET * @type {EventEmitter<string>} */ changePesquisa: EventEmitter<string>; btnLeft?: any; btnRight?: any; private _mainInput; private _searchInput?; private _dropdownMenu; showSearchInput: boolean; /** Foca no input de pesquisa interna, levando em consideração se ele está escondido ou não. */ focusSearchInput(): void; constructor(); ngOnInit(): void; ngAfterViewInit(): void; ngAfterContentInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; setValue(item: RecordCombobox): void; clearValue(): void; private updateSelectedValue; private changeSeparator; private adjustDropdownWidth; /** Serve para aplicar ou remover o Validator.required do controle. * Por padrão ele priorizará a propriedade libRequired para esta validação. */ private setValidator; private setControlStatus; reloadList(): void; static ɵfac: i0.ɵɵFactoryDeclaration<LibComboboxComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<LibComboboxComponent, "lib-combobox", never, { "control": { "alias": "control"; "required": true; }; "list": { "alias": "list"; "required": true; }; "labelText": { "alias": "labelText"; "required": false; }; "separator": { "alias": "separator"; "required": false; }; "libRequired": { "alias": "libRequired"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "mainPlaceholder": { "alias": "mainPlaceholder"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "returnRecord": { "alias": "returnRecord"; "required": false; }; "additionalStringBold": { "alias": "additionalStringBold"; "required": false; }; "showErrorMessage": { "alias": "showErrorMessage"; "required": false; }; }, { "reloadListChange": "reloadListChange"; "changeValue": "changeValue"; "changePesquisa": "changePesquisa"; }, ["btnLeft", "btnRight"], ["lib-icon[iconLeft]", "lib-icon[iconRight]", "[btnLeft]", "[btnRight]"], true, never>; }