ngx-split-view
v1.0.1
Published
A resizable flex-box split layout component for Angular
Downloads
469
Maintainers
Readme
Split View
A split view component for Angular applications that allows users to resize the panes within it.
Table of Contents
Installation
Install using npm in the usual way
$ npm install ngx-split-view --save
Usage
- Once you have installed ngx-split-view, you can import it in your
AppModule
:
// a. Import SplitViewModule
import { SplitViewModule } from 'ngx-split-view';
@NgModule({
// ....
imports: [
// b. Add SplitViewModule to your NgModule imports
SplitViewModule
]
})
export class AppModule { }
- Start using the
split-view
component in your templates
<split-view>
<div splitPane [splitRatio]="2">Left pane (2/3rds size)</div>
<div splitPane [splitRatio]="1">Right pane (1/3rd size)</div>
</split-view>
Important Note: Always place the square brackets around the splitRatio
attribute.
Examples
Minimum size pane
<split-view>
<div splitPane [splitRatio]="2">Left pane (2/3rds size)</div>
<div splitPane [splitRatio]="1" minSize="300">Right pane (1/3rd size)</div>
</split-view>
Horizontal split
<split-view direction="horizontal">
<div splitPane [splitRatio]="2">Left pane (2/3rds size)</div>
<div splitPane [splitRatio]="1">Right pane (1/3rd size)</div>
</split-view>
Custom gutter template
<split-view>
<div splitPane [splitRatio]="2">Left pane (2/3rds size)</div>
<div splitPane [splitRatio]="1">Right pane (1/3rd size)</div>
<div *gutterTemplate style="background: green"></div>
</split-view>
Documentation
SplitViewComponent
The container for split view panes. It will render all content with SplitPaneDirective
, ignoring all other content.
Selector: split-view
Properties
| Name | Description | Default |
|-----------------------------------------|---------------------------------------------|--------------|
| @Input() expandToMin: boolean
| Grow initial sizes to minSize on each pane | false
|
| @Input() gutterSize: number
| Gutter size in pixels | 10
|
| @Input() gutterAlign: GutterAlignment
| Gutter alignment between elements | center
|
| @Input() snapOffset: number
| Snap to minimum size offset in pixels | 30
|
| @Input() dragInterval: number
| Number of pixels to drag | 1
|
| @Input() direction: SplitDirection
| Direction to split: horizontal or vertical | horizontal
|
Events
| Name | Description |
|------------------------------------------------|-----------------------|
| @Output() dragging: EventEmitter<DragEvent>
| Called while dragging |
| @Output() dragStart: EventEmitter<DragEvent>
| Called on drag start |
| @Output() dragEnd: EventEmitter<DragEvent>
| Called on drag end |
Notes
These options map one-to-one with those exposed by split.js. Please see the documentation for more information
SplitPaneDirective
Pane selection directive. Allows specifying the ratio and minimum size of panes within the split-view
. Content without this directive will not be displayed.
Selector: [splitPane]
Properties
| Name | Description | Default |
|-------------------------------|---------------------------------|--------------|
| @Input() splitRatio: number
| The size of the pane as a ratio | 1
|
| @Input() minSize: number
| Minimum sizes pane in pixels | 100
|
SplitViewGutterDirective
The gutter definition for the split-view
. Captures the template gutters.
Selector: [gutterTemplate]
Thanks
This component uses the excellent split.js library by Nathan Cahill to do the heavy lifting.