jqwidgets-scripts-custom
Version:
jQWidgets is an advanced jQuery, Angular 7, Vue, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.
133 lines (125 loc) • 4.91 kB
HTML
<html lang="en">
<head>
<title id='Description'>TreeMap Custom Element BindingToJSON</title>
<meta name="description" content="This is an example of TreeMap Custom Element bound to JSON." />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" />
<link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" />
<link rel="stylesheet" href="../../../styles/demos.css" type="text/css" />
<script type="text/javascript" src="../../../scripts/webcomponents-lite.min.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.elements.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxtreemap.js"></script>
<script type="text/javascript" src="../../../scripts/demos.js"></script>
<script type="text/javascript">
var data = [
{
'id': '2',
'parentid': '1',
'text': 'Hot Chocolate',
'value': '$5.2'
}, {
'id': '3',
'parentid': '1',
'text': 'Peppermint Hot Chocolate',
'value': '$4.0'
}, {
'id': '4',
'parentid': '1',
'text': 'Salted Caramel Hot Chocolate',
'value': '$2.4'
}, {
'id': '5',
'parentid': '1',
'text': 'White Hot Chocolate',
'value': '$2.5'
}, {
'text': 'Chocolate Beverage',
'id': '1',
'parentid': '-1',
'value': '$1.1'
}, {
'id': '6',
'text': 'Espresso Beverage',
'parentid': '-1',
'value': '$0.9'
}, {
'id': '7',
'parentid': '6',
'text': 'Caffe Americano',
'value': '$1.2'
}, {
'id': '8',
'text': 'Caffe Latte',
'parentid': '6',
'value': '$3.3'
}, {
'id': '9',
'text': 'Caffe Mocha',
'parentid': '6',
'value': '$2.5'
}, {
'id': '10',
'text': 'Cappuccino',
'parentid': '6',
'value': '$1.5'
}, {
'id': '11',
'text': 'Pumpkin Spice Latte',
'parentid': '6',
'value': '$1.6'
}, {
'id': '12',
'text': 'Frappuccino',
'parentid': '-1'
}, {
'id': '13',
'text': 'Caffe Vanilla Frappuccino',
'parentid': '12',
'value': '$1.2'
}
];
var source =
{
datatype: 'json',
datafields: [
{ name: 'id' },
{ name: 'parentid' },
{ name: 'text' },
{ name: 'value' }
],
id: 'id',
localdata: data
};
var dataAdapter = new jqx.dataAdapter(source, { autoBind: true });
var records = dataAdapter.getRecordsHierarchy('id', 'parentid', 'items', [{ name: 'text', map: 'label' }]);
JQXElements.settings['treeMapSettings'] =
{
source: records,
baseColor: '#0afaaa',
renderCallbacks: {
'*': function (element, data) {
if (!data.parent) {
element[0].style.backgroundColor = '#fff';
element[0].style.border = '1px solid #aaa';
}
else {
var nThreshold = 105;
var bgDelta = (data.rgb.r * 0.299) + (data.rgb.g * 0.587) + (data.rgb.b * 0.114);
var foreColor = (255 - bgDelta < nThreshold) ? 'Black' : 'White';
element[0].style.color = foreColor;
}
}
}
};
</script>
</head>
<body>
<div class="example-description">
In this demo the TreeMap Custom Element is built from JSON data.
</div>
<jqx-tree-map settings="treeMapSettings"></jqx-tree-map>
</body>
</html>