diff --git a/projects/f-examples/connections/connection-markers/connection-markers.component.html b/projects/f-examples/connections/connection-markers/connection-markers.component.html new file mode 100644 index 0000000..1a825ac --- /dev/null +++ b/projects/f-examples/connections/connection-markers/connection-markers.component.html @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + +
+ I'm a node +
+
+ I'm a node +
+ + + + + + + + + + + + + + + +
+ I'm a node +
+
+ I'm a node +
+ + + + + + + + + + + + + + + +
+ I'm a node +
+
+ I'm a node +
+
+
diff --git a/projects/f-examples/connections/connection-markers/connection-markers.component.scss b/projects/f-examples/connections/connection-markers/connection-markers.component.scss new file mode 100644 index 0000000..72e64cf --- /dev/null +++ b/projects/f-examples/connections/connection-markers/connection-markers.component.scss @@ -0,0 +1,29 @@ +@use "../../flow-common"; + +::ng-deep connection-markers { + @include flow-common.connection; + + .connection-marker { + circle, rect, path { + fill: var(--connection-color); + } + } + + .f-connection { + &.f-selected { + + .f-connection-path { + stroke: var(--minimap-node-selected-color); + } + .connection-marker { + circle, rect, path { + fill: var(--minimap-node-selected-color); + } + } + } + } +} + +.f-node { + @include flow-common.node; +} diff --git a/projects/f-examples/connections/connection-markers/connection-markers.component.ts b/projects/f-examples/connections/connection-markers/connection-markers.component.ts new file mode 100644 index 0000000..5e43d34 --- /dev/null +++ b/projects/f-examples/connections/connection-markers/connection-markers.component.ts @@ -0,0 +1,24 @@ +import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core'; +import { EFMarkerType, FCanvasComponent, FFlowModule } from '@foblex/flow'; + +@Component({ + selector: 'connection-markers', + styleUrls: [ './connection-markers.component.scss' ], + templateUrl: './connection-markers.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [ + FFlowModule + ] +}) +export class ConnectionMarkersComponent { + + @ViewChild(FCanvasComponent, { static: true }) + public fCanvas!: FCanvasComponent; + + public eMarkerType = EFMarkerType; + + public onLoaded(): void { + this.fCanvas.resetScaleAndCenter(false); + } +} diff --git a/public/markdown/examples/connection-markers.md b/public/markdown/examples/connection-markers.md new file mode 100644 index 0000000..f2534ef --- /dev/null +++ b/public/markdown/examples/connection-markers.md @@ -0,0 +1,17 @@ +# Connection Markers + +## Description + +This guide shows how to set up different connection markers, allowing for different markers to be displayed on connections between connectors. + +## Example + +::: ng-component [height]="600" +[component.html] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connections/connection-markers/connection-markers.component.html +[component.ts] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connections/connection-markers/connection-markers.component.ts +[component.scss] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/connections/connection-markers/connection-markers.component.scss +[common.scss] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/_flow-common.scss +::: + + + diff --git a/public/markdown/examples/environment.ts b/public/markdown/examples/environment.ts index aa18af2..4cc7408 100644 --- a/public/markdown/examples/environment.ts +++ b/public/markdown/examples/environment.ts @@ -55,6 +55,7 @@ function createEnvironment(): IDocsEnvironment { { tag: 'connection-types', component: import('../../../projects/f-examples/connections/connection-types/connection-types.component') }, { tag: 'custom-connection-type', component: import('../../../projects/f-examples/connections/custom-connection-type/custom-connection-type.component') }, { tag: 'connection-behaviours', component: import('../../../projects/f-examples/connections/connection-behaviours/connection-behaviours.component') }, + { tag: 'connection-markers', component: import('../../../projects/f-examples/connections/connection-markers/connection-markers.component') }, { tag: 'dagre-layout-example', component: import('../../../projects/f-examples/layouts/dagre-layout-example/dagre-layout-example.component') }, { tag: 'elkjs-layout-example', component: import('../../../projects/f-examples/layouts/elkjs-layout-example/elkjs-layout-example.component') }, @@ -281,14 +282,16 @@ function connectionGroup(): INavigationGroup { image_height: 600, image_type: 'image/png', }, - // { - // link: 'custom-connection', - // text: 'Custom Connection', - // }, - // { - // link: 'connection-markers', - // text: 'Connection Markers', - // }, + { + link: 'connection-markers', + text: 'Connection Markers', + description: 'Discover how to add markers to connections. This example demonstrates how to create connections with markers, providing a comprehensive guide to building interactive flow-based diagrams.', + image: './previews/examples/connection-markers.light.png', + image_dark: './previews/examples/connection-markers.dark.png', + image_width: 791, + image_height: 600, + image_type: 'image/png', + }, // { // link: 'connection-text', // text: 'Connection Text', diff --git a/public/previews/examples/connection-markers.dark.png b/public/previews/examples/connection-markers.dark.png new file mode 100644 index 0000000..650179a Binary files /dev/null and b/public/previews/examples/connection-markers.dark.png differ diff --git a/public/previews/examples/connection-markers.light.png b/public/previews/examples/connection-markers.light.png new file mode 100644 index 0000000..2b19328 Binary files /dev/null and b/public/previews/examples/connection-markers.light.png differ