mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 18:30:09 +00:00
another minor rework of the API...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
fd2d757d75
commit
08d5d4bad9
@ -270,8 +270,16 @@ 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...
|
||||||
renderNested: function(sublist, item, options){
|
// XXX should this take an empty sublist???
|
||||||
return sublist },
|
// ...this would make it simpler to expand/collapse without
|
||||||
|
// re-rendering the whole list...
|
||||||
|
renderNested: function(header, sublist, item, options){
|
||||||
|
return header ?
|
||||||
|
this.renderGroup([
|
||||||
|
header,
|
||||||
|
sublist,
|
||||||
|
])
|
||||||
|
: sublist },
|
||||||
// Render nested list header...
|
// Render nested list header...
|
||||||
// XXX should this be a renderer or an option to .renderItem(..)???
|
// XXX should this be a renderer or an option to .renderItem(..)???
|
||||||
renderNestedHeader: function(item, i, options){
|
renderNestedHeader: function(item, i, options){
|
||||||
@ -326,35 +334,38 @@ var BaseBrowserPrototype = {
|
|||||||
that.renderGroup(
|
that.renderGroup(
|
||||||
item.map(_render), options)
|
item.map(_render), options)
|
||||||
// renderable item...
|
// renderable item...
|
||||||
|
// XXX should this be nested???
|
||||||
: item.render instanceof Function ?
|
: item.render instanceof Function ?
|
||||||
that.renderNested(
|
that.renderNested(
|
||||||
|
null,
|
||||||
item.render(context),
|
item.render(context),
|
||||||
item,
|
item,
|
||||||
options)
|
options)
|
||||||
// renderable value -- embedded list...
|
// renderable value -- embedded list...
|
||||||
|
// XXX should this be nested???
|
||||||
: (item.value || {}).render instanceof Function ?
|
: (item.value || {}).render instanceof Function ?
|
||||||
that.renderNested(
|
that.renderNested(
|
||||||
|
null,
|
||||||
item.value.render(context),
|
item.value.render(context),
|
||||||
item,
|
item,
|
||||||
options)
|
options)
|
||||||
// .sublist -- nested list...
|
// .sublist -- nested list...
|
||||||
|
// XXX should we always render the nested list here,
|
||||||
|
// only rendering it empty if collapsed???
|
||||||
: item.sublist ?
|
: item.sublist ?
|
||||||
(item.collapsed ?
|
(item.collapsed ?
|
||||||
// collapsed item...
|
// collapsed item...
|
||||||
//that.renderItem(item, i, options)
|
|
||||||
that.renderNestedHeader(item, i, options)
|
that.renderNestedHeader(item, i, options)
|
||||||
// expanded item (grouped)...
|
// expanded item (grouped)...
|
||||||
: that.renderGroup([
|
: that.renderNested(
|
||||||
//that.renderItem(item, i, options),
|
|
||||||
that.renderNestedHeader(item, i, options),
|
that.renderNestedHeader(item, i, options),
|
||||||
that.renderNested(
|
|
||||||
item.sublist.render instanceof Function ?
|
item.sublist.render instanceof Function ?
|
||||||
// renderable...
|
// renderable...
|
||||||
item.sublist.render(context)
|
item.sublist.render(context)
|
||||||
// list of items...
|
// list of items...
|
||||||
: item.sublist.map(_render),
|
: item.sublist.map(_render),
|
||||||
item,
|
item,
|
||||||
options) ], options))
|
options))
|
||||||
// basic item...
|
// basic item...
|
||||||
: that.renderItem(item, i, options)) })
|
: that.renderItem(item, i, options)) })
|
||||||
.filter(function(e){
|
.filter(function(e){
|
||||||
@ -443,9 +454,11 @@ 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 (???)
|
||||||
renderNested: function(sublist, item, options){
|
renderNested: function(header, sublist, item, options){
|
||||||
// XXX expand/collapse state???
|
// XXX expand/collapse state???
|
||||||
return sublist },
|
return header ?
|
||||||
|
[header, sublist]
|
||||||
|
: sublist },
|
||||||
// Render group...
|
// Render group...
|
||||||
renderGroup: function(items, options){
|
renderGroup: function(items, options){
|
||||||
return items },
|
return items },
|
||||||
@ -513,22 +526,25 @@ var TextBrowserPrototype = {
|
|||||||
// visible in text...
|
// visible in text...
|
||||||
renderList: function(items, options){
|
renderList: function(items, options){
|
||||||
var that = this
|
var that = this
|
||||||
return this.renderNested(items, null, options)
|
return this.renderNested(null, items, null, options)
|
||||||
.join('\n') },
|
.join('\n') },
|
||||||
renderItem: function(item, i, options){
|
renderItem: function(item, i, options){
|
||||||
var value = item.value || item
|
var value = item.value || item
|
||||||
return item.current ?
|
return item.current ?
|
||||||
`[ ${value} ]`
|
`[ ${value} ]`
|
||||||
: value },
|
: value },
|
||||||
renderNested: function(sublist, item, options){
|
renderNested: function(header, sublist, item, options){
|
||||||
var that = this
|
var that = this
|
||||||
return sublist
|
var nested = sublist
|
||||||
.flat()
|
.flat()
|
||||||
.map(function(e){
|
.map(function(e){
|
||||||
return e instanceof Array ?
|
return e instanceof Array ?
|
||||||
e.map(function(e){ return (that.options.renderIndent || ' ') + e })
|
e.map(function(e){ return (that.options.renderIndent || ' ') + e })
|
||||||
: e })
|
: e })
|
||||||
.flat() },
|
.flat()
|
||||||
|
return header ?
|
||||||
|
[header, nested]
|
||||||
|
: nested },
|
||||||
renderNestedHeader: function(item, i, options){
|
renderNestedHeader: function(item, i, options){
|
||||||
return this.renderItem(...arguments) + (item.collapsed ? ' >' : ' v') },
|
return this.renderItem(...arguments) + (item.collapsed ? ' >' : ' v') },
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user