mirror of
https://github.com/flynx/pWiki.git
synced 2025-10-29 18:10:09 +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