@@ -274,33 +274,45 @@ let put_values2d = function(grid, values) {
274
274
} ) ;
275
275
276
276
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
+ } ;
279
283
280
284
function int_renderer ( hotInstance , td , row , column , prop , value , cellProperties ) {
281
285
const numeric_format = cellProperties . numericFormat || 'd' ;
282
286
td . innerHTML = d3 . format ( numeric_format ) ( value ) ;
283
287
}
284
288
285
289
function 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 ) ) ;
295
291
}
296
292
297
293
( Handsontable . cellTypes as any ) . registerCellType ( 'int' , {
298
- editor : int_editor ,
294
+ editor : NumberEditor ,
299
295
renderer : int_renderer ,
300
296
validator : int_validator ,
301
297
allowInvalid : false
302
298
} ) ;
303
299
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
+
304
316
let SheetView = widgets . DOMWidgetView . extend ( {
305
317
render : function ( ) {
306
318
// this.widget_view_promises = {}
0 commit comments