Directory

prendus-question-elements - Vaadin Add-on Directory

Fully embeddable custom HTML elements for questions made with AssessML. prendus-question-elements - Vaadin Add-on Directory
**[ This description is mirrored from README.md at [github.com/Prendus/prendus-question-elements](https://github.com//Prendus/prendus-question-elements/blob/v0.15.4/README.md) on 2019-05-22 ]** # Prendus Question Elements [![CircleCI](https://circleci.com/gh/Prendus/prendus-question-elements.svg?style=shield)](https://circleci.com/gh/Prendus/prendus-question-elements) [![npm version](https://img.shields.io/npm/v/prendus-question-elements.svg?style=flat)](https://www.npmjs.com/package/prendus-question-elements) [![dependency Status](https://david-dm.org/prendus/prendus-question-elements/status.svg)](https://david-dm.org/prendus/prendus-question-elements) [![devDependency Status](https://david-dm.org/prendus/prendus-question-elements/dev-status.svg)](https://david-dm.org/prendus/prendus-question-elements?type=dev) [![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/prendus/prendus-question-elements) ![Question demo](https://github.com/prendus/prendus-question-elements/raw/master/readme-demo.gif) Fully embeddable custom HTML elements for questions made with [AssessML](https://github.com/Prendus/assessml). Use these elements in any web platform project, including [Web Components](https://www.webcomponents.org/), [Polymer](https://www.polymer-project.org/), [SkateJS](https://github.com/skatejs/skatejs), [React](https://facebook.github.io/react/), [Vue.js](https://vuejs.org/), [Angular](https://angular.io/), [Ember.js](https://www.emberjs.com/), and Vanilla. ## Demos [Playground with blank editor](https://www.prendus.com/question/playground) ### Multiple choice [Basic demo](https://www.prendus.com/question/cjg7hm4ysanc001208wyufca1/demo) [Advanced demo](https://www.prendus.com/question/cjg7i2u5gb3e801382ly78oyp/demo) ### Multiple select [Basic demo](https://www.prendus.com/question/cjg7i6q89b6z801154qf7cmzx/demo) [Advanced demo](https://www.prendus.com/question/cjg7iik10bd3301266hfj6qlb/demo) ### Fill in the blank [Basic demo](https://www.prendus.com/question/cjg7im37lb2s50114aod9vpkd/demo) [Advanced demo](https://www.prendus.com/question/cjg7iqz5nb4p70114nodd157x/demo) ### Essay [Basic demo](https://www.prendus.com/question/cjg7ivcm4b36k0120t8tceqjc/demo) [Advanced demo](https://www.prendus.com/question/cj4zyq5qbfjhs0121ced4hecl/demo) ### Code [Basic demo](https://www.prendus.com/question/cjg863dp15hcd0102v4y5olus/demo) [Advanced demo](https://www.prendus.com/question/cjg86aar45l5p0113463xjk69/demo) ### Variables [Basic demo](https://www.prendus.com/question/cjg86joz35q4i0144ouidk5c5/demo) [Advanced demo](https://www.prendus.com/question/cj9oy530qftpd0194ovo8g5z2/demo) ### Math symbols [Basic demo](https://www.prendus.com/question/cjg86vw4a5sf50115pi3v8liq/demo) [Advanced demo](https://www.prendus.com/question/cjg87frjn61o001958jwxvmi5/demo) ### Images [Basic demo](https://www.prendus.com/question/cjg86oncn5r780195ubdk450g/demo) [Advanced demo](https://www.prendus.com/question/cj9t1lb4z774s01125a24euff/demo) ### Graphs [Basic demo](https://www.prendus.com/question/cjg87jws2620a01135bt358gb/demo) [Advanced demo](https://www.prendus.com/question/cjg87t1xf651i01862wiylhdp/demo) ### Solution [Basic demo](https://www.prendus.com/question/cjg87xs6r67n101215xzfirsu/demo) [Advanced demo](https://www.prendus.com/question/cj9ujbolb9tp60186ejo0ztx3/demo) ## Installation To use in your own project: ```bash npm install prendus-question-elements # Eventually the bower commands below will disappear, but until we can fully support npm, sorry bower install polymer --save bower install paper-tabs --save bower install juicy-ace-editor --save bower install iron-pages --save bower install wysiwyg-e --save bower install paper-toast --save bower install paper-dialog --save bower install paper-input --save bower install paper-button --save bower install iron-icon --save bower install paper-tooltip --save ``` To work on locally: ```bash git clone https://github.com/Prendus/prendus-question-elements cd prendus-question-elements npm install npm run test-window ``` ## Use The elements are written in TypeScript, and there is no build process. You will have to implement your own build process to consume them. We use [Zwitterion](https://github.com/lastmjs/zwitterion). Import the Web Components polyfill for cross-browser compatibility: ```HTML ... ... ``` Import the element that you would like to use: ```HTML ``` Then use the element wherever you would like: ```HTML ``` ## API ### prendus-view-question #### Properties ```typescript questionId: string ``` The Prendus question ID for this question. Providing this property will automatically load the question from the Prendus database. ```typescript question: Question ``` A question object can be used to provide the text and code of a question directly instead of loading it from the Prendus database. Any Question passed in must have the following interface: ```typescript interface Question { readonly text: string; readonly code: string; } ``` ### prendus-edit-question #### Properties ```typescript questionId: string ``` The Prendus question ID for this question. Providing this property will automatically load the question from the Prendus database. ```typescript question: string ``` A question object can be used to provide the text and code of a question directly instead of loading it from the Prendus database. Any Question passed in must have the following interface: ```typescript interface Question { text: string; code: string; } ``` ```typescript user: User ``` A Prendus user. This user (along with the userToken) is necessary to enforce many of the permissions on the questions. Any user passed in must have the following interface: ```typescript interface User { id: string; } ``` ```typescript userToken: string ``` The [Graphcool](https://www.graph.cool/) JSON Web Token associated with a user. This token (along with the user) is necessary to enforce many of the permissions on the questions. ```typescript noSave: boolean ``` Whether or not to execute API calls to save the question to the database on changes to the question text or code.