@praxisui/page-builder 0.0.1
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/LICENSE +7 -0
- package/README.md +102 -0
- package/fesm2022/praxisui-page-builder-connection-graph.component-C6x--6--.mjs +1129 -0
- package/fesm2022/praxisui-page-builder-connection-graph.component-C6x--6--.mjs.map +1 -0
- package/fesm2022/praxisui-page-builder.mjs +620 -0
- package/fesm2022/praxisui-page-builder.mjs.map +1 -0
- package/index.d.ts +134 -0
- package/package.json +41 -0
package/LICENSE
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# @praxisui/page-builder
|
|
2
|
+
|
|
3
|
+
Ferramentas de edição para páginas dinâmicas baseadas em Gridster. Inclui o conjunto de editores (Builder, Graph), paleta de componentes e toolbars para montar e inspecionar conexões entre widgets definidos por metadata (`GridPageDefinition` do `@praxisui/core`). Integra com o `@praxisui/settings-panel` para abrir editores em painel lateral e oferece um modo de diálogo fullscreen para edição visual.
|
|
4
|
+
|
|
5
|
+
## Instalação
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm i @praxisui/page-builder
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Peer dependencies (Angular v20):
|
|
12
|
+
- `@angular/core` `^20.0.0`
|
|
13
|
+
- `@angular/common` `^20.0.0`
|
|
14
|
+
- `@angular/forms` `^20.0.0`
|
|
15
|
+
- `@angular/cdk` `^20.0.0`
|
|
16
|
+
- `@angular/material` `^20.0.0`
|
|
17
|
+
- `angular-gridster2` `^20.2.2`
|
|
18
|
+
- `@praxisui/core` `*`
|
|
19
|
+
- `@praxisui/settings-panel` `*`
|
|
20
|
+
|
|
21
|
+
## Visão Geral
|
|
22
|
+
|
|
23
|
+
Este pacote expõe os editores e utilitários usados pelo componente de página dinâmica (Gridster):
|
|
24
|
+
- `ConnectionBuilderComponent` — lista e edita conexões (from.output → to.input) com filtros, agrupamentos e validação.
|
|
25
|
+
- `ConnectionGraph` (uso integrado) — visualiza nós/portas/arestas; suporta arrastar para criar conexões e abrir o Builder.
|
|
26
|
+
- `ComponentPaletteDialog` — paleta para adicionar widgets à página.
|
|
27
|
+
- `FloatingToolbar` e `TileToolbar` — ações rápidas (adicionar, conexões, configurações, salvar, pré‑visualizar).
|
|
28
|
+
|
|
29
|
+
Os editores podem ser abertos:
|
|
30
|
+
- Via `SettingsPanelService` (painel lateral) — recomendado para fluxo dentro do app.
|
|
31
|
+
- Como diálogo fullscreen (Material Dialog) para uma experiência imersiva de edição.
|
|
32
|
+
|
|
33
|
+
## Quick Start (usando a página Gridster)
|
|
34
|
+
|
|
35
|
+
O componente de página dinâmica (parte do workspace) expõe métodos utilitários para abrir editores. Exemplo de uso no template:
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<praxis-dynamic-gridster-page
|
|
39
|
+
#page
|
|
40
|
+
[page]="page"
|
|
41
|
+
[editModeEnabled]="true"
|
|
42
|
+
(pageChange)="onPageChange($event)">
|
|
43
|
+
</praxis-dynamic-gridster-page>
|
|
44
|
+
|
|
45
|
+
<!-- Ações auxiliares -->
|
|
46
|
+
<button (click)="page.openConnectionsGraph()">Conexões (Graph)</button>
|
|
47
|
+
<button (click)="page.openConnectionsBuilder()">Conexões (Builder)</button>
|
|
48
|
+
<button (click)="page.openConnectionsEditor()">Editor Visual (Dialog)</button>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`page` é um `GridPageDefinition` (do `@praxisui/core`) contendo `widgets` e opcionalmente `connections`.
|
|
52
|
+
|
|
53
|
+
## Abrindo editores via Settings Panel
|
|
54
|
+
|
|
55
|
+
Para abrir o Builder/Graph em um painel lateral, injete o `SettingsPanelService` e forneça o conteúdo. O `ConnectionBuilderComponent` é exportado por este pacote.
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
import { Component } from '@angular/core';
|
|
59
|
+
import { SettingsPanelService } from '@praxisui/settings-panel';
|
|
60
|
+
import { ConnectionBuilderComponent } from '@praxisui/page-builder';
|
|
61
|
+
import type { GridPageDefinition, GridWidgetInstance } from '@praxisui/core';
|
|
62
|
+
|
|
63
|
+
@Component({ selector: 'app-page-tools', standalone: true })
|
|
64
|
+
export class PageToolsComponent {
|
|
65
|
+
constructor(private settings: SettingsPanelService) {}
|
|
66
|
+
|
|
67
|
+
openBuilder(page: GridPageDefinition, widgets: GridWidgetInstance[]) {
|
|
68
|
+
this.settings.open({
|
|
69
|
+
id: 'grid-connections:builder',
|
|
70
|
+
title: 'Conexões (Builder)',
|
|
71
|
+
content: { component: ConnectionBuilderComponent, inputs: { page, widgets } },
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Para abrir o Graph visual como painel, utilize os métodos do componente da página (`page.openConnectionsGraph()`), que encapsulam o componente interno do gráfico.
|
|
78
|
+
|
|
79
|
+
## Diálogo fullscreen (Graph/Editor Visual)
|
|
80
|
+
|
|
81
|
+
O fluxo visual completo pode ser aberto em diálogo Material (fullscreen). Caso esteja usando o componente de página, utilize `page.openConnectionsEditor()` para abrir o editor visual; ele lida com a passagem de `page` e `widgets` e propaga o resultado em `pageChange` quando o usuário salva.
|
|
82
|
+
|
|
83
|
+
## Dicas
|
|
84
|
+
- O Builder valida se o `output` existe no widget de origem e se o `input` existe no destino.
|
|
85
|
+
- No Graph, ativar “Mostrar portas não conectadas” ajuda a descobrir possibilidades de ligação.
|
|
86
|
+
- Tanto Builder quanto Graph funcionam com `GridPageDefinition` em string (JSON) ou objeto.
|
|
87
|
+
|
|
88
|
+
## API (resumo)
|
|
89
|
+
|
|
90
|
+
Exports deste pacote:
|
|
91
|
+
- `ConnectionBuilderComponent`
|
|
92
|
+
- `ComponentPaletteDialogComponent`
|
|
93
|
+
- `FloatingToolbarComponent`
|
|
94
|
+
- `TileToolbarComponent`
|
|
95
|
+
|
|
96
|
+
Integrações comuns:
|
|
97
|
+
- `SettingsPanelService.open({ id, title, content: { component, inputs } })`
|
|
98
|
+
- Métodos do componente da página: `openConnectionsGraph()`, `openConnectionsBuilder()`, `openConnectionsEditor()`
|
|
99
|
+
|
|
100
|
+
## Links
|
|
101
|
+
- Repo: https://github.com/codexrodrigues/praxis
|
|
102
|
+
- Issues: https://github.com/codexrodrigues/praxis/issues
|