FormStamp is a pure AngularJS widgets library designed for rich front-end web applications. FormStamp core principles are:
- all widgets are written from scratch;
- maximum AngularJS compatibility (supports ngDisabled, ngModel and other standard directives);
- styled with Twitter Bootstrap;
- clean & minimalistic codebase.
FormStamp can be installed via Bower Package Manager:
bower install angular-formstamp
There are 3 levels of directives:
- Form Builder - orchestrates building of complex forms; provides simple DSL-like markup for describing forms and hides complex markup from you.
- Widget directives - most often used widgets.
- Low-level directives - common concerns for widgets construction, can be used to build your own custom widgets.
fsFormFor
- root form builder directive;fsInput
- renders a row with input in form builder;fsRow
- renders a custom row.
fsSelect
- select input with free text support (select/combo);fsMultiselect
- multiple select input with free text support;fsTime
- time input;fsDate
- date input withfsCalendar
inside dropdown;fsDatetime
- widget composed fromfsTime
andfsDate
to enter both date and time;fsRadio
- a group of radiobuttons;fsCheck
- a group of checkboxes.
fsList
- renders a list of items and allows to move selection up and down (with custom templating for items);fsNullForm
- hides input with ngModel binding from a parent form;fsInput
- simplifies keyboard & focus events handling;fsCalendar
- draws a calendar and allows to mark one day as selected.
- support I18n
Install node.js
curl https://raw.github.com/creationix/nvm/master/install.sh | sh # install nvm
nvm install 0.10
Clone FormStamp repository
git clone [email protected]:formstamp/formstamp.git
Install bower dependencies and node.js packages
cd formstamp
nvm use 0.10
npm install # server deps
bower install # demo deps
Start grunt watcher and node.js server
`npm bin`/grunt build watch # Then buid and start watching changes
`npm bin`/grunt express:perm # Run server at port 17405
Now, point your browser to http://localhost:17405/ and you'll see FormStamp's demo page.
NOTE: These commands add nvm
command to .bash_profile
. It may not
work if you are not using bash
shell (like zsh
). In this case you
have to manually configure profile file.
Before run test suite:
`npm bin`/webdriver-manager update
To run protractor tests you could use:
grunt test:e2e:phantomjs
grunt test:e2e:chrome
grunt test:e2e:firefox
Alse you can provide option to protractor test to run specific test:
grunt test:e2e:chrome --specs=test/build/e2e/fsDateSpec.js
Then you can run unit tests with following command:
`npm bin`/karma start test/karma.conf.js --single-run
FormStamp is released under MIT License.