covid19-dashboard
Version:
Dashboard App displaying COVID-19 numbers by country
119 lines (99 loc) • 3.14 kB
JavaScript
import TreeList from '../../../../node_modules/neo.mjs/src/tree/List.mjs';
import NeoArray from '../../../../node_modules/neo.mjs/src/util/Array.mjs';
/**
* @class Docs.view.classdetails.HierarchyTreeList
* @extends Neo.tree.List
*/
class HierarchyTreeList extends TreeList {
static getConfig() {return {
/**
* @member {String} className='Docs.view.classdetails.HierarchyTreeList'
* @protected
*/
className: 'Docs.view.classdetails.HierarchyTreeList',
/**
* @member {String} ntype='classdetails-treelist'
* @protected
*/
ntype: 'classhierarchy-treelist',
/**
* @member {String[]} cls=['docs-classhierarchy-treelist', 'neo-list-container', 'neo-list']
*/
cls: [
'docs-classhierarchy-treelist',
'neo-list-container',
'neo-tree-list',
'neo-list'
],
/**
* @member {Boolean} showCollapseExpandAllIcons=false
*/
showCollapseExpandAllIcons: false,
/**
* @member {Object|null} structureData=null
*/
structureData: null
}}
/**
*
*/
onConstructed() {
super.onConstructed();
let me = this;
me.createStoreItems();
me.createItems(null, me.getListItemsRoot(), 0);
}
/**
*
*/
createStoreItems() {
let me = this,
className = me.structureData.className,
mainContainer = me.up('main-container'),
mainStore = mainContainer.store,
storeItems = [],
tmpItems = [],
item, parentId;
item = mainStore.find({
$kind : className === 'Neo' ? 'module' : 'class',
neoClassName: me.structureData.className
})[0];
tmpItems.unshift(item);
while (item && item.hasOwnProperty('augments')) {
item = mainStore.find({
$kind : 'class',
neoClassName: item.augments[0]
})[0];
tmpItems.unshift(item);
}
tmpItems.forEach((key, index) => {
if (key) {
parentId = tmpItems[index - 1] ? tmpItems[index - 1].id : null;
storeItems.push({
checked : true,
id : key.id,
isLeaf : true,
name : key.neoClassName,
parentId: parentId
});
}
});
me.store.items = storeItems;
}
/**
*
* @param {Object} record
*/
onLeafItemClick(record) {
let me = this,
vnodeId = me.getItemId(record.id),
vdom = me.vdom,
vdomNode = me.getVdomChild(vnodeId);
NeoArray[record.checked ? 'add' : 'remove'](vdomNode.cls, 'unchecked');
record.checked = !record.checked;
me.vdom = vdom;
me.fire('refreshClassMembers');
}
}
Neo.applyClassConfig(HierarchyTreeList);
export {HierarchyTreeList as default};