[js] new widget: table widget