@@ -33,8 +33,8 @@ export class EditablePlugin implements DatagridPlugin {
3333
3434 if ( ! cell . classList . contains ( "editing" ) ) {
3535 cell . classList . add ( "editing" ) ;
36- const originalValue = cell . innerHTML . replace ( / < \/ ? b r > / g, "\n" ) ;
37- const valueToEdit = cell . getAttribute ( EditableValueAttribute ) ?? originalValue ;
36+ const originalValue = ( cell . innerHTML . replace ( / < \/ ? b r > / g, "\n" ) ) . trim ( ) ;
37+ const valueToEdit = ( cell . getAttribute ( EditableValueAttribute ) ?? originalValue ) . trim ( ) ;
3838
3939 cell . setAttribute ( "originalValue" , originalValue ) ;
4040 cell . setAttribute ( "valueToEdit" , valueToEdit ) ;
@@ -49,15 +49,16 @@ export class EditablePlugin implements DatagridPlugin {
4949 input = cell . querySelector ( "textarea" ) ! ;
5050 break ;
5151 case "select" :
52- input = cell . querySelector ( cell . getAttribute ( EditableElementAttribute ) ?? "" ) ! ;
52+ cell . innerHTML = cell . getAttribute ( EditableElementAttribute ) ?? "" ;
53+ input = cell . querySelector ( "select" ) ! ;
5354 input
5455 . querySelectorAll ( `option[value='${ valueToEdit } ']` )
5556 . forEach ( input => input . setAttribute ( "selected" , "true" ) ) ;
5657 break ;
5758 default :
5859 cell . innerHTML = `<input type='${ type } ' />` ;
5960 input = cell . querySelector ( "input" ) ! ;
60- input . setAttribute ( "value" , valueToEdit . trim ( ) ) ;
61+ input . setAttribute ( "value" , valueToEdit ) ;
6162 }
6263
6364 const attributes = JSON . parse ( cell . getAttribute ( EditableAttrsAttribute ) ?? "{}" ) ;
@@ -81,7 +82,9 @@ export class EditablePlugin implements DatagridPlugin {
8182 } ) as any ;
8283
8384 if ( type === "select" ) {
84- cell . innerHTML = cell . querySelector ( `option[value='${ value } ']` ) ?. innerHTML ?? "" ;
85+ cell . innerHTML = ( el instanceof HTMLSelectElement )
86+ ? el . options [ el . selectedIndex ] ?. text ?? value
87+ : value ;
8588 } else {
8689 if ( response . _datagrid_editable_new_value ) {
8790 value = response . _datagrid_editable_new_value ;
0 commit comments