@@ -274,33 +274,45 @@ let put_values2d = function(grid, values) {
274274} ) ;
275275
276276
277- // Register `int` cell type
278- let int_editor = Handsontable . editors . TextEditor . prototype . extend ( ) ;
277+ // Register `int` and `float` cell types
278+ class NumberEditor extends Handsontable . editors . TextEditor {
279+ getValue ( ) {
280+ return Number . parseFloat ( this . TEXTAREA . value ) ;
281+ }
282+ } ;
279283
280284function int_renderer ( hotInstance , td , row , column , prop , value , cellProperties ) {
281285 const numeric_format = cellProperties . numericFormat || 'd' ;
282286 td . innerHTML = d3 . format ( numeric_format ) ( value ) ;
283287}
284288
285289function int_validator ( query , callback ) {
286- let is_integer = false ;
287- if ( typeof query == 'number' ) {
288- is_integer = Number . isInteger ( query ) ;
289- } else {
290- is_integer = Number . isInteger ( parseFloat ( query ) ) ;
291- }
292-
293- console . log ( 'is_integer?' , query , is_integer ) ;
294- callback ( is_integer ) ;
290+ callback ( Number . isInteger ( query ) ) ;
295291}
296292
297293( Handsontable . cellTypes as any ) . registerCellType ( 'int' , {
298- editor : int_editor ,
294+ editor : NumberEditor ,
299295 renderer : int_renderer ,
300296 validator : int_validator ,
301297 allowInvalid : false
302298} ) ;
303299
300+ function float_renderer ( hotInstance , td , row , column , prop , value , cellProperties ) {
301+ const numeric_format = cellProperties . numericFormat || '.2f' ;
302+ td . innerHTML = d3 . format ( numeric_format ) ( value ) ;
303+ }
304+
305+ function float_validator ( query , callback ) {
306+ callback ( Number . isInteger ( query ) ) ;
307+ }
308+
309+ ( Handsontable . cellTypes as any ) . registerCellType ( 'float' , {
310+ editor : NumberEditor ,
311+ renderer : float_renderer ,
312+ validator : float_validator ,
313+ allowInvalid : false
314+ } ) ;
315+
304316let SheetView = widgets . DOMWidgetView . extend ( {
305317 render : function ( ) {
306318 // this.widget_view_promises = {}
0 commit comments