refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2023-12-14 19:03:33 +03:00
parent 5cd04af9f2
commit a308f32b14
2 changed files with 25 additions and 12 deletions

View File

@ -1776,7 +1776,17 @@ var Outline = {
// serialization... // serialization...
data: function(elem, deep=true){ data: function(elem, deep=true){
elem = this.get(elem) var that = this
// all elements...
elem =
(elem == 'all' || elem == 'root' || elem == '*') ?
[...this.outline.children]
: this.get(elem)
if(elem instanceof Array){
return elem
.map(function(elem){
return that.data(elem) }) }
// single element...
// XXX move these to config... // XXX move these to config...
var attrs = this.__block_attrs__ var attrs = this.__block_attrs__
var cls_attrs = ['focused'] var cls_attrs = ['focused']
@ -1795,17 +1805,21 @@ var Outline = {
&& (res[attr] = true) } && (res[attr] = true) }
return res }, {})), return res }, {})),
...(deep ? ...(deep ?
{children: this.json(elem)} //{children: this.json(elem)}
{children: [...elem.lastChild.children]
.map(function(elem){
return that.data(elem) })}
: {}), : {}),
} }, } },
json: function(node){ // XXX do we need both this and data???
var that = this // ...the only difference is the default behavior -- node vs all...
var children = [...(node ? // XXX should this always return a list???
node.lastChild.children json: function(node='all'){
: this.outline.children)] return [this.data(...(
return children arguments.length == 0 ?
.map(function(elem){ ['all']
return that.data(elem) }) }, : arguments))]
.flat() },
// XXX should this handle children??? // XXX should this handle children???
// XXX revise name... // XXX revise name...

View File

@ -144,8 +144,6 @@ var setup = function(){
- add loading spinner -- `.loading` class set on `.load(..)` and unset when done... - add loading spinner -- `.loading` class set on `.load(..)` and unset when done...
- DONE set/unset class - DONE set/unset class
- add animation - add animation
- `.json(..)`, `.data(..)`, ... should be signature compatible with `.get(..)` (???)
- _current state causes constant confusion..._
- Time to think about a standalone client -- at least to edit own notes as a test... - Time to think about a standalone client -- at least to edit own notes as a test...
- _also this would be a nice opportunity to start the move to a newer electron version_ - _also this would be a nice opportunity to start the move to a newer electron version_
- Q: Make the heading level depend on its depth?? - Q: Make the heading level depend on its depth??
@ -258,6 +256,7 @@ var setup = function(){
- `<editable/>` -- field marker - `<editable/>` -- field marker
- each child node will copy the template and allow editing of only fields - each child node will copy the template and allow editing of only fields
- not clear how to handle template changes... - not clear how to handle template changes...
- DONE `.json(..)`, `.data(..)`, ... should be signature compatible with `.get(..)` (???)
- DONE Q: Should we use `HTMLTextAreaElement.autoUpdateSize(..)` or handle it globally in setup??? - DONE Q: Should we use `HTMLTextAreaElement.autoUpdateSize(..)` or handle it globally in setup???
collapsed:: true collapsed:: true
- _...I'm leaning towards the later..._ - _...I'm leaning towards the later..._