@praxisui/dynamic-fields 1.0.0-beta.1 → 1.0.0-beta.11
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/README.md +18 -11
- package/package.json +14 -5
package/README.md
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
# @
|
|
1
|
+
# @praxisui/dynamic-fields — Dynamic Form Fields
|
|
2
|
+
|
|
3
|
+
## 🔰 Exemplos / Quickstart
|
|
4
|
+
|
|
5
|
+
Para ver esta biblioteca em funcionamento em uma aplicação completa, utilize o projeto de exemplo (Quickstart):
|
|
6
|
+
|
|
7
|
+
- Repositório: https://github.com/codexrodrigues/praxis-ui-quickstart
|
|
8
|
+
- O Quickstart demonstra a integração das bibliotecas `@praxisui/*` em um app Angular, incluindo instalação, configuração e uso em telas reais.
|
|
2
9
|
|
|
3
10
|
### Concept Usage
|
|
4
11
|
|
|
@@ -11,15 +18,15 @@ Biblioteca de campos dinâmicos para aplicações Angular (v20+) com Material De
|
|
|
11
18
|
## Instalação
|
|
12
19
|
|
|
13
20
|
```bash
|
|
14
|
-
npm install @
|
|
21
|
+
npm install @praxisui/dynamic-fields
|
|
15
22
|
```
|
|
16
23
|
|
|
17
24
|
Peers (instale no app host):
|
|
18
25
|
- `@angular/core` `^20.1.0`, `@angular/common` `^20.1.0`, `@angular/forms` `^20.1.0`
|
|
19
26
|
- `@angular/material` `^20.1.0`, `@angular/cdk` `^20.1.0`, `@angular/router` `^20.1.0`
|
|
20
27
|
- `rxjs` `^7.8.0`
|
|
21
|
-
- `@
|
|
22
|
-
- Opcional conforme uso: `@
|
|
28
|
+
- `@praxisui/core`, `@praxisui/specification-core`
|
|
29
|
+
- Opcional conforme uso: `@praxisui/dialog`, `@praxisui/cron-builder`
|
|
23
30
|
|
|
24
31
|
## ✨ Características
|
|
25
32
|
|
|
@@ -29,7 +36,7 @@ Peers (instale no app host):
|
|
|
29
36
|
- **Color Picker**: Novo componente de seleção de cores com suporte a paleta e canvas
|
|
30
37
|
- **Novos Componentes**: Toggle, Slider, Time Picker e Rating
|
|
31
38
|
- **Material Select Modular**: Fragmentado em subcomponentes (SearchInput, OptionsList e Chips)
|
|
32
|
-
- **TypeScript**: Totalmente tipado com integração do `@
|
|
39
|
+
- **TypeScript**: Totalmente tipado com integração do `@praxisui/core`
|
|
33
40
|
- **Corporativo**: Adequado para cenários empresariais
|
|
34
41
|
|
|
35
42
|
## 🏗️ Arquitetura
|
|
@@ -49,7 +56,7 @@ const isRegistered = registry.isRegistered(FieldControlType.INPUT);
|
|
|
49
56
|
|
|
50
57
|
### Componentes Suportados
|
|
51
58
|
|
|
52
|
-
O sistema usa as constantes do `@
|
|
59
|
+
O sistema usa as constantes do `@praxisui/core` para garantir consistência:
|
|
53
60
|
|
|
54
61
|
- `FieldControlType.INPUT` - Campo de texto Material Design
|
|
55
62
|
- `FieldControlType.TEXTAREA` - Área de texto Material Design
|
|
@@ -104,7 +111,7 @@ Grupo de botões de rádio que consome metadados ou dados remotos para criar sel
|
|
|
104
111
|
## 📦 Instalação
|
|
105
112
|
|
|
106
113
|
```bash
|
|
107
|
-
npm install @
|
|
114
|
+
npm install @praxisui/dynamic-fields
|
|
108
115
|
```
|
|
109
116
|
|
|
110
117
|
## 🚀 Uso Básico (DynamicFieldLoaderDirective)
|
|
@@ -114,8 +121,8 @@ Exemplo mínimo usando a diretiva `dynamicFieldLoader` para criar campos Materia
|
|
|
114
121
|
```ts
|
|
115
122
|
import { Component, signal, inject } from '@angular/core';
|
|
116
123
|
import { ReactiveFormsModule, NonNullableFormBuilder, Validators } from '@angular/forms';
|
|
117
|
-
import { DynamicFieldLoaderDirective } from '@
|
|
118
|
-
import { FieldMetadata, FieldControlType } from '@
|
|
124
|
+
import { DynamicFieldLoaderDirective } from '@praxisui/dynamic-fields';
|
|
125
|
+
import { FieldMetadata, FieldControlType } from '@praxisui/core';
|
|
119
126
|
|
|
120
127
|
@Component({
|
|
121
128
|
selector: 'app-dynamic-form',
|
|
@@ -175,7 +182,7 @@ Template-only:
|
|
|
175
182
|
```
|
|
176
183
|
|
|
177
184
|
```typescript
|
|
178
|
-
import { ComponentRegistryService } from "@
|
|
185
|
+
import { ComponentRegistryService } from "@praxisui/dynamic-fields";
|
|
179
186
|
import { FieldControlType } from "@praxisui/core";
|
|
180
187
|
|
|
181
188
|
@Component({
|
|
@@ -213,7 +220,7 @@ export class DynamicFormComponent {
|
|
|
213
220
|
## 🔧 Registrar Componente Customizado
|
|
214
221
|
|
|
215
222
|
```typescript
|
|
216
|
-
import { FieldControlType } from "@
|
|
223
|
+
import { FieldControlType } from "@praxisui/core";
|
|
217
224
|
|
|
218
225
|
// Registrar componente customizado - SUPER SIMPLES!
|
|
219
226
|
registry.register("customField" as FieldControlType, () => import("./custom-field.component").then((m) => m.CustomFieldComponent));
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/dynamic-fields",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.11",
|
|
4
|
+
"description": "Angular Material-based dynamic form fields for Praxis UI with lazy loading and metadata-driven rendering.",
|
|
4
5
|
"peerDependencies": {
|
|
5
6
|
"@angular/common": "^20.1.0",
|
|
6
7
|
"@angular/core": "^20.1.0",
|
|
@@ -9,10 +10,10 @@
|
|
|
9
10
|
"@angular/cdk": "^20.1.0",
|
|
10
11
|
"@angular/router": "^20.1.0",
|
|
11
12
|
"rxjs": "^7.8.0",
|
|
12
|
-
"@praxisui/specification-core": "^1.0.0-beta.
|
|
13
|
-
"@praxisui/core": "^1.0.0-beta.
|
|
14
|
-
"@praxisui/cron-builder": "^1.0.0-beta.
|
|
15
|
-
"@praxisui/dialog": "^1.0.0-beta.
|
|
13
|
+
"@praxisui/specification-core": "^1.0.0-beta.11",
|
|
14
|
+
"@praxisui/core": "^1.0.0-beta.11",
|
|
15
|
+
"@praxisui/cron-builder": "^1.0.0-beta.11",
|
|
16
|
+
"@praxisui/dialog": "^1.0.0-beta.11"
|
|
16
17
|
},
|
|
17
18
|
"dependencies": {
|
|
18
19
|
"tslib": "^2.3.0"
|
|
@@ -29,6 +30,14 @@
|
|
|
29
30
|
"bugs": {
|
|
30
31
|
"url": "https://github.com/codexrodrigues/praxis/issues"
|
|
31
32
|
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"angular",
|
|
35
|
+
"praxisui",
|
|
36
|
+
"forms",
|
|
37
|
+
"dynamic-fields",
|
|
38
|
+
"material",
|
|
39
|
+
"ui"
|
|
40
|
+
],
|
|
32
41
|
"sideEffects": false,
|
|
33
42
|
"module": "fesm2022/praxisui-dynamic-fields.mjs",
|
|
34
43
|
"typings": "index.d.ts",
|