mirror of
https://github.com/flynx/pWiki.git
synced 2025-10-29 18:10:09 +00:00
experimenting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
50c52ec88d
commit
0eb01b5b94
@ -1486,10 +1486,35 @@ var Outline = {
|
|||||||
collapsed: 'attr',
|
collapsed: 'attr',
|
||||||
focused: 'cls',
|
focused: 'cls',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_updateCodeSize: function(code, view){
|
||||||
|
code.style.height =
|
||||||
|
getComputedStyle(
|
||||||
|
view
|
||||||
|
?? code.nextSibling)
|
||||||
|
.height
|
||||||
|
return this },
|
||||||
|
_updateViewSize: function(view, code){
|
||||||
|
view.style.height =
|
||||||
|
getComputedStyle(
|
||||||
|
code
|
||||||
|
?? view.previousSibling)
|
||||||
|
.height
|
||||||
|
return this },
|
||||||
|
// XXX not a good solution...
|
||||||
|
_syncTextSize: function(code, view){
|
||||||
|
code = code.classList.contains('block') ?
|
||||||
|
code.querySelector('.code')
|
||||||
|
: code
|
||||||
|
view = view
|
||||||
|
?? code.nextSibling
|
||||||
|
code.updateSize()
|
||||||
|
return view.offsetHeight > code.offsetHeight ?
|
||||||
|
this._updateCodeSize(code, view)
|
||||||
|
: this._updateViewSize(view, code) },
|
||||||
|
|
||||||
// NOTE: this does not internally handle undo as it would be too
|
// NOTE: this does not internally handle undo as it would be too
|
||||||
// granular...
|
// granular...
|
||||||
_updateTextareaSize: function(elem){
|
|
||||||
elem.style.height = getComputedStyle(elem.nextSibling).height },
|
|
||||||
update: function(node='focused', data){
|
update: function(node='focused', data){
|
||||||
var node = this.get(node)
|
var node = this.get(node)
|
||||||
data ??= this.data(node, false)
|
data ??= this.data(node, false)
|
||||||
@ -1523,7 +1548,8 @@ var Outline = {
|
|||||||
code.value = data.text
|
code.value = data.text
|
||||||
code.updateSize()
|
code.updateSize()
|
||||||
// NOTE: this will have no effect if the element is not attached...
|
// NOTE: this will have no effect if the element is not attached...
|
||||||
this._updateTextareaSize(code) }
|
this._updateCodeSize(code) }
|
||||||
|
//this._syncTextSize(code, html) }
|
||||||
|
|
||||||
for(var [attr, value] of Object.entries({...data, ...parsed})){
|
for(var [attr, value] of Object.entries({...data, ...parsed})){
|
||||||
if(attr == 'children' || attr == 'text'){
|
if(attr == 'children' || attr == 'text'){
|
||||||
@ -1871,7 +1897,8 @@ var Outline = {
|
|||||||
cur[place](block)
|
cur[place](block)
|
||||||
: undefined
|
: undefined
|
||||||
|
|
||||||
this._updateTextareaSize(code)
|
this._updateCodeSize(code)
|
||||||
|
//this._syncTextSize(code, view)
|
||||||
|
|
||||||
this.setUndo(this.path(cur), 'remove', [this.path(block)]) }
|
this.setUndo(this.path(cur), 'remove', [this.path(block)]) }
|
||||||
return block },
|
return block },
|
||||||
@ -1904,7 +1931,8 @@ var Outline = {
|
|||||||
// ...this is done by expanding the textarea to the element
|
// ...this is done by expanding the textarea to the element
|
||||||
// size and enabling it to intercept clicks correctly...
|
// size and enabling it to intercept clicks correctly...
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
var f = that._updateTextareaSize
|
var f = that._updateCodeSize
|
||||||
|
//var f = that._syncTextSize.bind(that)
|
||||||
for(var e of [...that.outline.querySelectorAll('textarea')]){
|
for(var e of [...that.outline.querySelectorAll('textarea')]){
|
||||||
f(e) } }, 0)
|
f(e) } }, 0)
|
||||||
return this },
|
return this },
|
||||||
@ -1926,8 +1954,11 @@ var Outline = {
|
|||||||
// blocks place the cursor into the clicked location.
|
// blocks place the cursor into the clicked location.
|
||||||
// ...this is done by expanding the textarea to the element
|
// ...this is done by expanding the textarea to the element
|
||||||
// size and enabling it to intercept clicks correctly...
|
// size and enabling it to intercept clicks correctly...
|
||||||
|
// XXX this is a hack -- need to style the thing in such away
|
||||||
|
// so as to not require this step...
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
var f = that._updateTextareaSize
|
var f = that._updateCodeSize.bind(that)
|
||||||
|
//var f = that._syncTextSize.bind(that)
|
||||||
for(var e of [...that.outline.querySelectorAll('textarea')]){
|
for(var e of [...that.outline.querySelectorAll('textarea')]){
|
||||||
f(e) } }, 0)
|
f(e) } }, 0)
|
||||||
return this },
|
return this },
|
||||||
|
|||||||
@ -52,8 +52,16 @@ var setup = function(){
|
|||||||
- blank line at end of block is initially not shown
|
- blank line at end of block is initially not shown
|
||||||
- this block contains two lines (empty below)
|
- this block contains two lines (empty below)
|
||||||
|
|
||||||
- `editor.Block(editor.data(editor.get())).querySelector('.view').innerHTML` -- '\n' present
|
- ```
|
||||||
- _...is this a resize issue???_
|
editor.Block(
|
||||||
|
editor.data(
|
||||||
|
editor.get()))
|
||||||
|
.querySelector('.view').innerHTML // formatting is OK...
|
||||||
|
```
|
||||||
|
- _...this is a resize issue (???)_
|
||||||
|
- running `.updateSize() and then `._updateViewSize(..)` does not fix the issue...
|
||||||
|
- simply replacing `._updateCodeSize(..)` with `._syncTextSize(..)` fixes this but breaks lots more stuff...
|
||||||
|
_...need a better sync mechanism, preferably CSS_
|
||||||
-
|
-
|
||||||
this block also contains two lines (empty above)
|
this block also contains two lines (empty above)
|
||||||
-
|
-
|
||||||
@ -76,11 +84,7 @@ var setup = function(){
|
|||||||
|
|
||||||
- _this seams to be a problem only on the initial render -- edit/exit fixes the issue..._
|
- _this seams to be a problem only on the initial render -- edit/exit fixes the issue..._
|
||||||
- _Q: are we using different code paths for initial render and element render???_
|
- _Q: are we using different code paths for initial render and element render???_
|
||||||
- BUG: styling error...
|
- BUG: can't move down out of a code block (_directly connected to the above_)
|
||||||
- this _seems `to` work_
|
|
||||||
- `while` _this `does` not_
|
|
||||||
- _seems to be connected with quoting..._
|
|
||||||
- BUG: can't move down out of a code block
|
|
||||||
- edit this line, then move down
|
- edit this line, then move down
|
||||||
- ```
|
- ```
|
||||||
code
|
code
|
||||||
@ -88,6 +92,10 @@ var setup = function(){
|
|||||||
- this node can't be reached.
|
- this node can't be reached.
|
||||||
- _this appears to be due to how we are resizing the text..._
|
- _this appears to be due to how we are resizing the text..._
|
||||||
- BUG resizing seems to be broken -- edit triggers a bad resize
|
- BUG resizing seems to be broken -- edit triggers a bad resize
|
||||||
|
- BUG: styling error...
|
||||||
|
- this _seems `to` work_
|
||||||
|
- `while` _this `does` not_
|
||||||
|
- _seems to be connected with quoting..._
|
||||||
- BUG: caret positioning broken
|
- BUG: caret positioning broken
|
||||||
- *TODO*::
|
- *TODO*::
|
||||||
- text text text
|
- text text text
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user