jqwidgets-framework
Version:
jQWidgets is an advanced Angular, Vue, Blazor, React, Web Components, jquery, ASP .NET MVC, Custom Elements and HTML5 UI framework.
85 lines (76 loc) • 2.72 kB
text/typescript
import { Component, ViewEncapsulation } from '@angular/core';
export class AppComponent {
source: any =
{
dataType: 'xml',
dataFields: [
{ name: 'ProductName', type: 'string' },
{ name: 'QuantityPerUnit', type: 'int' },
{ name: 'UnitPrice', type: 'float' },
{ name: 'UnitsInStock', type: 'float' },
{ name: 'Discontinued', type: 'bool' }
],
root: 'Products',
record: 'Product',
id: 'ProductID',
url: './../../../sampledata/products.xml'
};
getWidth() : any {
if (document.body.offsetWidth < 850) {
return '90%';
}
return 850;
}
dataAdapter: any = new jqx.dataAdapter(this.source);
cellClass = (row: any, dataField: any, cellText: any, rowData: any): string => {
let cellValue = rowData[dataField];
switch (dataField) {
case 'QuantityPerUnit':
if (cellValue < 11) {
return 'min';
}
if (cellValue < 14) {
return 'minavg';
}
if (cellValue < 50) {
return 'avg';
}
return 'max';
case 'UnitPrice':
if (cellValue < 20) {
return 'min';
}
if (cellValue < 30) {
return 'minavg';
}
if (cellValue < 50) {
return 'avg';
}
return 'max';
case 'UnitsInStock':
if (cellValue < 20) {
return 'min';
}
if (cellValue < 30) {
return 'minavg';
}
if (cellValue < 50) {
return 'avg';
}
return 'max';
}
}
columns: any[] =
[
{ text: 'Product Name', dataField: 'ProductName', width: 200 },
{ text: 'Quantity per Unit', dataField: 'QuantityPerUnit', cellClassName: this.cellClass, cellsAlign: 'right', align: 'right', width: 200 },
{ text: 'Unit Price', dataField: 'UnitPrice', align: 'right', cellClassName: this.cellClass, cellsAlign: 'right', cellsformat: 'c2', width: 200 },
{ text: 'Units In Stock', dataField: 'UnitsInStock', cellsAlign: 'right', width: 250, align: 'right', cellClassName: this.cellClass }
];
}