some refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2019-01-30 06:04:55 +03:00
parent 91a1e0aa34
commit fd2d757d75

View File

@ -270,19 +270,19 @@ var BaseBrowserPrototype = {
return items }, return items },
// Render nested list... // Render nested list...
// NOTE: to skip rendering an item/list return null... // NOTE: to skip rendering an item/list return null...
renderSubList: function(sublist, item, options){ renderNested: function(sublist, item, options){
return sublist }, return sublist },
// Render group... // Render nested list header...
renderGroup: function(items, options){ // XXX should this be a renderer or an option to .renderItem(..)???
return items }, renderNestedHeader: function(item, i, options){
return this.renderItem(...arguments) },
// Render list item... // Render list item...
// NOTE: to skip rendering an item/list return null... // NOTE: to skip rendering an item/list return null...
renderItem: function(item, i, options){ renderItem: function(item, i, options){
return item }, return item },
// Render nested list header... // Render group...
// XXX should this be a renderer or an option to .renderItem(..)??? renderGroup: function(items, options){
renderSubListHeader: function(item, i, options){ return items },
return this.renderItem(...arguments) },
// Render state... // Render state...
// //
@ -327,13 +327,13 @@ var BaseBrowserPrototype = {
item.map(_render), options) item.map(_render), options)
// renderable item... // renderable item...
: item.render instanceof Function ? : item.render instanceof Function ?
that.renderSubList( that.renderNested(
item.render(context), item.render(context),
item, item,
options) options)
// renderable value -- embedded list... // renderable value -- embedded list...
: (item.value || {}).render instanceof Function ? : (item.value || {}).render instanceof Function ?
that.renderSubList( that.renderNested(
item.value.render(context), item.value.render(context),
item, item,
options) options)
@ -342,12 +342,12 @@ var BaseBrowserPrototype = {
(item.collapsed ? (item.collapsed ?
// collapsed item... // collapsed item...
//that.renderItem(item, i, options) //that.renderItem(item, i, options)
that.renderSubListHeader(item, i, options) that.renderNestedHeader(item, i, options)
// expanded item (grouped)... // expanded item (grouped)...
: that.renderGroup([ : that.renderGroup([
//that.renderItem(item, i, options), //that.renderItem(item, i, options),
that.renderSubListHeader(item, i, options), that.renderNestedHeader(item, i, options),
that.renderSubList( that.renderNested(
item.sublist.render instanceof Function ? item.sublist.render instanceof Function ?
// renderable... // renderable...
item.sublist.render(context) item.sublist.render(context)
@ -443,7 +443,7 @@ var BrowserPrototype = {
// XXX list header // XXX list header
// ...is it the responsibility of sub-list or the parent list??? // ...is it the responsibility of sub-list or the parent list???
// XXX save link to dom (???) // XXX save link to dom (???)
renderSubList: function(sublist, item, options){ renderNested: function(sublist, item, options){
// XXX expand/collapse state??? // XXX expand/collapse state???
return sublist }, return sublist },
// Render group... // Render group...
@ -513,9 +513,14 @@ var TextBrowserPrototype = {
// visible in text... // visible in text...
renderList: function(items, options){ renderList: function(items, options){
var that = this var that = this
return this.renderSubList(items, null, options) return this.renderNested(items, null, options)
.join('\n') }, .join('\n') },
renderSubList: function(sublist, item, options){ renderItem: function(item, i, options){
var value = item.value || item
return item.current ?
`[ ${value} ]`
: value },
renderNested: function(sublist, item, options){
var that = this var that = this
return sublist return sublist
.flat() .flat()
@ -524,12 +529,7 @@ var TextBrowserPrototype = {
e.map(function(e){ return (that.options.renderIndent || ' ') + e }) e.map(function(e){ return (that.options.renderIndent || ' ') + e })
: e }) : e })
.flat() }, .flat() },
renderItem: function(item, i, options){ renderNestedHeader: function(item, i, options){
var value = item.value || item
return item.current ?
`[ ${value} ]`
: value },
renderSubListHeader: function(item, i, options){
return this.renderItem(...arguments) + (item.collapsed ? ' >' : ' v') }, return this.renderItem(...arguments) + (item.collapsed ? ' >' : ' v') },
} }