mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-30 19:00:09 +00:00 
			
		
		
		
	sorted out indexing and paths in .render2(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									4c44cf7e8b
								
							
						
					
					
						commit
						f5a1ccce77
					
				| @ -3113,18 +3113,20 @@ var BaseBrowserPrototype = { | |||||||
| 	// XXX EXPERIMENTAL....
 | 	// XXX EXPERIMENTAL....
 | ||||||
| 	// XXX move this out???
 | 	// XXX move this out???
 | ||||||
| 	// 		...should there be a placeholder renderer???
 | 	// 		...should there be a placeholder renderer???
 | ||||||
|  | 	// XXX do we need i and path args???
 | ||||||
| 	__renderer__: { | 	__renderer__: { | ||||||
| 		// placeholders...
 | 		// placeholders...
 | ||||||
| 		root: null, | 		root: null, | ||||||
| 		options: null, | 		options: null, | ||||||
| 
 | 
 | ||||||
| 		// renderers...
 | 		// renderers...
 | ||||||
| 		elem: function(e){ | 		elem: function(elem, index, path){ | ||||||
| 			return e.id || e }, | 			//return elem.id || elem },
 | ||||||
| 		inline: function(lst){ | 			return index }, | ||||||
|  | 		inline: function(lst, index, path){ | ||||||
| 			return lst }, | 			return lst }, | ||||||
| 		nest: function(header, lst){ | 		nest: function(header, lst, index, path){ | ||||||
| 			header = this.elem(header) | 			header = this.elem(header, index, path) | ||||||
| 			return [ | 			return [ | ||||||
| 				header,  | 				header,  | ||||||
| 				...(lst || []).map(function(e){  | 				...(lst || []).map(function(e){  | ||||||
| @ -3148,10 +3150,20 @@ var BaseBrowserPrototype = { | |||||||
| 	render2: function(options, renderer){ | 	render2: function(options, renderer){ | ||||||
| 		var that = this | 		var that = this | ||||||
| 
 | 
 | ||||||
| 		// XXX args...
 | 		// XXX args parsing...
 | ||||||
| 		renderer = renderer || this.__renderer__ | 		// XXX
 | ||||||
| 		renderer = renderer.root == null ? | 
 | ||||||
| 			renderer.start( | 		var args = [...arguments] | ||||||
|  | 		var base_path = args[args.length-1] instanceof Array ? | ||||||
|  | 		   	args.pop()  | ||||||
|  | 			: [] | ||||||
|  | 		var base_index = typeof(args[args.length-1]) == typeof(123)? | ||||||
|  | 		   	args.pop()  | ||||||
|  | 			: 0 | ||||||
|  | 
 | ||||||
|  | 		var render = renderer || this.__renderer__ | ||||||
|  | 		render = render.root == null ? | ||||||
|  | 			render.start( | ||||||
| 				this,  | 				this,  | ||||||
| 				Object.assign( | 				Object.assign( | ||||||
| 					Object.create(this.options || {}), | 					Object.create(this.options || {}), | ||||||
| @ -3160,40 +3172,58 @@ var BaseBrowserPrototype = { | |||||||
| 						includeInlinedBlocks: true, | 						includeInlinedBlocks: true, | ||||||
| 					},  | 					},  | ||||||
| 					options || {})) | 					options || {})) | ||||||
| 			: renderer | 			: render | ||||||
| 		options = renderer.options | 		options = render.options | ||||||
| 
 | 
 | ||||||
|  | 		// XXX from/to/around/count...
 | ||||||
|  | 		// XXX
 | ||||||
|  | 
 | ||||||
|  | 		var l | ||||||
|  | 		return this.walk( | ||||||
|  | 			function(e, i, p, children){ | ||||||
|  | 				// NOTE: since we let the nested browsers render sections
 | ||||||
|  | 				// 		of the list, we also need to compensate for the 
 | ||||||
|  | 				// 		number of elements they render...
 | ||||||
|  | 				base_index += (l || []).length | ||||||
|  | 				l = [] | ||||||
|  | 				i += base_index | ||||||
|  | 				p = base_path.concat(p) | ||||||
| 
 | 
 | ||||||
| 		return this.walk(function(e, i, p, children){ |  | ||||||
| 				// do not go down child browsers -- use their mechanics for rendering...
 | 				// do not go down child browsers -- use their mechanics for rendering...
 | ||||||
| 				;(e instanceof BaseBrowser || e.children instanceof BaseBrowser) | 				;(e instanceof BaseBrowser || e.children instanceof BaseBrowser) | ||||||
| 					&& children(false) | 					&& children(false) | ||||||
| 
 | 
 | ||||||
| 				return ( | 				return ( | ||||||
|  | 					// skip...
 | ||||||
|  | 					// XXX
 | ||||||
|  | 					false ? | ||||||
|  | 						[] | ||||||
|  | 
 | ||||||
| 					// inlined...
 | 					// inlined...
 | ||||||
| 					e instanceof BaseBrowser ? | 					: e instanceof BaseBrowser ? | ||||||
| 						renderer.inline(e.render2(options, renderer)) | 						render.inline(l = e.render2(options, render, i+1, p), i, p) | ||||||
| 					: e instanceof Array ? | 					: e instanceof Array ? | ||||||
| 						renderer.inline(children(true)) | 						render.inline(children(true), i, p) | ||||||
| 
 | 
 | ||||||
| 					// nested...
 | 					// nested...
 | ||||||
| 					: e.children instanceof BaseBrowser ? | 					: e.children instanceof BaseBrowser ? | ||||||
| 						renderer.nest(e,  | 						render.nest(e,  | ||||||
| 							// NOTE: we handle .collapsed here as the nested
 | 							// NOTE: we handle .collapsed here as the nested
 | ||||||
| 							// 		browser is one level down and knows nothing 
 | 							// 		browser is one level down and knows nothing 
 | ||||||
| 							// 		of it...
 | 							// 		of it...
 | ||||||
| 							(options.iterateCollapsed || !e.collapsed) | 							(options.iterateCollapsed || !e.collapsed) | ||||||
| 								&& e.children.render2(options, renderer)) | 								&& (l = e.children.render2(options, render, i+1, p)), | ||||||
|  | 							i, p) | ||||||
| 					: e.children instanceof Array ? | 					: e.children instanceof Array ? | ||||||
| 						renderer.nest(e, children(true)) | 						render.nest(e, children(true), i, p) | ||||||
| 
 | 
 | ||||||
| 					// normal item...
 | 					// normal item...
 | ||||||
| 					: renderer.elem(e) ) | 					: render.elem(e, i, p) ) | ||||||
| 				}, options) | 				}, options) | ||||||
| 			.run(function(){ | 			.run(function(){ | ||||||
| 				return renderer.root === that ? | 				return render.root === that ? | ||||||
| 					// finalize render...
 | 					// finalize render...
 | ||||||
| 					renderer.finalize(this) | 					render.finalize(this) | ||||||
| 					: this }) }, | 					: this }) }, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user