/
Custom Components
Custom Components
Custom components may be used with JSON configurations via the "custom" component type. Here is an example JSON configuration:
{ "columns": [ { "customComponent1": { "componentType": "custom", "componentOptions": { "placeholderId": "salesRepChart" } } } ] }
TypeScript:
import { Component, OnInit, Input } from "@angular/core"; import { SmartDataSource, DataSourceRegistry, SmartCustomComponent } from "@consultingwerk/smartcomponent-library"; @SmartCustomComponent('salesRepChart') @Component({ selector: 'chart-template', template: ` <kendo-chart [categoryAxis]="{ categories: categories }"> <kendo-chart-title [text]="title"></kendo-chart-title> <kendo-chart-legend position="bottom" orientation="horizontal"></kendo-chart-legend> <kendo-chart-tooltip format="{0}US$"></kendo-chart-tooltip> <kendo-chart-series> <kendo-chart-series-item *ngFor="let item of series" type="line" style="smooth" [data]="item.data" [name]="item.name"> </kendo-chart-series-item> </kendo-chart-series> </kendo-chart> ` }) export class ChartTemplateComponent implements OnInit { series: any[] = []; categories: string[] = ['Jan', "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; @Input() title: string; @Input() smartDataSource: string; constructor(private dsReg: DataSourceRegistry) { } ngOnInit() { this.dsReg.dataSourceAdded.first(ev => ev.dataSourceName === this.smartDataSource) .subscribe(ev => { let dataSource = ev.dataSource; dataSource.fetch() .then(result => { this.series = result.data.map(salesrep => { const serie = { name: salesrep.RepName, data: Object.keys(salesrep).filter(key => key.startsWith('MonthQuota')).map(month => salesrep[month]) }; return serie; }); }); }); } }
To register any component with the SmartComponent Library and use render it in placeholders defined via JSON, one only needs to add the @SmartCustomComponent(placeholderId) annotation, and include the component in the entryComponents of an imported module.
, multiple selections available,
Related content
SmartComponent Library NG Web System Requirements
SmartComponent Library NG Web System Requirements
More like this
Open Source Peer Dependencies
Open Source Peer Dependencies
More like this
Peer Dependencies for v17.1.2
Peer Dependencies for v17.1.2
More like this
SmartFramework Backoffice Release Notes 17.0.000
SmartFramework Backoffice Release Notes 17.0.000
More like this
Peer Dependencies for v17.1.0
Peer Dependencies for v17.1.0
More like this
Peer Dependencies for v17.1.1
Peer Dependencies for v17.1.1
More like this