@seniorsistemas/angular-components-mcp 1.0.0-beta.4 → 1.0.0
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/dist/data/component-rules/confirm-dialog.md +86 -0
- package/dist/data/component-rules/index.json +1 -1
- package/dist/data/component-rules/radio-button.md +0 -0
- package/dist/data/components-metadata.json +2626 -1691
- package/dist/data/dynamic-form-metadata.json +448 -439
- package/package.json +1 -1
|
@@ -1,79 +1,79 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-03-
|
|
2
|
+
"generatedAt": "2026-03-17T13:59:30.989Z",
|
|
3
3
|
"description": "Auto-generated from TypeScript source. Do not edit manually — run generate:dynamic-form-metadata.",
|
|
4
4
|
"baseTypes": {
|
|
5
5
|
"FieldConfig": {
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Configuração base compartilhada por **todos** os tipos de campo do DynamicForm.\n\nToda interface específica de campo (ex: TextFieldConfig, SelectFieldConfig) estende esta interface.\nAs propriedades aqui definidas estão disponíveis em qualquer campo do formulário.",
|
|
7
7
|
"properties": {
|
|
8
8
|
"type": {
|
|
9
9
|
"type": "FieldType",
|
|
10
10
|
"required": true,
|
|
11
|
-
"description":
|
|
11
|
+
"description": "Tipo do campo. Deve ser um dos valores registrados em `FieldTypeMap`.\nExemplos: `'string'`, `'enum'`, `'date'`, `'lookup'`, `'boolean'`, etc.\nPara tipos opcionais (ex: `'editor'`), o provider correspondente deve ser registrado no `AppConfig` ou `AppModule`."
|
|
12
12
|
},
|
|
13
13
|
"required": {
|
|
14
14
|
"type": "() => boolean",
|
|
15
15
|
"required": false,
|
|
16
|
-
"description":
|
|
16
|
+
"description": "Função que retorna se o campo é obrigatório dinamicamente.\nUse uma função para que a obrigatoriedade possa mudar em resposta ao estado do formulário."
|
|
17
17
|
},
|
|
18
18
|
"id": {
|
|
19
19
|
"type": "string",
|
|
20
20
|
"required": false,
|
|
21
|
-
"description":
|
|
21
|
+
"description": "ID HTML do elemento de input gerado. Útil para testes automatizados e acessibilidade."
|
|
22
22
|
},
|
|
23
23
|
"name": {
|
|
24
24
|
"type": "string",
|
|
25
25
|
"required": true,
|
|
26
|
-
"description":
|
|
26
|
+
"description": "Nome do campo no modelo de dados. Deve corresponder à chave da propriedade no objeto de dados do formulário."
|
|
27
27
|
},
|
|
28
28
|
"label": {
|
|
29
29
|
"type": "string",
|
|
30
30
|
"required": false,
|
|
31
|
-
"description":
|
|
31
|
+
"description": "Rótulo exibido acima ou ao lado do campo no formulário.\nSe omitido, o campo é exibido sem label."
|
|
32
32
|
},
|
|
33
33
|
"infoSign": {
|
|
34
34
|
"type": "string",
|
|
35
35
|
"required": false,
|
|
36
|
-
"description":
|
|
36
|
+
"description": "Ícone de informação exibido ao lado do campo. Aceita classes de ícone (ex: `'ph ph-info'`)."
|
|
37
37
|
},
|
|
38
38
|
"tooltip": {
|
|
39
39
|
"type": "string",
|
|
40
40
|
"required": false,
|
|
41
|
-
"description":
|
|
41
|
+
"description": "Texto do tooltip exibido ao passar o mouse sobre o campo ou sobre o infoSign."
|
|
42
42
|
},
|
|
43
43
|
"placeholder": {
|
|
44
44
|
"type": "string",
|
|
45
45
|
"required": false,
|
|
46
|
-
"description":
|
|
46
|
+
"description": "Texto de placeholder exibido enquanto o campo estiver vazio."
|
|
47
47
|
},
|
|
48
48
|
"displayTimeInfoSign": {
|
|
49
49
|
"type": "number",
|
|
50
50
|
"required": false,
|
|
51
|
-
"description":
|
|
51
|
+
"description": "Tempo em milissegundos para exibir automaticamente o infoSign quando o campo está focado.\nÚtil para orientar o usuário após um curto intervalo de inatividade."
|
|
52
52
|
},
|
|
53
53
|
"useInfoSignFocusedInputRef": {
|
|
54
54
|
"type": "boolean",
|
|
55
55
|
"required": false,
|
|
56
|
-
"description":
|
|
56
|
+
"description": "Quando `true`, o infoSign usa a referência do input focado como âncora do tooltip.\nÚtil para garantir que o tooltip apareça próximo ao campo correto em layouts complexos."
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
"StructureConfig": {
|
|
61
|
-
"description": "
|
|
61
|
+
"description": "Configuração base compartilhada por **todos** os tipos de estrutura do DynamicForm.\n\nEstruturas são contêineres que agrupam campos e outras estruturas.\nOs tipos disponíveis são: `'section'`, `'row'`, `'fieldset'`.",
|
|
62
62
|
"properties": {
|
|
63
63
|
"type": {
|
|
64
64
|
"type": "StructureType",
|
|
65
65
|
"required": true,
|
|
66
|
-
"description":
|
|
66
|
+
"description": "Tipo da estrutura. Deve ser um dos valores registrados em `StructureTypeMap`.\nValores disponíveis: `'section'`, `'row'`, `'fieldset'`."
|
|
67
67
|
},
|
|
68
68
|
"configs": {
|
|
69
69
|
"type": "(DynamicType | DynamicStructure)[]",
|
|
70
70
|
"required": true,
|
|
71
|
-
"description":
|
|
71
|
+
"description": "Lista de campos e sub-estruturas contidas nesta estrutura.\nCada item pode ser um `DynamicType` (campo) ou `DynamicStructure` (estrutura aninhada)."
|
|
72
72
|
},
|
|
73
73
|
"header": {
|
|
74
74
|
"type": "string",
|
|
75
75
|
"required": false,
|
|
76
|
-
"description":
|
|
76
|
+
"description": "Título opcional exibido no cabeçalho da estrutura.\nUsado, por exemplo, como título de seções ou fieldsets."
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -82,1201 +82,1204 @@
|
|
|
82
82
|
"autocomplete": {
|
|
83
83
|
"interface": "AutocompleteFieldConfig",
|
|
84
84
|
"sourceFile": "autocomplete-field.ts",
|
|
85
|
-
"description":
|
|
85
|
+
"description": "Configuração para campo de autocompletar.\n\nExibe um input de texto que sugere opções enquanto o usuário digita, buscando os dados\nvia Observable. Suporta seleção simples ou múltipla e personalização do campo exibido.",
|
|
86
86
|
"ownProperties": {
|
|
87
87
|
"type": {
|
|
88
88
|
"type": "'autocomplete'",
|
|
89
89
|
"required": true,
|
|
90
|
-
"description":
|
|
90
|
+
"description": "Tipo do campo: sempre `'autocomplete'`."
|
|
91
91
|
},
|
|
92
92
|
"dataKey": {
|
|
93
93
|
"type": "string",
|
|
94
94
|
"required": false,
|
|
95
|
-
"description":
|
|
95
|
+
"description": "Chave única de cada item da lista de sugestões. Usada para identificar o objeto selecionado."
|
|
96
96
|
},
|
|
97
97
|
"displayField": {
|
|
98
98
|
"type": "string",
|
|
99
99
|
"required": false,
|
|
100
|
-
"description":
|
|
100
|
+
"description": "Nome da propriedade do objeto de sugestão que será exibida como texto na lista e no input."
|
|
101
101
|
},
|
|
102
102
|
"multiple": {
|
|
103
103
|
"type": "boolean",
|
|
104
104
|
"required": false,
|
|
105
|
-
"description":
|
|
105
|
+
"description": "Quando `true`, permite seleção de múltiplos itens exibidos como tags/chips."
|
|
106
106
|
},
|
|
107
107
|
"appendTo": {
|
|
108
108
|
"type": "string",
|
|
109
109
|
"required": false,
|
|
110
|
-
"description":
|
|
110
|
+
"description": "Elemento DOM ao qual o painel de sugestões será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
|
|
111
111
|
},
|
|
112
112
|
"emptyMessage": {
|
|
113
113
|
"type": "string",
|
|
114
114
|
"required": false,
|
|
115
|
-
"description":
|
|
115
|
+
"description": "Mensagem exibida quando nenhuma sugestão é encontrada para o texto digitado."
|
|
116
116
|
},
|
|
117
117
|
"suggestionsObservable": {
|
|
118
118
|
"type": "Observable<any>",
|
|
119
119
|
"required": false,
|
|
120
|
-
"description":
|
|
120
|
+
"description": "Observable que emite a lista de sugestões em resposta à digitação do usuário.\nDeve emitir um array de objetos com pelo menos a propriedade `displayField`."
|
|
121
121
|
},
|
|
122
122
|
"onSelect": {
|
|
123
123
|
"type": "(event: any) => void",
|
|
124
124
|
"required": false,
|
|
125
|
-
"description":
|
|
125
|
+
"description": "Callback chamado quando o usuário seleciona um item da lista de sugestões."
|
|
126
126
|
},
|
|
127
127
|
"onUnselect": {
|
|
128
128
|
"type": "(event: any) => void",
|
|
129
129
|
"required": false,
|
|
130
|
-
"description":
|
|
130
|
+
"description": "Callback chamado quando o usuário remove um item selecionado (modo múltiplo)."
|
|
131
131
|
},
|
|
132
132
|
"onClear": {
|
|
133
133
|
"type": "(event: any) => void",
|
|
134
134
|
"required": false,
|
|
135
|
-
"description":
|
|
135
|
+
"description": "Callback chamado quando o usuário limpa o campo."
|
|
136
136
|
},
|
|
137
137
|
"onSearch": {
|
|
138
138
|
"type": "(value: string) => void",
|
|
139
139
|
"required": false,
|
|
140
|
-
"description":
|
|
140
|
+
"description": "Callback chamado a cada alteração no texto digitado. Use para disparar a busca de sugestões."
|
|
141
141
|
},
|
|
142
142
|
"onBlur": {
|
|
143
143
|
"type": "(event: FocusEvent) => void",
|
|
144
144
|
"required": false,
|
|
145
|
-
"description":
|
|
145
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
},
|
|
149
149
|
"number": {
|
|
150
150
|
"interface": "BignumberFieldConfig",
|
|
151
151
|
"sourceFile": "bignumber-field.ts",
|
|
152
|
-
"description":
|
|
152
|
+
"description": "Configuração para campos numéricos de grande precisão.\n\nUse `type: 'number'` para números inteiros ou decimais genéricos.\nUse `type: 'double'` para números com casas decimais explícitas.\n\nSuporta controle de precisão, escala, máscaras, addons laterais e formatação regional.\nPreferível em relação ao `NumberFieldConfig` (deprecated).",
|
|
153
153
|
"ownProperties": {
|
|
154
154
|
"type": {
|
|
155
155
|
"type": "'number' | 'double'",
|
|
156
156
|
"required": true,
|
|
157
|
-
"description":
|
|
157
|
+
"description": "`'number'` — campo numérico genérico (inteiro ou decimal).\n`'double'` — campo numérico com casas decimais."
|
|
158
158
|
},
|
|
159
159
|
"allowNegative": {
|
|
160
160
|
"type": "boolean",
|
|
161
161
|
"required": false,
|
|
162
|
-
"description":
|
|
162
|
+
"description": "Permite a entrada de valores negativos."
|
|
163
163
|
},
|
|
164
164
|
"numberLocaleOptions": {
|
|
165
165
|
"type": "NumberLocaleOptions",
|
|
166
166
|
"required": false,
|
|
167
|
-
"description":
|
|
167
|
+
"description": "Opções de localização para formatação do número (separador decimal, separador de milhar).\nSe omitido, usa o locale padrão da aplicação."
|
|
168
168
|
},
|
|
169
169
|
"browserAutocomplete": {
|
|
170
170
|
"type": "boolean",
|
|
171
171
|
"required": false,
|
|
172
|
-
"description":
|
|
172
|
+
"description": "Controla o autocomplete nativo do browser."
|
|
173
173
|
},
|
|
174
174
|
"precision": {
|
|
175
175
|
"type": "Function | number",
|
|
176
176
|
"required": false,
|
|
177
|
-
"description":
|
|
177
|
+
"description": "Número total de dígitos (inteiros + decimais). Pode ser uma função para controle dinâmico."
|
|
178
178
|
},
|
|
179
179
|
"scale": {
|
|
180
180
|
"type": "Function | number",
|
|
181
181
|
"required": false,
|
|
182
|
-
"description":
|
|
182
|
+
"description": "Número de casas decimais permitidas. Pode ser uma função para controle dinâmico."
|
|
183
183
|
},
|
|
184
184
|
"mask": {
|
|
185
185
|
"type": "stringFn | string",
|
|
186
186
|
"required": false,
|
|
187
|
-
"description":
|
|
187
|
+
"description": "Máscara de entrada. Pode ser uma string fixa ou função que retorna a máscara."
|
|
188
188
|
},
|
|
189
189
|
"leftAddon": {
|
|
190
190
|
"type": "AddonConfig",
|
|
191
191
|
"required": false,
|
|
192
|
-
"description":
|
|
192
|
+
"description": "Addon exibido à esquerda do campo (ex: símbolo de moeda, unidade de medida)."
|
|
193
193
|
},
|
|
194
194
|
"rightAddon": {
|
|
195
195
|
"type": "AddonConfig",
|
|
196
196
|
"required": false,
|
|
197
|
-
"description":
|
|
197
|
+
"description": "Addon exibido à direita do campo (ex: unidade de medida, botão)."
|
|
198
198
|
},
|
|
199
199
|
"onBlur": {
|
|
200
200
|
"type": "(event: Event) => void",
|
|
201
201
|
"required": false,
|
|
202
|
-
"description":
|
|
202
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
203
203
|
},
|
|
204
204
|
"onFocus": {
|
|
205
205
|
"type": "(event: FocusEvent) => void",
|
|
206
206
|
"required": false,
|
|
207
|
-
"description":
|
|
207
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
208
208
|
},
|
|
209
209
|
"onComplete": {
|
|
210
210
|
"type": "(event: FocusEvent) => void",
|
|
211
211
|
"required": false,
|
|
212
|
-
"description":
|
|
212
|
+
"description": "Callback chamado quando a máscara é completamente preenchida."
|
|
213
213
|
},
|
|
214
214
|
"onInput": {
|
|
215
215
|
"type": "(event: FocusEvent) => void",
|
|
216
216
|
"required": false,
|
|
217
|
-
"description":
|
|
217
|
+
"description": "Callback chamado a cada alteração no valor do input."
|
|
218
218
|
},
|
|
219
219
|
"autoClear": {
|
|
220
220
|
"type": "boolean",
|
|
221
221
|
"required": false,
|
|
222
|
-
"description":
|
|
222
|
+
"description": "Quando `true`, limpa o valor do campo automaticamente ao perder o foco se o valor for inválido."
|
|
223
223
|
},
|
|
224
224
|
"alignTo": {
|
|
225
225
|
"type": "'left' | 'right'",
|
|
226
226
|
"required": false,
|
|
227
|
-
"description":
|
|
227
|
+
"description": "Alinhamento do texto dentro do campo.\n`'left'` — alinhado à esquerda (padrão).\n`'right'` — alinhado à direita (comum em campos monetários)."
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
},
|
|
231
231
|
"double": {
|
|
232
232
|
"interface": "BignumberFieldConfig",
|
|
233
233
|
"sourceFile": "bignumber-field.ts",
|
|
234
|
-
"description":
|
|
234
|
+
"description": "Configuração para campos numéricos de grande precisão.\n\nUse `type: 'number'` para números inteiros ou decimais genéricos.\nUse `type: 'double'` para números com casas decimais explícitas.\n\nSuporta controle de precisão, escala, máscaras, addons laterais e formatação regional.\nPreferível em relação ao `NumberFieldConfig` (deprecated).",
|
|
235
235
|
"ownProperties": {
|
|
236
236
|
"type": {
|
|
237
237
|
"type": "'number' | 'double'",
|
|
238
238
|
"required": true,
|
|
239
|
-
"description":
|
|
239
|
+
"description": "`'number'` — campo numérico genérico (inteiro ou decimal).\n`'double'` — campo numérico com casas decimais."
|
|
240
240
|
},
|
|
241
241
|
"allowNegative": {
|
|
242
242
|
"type": "boolean",
|
|
243
243
|
"required": false,
|
|
244
|
-
"description":
|
|
244
|
+
"description": "Permite a entrada de valores negativos."
|
|
245
245
|
},
|
|
246
246
|
"numberLocaleOptions": {
|
|
247
247
|
"type": "NumberLocaleOptions",
|
|
248
248
|
"required": false,
|
|
249
|
-
"description":
|
|
249
|
+
"description": "Opções de localização para formatação do número (separador decimal, separador de milhar).\nSe omitido, usa o locale padrão da aplicação."
|
|
250
250
|
},
|
|
251
251
|
"browserAutocomplete": {
|
|
252
252
|
"type": "boolean",
|
|
253
253
|
"required": false,
|
|
254
|
-
"description":
|
|
254
|
+
"description": "Controla o autocomplete nativo do browser."
|
|
255
255
|
},
|
|
256
256
|
"precision": {
|
|
257
257
|
"type": "Function | number",
|
|
258
258
|
"required": false,
|
|
259
|
-
"description":
|
|
259
|
+
"description": "Número total de dígitos (inteiros + decimais). Pode ser uma função para controle dinâmico."
|
|
260
260
|
},
|
|
261
261
|
"scale": {
|
|
262
262
|
"type": "Function | number",
|
|
263
263
|
"required": false,
|
|
264
|
-
"description":
|
|
264
|
+
"description": "Número de casas decimais permitidas. Pode ser uma função para controle dinâmico."
|
|
265
265
|
},
|
|
266
266
|
"mask": {
|
|
267
267
|
"type": "stringFn | string",
|
|
268
268
|
"required": false,
|
|
269
|
-
"description":
|
|
269
|
+
"description": "Máscara de entrada. Pode ser uma string fixa ou função que retorna a máscara."
|
|
270
270
|
},
|
|
271
271
|
"leftAddon": {
|
|
272
272
|
"type": "AddonConfig",
|
|
273
273
|
"required": false,
|
|
274
|
-
"description":
|
|
274
|
+
"description": "Addon exibido à esquerda do campo (ex: símbolo de moeda, unidade de medida)."
|
|
275
275
|
},
|
|
276
276
|
"rightAddon": {
|
|
277
277
|
"type": "AddonConfig",
|
|
278
278
|
"required": false,
|
|
279
|
-
"description":
|
|
279
|
+
"description": "Addon exibido à direita do campo (ex: unidade de medida, botão)."
|
|
280
280
|
},
|
|
281
281
|
"onBlur": {
|
|
282
282
|
"type": "(event: Event) => void",
|
|
283
283
|
"required": false,
|
|
284
|
-
"description":
|
|
284
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
285
285
|
},
|
|
286
286
|
"onFocus": {
|
|
287
287
|
"type": "(event: FocusEvent) => void",
|
|
288
288
|
"required": false,
|
|
289
|
-
"description":
|
|
289
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
290
290
|
},
|
|
291
291
|
"onComplete": {
|
|
292
292
|
"type": "(event: FocusEvent) => void",
|
|
293
293
|
"required": false,
|
|
294
|
-
"description":
|
|
294
|
+
"description": "Callback chamado quando a máscara é completamente preenchida."
|
|
295
295
|
},
|
|
296
296
|
"onInput": {
|
|
297
297
|
"type": "(event: FocusEvent) => void",
|
|
298
298
|
"required": false,
|
|
299
|
-
"description":
|
|
299
|
+
"description": "Callback chamado a cada alteração no valor do input."
|
|
300
300
|
},
|
|
301
301
|
"autoClear": {
|
|
302
302
|
"type": "boolean",
|
|
303
303
|
"required": false,
|
|
304
|
-
"description":
|
|
304
|
+
"description": "Quando `true`, limpa o valor do campo automaticamente ao perder o foco se o valor for inválido."
|
|
305
305
|
},
|
|
306
306
|
"alignTo": {
|
|
307
307
|
"type": "'left' | 'right'",
|
|
308
308
|
"required": false,
|
|
309
|
-
"description":
|
|
309
|
+
"description": "Alinhamento do texto dentro do campo.\n`'left'` — alinhado à esquerda (padrão).\n`'right'` — alinhado à direita (comum em campos monetários)."
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
},
|
|
313
313
|
"blob": {
|
|
314
314
|
"interface": "BlobFieldConfig",
|
|
315
315
|
"sourceFile": "blob-field.ts",
|
|
316
|
-
"description":
|
|
316
|
+
"description": "Configuração para campo de upload de arquivos binários.\n\nExibe uma área de upload com suporte a múltiplos arquivos, progresso de envio,\nvisualização de arquivos enviados e download.\n\nTodas as propriedades são obrigatórias, pois o componente depende de labels e handlers\npara opções de ação e controle dos arquivos.",
|
|
317
317
|
"ownProperties": {
|
|
318
318
|
"type": {
|
|
319
319
|
"type": "'blob'",
|
|
320
320
|
"required": true,
|
|
321
|
-
"description":
|
|
321
|
+
"description": "Tipo do campo: sempre `'blob'`."
|
|
322
322
|
},
|
|
323
323
|
"accept": {
|
|
324
324
|
"type": "string",
|
|
325
325
|
"required": true,
|
|
326
|
-
"description":
|
|
326
|
+
"description": "Tipos de arquivo aceitos no seletor de arquivo nativo (MIME types ou extensões)."
|
|
327
327
|
},
|
|
328
328
|
"files": {
|
|
329
329
|
"type": "FileDto[]",
|
|
330
330
|
"required": true,
|
|
331
|
-
"description":
|
|
331
|
+
"description": "Lista dos arquivos atualmente associados ao campo.\nDeve ser inicializada como array vazio `[]` ao criar o formulário."
|
|
332
332
|
},
|
|
333
333
|
"chooseLabel": {
|
|
334
334
|
"type": "string",
|
|
335
335
|
"required": true,
|
|
336
|
-
"description":
|
|
336
|
+
"description": "Rótulo do botão de escolher/adicionar arquivo."
|
|
337
337
|
},
|
|
338
338
|
"removeLabel": {
|
|
339
339
|
"type": "string",
|
|
340
340
|
"required": true,
|
|
341
|
-
"description":
|
|
341
|
+
"description": "Rótulo do botão de remover um arquivo da lista."
|
|
342
342
|
},
|
|
343
343
|
"cancelLabel": {
|
|
344
344
|
"type": "string",
|
|
345
345
|
"required": true,
|
|
346
|
-
"description":
|
|
346
|
+
"description": "Rótulo do botão de cancelar o upload em andamento."
|
|
347
347
|
},
|
|
348
348
|
"successTooltip": {
|
|
349
349
|
"type": "string",
|
|
350
350
|
"required": true,
|
|
351
|
-
"description":
|
|
351
|
+
"description": "Texto do tooltip exibido quando o upload é concluído com sucesso."
|
|
352
352
|
},
|
|
353
353
|
"multiple": {
|
|
354
354
|
"type": "boolean",
|
|
355
355
|
"required": true,
|
|
356
|
-
"description":
|
|
356
|
+
"description": "Permite selecionar e enviar múltiplos arquivos simultaneamente."
|
|
357
357
|
},
|
|
358
358
|
"onUploadFile": {
|
|
359
359
|
"type": "(event: {\n files: FileDto[];\n}, field: BlobFieldConfig) => void",
|
|
360
360
|
"required": true,
|
|
361
|
-
"description":
|
|
361
|
+
"description": "Callback chamado após o envio bem-sucedido de arquivos.\nRecebe a lista de arquivos enviados e a instância da configuração do campo."
|
|
362
362
|
},
|
|
363
363
|
"onRemoveFile": {
|
|
364
364
|
"type": "(event: FileDto, field: BlobFieldConfig) => void",
|
|
365
365
|
"required": true,
|
|
366
|
-
"description":
|
|
366
|
+
"description": "Callback chamado quando o usuário remove um arquivo da lista."
|
|
367
367
|
},
|
|
368
368
|
"onCancelUpload": {
|
|
369
369
|
"type": "(event: number, field: BlobFieldConfig) => void",
|
|
370
370
|
"required": true,
|
|
371
|
-
"description":
|
|
371
|
+
"description": "Callback chamado quando o usuário cancela um upload em andamento.\nO `event` é o índice do arquivo na fila de upload."
|
|
372
372
|
},
|
|
373
373
|
"onDownloadFile": {
|
|
374
374
|
"type": "(event: {\n index: number;\n anchor: ElementRef;\n}, field: BlobFieldConfig) => void",
|
|
375
375
|
"required": true,
|
|
376
|
-
"description":
|
|
376
|
+
"description": "Callback chamado quando o usuário clica para baixar um arquivo já enviado.\nRecebe o índice do arquivo e a referência ao elemento anchor de download."
|
|
377
377
|
},
|
|
378
378
|
"showFileUploadDate": {
|
|
379
379
|
"type": "boolean",
|
|
380
380
|
"required": true,
|
|
381
|
-
"description":
|
|
381
|
+
"description": "Quando `true`, exibe a data de upload de cada arquivo na lista."
|
|
382
382
|
}
|
|
383
383
|
}
|
|
384
384
|
},
|
|
385
385
|
"boolean": {
|
|
386
386
|
"interface": "BooleanFieldConfig",
|
|
387
387
|
"sourceFile": "boolean-field.ts",
|
|
388
|
-
"description":
|
|
388
|
+
"description": "Configuração para campo booleano com exibição como botões de rádio (Sim/Não).\n\nExibe dois (ou três, com `showClear`) botões de rádio rotulados conforme `optionsLabel`.\nDiferente do `booleanSwitch`, este campo é mais adequado para questionários e formulários\nque precisam de rotação explícita entre as opções sim/não.",
|
|
389
389
|
"ownProperties": {
|
|
390
390
|
"type": {
|
|
391
391
|
"type": "'boolean'",
|
|
392
392
|
"required": true,
|
|
393
|
-
"description":
|
|
393
|
+
"description": "Tipo do campo: sempre `'boolean'`."
|
|
394
394
|
},
|
|
395
395
|
"verticalAlignment": {
|
|
396
396
|
"type": "boolean",
|
|
397
397
|
"required": false,
|
|
398
|
-
"description":
|
|
398
|
+
"description": "Quando `true`, os botões são empilhados verticalmente em vez de na horizontal."
|
|
399
399
|
},
|
|
400
400
|
"optionsLabel": {
|
|
401
401
|
"type": "BooleanOptionsLabelConfig",
|
|
402
402
|
"required": true,
|
|
403
|
-
"description":
|
|
403
|
+
"description": "Labels exibidas para as opções do campo. Obrigatório."
|
|
404
404
|
},
|
|
405
405
|
"onBlur": {
|
|
406
406
|
"type": "(event: Event) => void",
|
|
407
407
|
"required": false,
|
|
408
|
-
"description":
|
|
408
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
409
409
|
},
|
|
410
410
|
"onFocus": {
|
|
411
411
|
"type": "(event: Event) => void",
|
|
412
412
|
"required": false,
|
|
413
|
-
"description":
|
|
413
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
414
414
|
},
|
|
415
415
|
"onClick": {
|
|
416
416
|
"type": "(event: any) => void",
|
|
417
417
|
"required": false,
|
|
418
|
-
"description":
|
|
418
|
+
"description": "Callback chamado quando o usuário clica em uma opção."
|
|
419
419
|
},
|
|
420
420
|
"showClear": {
|
|
421
421
|
"type": "boolean",
|
|
422
422
|
"required": false,
|
|
423
|
-
"description":
|
|
423
|
+
"description": "Quando `true`, exibe um botão de limpar a seleção.\nO texto do botão é definido em `optionsLabel.clear`."
|
|
424
424
|
}
|
|
425
425
|
}
|
|
426
426
|
},
|
|
427
427
|
"booleanSwitch": {
|
|
428
428
|
"interface": "BooleanSwitchFieldConfig",
|
|
429
429
|
"sourceFile": "boolean-switch-field.ts",
|
|
430
|
-
"description":
|
|
430
|
+
"description": "Configuração para campo booleano com exibição como toggle switch.\n\nRenderiza um interruptor visual de liga/desliga. Use quando o campo representa\numa preferência ou configuração que pode ser ativada ou desativada de forma imediata.\n\nDiferente do `BooleanFieldConfig` (rádio sim/não), este campo usa o componente `s-switch`.",
|
|
431
431
|
"ownProperties": {
|
|
432
432
|
"type": {
|
|
433
433
|
"type": "'booleanSwitch'",
|
|
434
434
|
"required": true,
|
|
435
|
-
"description":
|
|
435
|
+
"description": "Tipo do campo: sempre `'booleanSwitch'`."
|
|
436
436
|
},
|
|
437
437
|
"onChange": {
|
|
438
438
|
"type": "(event: any) => void",
|
|
439
439
|
"required": false,
|
|
440
|
-
"description":
|
|
440
|
+
"description": "Callback chamado quando o estado do switch muda (ligado ⇔ desligado)."
|
|
441
441
|
},
|
|
442
442
|
"optionsLabel": {
|
|
443
443
|
"type": "BooleanOptionsLabelConfig",
|
|
444
444
|
"required": false,
|
|
445
|
-
"description":
|
|
445
|
+
"description": "Labels opcionais exibidas ao lado do switch representando os estados.\nSe omitido, o switch é exibido sem labels de texto."
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
448
|
},
|
|
449
449
|
"button": {
|
|
450
450
|
"interface": "ButtonFieldConfig",
|
|
451
451
|
"sourceFile": "button-field.ts",
|
|
452
|
-
"description":
|
|
452
|
+
"description": "Configuração para campo do tipo botão dentro do DynamicForm.\n\nRenderiza um botão (`s-button`) diretamente como um campo do formulário.\nÚtil para ações contextuais associadas ao formulário, como buscar dados, limpar campos\nou acionar funcionalidades sem submeter o formulário.\n\nAs propriedades visuais e comportamentais (priority, iconClass, menuOptions, etc.)\nsão herdadas diretamente de `ButtonComponent`.",
|
|
453
453
|
"ownProperties": {
|
|
454
454
|
"type": {
|
|
455
455
|
"type": "'button'",
|
|
456
456
|
"required": true,
|
|
457
|
-
"description":
|
|
457
|
+
"description": "Tipo do campo: sempre `'button'`."
|
|
458
458
|
},
|
|
459
459
|
"onClick": {
|
|
460
460
|
"type": "(event?: any) => any",
|
|
461
461
|
"required": false,
|
|
462
|
-
"description":
|
|
462
|
+
"description": "Callback chamado quando o botão é clicado."
|
|
463
463
|
},
|
|
464
464
|
"fullWidth": {
|
|
465
465
|
"type": "boolean",
|
|
466
466
|
"required": false,
|
|
467
|
-
"description":
|
|
467
|
+
"description": "Quando `true`, o botão ocupa toda a largura da célula/coluna do formulário."
|
|
468
468
|
},
|
|
469
469
|
"mouseEnter": {
|
|
470
470
|
"type": "(button: ButtonFieldConfig) => void",
|
|
471
471
|
"required": false,
|
|
472
|
-
"description":
|
|
472
|
+
"description": "Callback chamado quando o mouse entra na área do botão."
|
|
473
473
|
},
|
|
474
474
|
"mouseLeave": {
|
|
475
475
|
"type": "(button: ButtonFieldConfig) => void",
|
|
476
476
|
"required": false,
|
|
477
|
-
"description":
|
|
477
|
+
"description": "Callback chamado quando o mouse sai da área do botão."
|
|
478
478
|
}
|
|
479
479
|
}
|
|
480
480
|
},
|
|
481
481
|
"dateTime": {
|
|
482
482
|
"interface": "CalendarFieldConfig",
|
|
483
483
|
"sourceFile": "calendar-field.ts",
|
|
484
|
-
"description":
|
|
484
|
+
"description": "Configuração para campos de data e hora.\n\nQuatro variantes disponíveis:\n- `'date'` — apenas data (dia/mês/ano)\n- `'time'` — apenas hora (hora:minuto[:segundo])\n- `'dateTime'` — data com horário com timezone (UTC)\n- `'localDateTime'` — data com horário sem timezone (local da máquina)\n\nSuporta restrições de intervalo, modo de visualização (dia/mês/ano), seleção múltipla\ne localização de labels do calendário.",
|
|
485
485
|
"ownProperties": {
|
|
486
486
|
"type": {
|
|
487
487
|
"type": "'dateTime' | 'localDateTime' | 'time' | 'date'",
|
|
488
488
|
"required": true,
|
|
489
|
-
"description":
|
|
489
|
+
"description": "`'date'` — campo de data apenas.\n`'time'` — campo de hora apenas.\n`'dateTime'` — data e hora com timezone UTC.\n`'localDateTime'` — data e hora sem timezone (local)."
|
|
490
490
|
},
|
|
491
491
|
"view": {
|
|
492
492
|
"type": "'date' | 'month' | 'year'",
|
|
493
493
|
"required": false,
|
|
494
|
-
"description":
|
|
494
|
+
"description": "Modo de visualização inicial do calendário.\n`'date'` — grade de dias (padrão).\n`'month'` — selector de mês.\n`'year'` — seletor de ano."
|
|
495
495
|
},
|
|
496
496
|
"minDate": {
|
|
497
497
|
"type": "Date",
|
|
498
498
|
"required": false,
|
|
499
|
-
"description":
|
|
499
|
+
"description": "Data mínima selecionável. Datas anteriores serão desabilitadas no calendário."
|
|
500
500
|
},
|
|
501
501
|
"maxDate": {
|
|
502
502
|
"type": "Date",
|
|
503
503
|
"required": false,
|
|
504
|
-
"description":
|
|
504
|
+
"description": "Data máxima selecionável. Datas posteriores serão desabilitadas no calendário."
|
|
505
505
|
},
|
|
506
506
|
"defaultDate": {
|
|
507
507
|
"type": "Date",
|
|
508
508
|
"required": false,
|
|
509
|
-
"description":
|
|
509
|
+
"description": "Data exibida inicialmente ao abrir o calendário quando nenhuma data está selecionada."
|
|
510
510
|
},
|
|
511
511
|
"appendTo": {
|
|
512
512
|
"type": "string",
|
|
513
513
|
"required": false,
|
|
514
|
-
"description":
|
|
514
|
+
"description": "Elemento DOM ao qual o painel do calendário será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
|
|
515
515
|
},
|
|
516
516
|
"showOnFocus": {
|
|
517
517
|
"type": "boolean",
|
|
518
518
|
"required": false,
|
|
519
|
-
"description":
|
|
519
|
+
"description": "Quando `true`, o calendário abre automaticamente ao focar o campo."
|
|
520
520
|
},
|
|
521
521
|
"calendarLocaleOptions": {
|
|
522
522
|
"type": "CalendarLocaleOptions",
|
|
523
523
|
"required": false,
|
|
524
|
-
"description":
|
|
524
|
+
"description": "Opções de localização do calendário (nomes de dias da semana, meses, etc.).\nSe omitido, usa o locale padrão da aplicação."
|
|
525
525
|
},
|
|
526
526
|
"onBlur": {
|
|
527
527
|
"type": "(event: Event) => void",
|
|
528
528
|
"required": false,
|
|
529
|
-
"description":
|
|
529
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
530
530
|
},
|
|
531
531
|
"onFocus": {
|
|
532
532
|
"type": "(event: Event) => void",
|
|
533
533
|
"required": false,
|
|
534
|
-
"description":
|
|
534
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
535
535
|
},
|
|
536
536
|
"onSelect": {
|
|
537
537
|
"type": "(event: any) => void",
|
|
538
538
|
"required": false,
|
|
539
|
-
"description":
|
|
539
|
+
"description": "Callback chamado quando o usuário seleciona uma data."
|
|
540
540
|
},
|
|
541
541
|
"onInput": {
|
|
542
542
|
"type": "(event: any) => void",
|
|
543
543
|
"required": false,
|
|
544
|
-
"description":
|
|
544
|
+
"description": "Callback chamado quando o usuário digita manualmente no campo."
|
|
545
545
|
},
|
|
546
546
|
"onClose": {
|
|
547
547
|
"type": "(event: any) => void",
|
|
548
548
|
"required": false,
|
|
549
|
-
"description":
|
|
549
|
+
"description": "Callback chamado quando o painel do calendário é fechado."
|
|
550
550
|
},
|
|
551
551
|
"onTodayClick": {
|
|
552
552
|
"type": "(event: any) => void",
|
|
553
553
|
"required": false,
|
|
554
|
-
"description":
|
|
554
|
+
"description": "Callback chamado quando o usuário clica no botão \"Hoje\"."
|
|
555
555
|
},
|
|
556
556
|
"onClearClick": {
|
|
557
557
|
"type": "(event: any) => void",
|
|
558
558
|
"required": false,
|
|
559
|
-
"description":
|
|
559
|
+
"description": "Callback chamado quando o usuário clica no botão \"Limpar\"."
|
|
560
560
|
},
|
|
561
561
|
"onMonthChange": {
|
|
562
562
|
"type": "(event: any) => void",
|
|
563
563
|
"required": false,
|
|
564
|
-
"description":
|
|
564
|
+
"description": "Callback chamado quando o mês visualizado muda."
|
|
565
565
|
},
|
|
566
566
|
"onYearChange": {
|
|
567
567
|
"type": "(event: any) => void",
|
|
568
568
|
"required": false,
|
|
569
|
-
"description":
|
|
569
|
+
"description": "Callback chamado quando o ano visualizado muda."
|
|
570
570
|
},
|
|
571
571
|
"selectionMode": {
|
|
572
572
|
"type": "'single' | 'multiple'",
|
|
573
573
|
"required": false,
|
|
574
|
-
"description":
|
|
574
|
+
"description": "Modo de seleção de datas.\n`'single'` — seleção de uma data (padrão).\n`'multiple'` — seleção de múltiplas datas incompatíveis."
|
|
575
575
|
},
|
|
576
576
|
"rangeSeparator": {
|
|
577
577
|
"type": "string",
|
|
578
578
|
"required": false,
|
|
579
|
-
"description":
|
|
579
|
+
"description": "Separador exibido entre as datas de início e fim quando `selectionMode = 'range'`."
|
|
580
580
|
},
|
|
581
581
|
"showSeconds": {
|
|
582
582
|
"type": "boolean",
|
|
583
583
|
"required": false,
|
|
584
|
-
"description":
|
|
584
|
+
"description": "Quando `true`, exibe o seletor de segundos no modo de hora."
|
|
585
585
|
}
|
|
586
586
|
}
|
|
587
587
|
},
|
|
588
588
|
"localDateTime": {
|
|
589
589
|
"interface": "CalendarFieldConfig",
|
|
590
590
|
"sourceFile": "calendar-field.ts",
|
|
591
|
-
"description":
|
|
591
|
+
"description": "Configuração para campos de data e hora.\n\nQuatro variantes disponíveis:\n- `'date'` — apenas data (dia/mês/ano)\n- `'time'` — apenas hora (hora:minuto[:segundo])\n- `'dateTime'` — data com horário com timezone (UTC)\n- `'localDateTime'` — data com horário sem timezone (local da máquina)\n\nSuporta restrições de intervalo, modo de visualização (dia/mês/ano), seleção múltipla\ne localização de labels do calendário.",
|
|
592
592
|
"ownProperties": {
|
|
593
593
|
"type": {
|
|
594
594
|
"type": "'dateTime' | 'localDateTime' | 'time' | 'date'",
|
|
595
595
|
"required": true,
|
|
596
|
-
"description":
|
|
596
|
+
"description": "`'date'` — campo de data apenas.\n`'time'` — campo de hora apenas.\n`'dateTime'` — data e hora com timezone UTC.\n`'localDateTime'` — data e hora sem timezone (local)."
|
|
597
597
|
},
|
|
598
598
|
"view": {
|
|
599
599
|
"type": "'date' | 'month' | 'year'",
|
|
600
600
|
"required": false,
|
|
601
|
-
"description":
|
|
601
|
+
"description": "Modo de visualização inicial do calendário.\n`'date'` — grade de dias (padrão).\n`'month'` — selector de mês.\n`'year'` — seletor de ano."
|
|
602
602
|
},
|
|
603
603
|
"minDate": {
|
|
604
604
|
"type": "Date",
|
|
605
605
|
"required": false,
|
|
606
|
-
"description":
|
|
606
|
+
"description": "Data mínima selecionável. Datas anteriores serão desabilitadas no calendário."
|
|
607
607
|
},
|
|
608
608
|
"maxDate": {
|
|
609
609
|
"type": "Date",
|
|
610
610
|
"required": false,
|
|
611
|
-
"description":
|
|
611
|
+
"description": "Data máxima selecionável. Datas posteriores serão desabilitadas no calendário."
|
|
612
612
|
},
|
|
613
613
|
"defaultDate": {
|
|
614
614
|
"type": "Date",
|
|
615
615
|
"required": false,
|
|
616
|
-
"description":
|
|
616
|
+
"description": "Data exibida inicialmente ao abrir o calendário quando nenhuma data está selecionada."
|
|
617
617
|
},
|
|
618
618
|
"appendTo": {
|
|
619
619
|
"type": "string",
|
|
620
620
|
"required": false,
|
|
621
|
-
"description":
|
|
621
|
+
"description": "Elemento DOM ao qual o painel do calendário será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
|
|
622
622
|
},
|
|
623
623
|
"showOnFocus": {
|
|
624
624
|
"type": "boolean",
|
|
625
625
|
"required": false,
|
|
626
|
-
"description":
|
|
626
|
+
"description": "Quando `true`, o calendário abre automaticamente ao focar o campo."
|
|
627
627
|
},
|
|
628
628
|
"calendarLocaleOptions": {
|
|
629
629
|
"type": "CalendarLocaleOptions",
|
|
630
630
|
"required": false,
|
|
631
|
-
"description":
|
|
631
|
+
"description": "Opções de localização do calendário (nomes de dias da semana, meses, etc.).\nSe omitido, usa o locale padrão da aplicação."
|
|
632
632
|
},
|
|
633
633
|
"onBlur": {
|
|
634
634
|
"type": "(event: Event) => void",
|
|
635
635
|
"required": false,
|
|
636
|
-
"description":
|
|
636
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
637
637
|
},
|
|
638
638
|
"onFocus": {
|
|
639
639
|
"type": "(event: Event) => void",
|
|
640
640
|
"required": false,
|
|
641
|
-
"description":
|
|
641
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
642
642
|
},
|
|
643
643
|
"onSelect": {
|
|
644
644
|
"type": "(event: any) => void",
|
|
645
645
|
"required": false,
|
|
646
|
-
"description":
|
|
646
|
+
"description": "Callback chamado quando o usuário seleciona uma data."
|
|
647
647
|
},
|
|
648
648
|
"onInput": {
|
|
649
649
|
"type": "(event: any) => void",
|
|
650
650
|
"required": false,
|
|
651
|
-
"description":
|
|
651
|
+
"description": "Callback chamado quando o usuário digita manualmente no campo."
|
|
652
652
|
},
|
|
653
653
|
"onClose": {
|
|
654
654
|
"type": "(event: any) => void",
|
|
655
655
|
"required": false,
|
|
656
|
-
"description":
|
|
656
|
+
"description": "Callback chamado quando o painel do calendário é fechado."
|
|
657
657
|
},
|
|
658
658
|
"onTodayClick": {
|
|
659
659
|
"type": "(event: any) => void",
|
|
660
660
|
"required": false,
|
|
661
|
-
"description":
|
|
661
|
+
"description": "Callback chamado quando o usuário clica no botão \"Hoje\"."
|
|
662
662
|
},
|
|
663
663
|
"onClearClick": {
|
|
664
664
|
"type": "(event: any) => void",
|
|
665
665
|
"required": false,
|
|
666
|
-
"description":
|
|
666
|
+
"description": "Callback chamado quando o usuário clica no botão \"Limpar\"."
|
|
667
667
|
},
|
|
668
668
|
"onMonthChange": {
|
|
669
669
|
"type": "(event: any) => void",
|
|
670
670
|
"required": false,
|
|
671
|
-
"description":
|
|
671
|
+
"description": "Callback chamado quando o mês visualizado muda."
|
|
672
672
|
},
|
|
673
673
|
"onYearChange": {
|
|
674
674
|
"type": "(event: any) => void",
|
|
675
675
|
"required": false,
|
|
676
|
-
"description":
|
|
676
|
+
"description": "Callback chamado quando o ano visualizado muda."
|
|
677
677
|
},
|
|
678
678
|
"selectionMode": {
|
|
679
679
|
"type": "'single' | 'multiple'",
|
|
680
680
|
"required": false,
|
|
681
|
-
"description":
|
|
681
|
+
"description": "Modo de seleção de datas.\n`'single'` — seleção de uma data (padrão).\n`'multiple'` — seleção de múltiplas datas incompatíveis."
|
|
682
682
|
},
|
|
683
683
|
"rangeSeparator": {
|
|
684
684
|
"type": "string",
|
|
685
685
|
"required": false,
|
|
686
|
-
"description":
|
|
686
|
+
"description": "Separador exibido entre as datas de início e fim quando `selectionMode = 'range'`."
|
|
687
687
|
},
|
|
688
688
|
"showSeconds": {
|
|
689
689
|
"type": "boolean",
|
|
690
690
|
"required": false,
|
|
691
|
-
"description":
|
|
691
|
+
"description": "Quando `true`, exibe o seletor de segundos no modo de hora."
|
|
692
692
|
}
|
|
693
693
|
}
|
|
694
694
|
},
|
|
695
695
|
"time": {
|
|
696
696
|
"interface": "CalendarFieldConfig",
|
|
697
697
|
"sourceFile": "calendar-field.ts",
|
|
698
|
-
"description":
|
|
698
|
+
"description": "Configuração para campos de data e hora.\n\nQuatro variantes disponíveis:\n- `'date'` — apenas data (dia/mês/ano)\n- `'time'` — apenas hora (hora:minuto[:segundo])\n- `'dateTime'` — data com horário com timezone (UTC)\n- `'localDateTime'` — data com horário sem timezone (local da máquina)\n\nSuporta restrições de intervalo, modo de visualização (dia/mês/ano), seleção múltipla\ne localização de labels do calendário.",
|
|
699
699
|
"ownProperties": {
|
|
700
700
|
"type": {
|
|
701
701
|
"type": "'dateTime' | 'localDateTime' | 'time' | 'date'",
|
|
702
702
|
"required": true,
|
|
703
|
-
"description":
|
|
703
|
+
"description": "`'date'` — campo de data apenas.\n`'time'` — campo de hora apenas.\n`'dateTime'` — data e hora com timezone UTC.\n`'localDateTime'` — data e hora sem timezone (local)."
|
|
704
704
|
},
|
|
705
705
|
"view": {
|
|
706
706
|
"type": "'date' | 'month' | 'year'",
|
|
707
707
|
"required": false,
|
|
708
|
-
"description":
|
|
708
|
+
"description": "Modo de visualização inicial do calendário.\n`'date'` — grade de dias (padrão).\n`'month'` — selector de mês.\n`'year'` — seletor de ano."
|
|
709
709
|
},
|
|
710
710
|
"minDate": {
|
|
711
711
|
"type": "Date",
|
|
712
712
|
"required": false,
|
|
713
|
-
"description":
|
|
713
|
+
"description": "Data mínima selecionável. Datas anteriores serão desabilitadas no calendário."
|
|
714
714
|
},
|
|
715
715
|
"maxDate": {
|
|
716
716
|
"type": "Date",
|
|
717
717
|
"required": false,
|
|
718
|
-
"description":
|
|
718
|
+
"description": "Data máxima selecionável. Datas posteriores serão desabilitadas no calendário."
|
|
719
719
|
},
|
|
720
720
|
"defaultDate": {
|
|
721
721
|
"type": "Date",
|
|
722
722
|
"required": false,
|
|
723
|
-
"description":
|
|
723
|
+
"description": "Data exibida inicialmente ao abrir o calendário quando nenhuma data está selecionada."
|
|
724
724
|
},
|
|
725
725
|
"appendTo": {
|
|
726
726
|
"type": "string",
|
|
727
727
|
"required": false,
|
|
728
|
-
"description":
|
|
728
|
+
"description": "Elemento DOM ao qual o painel do calendário será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
|
|
729
729
|
},
|
|
730
730
|
"showOnFocus": {
|
|
731
731
|
"type": "boolean",
|
|
732
732
|
"required": false,
|
|
733
|
-
"description":
|
|
733
|
+
"description": "Quando `true`, o calendário abre automaticamente ao focar o campo."
|
|
734
734
|
},
|
|
735
735
|
"calendarLocaleOptions": {
|
|
736
736
|
"type": "CalendarLocaleOptions",
|
|
737
737
|
"required": false,
|
|
738
|
-
"description":
|
|
738
|
+
"description": "Opções de localização do calendário (nomes de dias da semana, meses, etc.).\nSe omitido, usa o locale padrão da aplicação."
|
|
739
739
|
},
|
|
740
740
|
"onBlur": {
|
|
741
741
|
"type": "(event: Event) => void",
|
|
742
742
|
"required": false,
|
|
743
|
-
"description":
|
|
743
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
744
744
|
},
|
|
745
745
|
"onFocus": {
|
|
746
746
|
"type": "(event: Event) => void",
|
|
747
747
|
"required": false,
|
|
748
|
-
"description":
|
|
748
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
749
749
|
},
|
|
750
750
|
"onSelect": {
|
|
751
751
|
"type": "(event: any) => void",
|
|
752
752
|
"required": false,
|
|
753
|
-
"description":
|
|
753
|
+
"description": "Callback chamado quando o usuário seleciona uma data."
|
|
754
754
|
},
|
|
755
755
|
"onInput": {
|
|
756
756
|
"type": "(event: any) => void",
|
|
757
757
|
"required": false,
|
|
758
|
-
"description":
|
|
758
|
+
"description": "Callback chamado quando o usuário digita manualmente no campo."
|
|
759
759
|
},
|
|
760
760
|
"onClose": {
|
|
761
761
|
"type": "(event: any) => void",
|
|
762
762
|
"required": false,
|
|
763
|
-
"description":
|
|
763
|
+
"description": "Callback chamado quando o painel do calendário é fechado."
|
|
764
764
|
},
|
|
765
765
|
"onTodayClick": {
|
|
766
766
|
"type": "(event: any) => void",
|
|
767
767
|
"required": false,
|
|
768
|
-
"description":
|
|
768
|
+
"description": "Callback chamado quando o usuário clica no botão \"Hoje\"."
|
|
769
769
|
},
|
|
770
770
|
"onClearClick": {
|
|
771
771
|
"type": "(event: any) => void",
|
|
772
772
|
"required": false,
|
|
773
|
-
"description":
|
|
773
|
+
"description": "Callback chamado quando o usuário clica no botão \"Limpar\"."
|
|
774
774
|
},
|
|
775
775
|
"onMonthChange": {
|
|
776
776
|
"type": "(event: any) => void",
|
|
777
777
|
"required": false,
|
|
778
|
-
"description":
|
|
778
|
+
"description": "Callback chamado quando o mês visualizado muda."
|
|
779
779
|
},
|
|
780
780
|
"onYearChange": {
|
|
781
781
|
"type": "(event: any) => void",
|
|
782
782
|
"required": false,
|
|
783
|
-
"description":
|
|
783
|
+
"description": "Callback chamado quando o ano visualizado muda."
|
|
784
784
|
},
|
|
785
785
|
"selectionMode": {
|
|
786
786
|
"type": "'single' | 'multiple'",
|
|
787
787
|
"required": false,
|
|
788
|
-
"description":
|
|
788
|
+
"description": "Modo de seleção de datas.\n`'single'` — seleção de uma data (padrão).\n`'multiple'` — seleção de múltiplas datas incompatíveis."
|
|
789
789
|
},
|
|
790
790
|
"rangeSeparator": {
|
|
791
791
|
"type": "string",
|
|
792
792
|
"required": false,
|
|
793
|
-
"description":
|
|
793
|
+
"description": "Separador exibido entre as datas de início e fim quando `selectionMode = 'range'`."
|
|
794
794
|
},
|
|
795
795
|
"showSeconds": {
|
|
796
796
|
"type": "boolean",
|
|
797
797
|
"required": false,
|
|
798
|
-
"description":
|
|
798
|
+
"description": "Quando `true`, exibe o seletor de segundos no modo de hora."
|
|
799
799
|
}
|
|
800
800
|
}
|
|
801
801
|
},
|
|
802
802
|
"date": {
|
|
803
803
|
"interface": "CalendarFieldConfig",
|
|
804
804
|
"sourceFile": "calendar-field.ts",
|
|
805
|
-
"description":
|
|
805
|
+
"description": "Configuração para campos de data e hora.\n\nQuatro variantes disponíveis:\n- `'date'` — apenas data (dia/mês/ano)\n- `'time'` — apenas hora (hora:minuto[:segundo])\n- `'dateTime'` — data com horário com timezone (UTC)\n- `'localDateTime'` — data com horário sem timezone (local da máquina)\n\nSuporta restrições de intervalo, modo de visualização (dia/mês/ano), seleção múltipla\ne localização de labels do calendário.",
|
|
806
806
|
"ownProperties": {
|
|
807
807
|
"type": {
|
|
808
808
|
"type": "'dateTime' | 'localDateTime' | 'time' | 'date'",
|
|
809
809
|
"required": true,
|
|
810
|
-
"description":
|
|
810
|
+
"description": "`'date'` — campo de data apenas.\n`'time'` — campo de hora apenas.\n`'dateTime'` — data e hora com timezone UTC.\n`'localDateTime'` — data e hora sem timezone (local)."
|
|
811
811
|
},
|
|
812
812
|
"view": {
|
|
813
813
|
"type": "'date' | 'month' | 'year'",
|
|
814
814
|
"required": false,
|
|
815
|
-
"description":
|
|
815
|
+
"description": "Modo de visualização inicial do calendário.\n`'date'` — grade de dias (padrão).\n`'month'` — selector de mês.\n`'year'` — seletor de ano."
|
|
816
816
|
},
|
|
817
817
|
"minDate": {
|
|
818
818
|
"type": "Date",
|
|
819
819
|
"required": false,
|
|
820
|
-
"description":
|
|
820
|
+
"description": "Data mínima selecionável. Datas anteriores serão desabilitadas no calendário."
|
|
821
821
|
},
|
|
822
822
|
"maxDate": {
|
|
823
823
|
"type": "Date",
|
|
824
824
|
"required": false,
|
|
825
|
-
"description":
|
|
825
|
+
"description": "Data máxima selecionável. Datas posteriores serão desabilitadas no calendário."
|
|
826
826
|
},
|
|
827
827
|
"defaultDate": {
|
|
828
828
|
"type": "Date",
|
|
829
829
|
"required": false,
|
|
830
|
-
"description":
|
|
830
|
+
"description": "Data exibida inicialmente ao abrir o calendário quando nenhuma data está selecionada."
|
|
831
831
|
},
|
|
832
832
|
"appendTo": {
|
|
833
833
|
"type": "string",
|
|
834
834
|
"required": false,
|
|
835
|
-
"description":
|
|
835
|
+
"description": "Elemento DOM ao qual o painel do calendário será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
|
|
836
836
|
},
|
|
837
837
|
"showOnFocus": {
|
|
838
838
|
"type": "boolean",
|
|
839
839
|
"required": false,
|
|
840
|
-
"description":
|
|
840
|
+
"description": "Quando `true`, o calendário abre automaticamente ao focar o campo."
|
|
841
841
|
},
|
|
842
842
|
"calendarLocaleOptions": {
|
|
843
843
|
"type": "CalendarLocaleOptions",
|
|
844
844
|
"required": false,
|
|
845
|
-
"description":
|
|
845
|
+
"description": "Opções de localização do calendário (nomes de dias da semana, meses, etc.).\nSe omitido, usa o locale padrão da aplicação."
|
|
846
846
|
},
|
|
847
847
|
"onBlur": {
|
|
848
848
|
"type": "(event: Event) => void",
|
|
849
849
|
"required": false,
|
|
850
|
-
"description":
|
|
850
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
851
851
|
},
|
|
852
852
|
"onFocus": {
|
|
853
853
|
"type": "(event: Event) => void",
|
|
854
854
|
"required": false,
|
|
855
|
-
"description":
|
|
855
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
856
856
|
},
|
|
857
857
|
"onSelect": {
|
|
858
858
|
"type": "(event: any) => void",
|
|
859
859
|
"required": false,
|
|
860
|
-
"description":
|
|
860
|
+
"description": "Callback chamado quando o usuário seleciona uma data."
|
|
861
861
|
},
|
|
862
862
|
"onInput": {
|
|
863
863
|
"type": "(event: any) => void",
|
|
864
864
|
"required": false,
|
|
865
|
-
"description":
|
|
865
|
+
"description": "Callback chamado quando o usuário digita manualmente no campo."
|
|
866
866
|
},
|
|
867
867
|
"onClose": {
|
|
868
868
|
"type": "(event: any) => void",
|
|
869
869
|
"required": false,
|
|
870
|
-
"description":
|
|
870
|
+
"description": "Callback chamado quando o painel do calendário é fechado."
|
|
871
871
|
},
|
|
872
872
|
"onTodayClick": {
|
|
873
873
|
"type": "(event: any) => void",
|
|
874
874
|
"required": false,
|
|
875
|
-
"description":
|
|
875
|
+
"description": "Callback chamado quando o usuário clica no botão \"Hoje\"."
|
|
876
876
|
},
|
|
877
877
|
"onClearClick": {
|
|
878
878
|
"type": "(event: any) => void",
|
|
879
879
|
"required": false,
|
|
880
|
-
"description":
|
|
880
|
+
"description": "Callback chamado quando o usuário clica no botão \"Limpar\"."
|
|
881
881
|
},
|
|
882
882
|
"onMonthChange": {
|
|
883
883
|
"type": "(event: any) => void",
|
|
884
884
|
"required": false,
|
|
885
|
-
"description":
|
|
885
|
+
"description": "Callback chamado quando o mês visualizado muda."
|
|
886
886
|
},
|
|
887
887
|
"onYearChange": {
|
|
888
888
|
"type": "(event: any) => void",
|
|
889
889
|
"required": false,
|
|
890
|
-
"description":
|
|
890
|
+
"description": "Callback chamado quando o ano visualizado muda."
|
|
891
891
|
},
|
|
892
892
|
"selectionMode": {
|
|
893
893
|
"type": "'single' | 'multiple'",
|
|
894
894
|
"required": false,
|
|
895
|
-
"description":
|
|
895
|
+
"description": "Modo de seleção de datas.\n`'single'` — seleção de uma data (padrão).\n`'multiple'` — seleção de múltiplas datas incompatíveis."
|
|
896
896
|
},
|
|
897
897
|
"rangeSeparator": {
|
|
898
898
|
"type": "string",
|
|
899
899
|
"required": false,
|
|
900
|
-
"description":
|
|
900
|
+
"description": "Separador exibido entre as datas de início e fim quando `selectionMode = 'range'`."
|
|
901
901
|
},
|
|
902
902
|
"showSeconds": {
|
|
903
903
|
"type": "boolean",
|
|
904
904
|
"required": false,
|
|
905
|
-
"description":
|
|
905
|
+
"description": "Quando `true`, exibe o seletor de segundos no modo de hora."
|
|
906
906
|
}
|
|
907
907
|
}
|
|
908
908
|
},
|
|
909
909
|
"checkbox": {
|
|
910
910
|
"interface": "CheckboxFieldConfig",
|
|
911
911
|
"sourceFile": "checkbox-field.ts",
|
|
912
|
-
"description":
|
|
912
|
+
"description": "Configuração para campo de múltipla escolha com checkboxes.\n\nRenderiza uma lista de checkboxes com suporte a agrupamento hierárquico via `CheckboxListData`.\nO valor do campo será um array com os valores dos itens selecionados.\n\nUse quando o usuário pode selecionar zero ou mais opções de uma lista finita.\nPara seleção única, prefira `type: 'radioButton'` ou `type: 'enum'`.",
|
|
913
913
|
"ownProperties": {
|
|
914
914
|
"type": {
|
|
915
915
|
"type": "'checkbox'",
|
|
916
916
|
"required": true,
|
|
917
|
-
"description":
|
|
917
|
+
"description": "Tipo do campo: sempre `'checkbox'`."
|
|
918
918
|
},
|
|
919
919
|
"data": {
|
|
920
920
|
"type": "CheckboxListData",
|
|
921
921
|
"required": true,
|
|
922
|
-
"description":
|
|
922
|
+
"description": "Dados que definem os itens e a estrutura hierárquica dos checkboxes.\nImportado de `@seniorsistemas/angular-components/checkbox-list`.\nCada item possui `label`, `value` e opcionalmente `children` com sub-itens."
|
|
923
923
|
}
|
|
924
924
|
}
|
|
925
925
|
},
|
|
926
926
|
"chips": {
|
|
927
927
|
"interface": "ChipsFieldConfig",
|
|
928
928
|
"sourceFile": "chips-field.ts",
|
|
929
|
-
"description":
|
|
929
|
+
"description": "Configuração para campo de entrada de múltiplas tags (chips).\n\nPermite que o usuário insira vários valores de texto livres, visualizados como chips/tags.\nCada valor é adicionado ao pressionar Enter (ou o separador configurado).\nO valor do campo é um array de strings.\n\nUse para e-mails, palavras-chave, códigos ou qualquer lista de valores livres.",
|
|
930
930
|
"ownProperties": {
|
|
931
931
|
"type": {
|
|
932
932
|
"type": "'chips'",
|
|
933
933
|
"required": true,
|
|
934
|
-
"description":
|
|
934
|
+
"description": "Tipo do campo: sempre `'chips'`."
|
|
935
935
|
},
|
|
936
936
|
"keyFilter": {
|
|
937
937
|
"type": "RegExp",
|
|
938
938
|
"required": false,
|
|
939
|
-
"description":
|
|
939
|
+
"description": "Expressão regular que filtra os caracteres aceitos em cada chip."
|
|
940
940
|
},
|
|
941
941
|
"separator": {
|
|
942
942
|
"type": "string",
|
|
943
943
|
"required": false,
|
|
944
|
-
"description":
|
|
944
|
+
"description": "Caractere separador para adicionar novos chips além do Enter."
|
|
945
945
|
},
|
|
946
946
|
"showCopyButton": {
|
|
947
947
|
"type": "boolean",
|
|
948
948
|
"required": false,
|
|
949
|
-
"description":
|
|
949
|
+
"description": "Quando `true`, exibe um botão de copiar todos os chips para a área de transferência."
|
|
950
950
|
},
|
|
951
951
|
"onAdd": {
|
|
952
952
|
"type": "(event: any) => void",
|
|
953
953
|
"required": false,
|
|
954
|
-
"description":
|
|
954
|
+
"description": "Callback chamado quando um novo chip é adicionado."
|
|
955
955
|
},
|
|
956
956
|
"onRemove": {
|
|
957
957
|
"type": "(event: any) => void",
|
|
958
958
|
"required": false,
|
|
959
|
-
"description":
|
|
959
|
+
"description": "Callback chamado quando um chip é removido."
|
|
960
960
|
},
|
|
961
961
|
"onChipClick": {
|
|
962
962
|
"type": "(event: any) => void",
|
|
963
963
|
"required": false,
|
|
964
|
-
"description":
|
|
964
|
+
"description": "Callback chamado quando o usuário clica em um chip existente."
|
|
965
965
|
},
|
|
966
966
|
"onFocus": {
|
|
967
967
|
"type": "(event: any) => void",
|
|
968
968
|
"required": false,
|
|
969
|
-
"description":
|
|
969
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
970
970
|
},
|
|
971
971
|
"onBlur": {
|
|
972
972
|
"type": "(event: any) => void",
|
|
973
973
|
"required": false,
|
|
974
|
-
"description":
|
|
974
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
975
975
|
},
|
|
976
976
|
"onCopy": {
|
|
977
977
|
"type": "(content: string) => void",
|
|
978
978
|
"required": false,
|
|
979
|
-
"description":
|
|
979
|
+
"description": "Callback chamado quando o usuário copia o conteúdo dos chips.\nRecebe o texto combinado de todos os chips."
|
|
980
980
|
}
|
|
981
981
|
}
|
|
982
982
|
},
|
|
983
983
|
"contentGenerator": {
|
|
984
984
|
"interface": "ContentGeneratorFieldConfig",
|
|
985
985
|
"sourceFile": "content-generator-field.ts",
|
|
986
|
-
"description":
|
|
986
|
+
"description": "Configuração para campo de área de texto com geração de conteúdo via IA.\n\nCombina um textarea completo com recursos de:\n- Geração automática de texto por IA via prompt\n- Reconhecimento de voz (speech-to-text)\n- Contexto persistente entre gerações (`keepContext`)\n\nUse `type: 'contentGenerator'` para novas implementações.\nO tipo `'textAreaIA'` está depreciado e será removido na v20.",
|
|
987
987
|
"ownProperties": {
|
|
988
988
|
"type": {
|
|
989
989
|
"type": "'contentGenerator' | 'textAreaIA'",
|
|
990
990
|
"required": true,
|
|
991
|
-
"description":
|
|
991
|
+
"description": "`'contentGenerator'` — tipo atual recomendado.\n`'textAreaIA'` — **@deprecated** Será removido na v20, use `'contentGenerator'`."
|
|
992
992
|
},
|
|
993
993
|
"cols": {
|
|
994
994
|
"type": "number",
|
|
995
995
|
"required": false,
|
|
996
|
-
"description":
|
|
996
|
+
"description": "Número de colunas de texto do textarea."
|
|
997
997
|
},
|
|
998
998
|
"rows": {
|
|
999
999
|
"type": "number",
|
|
1000
1000
|
"required": false,
|
|
1001
|
-
"description":
|
|
1001
|
+
"description": "Número de linhas visíveis do textarea."
|
|
1002
1002
|
},
|
|
1003
1003
|
"keyFilter": {
|
|
1004
1004
|
"type": "any",
|
|
1005
1005
|
"required": false,
|
|
1006
|
-
"description":
|
|
1006
|
+
"description": "Filtro de teclas aceitas. Aceita regex ou string."
|
|
1007
1007
|
},
|
|
1008
1008
|
"style": {
|
|
1009
1009
|
"type": "Partial<CSSStyleDeclaration>",
|
|
1010
1010
|
"required": false,
|
|
1011
|
-
"description":
|
|
1011
|
+
"description": "Estilos CSS inline aplicados diretamente no elemento textarea."
|
|
1012
1012
|
},
|
|
1013
1013
|
"prompt": {
|
|
1014
1014
|
"type": "string",
|
|
1015
1015
|
"required": false,
|
|
1016
|
-
"description":
|
|
1016
|
+
"description": "Prompt inicial enviado à IA para gerar conteúdo.\nDefine a instrução base para o assistente de geração de texto."
|
|
1017
1017
|
},
|
|
1018
1018
|
"readonly": {
|
|
1019
1019
|
"type": "() => boolean",
|
|
1020
1020
|
"required": false,
|
|
1021
|
-
"description":
|
|
1021
|
+
"description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura."
|
|
1022
1022
|
},
|
|
1023
1023
|
"speechRecognition": {
|
|
1024
1024
|
"type": "boolean",
|
|
1025
1025
|
"required": false,
|
|
1026
|
-
"description":
|
|
1026
|
+
"description": "Quando `true`, ativa o botão de reconhecimento de voz (speech-to-text).\nO conteúdo falado é convertido em texto e inserido no campo."
|
|
1027
1027
|
},
|
|
1028
1028
|
"keepContext": {
|
|
1029
1029
|
"type": "boolean",
|
|
1030
1030
|
"required": true,
|
|
1031
|
-
"description":
|
|
1031
|
+
"description": "Quando `true`, o contexto das gerações anteriores é mantido ao gerar novo conteúdo.\nPermite que a IA considere o histórico da conversa na próxima geração."
|
|
1032
1032
|
},
|
|
1033
1033
|
"speechRecognitionPlaceholder": {
|
|
1034
1034
|
"type": "string",
|
|
1035
1035
|
"required": true,
|
|
1036
|
-
"description":
|
|
1036
|
+
"description": "Texto de placeholder exibido na área de reconhecimento de voz enquanto o microfone está ativo."
|
|
1037
1037
|
},
|
|
1038
1038
|
"maxLength": {
|
|
1039
1039
|
"type": "number",
|
|
1040
1040
|
"required": false,
|
|
1041
|
-
"description":
|
|
1041
|
+
"description": "Número máximo de caracteres permitidos no campo."
|
|
1042
1042
|
}
|
|
1043
1043
|
}
|
|
1044
1044
|
},
|
|
1045
1045
|
"textAreaIA": {
|
|
1046
1046
|
"interface": "ContentGeneratorFieldConfig",
|
|
1047
1047
|
"sourceFile": "content-generator-field.ts",
|
|
1048
|
-
"description":
|
|
1048
|
+
"description": "Configuração para campo de área de texto com geração de conteúdo via IA.\n\nCombina um textarea completo com recursos de:\n- Geração automática de texto por IA via prompt\n- Reconhecimento de voz (speech-to-text)\n- Contexto persistente entre gerações (`keepContext`)\n\nUse `type: 'contentGenerator'` para novas implementações.\nO tipo `'textAreaIA'` está depreciado e será removido na v20.",
|
|
1049
1049
|
"ownProperties": {
|
|
1050
1050
|
"type": {
|
|
1051
1051
|
"type": "'contentGenerator' | 'textAreaIA'",
|
|
1052
1052
|
"required": true,
|
|
1053
|
-
"description":
|
|
1053
|
+
"description": "`'contentGenerator'` — tipo atual recomendado.\n`'textAreaIA'` — **@deprecated** Será removido na v20, use `'contentGenerator'`."
|
|
1054
1054
|
},
|
|
1055
1055
|
"cols": {
|
|
1056
1056
|
"type": "number",
|
|
1057
1057
|
"required": false,
|
|
1058
|
-
"description":
|
|
1058
|
+
"description": "Número de colunas de texto do textarea."
|
|
1059
1059
|
},
|
|
1060
1060
|
"rows": {
|
|
1061
1061
|
"type": "number",
|
|
1062
1062
|
"required": false,
|
|
1063
|
-
"description":
|
|
1063
|
+
"description": "Número de linhas visíveis do textarea."
|
|
1064
1064
|
},
|
|
1065
1065
|
"keyFilter": {
|
|
1066
1066
|
"type": "any",
|
|
1067
1067
|
"required": false,
|
|
1068
|
-
"description":
|
|
1068
|
+
"description": "Filtro de teclas aceitas. Aceita regex ou string."
|
|
1069
1069
|
},
|
|
1070
1070
|
"style": {
|
|
1071
1071
|
"type": "Partial<CSSStyleDeclaration>",
|
|
1072
1072
|
"required": false,
|
|
1073
|
-
"description":
|
|
1073
|
+
"description": "Estilos CSS inline aplicados diretamente no elemento textarea."
|
|
1074
1074
|
},
|
|
1075
1075
|
"prompt": {
|
|
1076
1076
|
"type": "string",
|
|
1077
1077
|
"required": false,
|
|
1078
|
-
"description":
|
|
1078
|
+
"description": "Prompt inicial enviado à IA para gerar conteúdo.\nDefine a instrução base para o assistente de geração de texto."
|
|
1079
1079
|
},
|
|
1080
1080
|
"readonly": {
|
|
1081
1081
|
"type": "() => boolean",
|
|
1082
1082
|
"required": false,
|
|
1083
|
-
"description":
|
|
1083
|
+
"description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura."
|
|
1084
1084
|
},
|
|
1085
1085
|
"speechRecognition": {
|
|
1086
1086
|
"type": "boolean",
|
|
1087
1087
|
"required": false,
|
|
1088
|
-
"description":
|
|
1088
|
+
"description": "Quando `true`, ativa o botão de reconhecimento de voz (speech-to-text).\nO conteúdo falado é convertido em texto e inserido no campo."
|
|
1089
1089
|
},
|
|
1090
1090
|
"keepContext": {
|
|
1091
1091
|
"type": "boolean",
|
|
1092
1092
|
"required": true,
|
|
1093
|
-
"description":
|
|
1093
|
+
"description": "Quando `true`, o contexto das gerações anteriores é mantido ao gerar novo conteúdo.\nPermite que a IA considere o histórico da conversa na próxima geração."
|
|
1094
1094
|
},
|
|
1095
1095
|
"speechRecognitionPlaceholder": {
|
|
1096
1096
|
"type": "string",
|
|
1097
1097
|
"required": true,
|
|
1098
|
-
"description":
|
|
1098
|
+
"description": "Texto de placeholder exibido na área de reconhecimento de voz enquanto o microfone está ativo."
|
|
1099
1099
|
},
|
|
1100
1100
|
"maxLength": {
|
|
1101
1101
|
"type": "number",
|
|
1102
1102
|
"required": false,
|
|
1103
|
-
"description":
|
|
1103
|
+
"description": "Número máximo de caracteres permitidos no campo."
|
|
1104
1104
|
}
|
|
1105
1105
|
}
|
|
1106
1106
|
},
|
|
1107
1107
|
"countryPhonePicker": {
|
|
1108
1108
|
"interface": "CountryPhonePickerConfig",
|
|
1109
1109
|
"sourceFile": "country-phone-picker-field.ts",
|
|
1110
|
-
"description":
|
|
1110
|
+
"description": "Configuração para campo de seleção de país com entrada de número de telefone.\n\nCombina um dropdown de seleção de país (com bandeira e código DDI) com um campo de telefone\nque aplica automaticamente a máscara de cada país selecionado.\n\nO valor do campo é do tipo `PhoneSelectionData`, contendo o país e o número.",
|
|
1111
1111
|
"ownProperties": {
|
|
1112
1112
|
"type": {
|
|
1113
1113
|
"type": "'countryPhonePicker'",
|
|
1114
1114
|
"required": true,
|
|
1115
|
-
"description":
|
|
1115
|
+
"description": "Tipo do campo: sempre `'countryPhonePicker'`."
|
|
1116
1116
|
},
|
|
1117
1117
|
"countries": {
|
|
1118
1118
|
"type": "string[]",
|
|
1119
1119
|
"required": true,
|
|
1120
|
-
"description":
|
|
1120
|
+
"description": "Lista de códigos de países disponíveis no dropdown.\nUse códigos ISO 3166-1 alpha-2 em maiúsculas."
|
|
1121
1121
|
},
|
|
1122
1122
|
"ordination": {
|
|
1123
1123
|
"type": "Ordination",
|
|
1124
1124
|
"required": true,
|
|
1125
|
-
"description":
|
|
1125
|
+
"description": "Critério de ordenação dos países no dropdown.\nImportado de `@seniorsistemas/angular-components/country-phone-picker`."
|
|
1126
1126
|
},
|
|
1127
1127
|
"onSelected": {
|
|
1128
1128
|
"type": "(data: CountryPhoneData) => void",
|
|
1129
1129
|
"required": true,
|
|
1130
|
-
"description":
|
|
1130
|
+
"description": "Callback obrigatório chamado quando o país é selecionado.\nRecebe os dados do país escolhido (nome, DDI, código)."
|
|
1131
1131
|
},
|
|
1132
1132
|
"onFocusLost": {
|
|
1133
1133
|
"type": "(data: PhoneSelectionData | null) => void",
|
|
1134
1134
|
"required": false,
|
|
1135
|
-
"description": null
|
|
1135
|
+
"description": "Callback chamado quando o campo de telefone perde o foco.\nRecebe os dados completos da seleção (país + número), ou `null` se vazio."
|
|
1136
1136
|
}
|
|
1137
1137
|
}
|
|
1138
1138
|
},
|
|
1139
1139
|
"money": {
|
|
1140
1140
|
"interface": "CurrencyFieldConfig",
|
|
1141
1141
|
"sourceFile": "currency-field.ts",
|
|
1142
|
-
"description":
|
|
1142
|
+
"description": "Configuração para campo monetário com símbolo de moeda.",
|
|
1143
1143
|
"ownProperties": {
|
|
1144
1144
|
"type": {
|
|
1145
1145
|
"type": "'money'",
|
|
1146
1146
|
"required": true,
|
|
1147
|
-
"description":
|
|
1147
|
+
"description": "Tipo do campo: sempre `'money'`."
|
|
1148
1148
|
},
|
|
1149
1149
|
"alignTo": {
|
|
1150
1150
|
"type": "'left' | 'right'",
|
|
1151
1151
|
"required": false,
|
|
1152
|
-
"description":
|
|
1152
|
+
"description": "Alinhamento do texto dentro do campo.\n`'left'` — alinhado à esquerda.\n`'right'` — alinhado à direita (comum em campos monetários)."
|
|
1153
1153
|
},
|
|
1154
1154
|
"currency": {
|
|
1155
1155
|
"type": "() => Currency",
|
|
1156
1156
|
"required": false,
|
|
1157
|
-
"description":
|
|
1157
|
+
"description": "Função que retorna o objeto de moeda a ser exibido junto ao valor.\nInclui símbolo, código e formatação."
|
|
1158
1158
|
}
|
|
1159
1159
|
}
|
|
1160
1160
|
},
|
|
1161
1161
|
"lookup": {
|
|
1162
1162
|
"interface": "LookupFieldConfig",
|
|
1163
1163
|
"sourceFile": "lookup-field.ts",
|
|
1164
|
-
"description":
|
|
1164
|
+
"description": "Configuração para campo de pesquisa avançada (Lookup).\n\nExibe um input com autocompletar e botão de pesquisa que abre um diálogo com grid de resultados.\nSuporta seleção simples ou múltipla, filtros padrão, ações CRUD na seleção e configuração\ndinâmica das colunas da grade.\n\nRequer dois Observables:\n- `suggestionsObservable`: para sugestões no autocompletar\n- `searchObservable`: para a grade de resultados do diálogo",
|
|
1165
1165
|
"ownProperties": {
|
|
1166
1166
|
"type": {
|
|
1167
1167
|
"type": "'lookup'",
|
|
1168
1168
|
"required": true,
|
|
1169
|
-
"description":
|
|
1169
|
+
"description": "Tipo do campo: sempre `'lookup'`."
|
|
1170
1170
|
},
|
|
1171
1171
|
"defaultValue": {
|
|
1172
1172
|
"type": "any",
|
|
1173
1173
|
"required": false,
|
|
1174
|
-
"description":
|
|
1174
|
+
"description": "Valor padrão pré-selecionado ao inicializar o formulário."
|
|
1175
1175
|
},
|
|
1176
1176
|
"multiple": {
|
|
1177
1177
|
"type": "boolean",
|
|
1178
1178
|
"required": false,
|
|
1179
|
-
"description":
|
|
1179
|
+
"description": "Quando `true`, permite selecionar múltiplos registros exibidos como tags."
|
|
1180
1180
|
},
|
|
1181
1181
|
"showSearch": {
|
|
1182
1182
|
"type": "boolean",
|
|
1183
1183
|
"required": false,
|
|
1184
|
-
"description":
|
|
1184
|
+
"description": "Quando `true`, exibe o botão de pesquisa avançada que abre o diálogo com a grade."
|
|
1185
1185
|
},
|
|
1186
1186
|
"searchFields": {
|
|
1187
|
-
"type": "
|
|
1187
|
+
"type": "DynamicType[]",
|
|
1188
1188
|
"required": true,
|
|
1189
|
-
"description":
|
|
1189
|
+
"description": "Colunas de filtro exibidas no diálogo de pesquisa avançada.\nCada item define o campo de filtro disponível para o usuário."
|
|
1190
1190
|
},
|
|
1191
1191
|
"searchGridFields": {
|
|
1192
|
-
"type": "
|
|
1192
|
+
"type": "DynamicType[]",
|
|
1193
1193
|
"required": true,
|
|
1194
|
-
"description":
|
|
1194
|
+
"description": "Colunas exibidas na grade de resultados do diálogo de pesquisa.\nCada item define uma coluna com header e campo de dados."
|
|
1195
1195
|
},
|
|
1196
1196
|
"suggestionsObservable": {
|
|
1197
1197
|
"type": "Observable<any[]>",
|
|
1198
1198
|
"required": true,
|
|
1199
|
-
"description":
|
|
1199
|
+
"description": "Observable que emite sugestões para o autocompletar do input do lookup.\nDeve emitir um array de objetos com a propriedade `lookupDisplayField`."
|
|
1200
1200
|
},
|
|
1201
1201
|
"searchObservable": {
|
|
1202
1202
|
"type": "Observable<SearchObservable>",
|
|
1203
1203
|
"required": true,
|
|
1204
|
-
"description":
|
|
1204
|
+
"description": "Observable que emite os dados da grade do diálogo de pesquisa avançada.\nDeve emitir um objeto `SearchObservable` com `gridData` e `totalRecords`.\n\nEstrutura de `SearchObservable`: `{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string; }`",
|
|
1205
|
+
"imports": [
|
|
1206
|
+
"import { SearchObservable } from '@seniorsistemas/angular-components/dynamic-form';"
|
|
1207
|
+
]
|
|
1205
1208
|
},
|
|
1206
1209
|
"dataKey": {
|
|
1207
1210
|
"type": "string",
|
|
1208
1211
|
"required": true,
|
|
1209
|
-
"description":
|
|
1212
|
+
"description": "Nome da propriedade única do objeto que identifica cada registro."
|
|
1210
1213
|
},
|
|
1211
1214
|
"lookupDisplayField": {
|
|
1212
1215
|
"type": "string",
|
|
1213
1216
|
"required": true,
|
|
1214
|
-
"description":
|
|
1217
|
+
"description": "Nome da propriedade do objeto de resultado a ser exibida no input e nas tags."
|
|
1215
1218
|
},
|
|
1216
1219
|
"searchTitle": {
|
|
1217
1220
|
"type": "string",
|
|
1218
1221
|
"required": false,
|
|
1219
|
-
"description":
|
|
1222
|
+
"description": "Título do diálogo de pesquisa avançada."
|
|
1220
1223
|
},
|
|
1221
1224
|
"searchEmptyTitle": {
|
|
1222
1225
|
"type": "string",
|
|
1223
1226
|
"required": false,
|
|
1224
|
-
"description":
|
|
1227
|
+
"description": "Mensagem exibida quando a pesquisa não retorna resultados."
|
|
1225
1228
|
},
|
|
1226
1229
|
"filterLabel": {
|
|
1227
1230
|
"type": "string",
|
|
1228
1231
|
"required": false,
|
|
1229
|
-
"description":
|
|
1232
|
+
"description": "Label do campo de filtro no diálogo."
|
|
1230
1233
|
},
|
|
1231
1234
|
"filterTitle": {
|
|
1232
1235
|
"type": "string",
|
|
1233
1236
|
"required": false,
|
|
1234
|
-
"description":
|
|
1237
|
+
"description": "Título do campo de filtro no diálogo."
|
|
1235
1238
|
},
|
|
1236
1239
|
"clearLabel": {
|
|
1237
1240
|
"type": "string",
|
|
1238
1241
|
"required": false,
|
|
1239
|
-
"description":
|
|
1242
|
+
"description": "Label do botão de limpar filtros."
|
|
1240
1243
|
},
|
|
1241
1244
|
"cancelLabel": {
|
|
1242
1245
|
"type": "string",
|
|
1243
1246
|
"required": false,
|
|
1244
|
-
"description":
|
|
1247
|
+
"description": "Label do botão de cancelar e fechar o diálogo."
|
|
1245
1248
|
},
|
|
1246
1249
|
"selectLabel": {
|
|
1247
1250
|
"type": "string",
|
|
1248
1251
|
"required": false,
|
|
1249
|
-
"description":
|
|
1252
|
+
"description": "Label do botão de confirmar a seleção no diálogo."
|
|
1250
1253
|
},
|
|
1251
1254
|
"emptyMessage": {
|
|
1252
1255
|
"type": "string",
|
|
1253
1256
|
"required": false,
|
|
1254
|
-
"description":
|
|
1257
|
+
"description": "Mensagem exibida quando nenhum registro é encontrado na grade."
|
|
1255
1258
|
},
|
|
1256
1259
|
"recordLabel": {
|
|
1257
1260
|
"type": "string",
|
|
1258
1261
|
"required": false,
|
|
1259
|
-
"description":
|
|
1262
|
+
"description": "Label para um registro (singular)."
|
|
1260
1263
|
},
|
|
1261
1264
|
"recordsLabel": {
|
|
1262
1265
|
"type": "string",
|
|
1263
1266
|
"required": false,
|
|
1264
|
-
"description":
|
|
1267
|
+
"description": "Label para múltiplos registros (plural)."
|
|
1265
1268
|
},
|
|
1266
1269
|
"emptyFieldLabel": {
|
|
1267
1270
|
"type": "string",
|
|
1268
1271
|
"required": false,
|
|
1269
|
-
"description":
|
|
1272
|
+
"description": "Label exibida quando o campo está vazio e sem seleção."
|
|
1270
1273
|
},
|
|
1271
1274
|
"appendTo": {
|
|
1272
1275
|
"type": "string",
|
|
1273
1276
|
"required": false,
|
|
1274
|
-
"description":
|
|
1277
|
+
"description": "Elemento DOM ao qual o painel de sugestões será anexado.\nUse `'body'` para evitar problemas com `overflow: hidden`."
|
|
1275
1278
|
},
|
|
1276
1279
|
"autocompleteForceSelection": {
|
|
1277
1280
|
"type": "boolean",
|
|
1278
1281
|
"required": false,
|
|
1279
|
-
"description":
|
|
1282
|
+
"description": "Quando `true`, o usuário só pode selecionar valores da lista de sugestões;\ntexto livre é descartado ao perder o foco."
|
|
1280
1283
|
},
|
|
1281
1284
|
"maxlength": {
|
|
1282
1285
|
"type": "number | null",
|
|
@@ -1291,839 +1294,845 @@
|
|
|
1291
1294
|
"showEditOption": {
|
|
1292
1295
|
"type": "boolean",
|
|
1293
1296
|
"required": false,
|
|
1294
|
-
"description":
|
|
1297
|
+
"description": "Quando `true`, exibe o botão de editar o registro selecionado."
|
|
1295
1298
|
},
|
|
1296
1299
|
"showRemoveOption": {
|
|
1297
1300
|
"type": "boolean",
|
|
1298
1301
|
"required": false,
|
|
1299
|
-
"description":
|
|
1302
|
+
"description": "Quando `true`, exibe o botão de remover registros selecionados."
|
|
1300
1303
|
},
|
|
1301
1304
|
"sortableColumnsDisabled": {
|
|
1302
1305
|
"type": "string[]",
|
|
1303
1306
|
"required": false,
|
|
1304
|
-
"description":
|
|
1307
|
+
"description": "Lista de colunas que não podem ser ordenadas na grade do diálogo."
|
|
1305
1308
|
},
|
|
1306
1309
|
"defaultFilter": {
|
|
1307
1310
|
"type": "DefaultFilter[]",
|
|
1308
1311
|
"required": false,
|
|
1309
|
-
"description":
|
|
1312
|
+
"description": "Filtros padrão aplicados automaticamente à pesquisa.\nCada item define um campo e um valor fixo ou dinâmico (função).\n\nEstrutura de `DefaultFilter`: `{ field: string; value: string | (() => string); }`",
|
|
1313
|
+
"imports": [
|
|
1314
|
+
"import { DefaultFilter } from '@seniorsistemas/angular-components/dynamic-form';"
|
|
1315
|
+
]
|
|
1310
1316
|
},
|
|
1311
1317
|
"onLookupRequest": {
|
|
1312
1318
|
"type": "(query: string) => void",
|
|
1313
1319
|
"required": true,
|
|
1314
|
-
"description":
|
|
1320
|
+
"description": "Callback chamado quando o usuário digita para buscar sugestões.\nDeve atualizar o `suggestionsObservable` com os resultados da busca."
|
|
1315
1321
|
},
|
|
1316
1322
|
"onSearchRequest": {
|
|
1317
|
-
"type": "(event:
|
|
1323
|
+
"type": "(event: LookupSearchRequest) => void",
|
|
1318
1324
|
"required": true,
|
|
1319
|
-
"description":
|
|
1325
|
+
"description": "Callback chamado quando o usuário realiza uma pesquisa no diálogo avançado.\nDeve atualizar o `searchObservable` com os resultados paginados.\n\nEstrutura de `LookupSearchRequest`: `{ filterData: Record<string, any>; first: number; rows: number; }`",
|
|
1326
|
+
"imports": [
|
|
1327
|
+
"import { LookupSearchRequest } from '@seniorsistemas/angular-components/dynamic-form';"
|
|
1328
|
+
]
|
|
1320
1329
|
},
|
|
1321
1330
|
"onSelect": {
|
|
1322
1331
|
"type": "(event: any) => void",
|
|
1323
1332
|
"required": false,
|
|
1324
|
-
"description":
|
|
1333
|
+
"description": "Callback chamado quando o usuário seleciona um registro."
|
|
1325
1334
|
},
|
|
1326
1335
|
"onUnselect": {
|
|
1327
1336
|
"type": "(event: any) => void",
|
|
1328
1337
|
"required": false,
|
|
1329
|
-
"description":
|
|
1338
|
+
"description": "Callback chamado quando o usuário remove um registro selecionado (modo múltiplo)."
|
|
1330
1339
|
},
|
|
1331
1340
|
"onClear": {
|
|
1332
1341
|
"type": "(event: any) => void",
|
|
1333
1342
|
"required": false,
|
|
1334
|
-
"description":
|
|
1343
|
+
"description": "Callback chamado quando o usuário limpa todos os registros selecionados."
|
|
1335
1344
|
},
|
|
1336
1345
|
"onBlur": {
|
|
1337
1346
|
"type": "(event: FocusEvent) => void",
|
|
1338
1347
|
"required": false,
|
|
1339
|
-
"description":
|
|
1348
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
1340
1349
|
},
|
|
1341
1350
|
"onAdd": {
|
|
1342
1351
|
"type": "() => void",
|
|
1343
1352
|
"required": false,
|
|
1344
|
-
"description":
|
|
1353
|
+
"description": "Callback chamado quando o usuário clica no botão de adicionar novo registro."
|
|
1345
1354
|
},
|
|
1346
1355
|
"onEdit": {
|
|
1347
1356
|
"type": "(selectedItem: unknown) => void",
|
|
1348
1357
|
"required": false,
|
|
1349
|
-
"description":
|
|
1358
|
+
"description": "Callback chamado quando o usuário clica no botão de editar. Recebe o item selecionado."
|
|
1350
1359
|
},
|
|
1351
1360
|
"onRemove": {
|
|
1352
1361
|
"type": "(selectedItems: unknown[]) => void",
|
|
1353
1362
|
"required": false,
|
|
1354
|
-
"description":
|
|
1363
|
+
"description": "Callback chamado quando o usuário clica no botão de remover. Recebe os itens selecionados."
|
|
1355
1364
|
},
|
|
1356
1365
|
"onClearButtonClick": {
|
|
1357
1366
|
"type": "() => void",
|
|
1358
1367
|
"required": false,
|
|
1359
|
-
"description":
|
|
1368
|
+
"description": "Callback chamado quando o usuário clica no botão de limpar do campo (X)."
|
|
1360
1369
|
}
|
|
1361
1370
|
}
|
|
1362
1371
|
},
|
|
1363
1372
|
"integer": {
|
|
1364
1373
|
"interface": "NumberFieldConfig",
|
|
1365
1374
|
"sourceFile": "number-field.ts",
|
|
1366
|
-
"description":
|
|
1375
|
+
"description": "Configuração para campos numéricos inteiros ou de número legado.",
|
|
1367
1376
|
"ownProperties": {
|
|
1368
1377
|
"type": {
|
|
1369
1378
|
"type": "'integer' | 'legacyNumber'",
|
|
1370
1379
|
"required": true,
|
|
1371
|
-
"description":
|
|
1380
|
+
"description": "`'integer'` — campo numérico inteiro.\n`'legacyNumber'` — campo numérico legado."
|
|
1372
1381
|
},
|
|
1373
1382
|
"numberLocaleOptions": {
|
|
1374
1383
|
"type": "NumberLocaleOptions",
|
|
1375
1384
|
"required": false,
|
|
1376
|
-
"description":
|
|
1385
|
+
"description": "Opções de localização numérica."
|
|
1377
1386
|
},
|
|
1378
1387
|
"browserAutocomplete": {
|
|
1379
1388
|
"type": "boolean",
|
|
1380
1389
|
"required": false,
|
|
1381
|
-
"description":
|
|
1390
|
+
"description": "Controla o autocomplete nativo do browser."
|
|
1382
1391
|
},
|
|
1383
1392
|
"precision": {
|
|
1384
1393
|
"type": "Function | number",
|
|
1385
1394
|
"required": false,
|
|
1386
|
-
"description":
|
|
1395
|
+
"description": "Número total de dígitos aceitos. Pode ser função para controle dinâmico."
|
|
1387
1396
|
},
|
|
1388
1397
|
"scale": {
|
|
1389
1398
|
"type": "(() => number) | number",
|
|
1390
1399
|
"required": false,
|
|
1391
|
-
"description":
|
|
1400
|
+
"description": "Número de casas decimais. Pode ser função para controle dinâmico."
|
|
1392
1401
|
},
|
|
1393
1402
|
"alignTo": {
|
|
1394
1403
|
"type": "NumberAlignmentOption",
|
|
1395
1404
|
"required": false,
|
|
1396
|
-
"description":
|
|
1405
|
+
"description": "Alinhamento do texto no campo."
|
|
1397
1406
|
},
|
|
1398
1407
|
"mask": {
|
|
1399
1408
|
"type": "stringFn | string",
|
|
1400
1409
|
"required": false,
|
|
1401
|
-
"description":
|
|
1410
|
+
"description": "Máscara de entrada. Pode ser string estática ou função."
|
|
1402
1411
|
},
|
|
1403
1412
|
"leftAddon": {
|
|
1404
1413
|
"type": "AddonConfig",
|
|
1405
1414
|
"required": false,
|
|
1406
|
-
"description":
|
|
1415
|
+
"description": "Addon exibido à esquerda do campo."
|
|
1407
1416
|
},
|
|
1408
1417
|
"rightAddon": {
|
|
1409
1418
|
"type": "AddonConfig",
|
|
1410
1419
|
"required": false,
|
|
1411
|
-
"description":
|
|
1420
|
+
"description": "Addon exibido à direita do campo."
|
|
1412
1421
|
},
|
|
1413
1422
|
"localizedNumber": {
|
|
1414
1423
|
"type": "boolean",
|
|
1415
1424
|
"required": false,
|
|
1416
|
-
"description":
|
|
1425
|
+
"description": "Quando `true`, usa o componente de número localizado."
|
|
1417
1426
|
},
|
|
1418
1427
|
"onBlur": {
|
|
1419
1428
|
"type": "(event: Event) => void",
|
|
1420
1429
|
"required": false,
|
|
1421
|
-
"description":
|
|
1430
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
1422
1431
|
},
|
|
1423
1432
|
"onFocus": {
|
|
1424
1433
|
"type": "(event: Event) => void",
|
|
1425
1434
|
"required": false,
|
|
1426
|
-
"description":
|
|
1435
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
1427
1436
|
},
|
|
1428
1437
|
"onComplete": {
|
|
1429
|
-
"type": "(event:
|
|
1438
|
+
"type": "(event: Event) => void",
|
|
1430
1439
|
"required": false,
|
|
1431
|
-
"description":
|
|
1440
|
+
"description": "Callback chamado quando a máscara é completamente preenchida."
|
|
1432
1441
|
},
|
|
1433
1442
|
"onInput": {
|
|
1434
1443
|
"type": "(event: Event) => void",
|
|
1435
1444
|
"required": false,
|
|
1436
|
-
"description":
|
|
1445
|
+
"description": "Callback chamado a cada alteração no valor do input."
|
|
1437
1446
|
}
|
|
1438
1447
|
}
|
|
1439
1448
|
},
|
|
1440
1449
|
"legacyNumber": {
|
|
1441
1450
|
"interface": "NumberFieldConfig",
|
|
1442
1451
|
"sourceFile": "number-field.ts",
|
|
1443
|
-
"description":
|
|
1452
|
+
"description": "Configuração para campos numéricos inteiros ou de número legado.",
|
|
1444
1453
|
"ownProperties": {
|
|
1445
1454
|
"type": {
|
|
1446
1455
|
"type": "'integer' | 'legacyNumber'",
|
|
1447
1456
|
"required": true,
|
|
1448
|
-
"description":
|
|
1457
|
+
"description": "`'integer'` — campo numérico inteiro.\n`'legacyNumber'` — campo numérico legado."
|
|
1449
1458
|
},
|
|
1450
1459
|
"numberLocaleOptions": {
|
|
1451
1460
|
"type": "NumberLocaleOptions",
|
|
1452
1461
|
"required": false,
|
|
1453
|
-
"description":
|
|
1462
|
+
"description": "Opções de localização numérica."
|
|
1454
1463
|
},
|
|
1455
1464
|
"browserAutocomplete": {
|
|
1456
1465
|
"type": "boolean",
|
|
1457
1466
|
"required": false,
|
|
1458
|
-
"description":
|
|
1467
|
+
"description": "Controla o autocomplete nativo do browser."
|
|
1459
1468
|
},
|
|
1460
1469
|
"precision": {
|
|
1461
1470
|
"type": "Function | number",
|
|
1462
1471
|
"required": false,
|
|
1463
|
-
"description":
|
|
1472
|
+
"description": "Número total de dígitos aceitos. Pode ser função para controle dinâmico."
|
|
1464
1473
|
},
|
|
1465
1474
|
"scale": {
|
|
1466
1475
|
"type": "(() => number) | number",
|
|
1467
1476
|
"required": false,
|
|
1468
|
-
"description":
|
|
1477
|
+
"description": "Número de casas decimais. Pode ser função para controle dinâmico."
|
|
1469
1478
|
},
|
|
1470
1479
|
"alignTo": {
|
|
1471
1480
|
"type": "NumberAlignmentOption",
|
|
1472
1481
|
"required": false,
|
|
1473
|
-
"description":
|
|
1482
|
+
"description": "Alinhamento do texto no campo."
|
|
1474
1483
|
},
|
|
1475
1484
|
"mask": {
|
|
1476
1485
|
"type": "stringFn | string",
|
|
1477
1486
|
"required": false,
|
|
1478
|
-
"description":
|
|
1487
|
+
"description": "Máscara de entrada. Pode ser string estática ou função."
|
|
1479
1488
|
},
|
|
1480
1489
|
"leftAddon": {
|
|
1481
1490
|
"type": "AddonConfig",
|
|
1482
1491
|
"required": false,
|
|
1483
|
-
"description":
|
|
1492
|
+
"description": "Addon exibido à esquerda do campo."
|
|
1484
1493
|
},
|
|
1485
1494
|
"rightAddon": {
|
|
1486
1495
|
"type": "AddonConfig",
|
|
1487
1496
|
"required": false,
|
|
1488
|
-
"description":
|
|
1497
|
+
"description": "Addon exibido à direita do campo."
|
|
1489
1498
|
},
|
|
1490
1499
|
"localizedNumber": {
|
|
1491
1500
|
"type": "boolean",
|
|
1492
1501
|
"required": false,
|
|
1493
|
-
"description":
|
|
1502
|
+
"description": "Quando `true`, usa o componente de número localizado."
|
|
1494
1503
|
},
|
|
1495
1504
|
"onBlur": {
|
|
1496
1505
|
"type": "(event: Event) => void",
|
|
1497
1506
|
"required": false,
|
|
1498
|
-
"description":
|
|
1507
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
1499
1508
|
},
|
|
1500
1509
|
"onFocus": {
|
|
1501
1510
|
"type": "(event: Event) => void",
|
|
1502
1511
|
"required": false,
|
|
1503
|
-
"description":
|
|
1512
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
1504
1513
|
},
|
|
1505
1514
|
"onComplete": {
|
|
1506
|
-
"type": "(event:
|
|
1515
|
+
"type": "(event: Event) => void",
|
|
1507
1516
|
"required": false,
|
|
1508
|
-
"description":
|
|
1517
|
+
"description": "Callback chamado quando a máscara é completamente preenchida."
|
|
1509
1518
|
},
|
|
1510
1519
|
"onInput": {
|
|
1511
1520
|
"type": "(event: Event) => void",
|
|
1512
1521
|
"required": false,
|
|
1513
|
-
"description":
|
|
1522
|
+
"description": "Callback chamado a cada alteração no valor do input."
|
|
1514
1523
|
}
|
|
1515
1524
|
}
|
|
1516
1525
|
},
|
|
1517
1526
|
"password": {
|
|
1518
1527
|
"interface": "PasswordFieldConfig",
|
|
1519
1528
|
"sourceFile": "password-field.ts",
|
|
1520
|
-
"description":
|
|
1529
|
+
"description": "Configuração para campo de senha com indicador de força.\n\nRenderiza um input de senha com:\n- Togglear a visibilidade da senha (mostrar/ocultar)\n- Indicador visual de força da senha (fraca/média/forte)\n- Configuração customizada das regras de validação da força",
|
|
1521
1530
|
"ownProperties": {
|
|
1522
1531
|
"type": {
|
|
1523
1532
|
"type": "'password'",
|
|
1524
1533
|
"required": true,
|
|
1525
|
-
"description":
|
|
1534
|
+
"description": "Tipo do campo: sempre `'password'`."
|
|
1526
1535
|
},
|
|
1527
1536
|
"inputType": {
|
|
1528
1537
|
"type": "string",
|
|
1529
1538
|
"required": false,
|
|
1530
|
-
"description":
|
|
1539
|
+
"description": "Tipo HTML do input."
|
|
1531
1540
|
},
|
|
1532
1541
|
"keyFilter": {
|
|
1533
1542
|
"type": "any",
|
|
1534
1543
|
"required": false,
|
|
1535
|
-
"description":
|
|
1544
|
+
"description": "Filtro de teclas aceitas. Aceita regex, string ou qualquer valor aceito pelo componente."
|
|
1536
1545
|
},
|
|
1537
1546
|
"maxLength": {
|
|
1538
1547
|
"type": "string | number",
|
|
1539
1548
|
"required": false,
|
|
1540
|
-
"description":
|
|
1549
|
+
"description": "Número máximo de caracteres permitidos."
|
|
1541
1550
|
},
|
|
1542
1551
|
"passwordStrength": {
|
|
1543
1552
|
"type": "boolean",
|
|
1544
1553
|
"required": true,
|
|
1545
|
-
"description":
|
|
1554
|
+
"description": "Quando `true`, exibe a barra de força da senha abaixo do campo.\nRequer `passwordStrengthOptions` para personalizar as regras de avaliação."
|
|
1546
1555
|
},
|
|
1547
1556
|
"passwordStrengthOptions": {
|
|
1548
1557
|
"type": "PasswordStrengthOptions",
|
|
1549
1558
|
"required": false,
|
|
1550
|
-
"description":
|
|
1559
|
+
"description": "Opções de configuração da barra de força da senha.\nObrigatório quando `passwordStrength: true`."
|
|
1551
1560
|
},
|
|
1552
1561
|
"showToggle": {
|
|
1553
1562
|
"type": "boolean",
|
|
1554
1563
|
"required": true,
|
|
1555
|
-
"description":
|
|
1564
|
+
"description": "Quando `true`, exibe o botão de alternar visibilidade da senha (olho/olho fechado)."
|
|
1556
1565
|
},
|
|
1557
1566
|
"style": {
|
|
1558
1567
|
"type": "{\n [klass: string]: any;\n}",
|
|
1559
1568
|
"required": false,
|
|
1560
|
-
"description":
|
|
1569
|
+
"description": "Estilos CSS inline aplicados ao elemento de input."
|
|
1561
1570
|
},
|
|
1562
1571
|
"onBlur": {
|
|
1563
1572
|
"type": "(event: FocusEvent) => void",
|
|
1564
1573
|
"required": false,
|
|
1565
|
-
"description":
|
|
1574
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
1566
1575
|
},
|
|
1567
1576
|
"onFocus": {
|
|
1568
1577
|
"type": "(event: FocusEvent) => void",
|
|
1569
1578
|
"required": false,
|
|
1570
|
-
"description":
|
|
1579
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
1571
1580
|
},
|
|
1572
1581
|
"onComplete": {
|
|
1573
1582
|
"type": "(event: FocusEvent) => void",
|
|
1574
1583
|
"required": false,
|
|
1575
|
-
"description":
|
|
1584
|
+
"description": "Callback chamado quando a máscara é completamente preenchida."
|
|
1576
1585
|
},
|
|
1577
1586
|
"onInput": {
|
|
1578
1587
|
"type": "(event: Event) => void",
|
|
1579
1588
|
"required": false,
|
|
1580
|
-
"description":
|
|
1589
|
+
"description": "Callback chamado a cada alteração no valor do input."
|
|
1581
1590
|
}
|
|
1582
1591
|
}
|
|
1583
1592
|
},
|
|
1584
1593
|
"profilePicture": {
|
|
1585
1594
|
"interface": "ProfilePictureConfig",
|
|
1586
1595
|
"sourceFile": "profile-picture.ts",
|
|
1587
|
-
"description":
|
|
1596
|
+
"description": "Configuração para campo de foto de perfil com recorte.\n\nExibe uma área para upload e recorte de imagem de perfil.\nSuporta pré-visualização, recorte interativo (cropper), validação de tipo e tamanho,\nconfirmação de remoção e labels customizadas para todas as ações.",
|
|
1588
1597
|
"ownProperties": {
|
|
1589
1598
|
"type": {
|
|
1590
1599
|
"type": "'profilePicture'",
|
|
1591
1600
|
"required": true,
|
|
1592
|
-
"description":
|
|
1601
|
+
"description": "Tipo do campo: sempre `'profilePicture'`."
|
|
1593
1602
|
},
|
|
1594
1603
|
"simpleTitle": {
|
|
1595
1604
|
"type": "string",
|
|
1596
1605
|
"required": true,
|
|
1597
|
-
"description":
|
|
1606
|
+
"description": "Título exibido no modo simples (sem imagem carregada)."
|
|
1598
1607
|
},
|
|
1599
1608
|
"actionTitle": {
|
|
1600
1609
|
"type": "string",
|
|
1601
1610
|
"required": true,
|
|
1602
|
-
"description":
|
|
1611
|
+
"description": "Título exibido quando o painel de ações está ativo (com imagem carregada)."
|
|
1603
1612
|
},
|
|
1604
1613
|
"subtitle": {
|
|
1605
1614
|
"type": "string",
|
|
1606
1615
|
"required": true,
|
|
1607
|
-
"description":
|
|
1616
|
+
"description": "Subtexto descritivo exibido abaixo do título."
|
|
1608
1617
|
},
|
|
1609
1618
|
"aspectRatio": {
|
|
1610
1619
|
"type": "number",
|
|
1611
1620
|
"required": true,
|
|
1612
|
-
"description":
|
|
1621
|
+
"description": "Proporção de aspecto da área de recorte (largura / altura)."
|
|
1613
1622
|
},
|
|
1614
1623
|
"cropperLabelsConfig": {
|
|
1615
1624
|
"type": "CropperLabelsConfig",
|
|
1616
1625
|
"required": false,
|
|
1617
|
-
"description":
|
|
1626
|
+
"description": "Labels dos botões exibidos no diálogo do cropper.\nImportado de `@seniorsistemas/angular-components/profile-picture-picker`."
|
|
1618
1627
|
},
|
|
1619
1628
|
"removeButtonLabel": {
|
|
1620
1629
|
"type": "string",
|
|
1621
1630
|
"required": false,
|
|
1622
|
-
"description":
|
|
1631
|
+
"description": "Label do botão de remover a imagem atual."
|
|
1623
1632
|
},
|
|
1624
1633
|
"changeButtonLabel": {
|
|
1625
1634
|
"type": "string",
|
|
1626
1635
|
"required": false,
|
|
1627
|
-
"description":
|
|
1636
|
+
"description": "Label do botão de alterar a imagem atual."
|
|
1628
1637
|
},
|
|
1629
1638
|
"confirmationTexts": {
|
|
1630
1639
|
"type": "ConfirmationTexts",
|
|
1631
1640
|
"required": false,
|
|
1632
|
-
"description":
|
|
1641
|
+
"description": "Textos de confirmação exibidos no diálogo de remoção da imagem."
|
|
1633
1642
|
},
|
|
1634
1643
|
"maxFileSize": {
|
|
1635
1644
|
"type": "number",
|
|
1636
1645
|
"required": false,
|
|
1637
|
-
"description":
|
|
1646
|
+
"description": "Tamanho máximo do arquivo aceito em bytes."
|
|
1638
1647
|
},
|
|
1639
1648
|
"accept": {
|
|
1640
1649
|
"type": "string",
|
|
1641
1650
|
"required": false,
|
|
1642
|
-
"description":
|
|
1651
|
+
"description": "Tipos MIME aceitos."
|
|
1643
1652
|
},
|
|
1644
1653
|
"supportedExtensions": {
|
|
1645
1654
|
"type": "string[]",
|
|
1646
1655
|
"required": false,
|
|
1647
|
-
"description":
|
|
1656
|
+
"description": "Extensões de arquivo aceitas (com ponto)."
|
|
1648
1657
|
},
|
|
1649
1658
|
"onChangeImage": {
|
|
1650
1659
|
"type": "(event: string | ProfilePicturePickerData) => void",
|
|
1651
1660
|
"required": false,
|
|
1652
|
-
"description":
|
|
1661
|
+
"description": "Callback chamado quando a imagem é alterada após o recorte.\nRecebe a imagem em base64 ou objeto `ProfilePicturePickerData`."
|
|
1653
1662
|
},
|
|
1654
1663
|
"onRemovedImage": {
|
|
1655
1664
|
"type": "() => void",
|
|
1656
1665
|
"required": false,
|
|
1657
|
-
"description":
|
|
1666
|
+
"description": "Callback chamado quando a imagem é removida pelo usuário."
|
|
1658
1667
|
},
|
|
1659
1668
|
"onInvalidFile": {
|
|
1660
1669
|
"type": "(event: FileValidationErrors) => void",
|
|
1661
1670
|
"required": false,
|
|
1662
|
-
"description":
|
|
1671
|
+
"description": "Callback chamado quando o arquivo selecionado não passa na validação.\nRecebe os erros de validação ocorridos (ex: tamanho, extensão)."
|
|
1663
1672
|
}
|
|
1664
1673
|
}
|
|
1665
1674
|
},
|
|
1666
1675
|
"radioButton": {
|
|
1667
1676
|
"interface": "RadioButtonFieldConfig",
|
|
1668
1677
|
"sourceFile": "radio-button-field.ts",
|
|
1669
|
-
"description":
|
|
1678
|
+
"description": "Configuração para campo de seleção única com radio buttons.\n\nExibe um grupo de radio buttons onde o usuário pode selecionar exatamente uma opção.\nA lista de opções é definida estaticamente via `options`.\n\nUse quando o número de opções é pequeno (até ~5 itens) e todas devem estar visíveis.\nPara listas longas, prefira `type: 'enum'` com dropdown.",
|
|
1670
1679
|
"ownProperties": {
|
|
1671
1680
|
"type": {
|
|
1672
1681
|
"type": "'radioButton'",
|
|
1673
1682
|
"required": true,
|
|
1674
|
-
"description":
|
|
1683
|
+
"description": "Tipo do campo: sempre `'radioButton'`."
|
|
1675
1684
|
},
|
|
1676
1685
|
"verticalAlignment": {
|
|
1677
1686
|
"type": "boolean",
|
|
1678
1687
|
"required": false,
|
|
1679
|
-
"description":
|
|
1688
|
+
"description": "Quando `true`, os radio buttons são exibidos verticalmente (empilhados).\nPor padrão, são exibidos horizontalmente."
|
|
1680
1689
|
},
|
|
1681
1690
|
"clearLabel": {
|
|
1682
1691
|
"type": "string",
|
|
1683
1692
|
"required": false,
|
|
1684
|
-
"description":
|
|
1693
|
+
"description": "Label do botão de limpar a seleção. Exibido quando `showClear: true`."
|
|
1685
1694
|
},
|
|
1686
1695
|
"options": {
|
|
1687
1696
|
"type": "RationButtonOption[]",
|
|
1688
1697
|
"required": true,
|
|
1689
|
-
"description":
|
|
1698
|
+
"description": "Lista de opções disponíveis para seleção. Obrigatório."
|
|
1690
1699
|
},
|
|
1691
1700
|
"onBlur": {
|
|
1692
1701
|
"type": "(event: Event) => void",
|
|
1693
1702
|
"required": false,
|
|
1694
|
-
"description":
|
|
1703
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
1695
1704
|
},
|
|
1696
1705
|
"onFocus": {
|
|
1697
1706
|
"type": "(event: FocusEvent) => void",
|
|
1698
1707
|
"required": false,
|
|
1699
|
-
"description":
|
|
1708
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
1700
1709
|
},
|
|
1701
1710
|
"onClick": {
|
|
1702
1711
|
"type": "(event: any) => void",
|
|
1703
1712
|
"required": false,
|
|
1704
|
-
"description":
|
|
1713
|
+
"description": "Callback chamado quando o usuário clica em uma opção."
|
|
1705
1714
|
},
|
|
1706
1715
|
"showClear": {
|
|
1707
1716
|
"type": "boolean",
|
|
1708
1717
|
"required": false,
|
|
1709
|
-
"description":
|
|
1718
|
+
"description": "Quando `true`, exibe um botão para limpar a seleção atual.\nO texto do botão é definido em `clearLabel`."
|
|
1710
1719
|
}
|
|
1711
1720
|
}
|
|
1712
1721
|
},
|
|
1713
1722
|
"enum": {
|
|
1714
1723
|
"interface": "SelectFieldConfig",
|
|
1715
1724
|
"sourceFile": "select-field.ts",
|
|
1716
|
-
"description":
|
|
1725
|
+
"description": "Configuração para campo de seleção (dropdown/select).\n\nExibe um dropdown com lista de opções estáticas ou dinâmicas.\nSuporta seleção múltipla, filtro de pesquisa, opções editadas, grupos hierárquicos\ne badges coloridos por opção.\n\nPara listas grandes com busca no servidor, prefira `type: 'autocomplete'` ou `type: 'lookup'`.",
|
|
1717
1726
|
"ownProperties": {
|
|
1718
1727
|
"type": {
|
|
1719
1728
|
"type": "'enum'",
|
|
1720
1729
|
"required": true,
|
|
1721
|
-
"description":
|
|
1730
|
+
"description": "Tipo do campo: sempre `'enum'`."
|
|
1722
1731
|
},
|
|
1723
1732
|
"optionLabel": {
|
|
1724
1733
|
"type": "string",
|
|
1725
1734
|
"required": false,
|
|
1726
|
-
"description":
|
|
1735
|
+
"description": "Nome da propriedade do objeto de opção usada como label visível."
|
|
1727
1736
|
},
|
|
1728
1737
|
"optionValue": {
|
|
1729
1738
|
"type": "string",
|
|
1730
1739
|
"required": false,
|
|
1731
|
-
"description":
|
|
1740
|
+
"description": "Nome da propriedade do objeto de opção usada como valor armazenado."
|
|
1732
1741
|
},
|
|
1733
1742
|
"dataKey": {
|
|
1734
1743
|
"type": "string",
|
|
1735
1744
|
"required": false,
|
|
1736
|
-
"description":
|
|
1745
|
+
"description": "Chave única identificadora de cada opção. Usada para rastrear seleção corretamente."
|
|
1737
1746
|
},
|
|
1738
1747
|
"autoDisplayFirst": {
|
|
1739
1748
|
"type": "boolean",
|
|
1740
1749
|
"required": false,
|
|
1741
|
-
"description":
|
|
1750
|
+
"description": "Quando `true`, a primeira opção da lista é selecionada automaticamente."
|
|
1742
1751
|
},
|
|
1743
1752
|
"options": {
|
|
1744
1753
|
"type": "selectOptionFn | SelectOption[]",
|
|
1745
1754
|
"required": true,
|
|
1746
|
-
"description":
|
|
1755
|
+
"description": "Lista de opções disponíveis. Pode ser um array estático ou uma função que retorna o array.\nCada opção pode ter `label`, `value`, `items` (subgrupo) e `badge`."
|
|
1747
1756
|
},
|
|
1748
1757
|
"multiple": {
|
|
1749
1758
|
"type": "boolean",
|
|
1750
1759
|
"required": false,
|
|
1751
|
-
"description":
|
|
1760
|
+
"description": "Quando `true`, permite selecionar múltiplas opções.\nO valor do campo será um array."
|
|
1752
1761
|
},
|
|
1753
1762
|
"multipleSelectedLabel": {
|
|
1754
1763
|
"type": "string",
|
|
1755
1764
|
"required": false,
|
|
1756
|
-
"description":
|
|
1765
|
+
"description": "Label exibida no campo quando múltiplas opções forem selecionadas."
|
|
1757
1766
|
},
|
|
1758
1767
|
"onClick": {
|
|
1759
1768
|
"type": "(event: any) => void",
|
|
1760
1769
|
"required": false,
|
|
1761
|
-
"description":
|
|
1770
|
+
"description": "Callback chamado quando o usuário clica no dropdown."
|
|
1762
1771
|
},
|
|
1763
1772
|
"onChange": {
|
|
1764
1773
|
"type": "(event: any) => void",
|
|
1765
1774
|
"required": false,
|
|
1766
|
-
"description":
|
|
1775
|
+
"description": "Callback chamado quando o valor selecionado muda."
|
|
1767
1776
|
},
|
|
1768
1777
|
"emptyMessage": {
|
|
1769
1778
|
"type": "string",
|
|
1770
1779
|
"required": false,
|
|
1771
|
-
"description":
|
|
1780
|
+
"description": "Mensagem exibida quando a lista está vazia ou a pesquisa não retorna resultados."
|
|
1772
1781
|
},
|
|
1773
1782
|
"editable": {
|
|
1774
1783
|
"type": "boolean",
|
|
1775
1784
|
"required": false,
|
|
1776
|
-
"description":
|
|
1785
|
+
"description": "Quando `true`, o campo se torna um combobox editável, permitindo digitar um valor livre\nalém das opções da lista."
|
|
1777
1786
|
},
|
|
1778
1787
|
"filter": {
|
|
1779
1788
|
"type": "boolean",
|
|
1780
1789
|
"required": false,
|
|
1781
|
-
"description":
|
|
1790
|
+
"description": "Quando `true`, exibe um campo de pesquisa interno no dropdown para filtrar as opções."
|
|
1782
1791
|
},
|
|
1783
1792
|
"group": {
|
|
1784
1793
|
"type": "boolean",
|
|
1785
1794
|
"required": false,
|
|
1786
|
-
"description":
|
|
1795
|
+
"description": "Quando `true`, agrupa as opções por categoria usando a propriedade `items` de cada opção."
|
|
1787
1796
|
},
|
|
1788
1797
|
"showClear": {
|
|
1789
1798
|
"type": "boolean",
|
|
1790
1799
|
"required": false,
|
|
1791
|
-
"description":
|
|
1800
|
+
"description": "Quando `true`, exibe um botão de limpar a seleção (X) no campo."
|
|
1792
1801
|
}
|
|
1793
1802
|
}
|
|
1794
1803
|
},
|
|
1795
1804
|
"slider": {
|
|
1796
1805
|
"interface": "SliderFieldConfig",
|
|
1797
1806
|
"sourceFile": "slider-field.ts",
|
|
1798
|
-
"description":
|
|
1807
|
+
"description": "Configuração para campo de controle deslizante (slider).\n\nExibe um slider interativo para seleção de valor numérico dentro de um intervalo.\nSuporta modo de intervalo (range) com dois pontos de seleção, orientação\nhorizontal/vertical, step configurado e exibição de prefixo/sufixo.",
|
|
1799
1808
|
"ownProperties": {
|
|
1800
1809
|
"type": {
|
|
1801
1810
|
"type": "'slider'",
|
|
1802
1811
|
"required": true,
|
|
1803
|
-
"description":
|
|
1812
|
+
"description": "Tipo do campo: sempre `'slider'`."
|
|
1804
1813
|
},
|
|
1805
1814
|
"onChange": {
|
|
1806
1815
|
"type": "(event: any) => void",
|
|
1807
1816
|
"required": false,
|
|
1808
|
-
"description":
|
|
1817
|
+
"description": "Callback chamado enquanto o usuário arrastar o slider (alteração contínua)."
|
|
1809
1818
|
},
|
|
1810
1819
|
"onSlideEnd": {
|
|
1811
1820
|
"type": "(event: any) => void",
|
|
1812
1821
|
"required": false,
|
|
1813
|
-
"description":
|
|
1822
|
+
"description": "Callback chamado quando o usuário solta o slider (fim do arraste)."
|
|
1814
1823
|
},
|
|
1815
1824
|
"range": {
|
|
1816
1825
|
"type": "boolean",
|
|
1817
1826
|
"required": false,
|
|
1818
|
-
"description":
|
|
1827
|
+
"description": "Quando `true`, exibe dois pontos de seleção para definir um intervalo (min-max).\nO valor do campo será um array `[min, max]` em vez de um número único."
|
|
1819
1828
|
},
|
|
1820
1829
|
"min": {
|
|
1821
1830
|
"type": "number",
|
|
1822
1831
|
"required": false,
|
|
1823
|
-
"description":
|
|
1832
|
+
"description": "Valor mínimo do slider."
|
|
1824
1833
|
},
|
|
1825
1834
|
"max": {
|
|
1826
1835
|
"type": "number",
|
|
1827
1836
|
"required": false,
|
|
1828
|
-
"description":
|
|
1837
|
+
"description": "Valor máximo do slider."
|
|
1829
1838
|
},
|
|
1830
1839
|
"step": {
|
|
1831
1840
|
"type": "number",
|
|
1832
1841
|
"required": false,
|
|
1833
|
-
"description":
|
|
1842
|
+
"description": "Incremento de cada passo ao mover o slider."
|
|
1834
1843
|
},
|
|
1835
1844
|
"orientation": {
|
|
1836
1845
|
"type": "'horizontal' | 'vertical'",
|
|
1837
1846
|
"required": true,
|
|
1838
|
-
"description": "
|
|
1847
|
+
"description": "Orientação do slider.\n`'horizontal'` — slider na horizontal (padrão).\n`'vertical'` — slider na vertical."
|
|
1839
1848
|
},
|
|
1840
1849
|
"disabled": {
|
|
1841
1850
|
"type": "boolean",
|
|
1842
1851
|
"required": false,
|
|
1843
|
-
"description":
|
|
1852
|
+
"description": "Quando `true`, o slider fica desabilitado (não interativo e sem alteração de valor)."
|
|
1844
1853
|
},
|
|
1845
1854
|
"prefix": {
|
|
1846
1855
|
"type": "string",
|
|
1847
1856
|
"required": false,
|
|
1848
|
-
"description":
|
|
1857
|
+
"description": "Texto exibido antes do valor do slider (ex: `'R$'`, `'>'`)."
|
|
1849
1858
|
},
|
|
1850
1859
|
"suffix": {
|
|
1851
1860
|
"type": "string",
|
|
1852
1861
|
"required": false,
|
|
1853
|
-
"description":
|
|
1862
|
+
"description": "Texto exibido após o valor do slider (ex: `'km'`, `'%'`)."
|
|
1854
1863
|
},
|
|
1855
1864
|
"rangeSeparator": {
|
|
1856
1865
|
"type": "string",
|
|
1857
1866
|
"required": false,
|
|
1858
|
-
"description":
|
|
1867
|
+
"description": "Texto exibido entre os dois valores quando `range: true`."
|
|
1859
1868
|
},
|
|
1860
1869
|
"defaultValue": {
|
|
1861
1870
|
"type": "any",
|
|
1862
1871
|
"required": false,
|
|
1863
|
-
"description":
|
|
1872
|
+
"description": "Valor inicial do slider ao renderizar o formulário.\nPara modo range, passe um array `[min, max]`."
|
|
1864
1873
|
}
|
|
1865
1874
|
}
|
|
1866
1875
|
},
|
|
1867
1876
|
"starRating": {
|
|
1868
1877
|
"interface": "StarRatingFieldConfig",
|
|
1869
1878
|
"sourceFile": "star-rating-field.ts",
|
|
1870
|
-
"description":
|
|
1879
|
+
"description": "Configuração para campo de avaliação com estrelas.\n\nRenderiza um componente de rating visual com estrelas clicáveis.\nO valor do campo é um número inteiro correspondente à estrela selecionada.",
|
|
1871
1880
|
"ownProperties": {
|
|
1872
1881
|
"type": {
|
|
1873
1882
|
"type": "'starRating'",
|
|
1874
1883
|
"required": true,
|
|
1875
|
-
"description":
|
|
1884
|
+
"description": "Tipo do campo: sempre `'starRating'`."
|
|
1876
1885
|
},
|
|
1877
1886
|
"starRange": {
|
|
1878
1887
|
"type": "number",
|
|
1879
1888
|
"required": true,
|
|
1880
|
-
"description":
|
|
1889
|
+
"description": "Número total de estrelas exibidas."
|
|
1881
1890
|
},
|
|
1882
1891
|
"disabled": {
|
|
1883
1892
|
"type": "boolean | booleanFn",
|
|
1884
1893
|
"required": true,
|
|
1885
|
-
"description":
|
|
1894
|
+
"description": "Quando `true` ou função que retorna `true`, o componente fica desabilitado (somente leitura).\nUse função para controle dinâmico baseado no estado do formulário."
|
|
1886
1895
|
},
|
|
1887
1896
|
"justifyContent": {
|
|
1888
1897
|
"type": "JustifyTypes",
|
|
1889
1898
|
"required": false,
|
|
1890
|
-
"description":
|
|
1899
|
+
"description": "Alinhamento horizontal das estrelas dentro da célula do formulário.\nImportado de `@seniorsistemas/angular-components/star-rating`."
|
|
1891
1900
|
},
|
|
1892
1901
|
"valueChange": {
|
|
1893
1902
|
"type": "(star: number) => any",
|
|
1894
1903
|
"required": false,
|
|
1895
|
-
"description":
|
|
1904
|
+
"description": "Callback chamado quando a estrela selecionada muda.\nRecebe o valor numérico da estrela clicada."
|
|
1896
1905
|
}
|
|
1897
1906
|
}
|
|
1898
1907
|
},
|
|
1899
1908
|
"textArea": {
|
|
1900
1909
|
"interface": "TextAreaFieldConfig",
|
|
1901
1910
|
"sourceFile": "text-area-field.ts",
|
|
1902
|
-
"description":
|
|
1911
|
+
"description": "Configuração para campo de área de texto multilinha.\n\nExibe um textarea com suporte a reconhecimento de voz, controle de linhas/colunas,\nmodo somente-leitura e limite de caracteres.\n\nPara funcionalidades de geração de texto por IA, use `type: 'contentGenerator'`.",
|
|
1903
1912
|
"ownProperties": {
|
|
1904
1913
|
"type": {
|
|
1905
1914
|
"type": "'textArea'",
|
|
1906
1915
|
"required": true,
|
|
1907
|
-
"description":
|
|
1916
|
+
"description": "Tipo do campo: sempre `'textArea'`."
|
|
1908
1917
|
},
|
|
1909
1918
|
"cols": {
|
|
1910
1919
|
"type": "number",
|
|
1911
1920
|
"required": false,
|
|
1912
|
-
"description":
|
|
1921
|
+
"description": "Número de colunas de texto do textarea (largura)."
|
|
1913
1922
|
},
|
|
1914
1923
|
"rows": {
|
|
1915
1924
|
"type": "number",
|
|
1916
1925
|
"required": false,
|
|
1917
|
-
"description":
|
|
1926
|
+
"description": "Número de linhas visíveis do textarea (altura inicial)."
|
|
1918
1927
|
},
|
|
1919
1928
|
"keyFilter": {
|
|
1920
1929
|
"type": "any",
|
|
1921
1930
|
"required": false,
|
|
1922
|
-
"description":
|
|
1931
|
+
"description": "Filtro de teclas aceitas no campo. Aceita regex ou string."
|
|
1923
1932
|
},
|
|
1924
1933
|
"style": {
|
|
1925
1934
|
"type": "Partial<CSSStyleDeclaration>",
|
|
1926
1935
|
"required": false,
|
|
1927
|
-
"description":
|
|
1936
|
+
"description": "Estilos CSS inline aplicados diretamente no elemento textarea."
|
|
1928
1937
|
},
|
|
1929
1938
|
"readonly": {
|
|
1930
1939
|
"type": "() => boolean",
|
|
1931
1940
|
"required": false,
|
|
1932
|
-
"description":
|
|
1941
|
+
"description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura."
|
|
1933
1942
|
},
|
|
1934
1943
|
"speechRecognition": {
|
|
1935
1944
|
"type": "boolean",
|
|
1936
1945
|
"required": false,
|
|
1937
|
-
"description":
|
|
1946
|
+
"description": "Quando `true`, exibe o botão de reconhecimento de voz (speech-to-text)."
|
|
1938
1947
|
},
|
|
1939
1948
|
"keepContext": {
|
|
1940
1949
|
"type": "boolean",
|
|
1941
|
-
"required":
|
|
1942
|
-
"description":
|
|
1950
|
+
"required": false,
|
|
1951
|
+
"description": "Quando `true`, mantém o contexto das interações anteriores de voz/IA."
|
|
1943
1952
|
},
|
|
1944
1953
|
"speechRecognitionPlaceholder": {
|
|
1945
1954
|
"type": "string",
|
|
1946
1955
|
"required": false,
|
|
1947
|
-
"description":
|
|
1956
|
+
"description": "Texto de placeholder exibido na área de reconhecimento de voz enquanto o microfone está ativo."
|
|
1948
1957
|
},
|
|
1949
1958
|
"maxLength": {
|
|
1950
1959
|
"type": "number",
|
|
1951
1960
|
"required": false,
|
|
1952
|
-
"description":
|
|
1961
|
+
"description": "Número máximo de caracteres permitidos no campo."
|
|
1953
1962
|
}
|
|
1954
1963
|
}
|
|
1955
1964
|
},
|
|
1956
1965
|
"string": {
|
|
1957
1966
|
"interface": "TextFieldConfig",
|
|
1958
1967
|
"sourceFile": "text-field.ts",
|
|
1959
|
-
"description":
|
|
1968
|
+
"description": "Configuração para campos de texto simples.\n\nUse `type: 'string'` para texto livre geral.\nUse `type: 'binary'` para campos que armazenam dados binários como texto (ex: base64).\n\nSuporta máscaras de entrada, addons laterais, filtro de caracteres e eventos do input.",
|
|
1960
1969
|
"ownProperties": {
|
|
1961
1970
|
"type": {
|
|
1962
1971
|
"type": "'string' | 'binary'",
|
|
1963
1972
|
"required": true,
|
|
1964
|
-
"description":
|
|
1973
|
+
"description": "`'string'` — campo de texto livre padrão.\n`'binary'` — campo de texto tratado como dado binário (ex: base64 encoding)."
|
|
1965
1974
|
},
|
|
1966
1975
|
"mask": {
|
|
1967
1976
|
"type": "stringFn | string",
|
|
1968
1977
|
"required": false,
|
|
1969
|
-
"description":
|
|
1978
|
+
"description": "Máscara de entrada aplicada ao campo. Pode ser uma string fixa ou uma função que retorna a máscara dinamicamente.\nExemplo de máscara: `'999.999.999-99'` (CPF), `'(99) 99999-9999'` (telefone).\nQuando definida, `leftAddon` e `rightAddon` não funcionam."
|
|
1970
1979
|
},
|
|
1971
1980
|
"readonly": {
|
|
1972
1981
|
"type": "() => boolean",
|
|
1973
1982
|
"required": false,
|
|
1974
|
-
"description":
|
|
1983
|
+
"description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura.\nUse uma função para controle dinâmico baseado no estado do formulário."
|
|
1975
1984
|
},
|
|
1976
1985
|
"characterPattern": {
|
|
1977
1986
|
"type": "stringFn | string",
|
|
1978
1987
|
"required": false,
|
|
1979
|
-
"description":
|
|
1988
|
+
"description": "Padrão regex para filtrar os caracteres permitidos na digitação.\nPode ser uma string de pattern ou uma função que retorna o padrão.\nExemplo: `'[a-zA-Z]'` permite apenas letras."
|
|
1980
1989
|
},
|
|
1981
1990
|
"unmask": {
|
|
1982
1991
|
"type": "booleanFn | boolean",
|
|
1983
1992
|
"required": false,
|
|
1984
|
-
"description":
|
|
1993
|
+
"description": "Quando `true`, remove os caracteres da máscara do valor enviado ao modelo.\nExemplo: com máscara CPF `'999.999.999-99'`, o valor armazenado será apenas os dígitos."
|
|
1985
1994
|
},
|
|
1986
1995
|
"inputType": {
|
|
1987
1996
|
"type": "string",
|
|
1988
1997
|
"required": false,
|
|
1989
|
-
"description":
|
|
1998
|
+
"description": "Tipo HTML do input (ex: `'text'`, `'email'`, `'tel'`, `'url'`).\nAfeta o teclado exibido em dispositivos móveis e a validação nativa do browser."
|
|
1990
1999
|
},
|
|
1991
2000
|
"keyFilter": {
|
|
1992
2001
|
"type": "any",
|
|
1993
2002
|
"required": false,
|
|
1994
|
-
"description":
|
|
2003
|
+
"description": "Filtro de teclas aceitas no campo. Aceita uma expressão regular ou string.\nExemplo: `/[0-9]/` para aceitar apenas números."
|
|
1995
2004
|
},
|
|
1996
2005
|
"leftAddon": {
|
|
1997
2006
|
"type": "AddonConfig",
|
|
1998
2007
|
"required": false,
|
|
1999
|
-
"description": "
|
|
2008
|
+
"description": "Addon exibido à esquerda do input (ex: ícone, texto, botão).\n**Não funciona quando `mask` está definida.**"
|
|
2000
2009
|
},
|
|
2001
2010
|
"rightAddon": {
|
|
2002
2011
|
"type": "AddonConfig",
|
|
2003
2012
|
"required": false,
|
|
2004
|
-
"description": "
|
|
2013
|
+
"description": "Addon exibido à direita do input (ex: ícone, texto, botão).\n**Não funciona quando `mask` está definida.**"
|
|
2005
2014
|
},
|
|
2006
2015
|
"maxLength": {
|
|
2007
2016
|
"type": "string | number",
|
|
2008
2017
|
"required": false,
|
|
2009
|
-
"description":
|
|
2018
|
+
"description": "Número máximo de caracteres permitidos no campo."
|
|
2010
2019
|
},
|
|
2011
2020
|
"browserAutocomplete": {
|
|
2012
2021
|
"type": "boolean",
|
|
2013
2022
|
"required": false,
|
|
2014
|
-
"description":
|
|
2023
|
+
"description": "Controla o autocomplete nativo do browser.\n`true` ativa o autocomplete; `false` desativa."
|
|
2015
2024
|
},
|
|
2016
2025
|
"style": {
|
|
2017
2026
|
"type": "{\n [klass: string]: any;\n}",
|
|
2018
2027
|
"required": false,
|
|
2019
|
-
"description":
|
|
2028
|
+
"description": "Estilos CSS inline aplicados diretamente no elemento de input."
|
|
2020
2029
|
},
|
|
2021
2030
|
"onBlur": {
|
|
2022
2031
|
"type": "(event: Event) => void",
|
|
2023
2032
|
"required": false,
|
|
2024
|
-
"description":
|
|
2033
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
2025
2034
|
},
|
|
2026
2035
|
"onFocus": {
|
|
2027
2036
|
"type": "(event: FocusEvent) => void",
|
|
2028
2037
|
"required": false,
|
|
2029
|
-
"description":
|
|
2038
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
2030
2039
|
},
|
|
2031
2040
|
"onComplete": {
|
|
2032
2041
|
"type": "(event: FocusEvent) => void",
|
|
2033
2042
|
"required": false,
|
|
2034
|
-
"description":
|
|
2043
|
+
"description": "Callback chamado quando a máscara é completamente preenchida."
|
|
2035
2044
|
},
|
|
2036
2045
|
"onInput": {
|
|
2037
2046
|
"type": "(event: FocusEvent) => void",
|
|
2038
2047
|
"required": false,
|
|
2039
|
-
"description":
|
|
2048
|
+
"description": "Callback chamado a cada alteração no valor do input."
|
|
2040
2049
|
}
|
|
2041
2050
|
}
|
|
2042
2051
|
},
|
|
2043
2052
|
"binary": {
|
|
2044
2053
|
"interface": "TextFieldConfig",
|
|
2045
2054
|
"sourceFile": "text-field.ts",
|
|
2046
|
-
"description":
|
|
2055
|
+
"description": "Configuração para campos de texto simples.\n\nUse `type: 'string'` para texto livre geral.\nUse `type: 'binary'` para campos que armazenam dados binários como texto (ex: base64).\n\nSuporta máscaras de entrada, addons laterais, filtro de caracteres e eventos do input.",
|
|
2047
2056
|
"ownProperties": {
|
|
2048
2057
|
"type": {
|
|
2049
2058
|
"type": "'string' | 'binary'",
|
|
2050
2059
|
"required": true,
|
|
2051
|
-
"description":
|
|
2060
|
+
"description": "`'string'` — campo de texto livre padrão.\n`'binary'` — campo de texto tratado como dado binário (ex: base64 encoding)."
|
|
2052
2061
|
},
|
|
2053
2062
|
"mask": {
|
|
2054
2063
|
"type": "stringFn | string",
|
|
2055
2064
|
"required": false,
|
|
2056
|
-
"description":
|
|
2065
|
+
"description": "Máscara de entrada aplicada ao campo. Pode ser uma string fixa ou uma função que retorna a máscara dinamicamente.\nExemplo de máscara: `'999.999.999-99'` (CPF), `'(99) 99999-9999'` (telefone).\nQuando definida, `leftAddon` e `rightAddon` não funcionam."
|
|
2057
2066
|
},
|
|
2058
2067
|
"readonly": {
|
|
2059
2068
|
"type": "() => boolean",
|
|
2060
2069
|
"required": false,
|
|
2061
|
-
"description":
|
|
2070
|
+
"description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura.\nUse uma função para controle dinâmico baseado no estado do formulário."
|
|
2062
2071
|
},
|
|
2063
2072
|
"characterPattern": {
|
|
2064
2073
|
"type": "stringFn | string",
|
|
2065
2074
|
"required": false,
|
|
2066
|
-
"description":
|
|
2075
|
+
"description": "Padrão regex para filtrar os caracteres permitidos na digitação.\nPode ser uma string de pattern ou uma função que retorna o padrão.\nExemplo: `'[a-zA-Z]'` permite apenas letras."
|
|
2067
2076
|
},
|
|
2068
2077
|
"unmask": {
|
|
2069
2078
|
"type": "booleanFn | boolean",
|
|
2070
2079
|
"required": false,
|
|
2071
|
-
"description":
|
|
2080
|
+
"description": "Quando `true`, remove os caracteres da máscara do valor enviado ao modelo.\nExemplo: com máscara CPF `'999.999.999-99'`, o valor armazenado será apenas os dígitos."
|
|
2072
2081
|
},
|
|
2073
2082
|
"inputType": {
|
|
2074
2083
|
"type": "string",
|
|
2075
2084
|
"required": false,
|
|
2076
|
-
"description":
|
|
2085
|
+
"description": "Tipo HTML do input (ex: `'text'`, `'email'`, `'tel'`, `'url'`).\nAfeta o teclado exibido em dispositivos móveis e a validação nativa do browser."
|
|
2077
2086
|
},
|
|
2078
2087
|
"keyFilter": {
|
|
2079
2088
|
"type": "any",
|
|
2080
2089
|
"required": false,
|
|
2081
|
-
"description":
|
|
2090
|
+
"description": "Filtro de teclas aceitas no campo. Aceita uma expressão regular ou string.\nExemplo: `/[0-9]/` para aceitar apenas números."
|
|
2082
2091
|
},
|
|
2083
2092
|
"leftAddon": {
|
|
2084
2093
|
"type": "AddonConfig",
|
|
2085
2094
|
"required": false,
|
|
2086
|
-
"description": "
|
|
2095
|
+
"description": "Addon exibido à esquerda do input (ex: ícone, texto, botão).\n**Não funciona quando `mask` está definida.**"
|
|
2087
2096
|
},
|
|
2088
2097
|
"rightAddon": {
|
|
2089
2098
|
"type": "AddonConfig",
|
|
2090
2099
|
"required": false,
|
|
2091
|
-
"description": "
|
|
2100
|
+
"description": "Addon exibido à direita do input (ex: ícone, texto, botão).\n**Não funciona quando `mask` está definida.**"
|
|
2092
2101
|
},
|
|
2093
2102
|
"maxLength": {
|
|
2094
2103
|
"type": "string | number",
|
|
2095
2104
|
"required": false,
|
|
2096
|
-
"description":
|
|
2105
|
+
"description": "Número máximo de caracteres permitidos no campo."
|
|
2097
2106
|
},
|
|
2098
2107
|
"browserAutocomplete": {
|
|
2099
2108
|
"type": "boolean",
|
|
2100
2109
|
"required": false,
|
|
2101
|
-
"description":
|
|
2110
|
+
"description": "Controla o autocomplete nativo do browser.\n`true` ativa o autocomplete; `false` desativa."
|
|
2102
2111
|
},
|
|
2103
2112
|
"style": {
|
|
2104
2113
|
"type": "{\n [klass: string]: any;\n}",
|
|
2105
2114
|
"required": false,
|
|
2106
|
-
"description":
|
|
2115
|
+
"description": "Estilos CSS inline aplicados diretamente no elemento de input."
|
|
2107
2116
|
},
|
|
2108
2117
|
"onBlur": {
|
|
2109
2118
|
"type": "(event: Event) => void",
|
|
2110
2119
|
"required": false,
|
|
2111
|
-
"description":
|
|
2120
|
+
"description": "Callback chamado quando o campo perde o foco."
|
|
2112
2121
|
},
|
|
2113
2122
|
"onFocus": {
|
|
2114
2123
|
"type": "(event: FocusEvent) => void",
|
|
2115
2124
|
"required": false,
|
|
2116
|
-
"description":
|
|
2125
|
+
"description": "Callback chamado quando o campo recebe foco."
|
|
2117
2126
|
},
|
|
2118
2127
|
"onComplete": {
|
|
2119
2128
|
"type": "(event: FocusEvent) => void",
|
|
2120
2129
|
"required": false,
|
|
2121
|
-
"description":
|
|
2130
|
+
"description": "Callback chamado quando a máscara é completamente preenchida."
|
|
2122
2131
|
},
|
|
2123
2132
|
"onInput": {
|
|
2124
2133
|
"type": "(event: FocusEvent) => void",
|
|
2125
2134
|
"required": false,
|
|
2126
|
-
"description":
|
|
2135
|
+
"description": "Callback chamado a cada alteração no valor do input."
|
|
2127
2136
|
}
|
|
2128
2137
|
}
|
|
2129
2138
|
}
|
|
@@ -2132,44 +2141,44 @@
|
|
|
2132
2141
|
"fieldset": {
|
|
2133
2142
|
"interface": "FieldsetConfig",
|
|
2134
2143
|
"sourceFile": "fieldset.ts",
|
|
2135
|
-
"description":
|
|
2144
|
+
"description": "Configuração para estrutura do tipo fieldset (grupo recolhível).\n\nAgrupa campos dentro de um painel que pode ser expandido ou recolhido pelo usuário.\nÚtil para separar logicamente seções opcionais ou detalhes avançados do formulário.",
|
|
2136
2145
|
"ownProperties": {
|
|
2137
2146
|
"type": {
|
|
2138
2147
|
"type": "'fieldset'",
|
|
2139
2148
|
"required": true,
|
|
2140
|
-
"description":
|
|
2149
|
+
"description": "Tipo da estrutura: sempre `'fieldset'`."
|
|
2141
2150
|
},
|
|
2142
2151
|
"beforeToggle": {
|
|
2143
2152
|
"type": "(event: any) => void",
|
|
2144
2153
|
"required": false,
|
|
2145
|
-
"description":
|
|
2154
|
+
"description": "Callback chamado antes de o painel ser expandido ou recolhido.\nPode ser usado para cancelar a ação ou realizar operações prévias."
|
|
2146
2155
|
},
|
|
2147
2156
|
"afterToggle": {
|
|
2148
2157
|
"type": "(event: any) => void",
|
|
2149
2158
|
"required": false,
|
|
2150
|
-
"description":
|
|
2159
|
+
"description": "Callback chamado após o painel ser expandido ou recolhido."
|
|
2151
2160
|
}
|
|
2152
2161
|
}
|
|
2153
2162
|
},
|
|
2154
2163
|
"row": {
|
|
2155
2164
|
"interface": "RowConfig",
|
|
2156
2165
|
"sourceFile": "row.ts",
|
|
2157
|
-
"description":
|
|
2166
|
+
"description": "Configuração para estrutura do tipo linha (row).\n\nOrganiza campos lado a lado em uma linha horizontal usando grid layout.\nCada campo dentro de um `row` pode receber propriedades adicionais de `RowAdditionalFields`,\ncomo `size`, `visible`, `errorMessages`, `footer` e `bottomTemplate`.",
|
|
2158
2167
|
"ownProperties": {
|
|
2159
2168
|
"type": {
|
|
2160
2169
|
"type": "'row'",
|
|
2161
2170
|
"required": true,
|
|
2162
|
-
"description":
|
|
2171
|
+
"description": "Tipo da estrutura: sempre `'row'`."
|
|
2163
2172
|
},
|
|
2164
2173
|
"fields": {
|
|
2165
2174
|
"type": "RowType[]",
|
|
2166
2175
|
"required": true,
|
|
2167
|
-
"description":
|
|
2176
|
+
"description": "Lista de campos e sub-estruturas dispostos em linha.\nCada item pode ter propriedades adicionais de `RowAdditionalFields` (size, visible, footer, etc.)."
|
|
2168
2177
|
},
|
|
2169
2178
|
"visible": {
|
|
2170
2179
|
"type": "booleanFn | boolean",
|
|
2171
2180
|
"required": false,
|
|
2172
|
-
"description":
|
|
2181
|
+
"description": "Controla a visibilidade da linha inteira.\nPode ser um booleano estático ou função reativa."
|
|
2173
2182
|
}
|
|
2174
2183
|
},
|
|
2175
2184
|
"rowAdditionalFields": {
|
|
@@ -2178,27 +2187,27 @@
|
|
|
2178
2187
|
"size": {
|
|
2179
2188
|
"type": "FieldSizeConfig",
|
|
2180
2189
|
"required": false,
|
|
2181
|
-
"description":
|
|
2190
|
+
"description": "Tamanho (largura) deste campo dentro da linha.\nPermite definir colunas responsivas (ex: metade da linha, terço, etc.)\nusando `FieldSizeConfig` com breakpoints."
|
|
2182
2191
|
},
|
|
2183
2192
|
"visible": {
|
|
2184
2193
|
"type": "() => boolean",
|
|
2185
2194
|
"required": false,
|
|
2186
|
-
"description":
|
|
2195
|
+
"description": "Função que retorna `true` quando o campo deve ser exibido.\nPermite ocultar/exibir o campo dinamicamente sem removê-lo da configuração."
|
|
2187
2196
|
},
|
|
2188
2197
|
"errorMessages": {
|
|
2189
2198
|
"type": "() => {} | {}",
|
|
2190
2199
|
"required": false,
|
|
2191
|
-
"description":
|
|
2200
|
+
"description": "Função que retorna um mapa de mensagens de erro customizadas para o campo.\nA chave é o nome do validador (ex: `'required'`, `'minlength'`) e o valor é a mensagem."
|
|
2192
2201
|
},
|
|
2193
2202
|
"bottomTemplate": {
|
|
2194
2203
|
"type": "TemplateRef<Element>",
|
|
2195
2204
|
"required": false,
|
|
2196
|
-
"description":
|
|
2205
|
+
"description": "Template Angular (`ng-template`) renderizado abaixo do campo.\nUse para adicionar conteúdo customizado abaixo do input, como dicas ou informações extras."
|
|
2197
2206
|
},
|
|
2198
2207
|
"footer": {
|
|
2199
2208
|
"type": "{\n help?: {\n text: string;\n visible?: (options: {\n abstractControl: AbstractControl;\n formField: DynamicType;\n }) => boolean;\n };\n link?: {\n label: string;\n onClick?: (options: {\n abstractControl: AbstractControl;\n formField: DynamicType;\n }) => void;\n visible?: (options: {\n abstractControl: AbstractControl;\n formField: DynamicType;\n }) => boolean;\n };\n}",
|
|
2200
2209
|
"required": false,
|
|
2201
|
-
"description":
|
|
2210
|
+
"description": "Rodapé exibido abaixo do campo com texto de ajuda e/ou link de ação.\nPermite adicionar orientações contextuais ou atalhos diretamente associados ao campo."
|
|
2202
2211
|
}
|
|
2203
2212
|
}
|
|
2204
2213
|
}
|
|
@@ -2206,12 +2215,12 @@
|
|
|
2206
2215
|
"section": {
|
|
2207
2216
|
"interface": "SectionConfig",
|
|
2208
2217
|
"sourceFile": "section.ts",
|
|
2209
|
-
"description":
|
|
2218
|
+
"description": "Configuração para estrutura do tipo seção.\n\nÉ o container principal do DynamicForm, agrupa campos e outras estruturas.\nSuporta layout flexbox para controlar disposição dos filhos com `isFlex`,\n`justifyContent` e `alignItems`.",
|
|
2210
2219
|
"ownProperties": {
|
|
2211
2220
|
"type": {
|
|
2212
2221
|
"type": "'section'",
|
|
2213
2222
|
"required": true,
|
|
2214
|
-
"description":
|
|
2223
|
+
"description": "Tipo da estrutura: sempre `'section'`."
|
|
2215
2224
|
},
|
|
2216
2225
|
"isFlex": {
|
|
2217
2226
|
"type": "boolean",
|
|
@@ -2235,32 +2244,32 @@
|
|
|
2235
2244
|
"editor": {
|
|
2236
2245
|
"interface": "EditorFieldConfig",
|
|
2237
2246
|
"sourceFile": "optional-fields/editor/editor-field.ts",
|
|
2238
|
-
"description":
|
|
2247
|
+
"description": "Configuração fornecida ao instanciar um campo do tipo 'editor'.\nUtilizado para renderizar um editor de rich text (wysiwyg).",
|
|
2239
2248
|
"ownProperties": {
|
|
2240
2249
|
"type": {
|
|
2241
2250
|
"type": "'editor'",
|
|
2242
2251
|
"required": true,
|
|
2243
|
-
"description":
|
|
2252
|
+
"description": "Define o tipo único deste campo opcional."
|
|
2244
2253
|
},
|
|
2245
2254
|
"formats": {
|
|
2246
2255
|
"type": "string[]",
|
|
2247
2256
|
"required": false,
|
|
2248
|
-
"description":
|
|
2257
|
+
"description": "Formatos suportados pelo editor (ex: 'bold', 'italic')."
|
|
2249
2258
|
},
|
|
2250
2259
|
"readonly": {
|
|
2251
2260
|
"type": "boolean",
|
|
2252
2261
|
"required": false,
|
|
2253
|
-
"description":
|
|
2262
|
+
"description": "Define se o editor estará apenas em modo leitura."
|
|
2254
2263
|
},
|
|
2255
2264
|
"modules": {
|
|
2256
2265
|
"type": "any",
|
|
2257
2266
|
"required": false,
|
|
2258
|
-
"description":
|
|
2267
|
+
"description": "Módulos adicionais do QuillJS a serem ativados no editor."
|
|
2259
2268
|
},
|
|
2260
2269
|
"style": {
|
|
2261
2270
|
"type": "{\n [klass: string]: unknown;\n}",
|
|
2262
2271
|
"required": false,
|
|
2263
|
-
"description":
|
|
2272
|
+
"description": "Estilos customizados aplicados diretamente no container do editor."
|
|
2264
2273
|
}
|
|
2265
2274
|
},
|
|
2266
2275
|
"provider": "provideEditorField()",
|