mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 02:10:08 +00:00
experimenting with the concatinative model...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
5bf1e40d2e
commit
515796fc05
@ -2164,6 +2164,9 @@ var BaseBrowserPrototype = {
|
|||||||
function(_, i, p, options, context){
|
function(_, i, p, options, context){
|
||||||
return [func, options, context] },
|
return [func, options, context] },
|
||||||
options, context) },
|
options, context) },
|
||||||
|
// XXX should this be cached???
|
||||||
|
toArray: function(){
|
||||||
|
return this.map() },
|
||||||
|
|
||||||
|
|
||||||
// Search items...
|
// Search items...
|
||||||
@ -2389,7 +2392,7 @@ var BaseBrowserPrototype = {
|
|||||||
|| (pattern instanceof Array
|
|| (pattern instanceof Array
|
||||||
&& !pattern
|
&& !pattern
|
||||||
.reduce(function(r, e){
|
.reduce(function(r, e){
|
||||||
return r && typeof(e) != typeof({}) }, true))){
|
return r && typeof(e) != typeof({}) }, true))){
|
||||||
// reverse index...
|
// reverse index...
|
||||||
index = this
|
index = this
|
||||||
.reduce(function(res, e, i, p){
|
.reduce(function(res, e, i, p){
|
||||||
@ -3492,6 +3495,68 @@ var BaseBrowserPrototype = {
|
|||||||
this.options = Object.assign(
|
this.options = Object.assign(
|
||||||
Object.create(this.options || {}),
|
Object.create(this.options || {}),
|
||||||
args[0] || {}) },
|
args[0] || {}) },
|
||||||
|
|
||||||
|
|
||||||
|
// XXX EXPERIMENTAL...
|
||||||
|
// - set correct isolation boundary between this and .source...
|
||||||
|
// - make this a real instance...
|
||||||
|
// - return from selectors...
|
||||||
|
// - treat .items as cache
|
||||||
|
// -> reset on parent .make(..)
|
||||||
|
// -> re-acquire data (???)
|
||||||
|
// - take control (optionally), i.e. handle keyboard
|
||||||
|
// XXX make all navigation DOM-based... (???)
|
||||||
|
// ...we can't do this in a trivial way because we could have a
|
||||||
|
// partially rendered state...
|
||||||
|
// XXX BUG:
|
||||||
|
// // render a part of the dialog...
|
||||||
|
// d = dialog
|
||||||
|
// .clone([7,8,9])
|
||||||
|
// .update()
|
||||||
|
// // XXX this does not restore the dialog...
|
||||||
|
// // would need to
|
||||||
|
// // dialog.dom = d.dom
|
||||||
|
// // ...after each render...
|
||||||
|
// dialog
|
||||||
|
// .update(true)
|
||||||
|
// this is due to the fact that we overwrite the .dom in the child
|
||||||
|
// but not in the source...
|
||||||
|
// a simple solution would be to keep all the dom props in one
|
||||||
|
// place...
|
||||||
|
clone: function(action, ...args){
|
||||||
|
var that = this
|
||||||
|
// XXX move this out...
|
||||||
|
// this can be merged into BaseBrowser or live in a separate mixin...
|
||||||
|
var getRoot = function(e){
|
||||||
|
var cur = e
|
||||||
|
while(cur.source){
|
||||||
|
cur = cur.source }
|
||||||
|
return e }
|
||||||
|
return {
|
||||||
|
__proto__: this,
|
||||||
|
source: this,
|
||||||
|
|
||||||
|
get dom(){
|
||||||
|
return getRoot(this).dom },
|
||||||
|
set dom(value){
|
||||||
|
getRoot(this).dom = value },
|
||||||
|
get container(){
|
||||||
|
return getRoot(this).container },
|
||||||
|
set container(value){
|
||||||
|
getRoot(this).container = value },
|
||||||
|
|
||||||
|
end: function(){
|
||||||
|
return this.source },
|
||||||
|
|
||||||
|
}.run(function(){
|
||||||
|
this.items =
|
||||||
|
action instanceof Array ?
|
||||||
|
action
|
||||||
|
.map(function(e){
|
||||||
|
return that.get(e) })
|
||||||
|
: action ?
|
||||||
|
that[action](...args)
|
||||||
|
: that.items.slice() }) },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user