mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
started porting experiments to browse2.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
ef4c199f8e
commit
047cead873
@ -215,7 +215,8 @@ requirejs([
|
||||
make.Heading('Heading'),
|
||||
make.Confirm('Confirm',
|
||||
function(){ console.log('confirm') },
|
||||
function(){ console.log('reject') })
|
||||
function(){ console.log('reject') }),
|
||||
make.field('field', 'value')
|
||||
])
|
||||
make.nest(make.Heading('$Dynamic Items', {
|
||||
doc: 'Item generator examples...',
|
||||
|
||||
@ -203,6 +203,74 @@ object.mixinFlat(function(){}, {
|
||||
},
|
||||
|
||||
|
||||
// Utils...
|
||||
|
||||
// Make a nested context...
|
||||
//
|
||||
// Make a nested context object...
|
||||
// .makeSubContext(name[, obj])
|
||||
// -> context
|
||||
//
|
||||
// Make a nested context function...
|
||||
// .makeSubContext(name, func[, obj])
|
||||
// -> context
|
||||
//
|
||||
//
|
||||
// The context inherits from .items / make(..)
|
||||
//
|
||||
// If the context is callable it will be called in the context of make(..)
|
||||
//
|
||||
// If the context is constructed recursively it will return self
|
||||
//
|
||||
// XXX TEST...
|
||||
makeSubContext: function(name, obj){
|
||||
// arse args...
|
||||
var args = [...arguments].slice(1)
|
||||
var func = args[0] instanceof Function ?
|
||||
args.shift()
|
||||
: null
|
||||
obj = args.shift()
|
||||
|
||||
var n = '__'+ name
|
||||
Object.defineProperty(this, name, {
|
||||
get: function(){
|
||||
var that = this
|
||||
if(!this.hasOwnProperty(n)){
|
||||
// build the context object...
|
||||
var nested =
|
||||
func ?
|
||||
// NOTE: we always call func(..) in the root context...
|
||||
function(){
|
||||
// XXX should the client be able to override shorthands???
|
||||
var shorthands = (that.dialog.options || {}).elementShorthand || {}
|
||||
return arguments[0] in shorthands ?
|
||||
that.call(that, ...arguments)
|
||||
: func.call(that, ...arguments) }
|
||||
//return func.call(that, ...arguments) }
|
||||
: this instanceof Function ?
|
||||
function(){
|
||||
return that.call(this, ...arguments) }
|
||||
: {}
|
||||
nested.__proto__ = this
|
||||
|
||||
// mixin parent/obj...
|
||||
Object.assign(nested,
|
||||
this[n] || obj || {})
|
||||
|
||||
// NOTE: this will prevent constructing a nested context
|
||||
// (see test above)...
|
||||
this[n] = nested[n] = nested
|
||||
}
|
||||
return this[n] },
|
||||
})
|
||||
return this[name] },
|
||||
|
||||
// XXX
|
||||
batch: function(spec, callback){
|
||||
// XXX
|
||||
},
|
||||
|
||||
|
||||
// Getters...
|
||||
|
||||
// Last item created...
|
||||
@ -461,6 +529,48 @@ object.mixinFlat(function(){}, {
|
||||
})
|
||||
|
||||
|
||||
// Sub-context: .field
|
||||
//
|
||||
Items.makeSubContext('field',
|
||||
// base field handler...
|
||||
//
|
||||
// .field(title, value[, options])
|
||||
//
|
||||
// NOTE: this is a shorthand to:
|
||||
// make([title, value], ..)
|
||||
Object.assign(function(title, value, options){
|
||||
var args = [...arguments].slice(1)
|
||||
value = (args[0] instanceof Function
|
||||
|| !(args[0] instanceof Object)) ?
|
||||
args.shift()
|
||||
: undefined
|
||||
options = args.shift() || {}
|
||||
value = value || options.value
|
||||
Object.assign(
|
||||
options,
|
||||
{
|
||||
title,
|
||||
value,
|
||||
})
|
||||
return this([
|
||||
title,
|
||||
options.value instanceof Function ?
|
||||
options.value(this)
|
||||
: options.value
|
||||
], options) },
|
||||
{
|
||||
// XXX
|
||||
Editable: function(title, value, options){
|
||||
},
|
||||
|
||||
// Value toggle field...
|
||||
//
|
||||
// XXX
|
||||
Toggle: function(title, options){
|
||||
},
|
||||
}))
|
||||
|
||||
|
||||
var Make =
|
||||
module.Make =
|
||||
object.Constructor('Make', Items)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user