@dev-tcloud/tcloud-ui 7.0.4 → 7.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/tcloud-ui-multi-input.md +18 -0
- package/docs/tcloud-ui-multiples-values.md +66 -2
- package/fesm2022/dev-tcloud-tcloud-ui.mjs +46 -21
- package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/js/tcloud-ui-app.js +49 -49
- package/package.json +12 -3
- package/types/dev-tcloud-tcloud-ui.d.ts +10 -2
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
- Suporte a estados: `disabled` e `loading`.
|
|
10
10
|
- Largura máxima configurável para labels.
|
|
11
11
|
- Modo `showInput`: oculta o input de entrada, exibindo apenas os itens.
|
|
12
|
+
- Autocomplete nativo do navegador (via `<datalist>`) a partir de `autocompleteitems`.
|
|
12
13
|
- Emite alterações via evento `tcChange`.
|
|
13
14
|
|
|
14
15
|
## Instalação
|
|
@@ -46,6 +47,7 @@ export class ExampleComponent {
|
|
|
46
47
|
| required | string | Se definido, habilita validação de pelo menos um item na lista. | undefined |
|
|
47
48
|
| maxWidthLabel | string | Largura máxima de cada label (ex: '95px', '120px'). | undefined |
|
|
48
49
|
| showInput | boolean | Se true, oculta o input de entrada e exibe apenas os itens existentes. | false |
|
|
50
|
+
| autocompleteitems | string[] | Sugestões de autocomplete nativo (`<datalist>`) exibidas ao digitar no input. | [] |
|
|
49
51
|
| ngModel | { value: any }[] | Array de itens para two-way binding. | undefined |
|
|
50
52
|
|
|
51
53
|
### Outputs
|
|
@@ -134,6 +136,22 @@ export class FormComponent {
|
|
|
134
136
|
</tcloud-ui-multi-input>
|
|
135
137
|
```
|
|
136
138
|
|
|
139
|
+
### Com Autocomplete Nativo (autocompleteitems)
|
|
140
|
+
```ts
|
|
141
|
+
export class ExampleComponent {
|
|
142
|
+
sugestoesTags = ['Angular', 'TypeScript', 'JavaScript', 'HTML', 'CSS'];
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
```html
|
|
147
|
+
<tcloud-ui-multi-input
|
|
148
|
+
[tcList]="items"
|
|
149
|
+
[autocompleteitems]="sugestoesTags"
|
|
150
|
+
[placeholder]="'Digite uma tag'"
|
|
151
|
+
(tcChange)="onItemsChanged($event)">
|
|
152
|
+
</tcloud-ui-multi-input>
|
|
153
|
+
```
|
|
154
|
+
|
|
137
155
|
## Uso Avançado
|
|
138
156
|
### Com ngModel e Formulário Reativo
|
|
139
157
|
```ts
|
|
@@ -8,11 +8,13 @@ O componente `tcloud-ui-multiples-values` permite a entrada e gerenciamento de m
|
|
|
8
8
|
- Suporte a delimitador configurável para inserção de múltiplos valores de uma vez
|
|
9
9
|
- Conversão automática para uppercase ou lowercase
|
|
10
10
|
- Remoção de valores duplicados automaticamente
|
|
11
|
-
- Validação por padrão regex (`pattern`)
|
|
11
|
+
- Validação por padrão regex (`pattern`), testado individualmente em cada valor após o split pelo `delimiter` — se algum valor for inválido, nenhum item é adicionado
|
|
12
|
+
- Preset de validação `type="email"` (regex de e-mail embutido, sem precisar informar `pattern`)
|
|
12
13
|
- Dropdown com lista dos valores adicionados e busca integrada (quando mais de 5 itens)
|
|
13
14
|
- Contador de registros adicionados
|
|
14
15
|
- Botão para limpar toda a lista (quando mais de 5 itens)
|
|
15
16
|
- Controle de largura máxima dos labels com `maxWidthLabel`
|
|
17
|
+
- Autocomplete nativo do navegador (via `<datalist>`) no input simples, a partir de `autocompleteitems`
|
|
16
18
|
- Compatível com `ngModel` e formulários Angular (ControlValueAccessor + NG_VALIDATORS)
|
|
17
19
|
- Posicionamento automático do dropdown (abre para cima quando não há espaço abaixo)
|
|
18
20
|
|
|
@@ -33,7 +35,8 @@ import { TCloudUiMultiplesValuesComponent } from 'tcloud-ui';
|
|
|
33
35
|
| `listItems` | `{ description: string, value: any, disabled?: boolean }[]` | — | Lista de opções predefinidas exibidas em um data list para seleção |
|
|
34
36
|
| `openValuesInChange` | `boolean` | `true` | Abre automaticamente o dropdown dos valores ao adicionar um novo item |
|
|
35
37
|
| `useBtnAdd` | `boolean` | `true` | Exibe o botão de adicionar (`+`) ao lado do input |
|
|
36
|
-
| `pattern` | `RegExp` | — | Expressão regular para validação
|
|
38
|
+
| `pattern` | `RegExp` | — | Expressão regular para validação de cada valor (após o split pelo `delimiter`) antes de adicioná-lo à lista. Se informado, tem prioridade sobre o preset de `type` |
|
|
39
|
+
| `type` | `'text' \| 'email'` | `'text'`| Preset de validação. `'email'` ativa um regex de e-mail interno quando `pattern` não é informado |
|
|
37
40
|
| `delimiter` | `string` | `','` | Caractere delimitador para dividir a entrada em múltiplos valores de uma vez |
|
|
38
41
|
| `placeholder` | `string` | — | Texto placeholder exibido no input |
|
|
39
42
|
| `disabled` | `boolean` | `false` | Desabilita o input e os botões de ação |
|
|
@@ -43,6 +46,7 @@ import { TCloudUiMultiplesValuesComponent } from 'tcloud-ui';
|
|
|
43
46
|
| `uppercase` | `boolean` | `false` | Converte automaticamente os valores inseridos para letras maiúsculas |
|
|
44
47
|
| `lowercase` | `boolean` | `false` | Converte automaticamente os valores inseridos para letras minúsculas |
|
|
45
48
|
| `maxWidthLabel` | `string` | — | Define a largura máxima dos labels na lista de valores (ex: `'50px'`, `'100px'`) |
|
|
49
|
+
| `autocompleteitems` | `string[]` | `[]` | Sugestões de autocomplete nativo (`<datalist>`) exibidas ao digitar no input simples (quando `listItems` não está definido) |
|
|
46
50
|
|
|
47
51
|
### Outputs
|
|
48
52
|
|
|
@@ -80,6 +84,66 @@ export class ExemploBasicoComponent {
|
|
|
80
84
|
}
|
|
81
85
|
```
|
|
82
86
|
|
|
87
|
+
### Autocomplete nativo — Sugestões via `autocompleteitems`
|
|
88
|
+
|
|
89
|
+
```html
|
|
90
|
+
<tcloud-ui-multiples-values
|
|
91
|
+
[(ngModel)]="tags"
|
|
92
|
+
[autocompleteitems]="sugestoesTags"
|
|
93
|
+
placeholder="Digite uma tag"
|
|
94
|
+
(tcChange)="onTagsChange($event)">
|
|
95
|
+
</tcloud-ui-multiples-values>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
import { TCloudUiMultiplesValuesComponent } from 'tcloud-ui';
|
|
100
|
+
|
|
101
|
+
@Component({
|
|
102
|
+
standalone: true,
|
|
103
|
+
imports: [TCloudUiMultiplesValuesComponent],
|
|
104
|
+
template: `...`
|
|
105
|
+
})
|
|
106
|
+
export class ExemploAutocompleteComponent {
|
|
107
|
+
tags: string[] = [];
|
|
108
|
+
sugestoesTags = ['Angular', 'TypeScript', 'JavaScript', 'HTML', 'CSS'];
|
|
109
|
+
|
|
110
|
+
onTagsChange(itens: string[]) {
|
|
111
|
+
console.log('Tags atualizadas:', itens);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Lista de e-mails — Com `type="email"`
|
|
117
|
+
|
|
118
|
+
```html
|
|
119
|
+
<tcloud-ui-multiples-values
|
|
120
|
+
[(ngModel)]="emails"
|
|
121
|
+
type="email"
|
|
122
|
+
delimiter=","
|
|
123
|
+
placeholder="Digite um ou mais e-mails separados por vírgula"
|
|
124
|
+
(tcChange)="onEmailsChange($event)">
|
|
125
|
+
</tcloud-ui-multiples-values>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
import { TCloudUiMultiplesValuesComponent } from 'tcloud-ui';
|
|
130
|
+
|
|
131
|
+
@Component({
|
|
132
|
+
standalone: true,
|
|
133
|
+
imports: [TCloudUiMultiplesValuesComponent],
|
|
134
|
+
template: `...`
|
|
135
|
+
})
|
|
136
|
+
export class ExemploEmailComponent {
|
|
137
|
+
emails: string[] = [];
|
|
138
|
+
|
|
139
|
+
onEmailsChange(itens: string[]) {
|
|
140
|
+
console.log('E-mails atualizados:', itens);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Cada valor digitado é validado individualmente pelo regex de e-mail embutido após o split pelo `delimiter`. Se algum valor não for um e-mail válido, nenhum item é adicionado e o input recebe a classe de erro (`tc-input-error`, borda vermelha) até a correção. Para um regex customizado, use `pattern` — quando informado, `pattern` tem prioridade sobre `type`.
|
|
146
|
+
|
|
83
147
|
### Avançado — Com lista predefinida, uppercase e validação por pattern
|
|
84
148
|
|
|
85
149
|
```html
|