[js] survey, text, checkbox and page widgets: first iteration