mirror of
				https://github.com/flynx/pWiki.git
				synced 2025-10-31 02:50:08 +00:00 
			
		
		
		
	cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									9eddf696c4
								
							
						
					
					
						commit
						dcc4ff1aee
					
				| @ -186,107 +186,6 @@ var Outline = { | |||||||
| 					: nodes | 					: nodes | ||||||
| 			: (edited  | 			: (edited  | ||||||
| 				?? node) }, | 				?? node) }, | ||||||
| 	/*/ |  | ||||||
| 	get: function(node='focused', offset){ |  | ||||||
| 		var that = this |  | ||||||
| 
 |  | ||||||
| 		// shorthands...
 |  | ||||||
| 		if(node == 'next'){ |  | ||||||
| 			return this.get('focused', 1) } |  | ||||||
| 		if(node == 'prev' || node == 'previous'){ |  | ||||||
| 			return this.get('focused', -1) } |  | ||||||
| 
 |  | ||||||
| 		var outline = this.outline |  | ||||||
| 
 |  | ||||||
| 		var parent = function(node){ |  | ||||||
| 			return node?.parentElement?.parentElement } |  | ||||||
| 		var children = function(node){ |  | ||||||
| 			return [...node?.lastChild?.children] } |  | ||||||
| 
 |  | ||||||
| 		// get parent node...
 |  | ||||||
| 		if(node instanceof HTMLElement){ |  | ||||||
| 			while(!node.classList.contains('block')){ |  | ||||||
| 				node = node.parentElement |  | ||||||
| 				if(node === this.outline){ |  | ||||||
| 					return undefined } } } |  | ||||||
| 
 |  | ||||||
| 		// node lists...
 |  | ||||||
| 		var NO_NODES = {} |  | ||||||
| 		var nodes =  |  | ||||||
| 			node == 'all' ? |  | ||||||
| 				[...outline.querySelectorAll('.block')]  |  | ||||||
| 			: node == 'visible' ? |  | ||||||
| 				[...outline.querySelectorAll('.block')]  |  | ||||||
| 					.filter(function(e){ |  | ||||||
| 						return e.offsetParent != null }) |  | ||||||
| 			: node == 'editable' ? |  | ||||||
| 				[...outline.querySelectorAll('.block>textarea')]  |  | ||||||
| 			: node == 'selected' ? |  | ||||||
| 				[...outline.querySelectorAll('.block[selected]')] |  | ||||||
| 			: node == 'top' ? |  | ||||||
| 				[...outline.children] |  | ||||||
| 					.filter(function(elem){  |  | ||||||
| 						return elem.getAttribute('tabindex') != null }) |  | ||||||
| 			: ['siblings', 'children'].includes(node) ? |  | ||||||
| 				this.get('focused', node)  |  | ||||||
| 			: node instanceof Array ? |  | ||||||
| 				node |  | ||||||
| 			: NO_NODES |  | ||||||
| 		if(nodes !== NO_NODES){ |  | ||||||
| 			return offset == null ? |  | ||||||
| 					nodes |  | ||||||
| 				: typeof(offset) == 'number' ? |  | ||||||
| 					nodes.at(offset) |  | ||||||
| 				: nodes |  | ||||||
| 					.map(function(elem){ |  | ||||||
| 						return that.get(elem, offset) }) } |  | ||||||
| 
 |  | ||||||
| 		// single base node...
 |  | ||||||
| 		node =  |  | ||||||
| 			typeof(node) == 'number' ? |  | ||||||
| 				this.at(node) |  | ||||||
| 			: node == 'focused' ? |  | ||||||
| 				(outline.querySelector(`.block:focus`) |  | ||||||
| 					|| outline.querySelector(`textarea:focus`)?.parentElement |  | ||||||
| 					|| outline.querySelector('.block.focused')) |  | ||||||
| 			: node == 'parent' ? |  | ||||||
| 				parent(this.get('focused')) |  | ||||||
| 			: node  |  | ||||||
| 		var edited |  | ||||||
| 		if(node == 'edited'){ |  | ||||||
| 			edited = outline.querySelector(`textarea:focus`) |  | ||||||
| 			node = edited?.parentElement } |  | ||||||
| 
 |  | ||||||
| 		if(!node || typeof(node) == 'string'){ |  | ||||||
| 			return undefined } |  | ||||||
| 
 |  | ||||||
| 		// children...
 |  | ||||||
| 		if(offset == 'children'){ |  | ||||||
| 			return children(node) } |  | ||||||
| 
 |  | ||||||
| 		// siblings...
 |  | ||||||
| 		if(offset == 'siblings'){ |  | ||||||
| 			return children(parent(node)) } |  | ||||||
| 
 |  | ||||||
| 		// offset...
 |  | ||||||
| 		offset =  |  | ||||||
| 			offset == 'next' ?  |  | ||||||
| 				1 |  | ||||||
| 			: offset == 'prev' ? |  | ||||||
| 				-1 |  | ||||||
| 			: offset |  | ||||||
| 		if(typeof(offset) == 'number'){ |  | ||||||
| 			nodes = this.get('visible') |  | ||||||
| 			var i = nodes.indexOf(node) + offset |  | ||||||
| 			i = i < 0 ? |  | ||||||
| 				nodes.length + i |  | ||||||
| 				: i % nodes.length |  | ||||||
| 			node = nodes[i]  |  | ||||||
| 			edited = edited  |  | ||||||
| 				&& node.querySelector('.code') } |  | ||||||
| 		return edited  |  | ||||||
| 			|| node }, |  | ||||||
| 	//*/
 |  | ||||||
| 	at: function(index, nodes='visible'){ | 	at: function(index, nodes='visible'){ | ||||||
| 		return this.get(nodes).at(index) }, | 		return this.get(nodes).at(index) }, | ||||||
| 	focus: function(node='focused', offset){ | 	focus: function(node='focused', offset){ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user