diff --git a/Gruntfile.coffee b/Gruntfile.coffee
index 776135dd..d4c7c6fc 100644
--- a/Gruntfile.coffee
+++ b/Gruntfile.coffee
@@ -59,6 +59,7 @@ module.exports = (grunt) ->
files:
'<%= distFolder %>/formbuilder.js': '<%= compiledFolder %>/*.js'
'<%= vendorFolder %>/js/vendor.js': [
+ 'src/polyfills/ie8-node-enum.js'
'bower_components/ie8-node-enum/index.js'
'bower_components/jquery/dist/jquery.js'
'bower_components/jquery-ui/ui/jquery.ui.core.js'
diff --git a/README.md b/README.md
index f0886cc3..fb297354 100644
--- a/README.md
+++ b/README.md
@@ -117,6 +117,12 @@ You'll need [node and npm](http://nodejs.org/) installed.
5. Open a new terminal and run `grunt connect`
6. open `http://localhost:9001/` and you're all set!
+## Committing your changes and migrating to integral project
+1. Ensure you're running `grunt watch` while developing so that your main formbuilder.js file is up to date
+2. Run `grunt uglify` to compile the minified formbuilder.min.js file. (just for completeness, integral has its own minification)
+3. If you have made any changes to the formbuilder css, do the same for it with `grunt cssmin` (for completeness, as above)
+4. Copy the changed formbuilder.js files to integral/html/js/ext ; and formbuilder.css file to integral/html/css
+
## License
MIT
@@ -125,11 +131,6 @@ Last time this was worked on there were issues getting a new repo set up.
* npm install was failing to install correctly:
* running into issues with not finding xcode while trying to install gym.
* throwing lots of deprecation, no member named 'New' in 'v8::String', and NAN_THROW_ERRORs when installing gym
- * failing on a package due to a no-SSL error
-* bower seems to run fine but reports connection closed with 1 byte remaining
-* Running grunt watch/connect resulted in lots of JS errors in the console including missing css and summernote library
-
-A ticket will be created for this in the meantime.
Note made on the last attempt:
@@ -162,3 +163,11 @@ nvm use 0.8
nvm ls
~~~
+One last thing - node-gym has lots of issues. Sometimes if will completely stop after throwing all the errors, but sometimes it will continue.
+If all else fails, completely uninstall it globally and nuke your node_modules folder and try again.
+It worked for me last time.
+~~~
+sudo npm uninstall node-gyp -g
+rm -rf node_modules
+npm install
+~~~
diff --git a/_package-lock.json b/_package-lock.json
new file mode 100644
index 00000000..7e3c5553
--- /dev/null
+++ b/_package-lock.json
@@ -0,0 +1,2927 @@
+{
+ "name": "formbuilder",
+ "version": "0.2.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
+ "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.24",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+ "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.40.0"
+ }
+ }
+ }
+ },
+ "active-x-obfuscator": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz",
+ "integrity": "sha1-CJuJs3FF/x2ex0r2UwvlUmyuHxo=",
+ "dev": true,
+ "requires": {
+ "zeparser": "0.0.5"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "0.1.16",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+ "dev": true,
+ "requires": {
+ "underscore": "~1.7.0",
+ "underscore.string": "~2.4.0"
+ },
+ "dependencies": {
+ "underscore.string": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
+ "dev": true
+ }
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "dev": true
+ },
+ "assert": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "dev": true,
+ "requires": {
+ "util": "0.10.3"
+ }
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "dev": true
+ },
+ "async": {
+ "version": "0.1.22",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "dev": true
+ },
+ "base64id": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz",
+ "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=",
+ "dev": true
+ },
+ "basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz",
+ "integrity": "sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.0.5"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz",
+ "integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz",
+ "integrity": "sha1-qtM+wU49wsp06OfUUfm6BTrU96A=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "chokidar": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-0.8.4.tgz",
+ "integrity": "sha1-OytQZoFwhlNLqBoJK9z0viW4vuA=",
+ "dev": true,
+ "requires": {
+ "fsevents": "fsevents@github:pipobscure/fsevents#7dcdf9fa3f8956610fd6f69f72c67bace2de7138",
+ "recursive-readdir": "0.0.2"
+ }
+ },
+ "clean-css": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-1.1.7.tgz",
+ "integrity": "sha1-YB75z3ZCuYLLM+/JSIpkRMmGaG4=",
+ "dev": true,
+ "requires": {
+ "commander": "2.0.x"
+ }
+ },
+ "coffee-script": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
+ "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
+ "dev": true
+ },
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz",
+ "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz",
+ "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "~2.0.0",
+ "typedarray": "~0.0.5"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "connect": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-2.8.8.tgz",
+ "integrity": "sha1-uav4yvC9l3PLPeopNEEZhyWCRG0=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "0.2.1",
+ "bytes": "0.2.0",
+ "cookie": "0.1.0",
+ "cookie-signature": "1.0.1",
+ "debug": "*",
+ "formidable": "1.0.14",
+ "fresh": "0.2.0",
+ "methods": "0.0.1",
+ "pause": "0.0.1",
+ "qs": "0.6.5",
+ "send": "0.1.4",
+ "uid2": "0.0.2"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.5.tgz",
+ "integrity": "sha1-KUsmjksNQlD23eGbO4s0k13/FO8=",
+ "dev": true
+ }
+ }
+ },
+ "connect-livereload": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.6.1.tgz",
+ "integrity": "sha512-3R0kMOdL7CjJpU66fzAkCe6HNtd3AavCS4m+uW4KtJjrdGPT0SQEZieAYd+cm+lJoBznNQ4lqipYWkhBMgk00g==",
+ "dev": true
+ },
+ "cookie": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz",
+ "integrity": "sha1-kOtGndzpBchm3mh+/EMTHYgB+dA=",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz",
+ "integrity": "sha1-ROByFIrwHm6OJK+/EmkNaK5pjss=",
+ "dev": true
+ },
+ "cookiejar": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.0.tgz",
+ "integrity": "sha1-3QCzVnkCHpnL1OhVua0EGRNHR2U=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "dev": true,
+ "requires": {
+ "boom": "2.x.x"
+ }
+ },
+ "css-parse": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
+ "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=",
+ "dev": true
+ },
+ "cssom": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.2.5.tgz",
+ "integrity": "sha1-JoJwm1kC5yEt9SkRb/eIzVslSJQ=",
+ "dev": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "dateformat": {
+ "version": "1.0.2-1.2.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
+ "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.0.1.tgz",
+ "integrity": "sha512-6nVc6S36qbt/mutyt+UGMnawAMrPDZUPQjRZI3FS9tCtDRhvxJbK79unYBLPi+z5SLXQ3ftoVBFCblQtNSls8w==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "deep-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
+ "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
+ "dev": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "di": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
+ "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
+ "dev": true
+ },
+ "diff": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz",
+ "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=",
+ "dev": true
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "emitter-component": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.0.0.tgz",
+ "integrity": "sha1-8E3Rj8PcPpp0y8DzELCIZm5MAW8=",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "eventemitter2": {
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
+ "dev": true
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+ "dev": true
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+ "dev": true
+ },
+ "extract-zip": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz",
+ "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=",
+ "dev": true,
+ "requires": {
+ "concat-stream": "1.5.0",
+ "debug": "0.7.4",
+ "mkdirp": "0.5.0",
+ "yauzl": "2.4.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
+ "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=",
+ "dev": true
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+ "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "faye-websocket": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz",
+ "integrity": "sha1-wUxbO/FNdBf/v9mQwKdJXNnzN7w=",
+ "dev": true
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "findup-sync": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
+ "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
+ "dev": true,
+ "requires": {
+ "glob": "~3.2.9",
+ "lodash": "~2.4.1"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+ "dev": true,
+ "requires": {
+ "inherits": "2",
+ "minimatch": "0.3"
+ }
+ },
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ }
+ }
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz",
+ "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.11"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
+ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.14.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ }
+ }
+ },
+ "formidable": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz",
+ "integrity": "sha1-Kz9MQRy7X91pXESEPiojUUpDIxo=",
+ "dev": true
+ },
+ "fresh": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz",
+ "integrity": "sha1-v9lALPPfEsSkwxDHn5mj3eE9NKc=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz",
+ "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "fsevents": {
+ "version": "github:pipobscure/fsevents#7dcdf9fa3f8956610fd6f69f72c67bace2de7138",
+ "from": "fsevents@github:pipobscure/fsevents#7dcdf9fa3f8956610fd6f69f72c67bace2de7138",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "~0.8.0"
+ }
+ },
+ "gaze": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.4.3.tgz",
+ "integrity": "sha1-5Tj0/15P5kj0c6l+HrslPS3hJ7U=",
+ "dev": true,
+ "requires": {
+ "globule": "~0.1.0"
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "dev": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "dev": true,
+ "requires": {
+ "is-property": "^1.0.0"
+ }
+ },
+ "getobject": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "glob": {
+ "version": "3.1.21",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "~1.2.0",
+ "inherits": "1",
+ "minimatch": "~0.2.11"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+ "dev": true
+ }
+ }
+ },
+ "globule": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
+ "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
+ "dev": true,
+ "requires": {
+ "glob": "~3.1.21",
+ "lodash": "~1.0.1",
+ "minimatch": "~0.2.11"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
+ "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
+ "dev": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz",
+ "integrity": "sha1-3i1mE20ALhErpw8/EMMc98NQsto=",
+ "dev": true
+ },
+ "grunt": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
+ "dev": true,
+ "requires": {
+ "async": "~0.1.22",
+ "coffee-script": "~1.3.3",
+ "colors": "~0.6.2",
+ "dateformat": "1.0.2-1.2.3",
+ "eventemitter2": "~0.4.13",
+ "exit": "~0.1.1",
+ "findup-sync": "~0.1.2",
+ "getobject": "~0.1.0",
+ "glob": "~3.1.21",
+ "grunt-legacy-log": "~0.1.0",
+ "grunt-legacy-util": "~0.2.0",
+ "hooker": "~0.2.3",
+ "iconv-lite": "~0.2.11",
+ "js-yaml": "~2.0.5",
+ "lodash": "~0.9.2",
+ "minimatch": "~0.2.12",
+ "nopt": "~1.0.10",
+ "rimraf": "~2.2.8",
+ "underscore.string": "~2.2.1",
+ "which": "~1.0.5"
+ }
+ },
+ "grunt-contrib-clean": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.4.1.tgz",
+ "integrity": "sha1-f49G4vKnGH6cLQg6swJiqmpk4zQ=",
+ "dev": true
+ },
+ "grunt-contrib-coffee": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.7.0.tgz",
+ "integrity": "sha1-ixIme3TnM4sfKcW4txj7n4mYLxM=",
+ "dev": true,
+ "requires": {
+ "coffee-script": "~1.6.2"
+ },
+ "dependencies": {
+ "coffee-script": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz",
+ "integrity": "sha1-Y1XTLPGwTN/2tITl5xF4Ky8MOb4=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-concat": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.3.0.tgz",
+ "integrity": "sha1-SPoNQzbSm2U62CJaa9b4VrRIPjI=",
+ "dev": true
+ },
+ "grunt-contrib-connect": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-2.1.0.tgz",
+ "integrity": "sha512-yeCHdz5zqoibhQDyw/X+E/wTzYPpim+C2p+xYyXUsXVEkfxnKVIWYOWrAKkFHlz9//nIC0S3JbUDd3mVvJcxVA==",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.1",
+ "connect": "^3.6.6",
+ "connect-livereload": "^0.6.0",
+ "morgan": "^1.9.1",
+ "node-http2": "^4.0.1",
+ "opn": "^5.3.0",
+ "portscanner": "^2.2.0",
+ "serve-index": "^1.9.1",
+ "serve-static": "^1.13.2"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-copy": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-0.5.0.tgz",
+ "integrity": "sha1-QQB1rEWlhWuhkbHMclclRQ1KAhU="
+ },
+ "grunt-contrib-cssmin": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.6.2.tgz",
+ "integrity": "sha1-KATcDoH5jopU1h7uhKHT/ho6+OI=",
+ "dev": true,
+ "requires": {
+ "clean-css": "~1.1.1",
+ "grunt-lib-contrib": "~0.6.0"
+ }
+ },
+ "grunt-contrib-jst": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-jst/-/grunt-contrib-jst-0.5.1.tgz",
+ "integrity": "sha1-vWdqJ1j5dta2kjGZfZ5rnWCgr60=",
+ "dev": true,
+ "requires": {
+ "grunt-lib-contrib": "~0.5.1",
+ "lodash": "~1.0.0"
+ },
+ "dependencies": {
+ "grunt-lib-contrib": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.5.3.tgz",
+ "integrity": "sha1-6D+e5cigZZLW6CWCHZEhB4IIEzg=",
+ "dev": true,
+ "requires": {
+ "zlib-browserify": "0.0.1"
+ }
+ },
+ "lodash": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
+ "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-stylus": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-stylus/-/grunt-contrib-stylus-0.9.0.tgz",
+ "integrity": "sha1-0W+JlatkZA/zTZLcdU3KLP7iQCs=",
+ "dev": true,
+ "requires": {
+ "nib": "~1.0.0",
+ "stylus": "~0.38.0"
+ }
+ },
+ "grunt-contrib-uglify": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.2.7.tgz",
+ "integrity": "sha1-5r2lHgxAoUWfbOrUI8Ze/XJaG/c=",
+ "dev": true,
+ "requires": {
+ "grunt-lib-contrib": "~0.6.1",
+ "uglify-js": "~2.4.0"
+ }
+ },
+ "grunt-contrib-watch": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.5.3.tgz",
+ "integrity": "sha1-fZ61Rl1Qb6FPqspH5uh5CoLBye4=",
+ "dev": true,
+ "requires": {
+ "gaze": "~0.4.0",
+ "tiny-lr": "0.0.4"
+ }
+ },
+ "grunt-karma": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/grunt-karma/-/grunt-karma-0.6.2.tgz",
+ "integrity": "sha1-QptXKfhdEP3RmKLPsoug9j56Lps=",
+ "dev": true,
+ "requires": {
+ "optimist": "~0.6.0"
+ }
+ },
+ "grunt-legacy-log": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
+ "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
+ "dev": true,
+ "requires": {
+ "colors": "~0.6.2",
+ "grunt-legacy-log-utils": "~0.1.1",
+ "hooker": "~0.2.3",
+ "lodash": "~2.4.1",
+ "underscore.string": "~2.3.3"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-legacy-log-utils": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
+ "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
+ "dev": true,
+ "requires": {
+ "colors": "~0.6.2",
+ "lodash": "~2.4.1",
+ "underscore.string": "~2.3.3"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-legacy-util": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
+ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
+ "dev": true,
+ "requires": {
+ "async": "~0.1.22",
+ "exit": "~0.1.1",
+ "getobject": "~0.1.0",
+ "hooker": "~0.2.3",
+ "lodash": "~0.9.2",
+ "underscore.string": "~2.2.1",
+ "which": "~1.0.5"
+ }
+ },
+ "grunt-lib-contrib": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.6.1.tgz",
+ "integrity": "sha1-P1att9oG6BR5XuJBWw6+X7iQPrs=",
+ "dev": true,
+ "requires": {
+ "zlib-browserify": "0.0.1"
+ }
+ },
+ "grunt-release": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/grunt-release/-/grunt-release-0.6.1.tgz",
+ "integrity": "sha1-y2W5vOUfuF/zJMmgMh1UDNzdjbs=",
+ "dev": true,
+ "requires": {
+ "semver": "~2.0.10",
+ "shelljs": "~0.1.2",
+ "superagent": "~0.15.4"
+ }
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.1",
+ "commander": "^2.9.0",
+ "is-my-json-valid": "^2.12.4",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+ "dev": true
+ }
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "hasha": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
+ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
+ "dev": true,
+ "requires": {
+ "is-stream": "^1.0.1",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "dev": true,
+ "requires": {
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "dev": true
+ },
+ "hooker": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "http-proxy": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-0.10.4.tgz",
+ "integrity": "sha1-FLoM6qIZf4n6MN6p57CeGc2Twi8=",
+ "dev": true,
+ "requires": {
+ "colors": "0.x.x",
+ "optimist": "0.6.x",
+ "pkginfo": "0.3.x",
+ "utile": "~0.2.1"
+ }
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
+ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
+ "dev": true
+ },
+ "i": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/i/-/i-0.3.5.tgz",
+ "integrity": "sha1-HSuFQVjsgWkRPGy39raAHpniEdU=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
+ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
+ "dev": true
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "is-my-json-valid": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz",
+ "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==",
+ "dev": true,
+ "requires": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "jsonpointer": "^4.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-number-like": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz",
+ "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==",
+ "dev": true,
+ "requires": {
+ "lodash.isfinite": "^3.3.2"
+ }
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "jade": {
+ "version": "0.26.3",
+ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
+ "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=",
+ "dev": true,
+ "requires": {
+ "commander": "0.6.1",
+ "mkdirp": "0.3.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
+ "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
+ "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
+ "dev": true
+ }
+ }
+ },
+ "js-yaml": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
+ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
+ "dev": true,
+ "requires": {
+ "argparse": "~ 0.1.11",
+ "esprima": "~ 1.0.2"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "karma": {
+ "version": "0.10.10",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-0.10.10.tgz",
+ "integrity": "sha1-E39KrQ++WFTnPowespPA5UCCWkk=",
+ "dev": true,
+ "requires": {
+ "chokidar": "~0.8.0",
+ "coffee-script": "~1.6",
+ "colors": "0.6.0-1",
+ "connect": "~2.8.4",
+ "di": "~0.0.1",
+ "glob": "~3.1.21",
+ "graceful-fs": "~1.2.1",
+ "http-proxy": "~0.10",
+ "lodash": "~1.1",
+ "log4js": "~0.6.3",
+ "mime": "~1.2",
+ "minimatch": "~0.2",
+ "optimist": "~0.3",
+ "q": "~0.9",
+ "rimraf": "~2.1",
+ "socket.io": "~0.9.13",
+ "useragent": "~2.0.4"
+ },
+ "dependencies": {
+ "coffee-script": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz",
+ "integrity": "sha1-Y1XTLPGwTN/2tITl5xF4Ky8MOb4=",
+ "dev": true
+ },
+ "colors": {
+ "version": "0.6.0-1",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.0-1.tgz",
+ "integrity": "sha1-bbtozri8YPKzE9zFzhWZ8G0Z5no=",
+ "dev": true
+ },
+ "lodash": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.1.1.tgz",
+ "integrity": "sha1-QaKy6aAOZNbRmZ8UP/awdV9ruyQ=",
+ "dev": true
+ },
+ "optimist": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
+ "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=",
+ "dev": true,
+ "requires": {
+ "wordwrap": "~0.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz",
+ "integrity": "sha1-Wm62Lu2gaPUe3lDymz5c0i89m7I=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "~1"
+ }
+ }
+ }
+ },
+ "karma-chrome-launcher": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.1.12.tgz",
+ "integrity": "sha1-CsDiLlc2UPZUExL9ynlcOCTM+WI=",
+ "dev": true,
+ "requires": {
+ "which": "^1.0.9"
+ }
+ },
+ "karma-coffee-preprocessor": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/karma-coffee-preprocessor/-/karma-coffee-preprocessor-0.1.3.tgz",
+ "integrity": "sha1-mBN6nkmBsMkIT4hW731Pg9h4MVI=",
+ "dev": true,
+ "requires": {
+ "coffee-script": "~1.7"
+ },
+ "dependencies": {
+ "coffee-script": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz",
+ "integrity": "sha1-YplqhheAx15tUGnROCJyO3NAS/w=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "~0.3.5"
+ }
+ }
+ }
+ },
+ "karma-firefox-launcher": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-0.1.7.tgz",
+ "integrity": "sha1-wF3YZTNpHmLzGVJZUJjovTV9OfM=",
+ "dev": true
+ },
+ "karma-mocha": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.0.tgz",
+ "integrity": "sha1-RRz+9IxRhQ5F250RmSdQLmov60A=",
+ "dev": true
+ },
+ "karma-phantomjs-launcher": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-0.1.4.tgz",
+ "integrity": "sha1-TvluQyL/Y65dkY5RwlshNyMjjzA=",
+ "dev": true,
+ "requires": {
+ "phantomjs": "~1.9"
+ }
+ },
+ "karma-safari-launcher": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-0.1.1.tgz",
+ "integrity": "sha1-pjgKzKtgpYP91iT0G5o/EP30EAg=",
+ "dev": true
+ },
+ "kew": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
+ "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
+ "dev": true
+ },
+ "klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.9"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
+ "dev": true
+ },
+ "lodash.isfinite": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
+ "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=",
+ "dev": true
+ },
+ "log4js": {
+ "version": "0.6.38",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz",
+ "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~1.0.2",
+ "semver": "~4.3.3"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
+ "dev": true
+ }
+ }
+ },
+ "lru-cache": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+ "dev": true
+ },
+ "methods": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-0.0.1.tgz",
+ "integrity": "sha1-J3yQ+L7zlwlkWoNxxRw7bGSOBow=",
+ "dev": true
+ },
+ "mime": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.5.tgz",
+ "integrity": "sha1-nu0HMCKov14WyFZsaGe4gyv7+hM=",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
+ "dev": true,
+ "requires": {
+ "mime-db": "~1.30.0"
+ }
+ },
+ "minimatch": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+ "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
+ "dev": true
+ },
+ "mocha": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.13.0.tgz",
+ "integrity": "sha1-jY+k4xC5TMbv6z7SauypbeqTMHw=",
+ "dev": true,
+ "requires": {
+ "commander": "0.6.1",
+ "debug": "*",
+ "diff": "1.0.7",
+ "glob": "3.2.3",
+ "growl": "1.7.x",
+ "jade": "0.26.3",
+ "mkdirp": "0.3.5"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
+ "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
+ "dev": true
+ },
+ "glob": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz",
+ "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "~2.0.0",
+ "inherits": "2",
+ "minimatch": "~0.2.11"
+ }
+ },
+ "graceful-fs": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz",
+ "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=",
+ "dev": true
+ }
+ }
+ },
+ "morgan": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
+ "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
+ "dev": true,
+ "requires": {
+ "basic-auth": "~2.0.0",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "on-headers": "~1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "nan": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-0.8.0.tgz",
+ "integrity": "sha1-AiqPpen+hCCWSsH7PclOF/RJ9f0=",
+ "dev": true,
+ "optional": true
+ },
+ "ncp": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz",
+ "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=",
+ "dev": true
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "dev": true
+ },
+ "nib": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/nib/-/nib-1.0.4.tgz",
+ "integrity": "sha1-A9OXwnojHzyaWhkOqmjl154vA0U=",
+ "dev": true,
+ "requires": {
+ "stylus": "0.45.x"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+ "dev": true,
+ "requires": {
+ "inherits": "2",
+ "minimatch": "0.3"
+ }
+ },
+ "minimatch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ }
+ },
+ "stylus": {
+ "version": "0.45.1",
+ "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.45.1.tgz",
+ "integrity": "sha1-72n2LJhKSArcDJ1KqvsjgqOJ5FM=",
+ "dev": true,
+ "requires": {
+ "css-parse": "1.7.x",
+ "debug": "*",
+ "glob": "3.2.x",
+ "mkdirp": "0.3.x",
+ "sax": "0.5.x"
+ }
+ }
+ }
+ },
+ "node-http2": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/node-http2/-/node-http2-4.0.1.tgz",
+ "integrity": "sha1-Fk/1O13SLITwrxQrh3xerraAmVk=",
+ "dev": true,
+ "requires": {
+ "assert": "1.4.1",
+ "events": "1.1.1",
+ "https-browserify": "0.0.1",
+ "setimmediate": "^1.0.5",
+ "stream-browserify": "2.0.1",
+ "timers-browserify": "2.0.2",
+ "url": "^0.11.0",
+ "websocket-stream": "^5.0.1"
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
+ "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=",
+ "dev": true
+ },
+ "nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "noptify": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz",
+ "integrity": "sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=",
+ "dev": true,
+ "requires": {
+ "nopt": "~2.0.0"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz",
+ "integrity": "sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ }
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true,
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ }
+ },
+ "options": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
+ "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=",
+ "dev": true
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=",
+ "dev": true
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "phantomjs": {
+ "version": "1.9.20",
+ "resolved": "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.20.tgz",
+ "integrity": "sha1-RCSsog4U0lXAsIia9va4lz2hDg0=",
+ "dev": true,
+ "requires": {
+ "extract-zip": "~1.5.0",
+ "fs-extra": "~0.26.4",
+ "hasha": "^2.2.0",
+ "kew": "~0.7.0",
+ "progress": "~1.1.8",
+ "request": "~2.67.0",
+ "request-progress": "~2.0.1",
+ "which": "~1.2.2"
+ },
+ "dependencies": {
+ "which": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
+ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkginfo": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+ "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=",
+ "dev": true
+ },
+ "policyfile": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz",
+ "integrity": "sha1-1rgurZiueeviKOLa9ZAzEeyYLk0=",
+ "dev": true
+ },
+ "portscanner": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz",
+ "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.0",
+ "is-number-like": "^1.0.3"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ }
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "dev": true
+ },
+ "progress": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ },
+ "q": {
+ "version": "0.9.7",
+ "resolved": "https://registry.npmjs.org/q/-/q-0.9.7.tgz",
+ "integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=",
+ "dev": true
+ },
+ "qs": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz",
+ "integrity": "sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=",
+ "dev": true
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "range-parser": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz",
+ "integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "recursive-readdir": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-0.0.2.tgz",
+ "integrity": "sha1-C8R9xIOOZG3M+6BQe15X/7/zX3w=",
+ "dev": true,
+ "optional": true
+ },
+ "redis": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/redis/-/redis-0.7.3.tgz",
+ "integrity": "sha1-7le3pE0l7BWU5ENl2BZfp9HUgRo=",
+ "dev": true,
+ "optional": true
+ },
+ "reduce-component": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz",
+ "integrity": "sha1-4Mk1QsV0UhvqE98PlIjtgqt3xdo=",
+ "dev": true
+ },
+ "request": {
+ "version": "2.67.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz",
+ "integrity": "sha1-ivdHgOK/EeoK6aqWXBHxGv0nJ0I=",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.6.0",
+ "bl": "~1.0.0",
+ "caseless": "~0.11.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~1.0.0-rc3",
+ "har-validator": "~2.0.2",
+ "hawk": "~3.1.0",
+ "http-signature": "~1.1.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.7",
+ "node-uuid": "~1.4.7",
+ "oauth-sign": "~0.8.0",
+ "qs": "~5.2.0",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.2.0",
+ "tunnel-agent": "~0.4.1"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.1.tgz",
+ "integrity": "sha1-gB/uAw4LlFDWOFrcSKTMVbRK7fw=",
+ "dev": true
+ }
+ }
+ },
+ "request-progress": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
+ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
+ "dev": true,
+ "requires": {
+ "throttleit": "^1.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "sax": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
+ "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
+ "dev": true
+ },
+ "semver": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-2.0.11.tgz",
+ "integrity": "sha1-9R8H0D+lr3m+tTf8Bnp+FBeGzO0=",
+ "dev": true
+ },
+ "send": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.1.4.tgz",
+ "integrity": "sha1-vnDY0b4B3mGCGvE3gLUDRaT3Gr0=",
+ "dev": true,
+ "requires": {
+ "debug": "*",
+ "fresh": "0.2.0",
+ "mime": "~1.2.9",
+ "range-parser": "0.0.4"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
+ "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=",
+ "dev": true
+ }
+ }
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
+ "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.1.4.tgz",
+ "integrity": "sha1-37vnjVbDwBaNL7eeEOzR28sH7A4=",
+ "dev": true
+ },
+ "sigmund": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "socket.io": {
+ "version": "0.9.19",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-0.9.19.tgz",
+ "integrity": "sha1-SQu1/Q3FTPAC7gTmf638Q7hIo48=",
+ "dev": true,
+ "requires": {
+ "base64id": "0.1.0",
+ "policyfile": "0.0.4",
+ "redis": "0.7.3",
+ "socket.io-client": "0.9.16"
+ }
+ },
+ "socket.io-client": {
+ "version": "0.9.16",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz",
+ "integrity": "sha1-TadRXF53MEHRtCOXBBW8xDDzX8Y=",
+ "dev": true,
+ "requires": {
+ "active-x-obfuscator": "0.0.1",
+ "uglify-js": "1.2.5",
+ "ws": "0.4.x",
+ "xmlhttprequest": "1.4.2"
+ },
+ "dependencies": {
+ "uglify-js": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz",
+ "integrity": "sha1-tULCx29477NLIAsgF3Y0Mw/3ArY=",
+ "dev": true
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.1.34",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz",
+ "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "tweetnacl": "~0.14.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "stylus": {
+ "version": "0.38.0",
+ "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.38.0.tgz",
+ "integrity": "sha1-a9BYHbDuBJElFjnTOGhfcjLKBhA=",
+ "dev": true,
+ "requires": {
+ "cssom": "0.2.x",
+ "debug": "*",
+ "mkdirp": "0.3.x",
+ "sax": "0.5.x"
+ }
+ },
+ "superagent": {
+ "version": "0.15.7",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-0.15.7.tgz",
+ "integrity": "sha1-CVxwuK//vAcvFFjzloTUhU1jM6M=",
+ "dev": true,
+ "requires": {
+ "cookiejar": "1.3.0",
+ "debug": "~0.7.2",
+ "emitter-component": "1.0.0",
+ "formidable": "1.0.14",
+ "methods": "0.0.1",
+ "mime": "1.2.5",
+ "qs": "0.6.5",
+ "reduce-component": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
+ "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=",
+ "dev": true
+ },
+ "qs": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.5.tgz",
+ "integrity": "sha1-KUsmjksNQlD23eGbO4s0k13/FO8=",
+ "dev": true
+ }
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "throttleit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
+ "dev": true
+ },
+ "timers-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz",
+ "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=",
+ "dev": true,
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "tiny-lr": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz",
+ "integrity": "sha1-gGGFR/Y/aX0Fy0DEwsSwg1Ia77Y=",
+ "dev": true,
+ "requires": {
+ "debug": "~0.7.0",
+ "faye-websocket": "~0.4.3",
+ "noptify": "^0.0.3",
+ "qs": "~0.5.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
+ "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=",
+ "dev": true
+ }
+ }
+ },
+ "tinycolor": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz",
+ "integrity": "sha1-MgtaUtg6u1l42Bo+iH1K77FaYWQ=",
+ "dev": true
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz",
+ "integrity": "sha1-yDoYMPTl7wuT7yo0iOck+N4Basc=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+ "dev": true
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true,
+ "optional": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.4.24",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz",
+ "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=",
+ "dev": true,
+ "requires": {
+ "async": "~0.2.6",
+ "source-map": "0.1.34",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.5.4"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true
+ },
+ "uid2": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.2.tgz",
+ "integrity": "sha1-EH+xVcgsETZiB5ftTIjPKwj2qrg=",
+ "dev": true
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+ "dev": true
+ },
+ "underscore": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "useragent": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.0.10.tgz",
+ "integrity": "sha1-rywcxkEVk2Hk2DCGbrcWukZ53jM=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2.2.x"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz",
+ "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=",
+ "dev": true
+ }
+ }
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "utile": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz",
+ "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=",
+ "dev": true,
+ "requires": {
+ "async": "~0.2.9",
+ "deep-equal": "*",
+ "i": "0.3.x",
+ "mkdirp": "0.x.x",
+ "ncp": "0.4.x",
+ "rimraf": "2.x.x"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ }
+ }
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "websocket-stream": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.5.0.tgz",
+ "integrity": "sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.5.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.3",
+ "safe-buffer": "^5.1.2",
+ "ws": "^3.2.0",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ }
+ }
+ },
+ "which": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+ "dev": true
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "ws": {
+ "version": "0.4.32",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-0.4.32.tgz",
+ "integrity": "sha1-eHphVEFPPJntg8V3IVOyD+sM7DI=",
+ "dev": true,
+ "requires": {
+ "commander": "~2.1.0",
+ "nan": "~1.0.0",
+ "options": ">=0.0.5",
+ "tinycolor": "0.x"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz",
+ "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=",
+ "dev": true
+ },
+ "nan": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz",
+ "integrity": "sha1-riT4hQgY1mL8q1rPfzuVv6oszzg=",
+ "dev": true
+ }
+ }
+ },
+ "xmlhttprequest": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz",
+ "integrity": "sha1-AUU6HZvtHo8XL2SVu/TIxCYyFQA=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz",
+ "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+ "dev": true,
+ "requires": {
+ "fd-slicer": "~1.0.1"
+ }
+ },
+ "zeparser": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz",
+ "integrity": "sha1-A3JlYbwmjy5URPVMZlt/1KjAKeI=",
+ "dev": true
+ },
+ "zlib-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.tgz",
+ "integrity": "sha1-T6akXQDbwV8xikr6HZr8Aljhdsw=",
+ "dev": true
+ }
+ }
+}
diff --git a/bower.json b/bower.json
index f01ce723..1515c02d 100644
--- a/bower.json
+++ b/bower.json
@@ -16,7 +16,6 @@
"tests"
],
"dependencies": {
- "ie8-node-enum": "https://gist.github.com/ajb/8902451/raw/b68459289526cb76c2e22416d98d0dbd0b722fa0/ie8_node_enum.js",
"jquery.scrollWindowTo": "https://gist.github.com/ajb/6519570/raw/cd741057495d0fb19e545a0f9a098efba3bef9c8/jquery.scrollWindowTo.js",
"jquery": "~1.11.1",
"jquery-ui": "~1.10.3",
diff --git a/dist/formbuilder-min.js b/dist/formbuilder-min.js
index 7d12041e..a692ac83 100644
--- a/dist/formbuilder-min.js
+++ b/dist/formbuilder-min.js
@@ -1,3 +1,3 @@
-(function(){rivets.binders.append={routine:function(a,b){return a.checked=void 0!==_.find(b,function(b){return String(b)===String(a.value)})},bind:function(a){var b=this;return this.callback=function(){var c,d;return c=_.clone(b.model.get(b.keypath))||[],a.value&&_.contains(c,a.value)?(d=_.without(c,a.value),b.model.set(b.keypath,c)):(c.push(a.value),b.model.set(b.keypath,c))},$(a).on("change",this.callback)},unbind:function(a){return $(a).off("change",this.callback)}},rivets.formatters.length=function(a){return a?a.length:0},rivets.binders.input={publishes:!0,routine:rivets.binders.value.routine,bind:function(a){return $(a).bind("input.rivets",this.publish)},unbind:function(a){return $(a).unbind("input.rivets")}},rivets.configure({prefix:"rv",adapter:{subscribe:function(a,b,c){return c.wrapped=function(a,b){return c(b)},a.on("change:"+b,c.wrapped)},unsubscribe:function(a,b,c){return a.off("change:"+b,c.wrapped)},read:function(a,b){return"cid"===b?a.cid:a.get(b)},publish:function(a,b,c){return a.cid?a.set(b,c):a[b]=c}}})}).call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p={}.hasOwnProperty,q=function(a,b){function c(){this.constructor=a}for(var d in b)p.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=function(a){function b(){return i=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.sync=function(){},b.prototype.indexInDOM=function(){var a,b=this;return a=$(".fb-field-wrapper").filter(function(a,c){return $(c).data("cid")===b.cid}),a.index(".fb-field-wrapper")},b.prototype.is_input=function(){return null!=c.inputFields[this.get(c.options.mappings.TYPE)]},b.prototype.initialize=function(){return null==this.attributes.uuid&&(this.attributes.uuid=uuid.v4()),void 0===!this.attributes.parent_uuid&&(this.attributes.parent_uuid=null),this.attachMethods()},b.prototype.parentModel=function(){return this.collection.findWhereUuid(this.get("parent_uuid"))},b.prototype.hasParent=function(){return void 0!==this.parentModel},b.prototype.attachMethods=function(){return"function"==typeof this.attributes.initialize&&(this.attributes.initialize.call(this),delete this.attributes.initialize),"function"==typeof this.attributes.insertion&&(this.insertion=this.attributes.insertion,delete this.attributes.insertion),_.each(this.attributes,function(a,b){return"function"==typeof a&&void 0===this[b]?(this[b]=a,delete this.attributes[b]):void 0},this)},b}(Backbone.DeepModel),d=function(a){function b(){return j=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.model=e,b.prototype.comparator=function(a){return a.indexInDOM()},b.prototype.add=function(a){var c;return c=a=b.__super__.add.call(this,a),_.isArray(a)||(c=[a]),_.each(c,function(a){return"function"==typeof a.insertion?a.insertion.call(a):void 0}),a},b.prototype.findWhereUuid=function(a){return this.findWhere({uuid:a})},b.prototype.findDataSourceFields=function(){return this.where({type:"datasource"})},b}(Backbone.Collection),h=function(a){function b(){return k=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.insert=function(a,b,c,d,e){var f,g,h,i;return h=c.parentModel(),void 0===h||"grid"===h.get("type")||"table"===h.get("type")?(g=e.$appendEl||null,i=e.$replaceEl||null,null!=g?g.html(b.render().el):null!=i?i.replaceWith(b.render().el):null==e.position||-1===e.position?a.$responseFields.append(b.render().el):0===e.position?a.$responseFields.prepend(b.render().el):(f=a.$responseFields.find(".fb-field-wrapper").eq(e.position))[0]?f.before(b.render().el):a.$responseFields.append(b.render().el)):void 0},b.prototype.className="fb-field-wrapper",b.prototype.events={"click .subtemplate-wrapper":"focusEditView","click .js-duplicate":"duplicate","click .js-clear":"clear"},b.prototype.initialize=function(a){return this.parentView=a.parentView,this.listenTo(this.model,"change",this.render),this.listenTo(this.model,"destroy",this.remove)},b.prototype.render=function(){return this.$el.addClass("response-field-"+this.model.get(c.options.mappings.TYPE)).data("cid",this.model.cid).data("uuid",this.model.get("uuid")).html(c.templates["view/base"+(this.model.is_input()?"":"_non_input")]({rf:this.model})),this},b.prototype.focusEditView=function(){return this.parentView.createAndShowEditView(this.model)},b.prototype.clear=function(a){var b,d,e=this;switch(a.preventDefault(),a.stopPropagation(),b=function(){return e.parentView.handleFormUpdate(),e.model.destroy()},d=c.options.CLEAR_FIELD_CONFIRM,typeof d){case"string":if(confirm(d))return b();break;case"function":return d(b);default:return b()}},b.prototype.duplicate=function(a){var b;return a.preventDefault(),a.stopPropagation(),b=c.helpers.clone(this.model.attributes),delete b.id,delete b.cid,delete b.uuid,b.label+=" Copy",b.options.grid&&(b.options.grid.row=b.options.grid.row+1),this.parentView.createField(b,{position:this.model.indexInDOM()+1}),this.model.trigger("duplicate:viewfield")},b}(Backbone.View),g=function(a){function b(){return l=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.className="fb-field-wrapper",b.prototype.initialize=function(a){return this.parentView=a.parentView,this.listenTo(this.model,"change",this.update),this.listenTo(this.model,"destroy",this.remove),_.each(this.model.get("options.elements"),function(a){var b;return b=this.model.collection.findWhereUuid(a.uuid),b?(this.listenTo(b,"change",this.update),this.listenTo(b,"destroy",function(a){return this.update(a)})):console.log(a.uuid)},this)},b.prototype.events={mouseenter:"showSelectors",mouseleave:"removeSelectors","click .drop-area li":"inlineAdd","click .subtemplate-wrapper":"focusEditView","click .response-field-table td.header":"focusSubelement","click .response-field-table td.element":"focusSubelement","click .js-clear":"clear","click .js-duplicate":"duplicate"},b.prototype.showSelectors=function(a){return this.$el.find(".drop-area").html(c.templates["view/element_selector"]())},b.prototype.removeSelectors=function(a){return this.$el.find(".drop-area").html("")},b.prototype.inlineAdd=function(a){var b,d,f;return a.preventDefault(),a.stopPropagation(),b=new e(c.helpers.defaultFieldAttrs($(a.currentTarget).data("type"))),b.set("parent_uuid",this.model.get("uuid")),b.set("options.in_sequence",!0),this.listenTo(b,"change",this.update),d=this.model.attributes.options.elements||[],f={uuid:b.get("uuid")},d.push(f),this.model.attributes.options.elements=d,this.parentView.collection.add(b),this.update(b)},b.prototype.update=function(a){return a?(this.render(),this.parentView.createAndShowEditView(a)):void 0},b.prototype.render=function(){return b.__super__.render.call(this),this.renderElements(),this},b.prototype.focusEditView=function(a){return this.parentView.createAndShowEditView(this.model)},b.prototype.focusSubelement=function(a){var b;return a.preventDefault(),a.stopPropagation(),b=$(a.currentTarget).data("uuid"),b?this.parentView.createAndShowEditView(this.parentView.modelByUuid(b)):void 0},b.prototype.renderElements=function(){return _.each(this.model.get("options.elements"),function(a){var b;return b=this.parentView.modelByUuid(a.uuid),this.$el.find(".header-"+a.uuid).html(c.templates["view/table_header"]({rf:b,element:a})).data("cid",b.cid),this.$el.find(".element-"+a.uuid).html(c.templates["view/table_element"]({rf:b,element:a})).data("cid",b.cid),this.$el.find(".total-"+a.uuid).html(c.templates["view/table_total"]({rf:b,element:a})).data("cid",b.cid)},this)},b.prototype.clear=function(a){var b,c;return a.preventDefault(),a.stopPropagation(),c=$(a.currentTarget).parents(".element").data("uuid"),void 0===c?(b=_.each(this.model.get("options.elements"),function(a){return this.parentView.modelByUuid(a.uuid).destroy(),!0},this),this.model.destroy(),this.$el.remove()):(this.parentView.modelByUuid(c).destroy(),this.model.set("options.elements",_.filter(this.model.get("options.elements"),function(a){return a.uuid!==c})),this.render())},b.prototype.duplicate=function(){var a,b,d,f,g=this;return a=c.helpers.clone(this.model.attributes),delete a.id,delete a.cid,a.uuid=uuid.v4(),a.label+=" Copy",f=a.options.elements,a.options.elements=[],a=_.extend({},c.helpers.defaultFieldAttrs("table"),a),this.parentView.createField(a,{position:-1}),d=this.parentView.viewByUuid(a.uuid),b=this.parentView.modelByUuid(a.uuid),_.each(f,function(f){var h,i,j,k;return h=g.parentView.modelByUuid(f.uuid),i=c.helpers.clone(h),delete i.id,delete i.cid,f.uuid=i.uuid=uuid.v4(),i.parent_uuid=a.uuid,i=_.extend({},c.helpers.defaultFieldAttrs(i.type),i),j=new e(i),f.totalColumn&&(k=b.createTotalColumnModel(i.uuid),f.totalColumnUuid=k.get("uuid")),g.parentView.collection.add(j),void 0!==j.expression&&j.get("options.calculation_type")&&j.expression(),d.listenTo(j,"change",d.update),a.options.elements.push(f)}),d.render()},b.insert=function(a,b,c,d,e){var f;return f=a.viewByUuid(c.get("parent_uuid")),null!=f?!0:!1},b}(h),f=function(a){function b(){return m=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.className="fb-field-wrapper",b.prototype.events={"click .response-field-grid-cell li":"inlineAdd","click .response-field-grid-cell .js-clear":"subelementClear","click .js-duplicate":"duplicate","click .js-clear":"clear","click .subtemplate-wrapper":"focusEditView"},b.prototype.initialize=function(a){return this.parentView=a.parentView,this.listenTo(this.model,"change",this.redraw),this.listenTo(this.model,"destroy",this.remove),this.parentView.collection.bind("add",this.addSubelement,this),this.parentView.collection.bind("destroy",this.removeSubelement,this),this.render},b.prototype.render=function(){return b.__super__.render.call(this),this.redraw(),this.renderChildren(),this},b.prototype.redraw=function(){var a;return a=this.$el.find(".response-field-grid-table").detach(),this.$el.addClass("response-field-"+this.model.get(c.options.mappings.TYPE)).data("cid",this.model.cid).data("uuid",this.model.get("uuid")).html(c.templates["view/base"+(this.model.is_input()?"":"_non_input")]({rf:this.model})),1===a.length&&this.$el.find(".response-field-grid-table").replaceWith(a),this.renderTable()},b.prototype.renderTable=function(){var a,b,d,e,f,g,h,i,j,k=this;return e=this.model.get("options.num_rows")||1,d=this.model.get("options.num_cols")||1,h=this.$el.find("table"),b=h.find("tr").length,a=h.find("tr:nth-child(1) td").length,f=$.makeArray(h.find("tr")),e>b&&(f=f.concat(function(){j=[];for(var a=i=f.length;e>=i?e>a:a>e;e>=i?a++:a--)j.push(a);return j}.apply(this))),f=_.map(f,function(a){var b,e,f;return _.isNumber(a)&&(a=$('
').appendTo(h)),b=$.makeArray($(a).find("td")),b.length=e?d>a:a>d;d>=e?a++:a--)f.push(a);return f}.apply(this))),b=_.map(b,function(b){return _.isNumber(b)?b=$(' | ').appendTo(a).html(c.templates["view/element_selector"]()):void 0}),a}),b>e&&(g=this.subelements(),_.each(g,function(a){var b;return b=k.parentView.gridAttr(a),b.row>e-1?a.destroy():void 0}),h.find("tr").slice(e-b).remove()),a>d?(g=this.subelements(),_.each(g,function(a){var b;return b=k.parentView.gridAttr(a),b.col>d-1?a.destroy():void 0}),h.find("tr").find("td:gt("+(d-1)+")").remove()):void 0},b.prototype.renderChildren=function(){var a,b=this;return a=this.model.get("children")||[],_.each(a,function(a){var c;return c=a.options.grid,b.createField(a,b.getSubelement(c.row,c.col))})},b.prototype.focusEditView=function(a){return 0===$(a.target).parents("table").length?this.parentView.createAndShowEditView(this.model):void 0},b.prototype.clear=function(a){var b,d,e=this;switch(a.preventDefault(),a.stopPropagation(),b=function(){var a;return e.parentView.handleFormUpdate(),a=e.subelements(),_.each(e.subelements(),function(a){return a.destroy(),!0}),e.model.destroy()},d=c.options.CLEAR_FIELD_CONFIRM,typeof d){case"string":if(confirm(d))return b();break;case"function":return d(b);default:return b()}},b.prototype.duplicate=function(){var a,b,d=this;return a=c.helpers.clone(this.model.attributes),delete a.id,delete a.cid,a.uuid=uuid.v4(),a.label+=" Copy",b=this.subelements(),delete a.children,this.parentView.createField(a,{position:-1}),a.children=_.map(b,function(b){var e;return e=c.helpers.clone(b.attributes),delete e.id,delete e.cid,delete e.uuid,e.parent_uuid=a.uuid,d.parentView.createField(e,{position:-1})})},b.prototype.addSubelement=function(a){var b,c;return this.belongsToMe(a)&&a.get("label").match(/Copy/)?(b=this.parentView.gridAttr(a),c=a.get("label").match(/(.+) Copy/),null!==c?a.attributes.label=c[1]+" "+(b.row+1):a.attributes.label="Row: "+(b.row+1)+", Col: "+(b.col+1)):void 0},b.prototype.removeSubelement=function(a){var b,d;return d=this.parentView.gridAttr(a),b=this.belongsToMe(a),b&&""===this.getSubelement(d.row,d.col).html()?this.getSubelement(d.row,d.col).html(c.templates["view/element_selector"]({rf:this.model})):void 0},b.prototype.subelements=function(){var a=this;return this.parentView.collection.filter(function(b){return a.belongsToMe(b)})},b.prototype.belongsToMe=function(a){return this.parentView.inGrid(a)&&a.get("parent_uuid")===this.model.get("uuid")},b.prototype.inlineAdd=function(a){var b,c;return a.preventDefault(),a.stopPropagation(),c=$(a.currentTarget).data("type"),b=$(a.currentTarget).parents(".response-field-grid-cell"),this.createField(c,b)},b.prototype.getSubelement=function(a,b){return a++,b++,this.$el.find("tr:nth-child("+a+") td:nth-child("+b+")")},b.prototype.createField=function(a,b){return _.isString(a)&&(a=c.helpers.defaultFieldAttrs(a)),a.options.grid={col:b.prop("cellIndex"),row:b.parents("tr").prop("rowIndex")},a.parent_uuid=this.model.get("uuid"),this.parentView.createField(a,{$appendEl:b})},b.insert=function(a,b,c,d,e){var f,g,i;return e.$appendEl||(i=c.get("options.grid.row"),g=c.get("options.grid.col"),f=a.wrapperByUuid(c.get("parent_uuid")),f=f.find("tr:nth-child("+(i+1)+") td:nth-child("+(g+1)+")"),1===f.length&&(e.$appendEl=f)),h.insert(a,b,c,d,e)},b}(Backbone.View),b=function(a){function b(){return n=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.className="edit-response-field",b.prototype.events={"click .js-add-option":"addOption","click .js-remove-option":"removeOption","click .js-default-updated":"defaultUpdated","input .option-label-input":"forceRender"},b.prototype.initialize=function(a){var b=this;return this.parentView=a.parentView,this.listenTo(this.model,"destroy",this.remove),_.each(c.options.change,function(a,d){var e;return e="change:"+_.nested(c.options.mappings,d),b.listenTo(b.model,e,a)})},b.prototype.render=function(){return this.$el.html(c.templates["edit/base"+(this.model.is_input()?"":"_non_input")]({rf:this.model})),rivets.bind(this.$el,{model:this.model}),this},b.prototype.reset=function(){return this.parentView.editView=void 0,this.parentView.createAndShowEditView(this.model)},b.prototype.remove=function(){return this.parentView.editView=void 0,this.parentView.$el.find('[data-target="#addField"]').click(),b.__super__.remove.apply(this,arguments)},b.prototype.addOption=function(a){var b,d,e,f;return b=$(a.currentTarget),d=this.$el.find(".option").index(b.closest(".option")),f=this.model.get(c.options.mappings.OPTIONS)||[],e={uuid:uuid.v4(),label:"",checked:!1},d>-1?f.splice(d+1,0,e):f.push(e),this.model.set(c.options.mappings.OPTIONS,f),this.model.trigger("change:"+c.options.mappings.OPTIONS),this.forceRender()},b.prototype.removeOption=function(a){var b,d,e;return b=$(a.currentTarget),d=this.$el.find(".js-remove-option").index(b),e=this.model.get(c.options.mappings.OPTIONS),e.splice(d,1),this.model.set(c.options.mappings.OPTIONS,e),this.model.trigger("change:"+c.options.mappings.OPTIONS),this.forceRender()},b.prototype.defaultUpdated=function(a){var b;return b=$(a.currentTarget),"checkboxes"!==this.model.get(c.options.mappings.TYPE)&&this.$el.find(".js-default-updated").not(b).attr("checked",!1).trigger("change"),this.forceRender()},b.prototype.forceRender=function(){return this.model.trigger("change",this.model)},b}(Backbone.View),a=function(a){function e(){return o=e.__super__.constructor.apply(this,arguments)}return q(e,a),e.prototype.SUBVIEWS=[],e.prototype.saveFormButton=$(),e.prototype.events={"click .fb-tabs a":"showTab","click .fb-add-types a":"addField","mouseover .fb-add-types":"lockLeftWrapper","mouseout .fb-add-types":"unlockLeftWrapper"},e.prototype.initialize=function(a){var b;return b=a.selector,this.formBuilder=a.formBuilder,this.bootstrapData=a.bootstrapData,null!=b&&this.setElement($(b)),this.collection=new d,this.collection.bind("add",this.addOne,this),this.collection.bind("reset",this.reset,this),this.collection.bind("change",this.handleFormUpdate,this),this.collection.bind("destroy add reset",this.hideShowNoResponseFields,this),this.collection.bind("destroy",this.ensureEditViewScrolled,this),this.render(),this.collection.reset(this.bootstrapData),this.bindSaveEvent()},e.prototype.bindSaveEvent=function(){var a=this;return this.formSaved=!0,this.saveFormButton.attr("disabled",!0).text(c.options.dict.ALL_CHANGES_SAVED),c.options.AUTOSAVE&&setInterval(function(){return a.saveForm.call(a)},5e3),$(window).bind("beforeunload",function(){return a.formSaved?void 0:c.options.dict.UNSAVED_CHANGES})},e.prototype.reset=function(){return this.$responseFields.html(""),this.addAll()},e.prototype.render=function(){var a,b,d,e;for(this.$el.html(c.templates.page()),this.$fbLeft=this.$el.find(".fb-left"),this.$responseFields=this.$el.find(".fb-response-fields"),this.bindWindowScrollEvent(),this.hideShowNoResponseFields(),e=this.SUBVIEWS,b=0,d=e.length;d>b;b++)a=e[b],new a({parentView:this}).render();return this},e.prototype.bindWindowScrollEvent=function(){var a=this;return $(window).on("scroll",function(){var b,c;if(a.$fbLeft.data("locked")!==!0)return c=Math.max(0,$(window).scrollTop()-a.$el.offset().top),b=a.$responseFields.height(),a.$fbLeft.css({"margin-top":Math.min(b,c)})})},e.prototype.showTab=function(a){var b,c,d;return b=$(a.currentTarget),d=b.data("target"),b.closest("li").addClass("active").siblings("li").removeClass("active"),$(d).addClass("active").siblings(".fb-tab-pane").removeClass("active"),"#editField"!==d&&this.unlockLeftWrapper(),"#editField"===d&&!this.editView&&(c=this.collection.models[0])?this.createAndShowEditView(c):void 0},e.prototype.createView=function(a){var b;return b="grid"===a.attributes.type?new f({model:a,parentView:this}):"table"===a.attributes.type?new g({model:a,parentView:this}):new h({model:a,parentView:this})},e.prototype.insert=function(a,b,c,d){var e,i,j,k;return e=!1,i=b.parentModel(),j=i?i.get("type"):void 0,k=j||b.get("type"),"grid"===k?e=f.insert(this,a,b,c,d):"table"===k&&(e=g.insert(this,a,b,c,d)),e||(e=h.insert(this,a,b,c,d)),e},e.prototype.addOne=function(a,b,c){var d;return d=this.createView(a),this.$responseFields.find("> .ui-draggable").remove(),a.get("model_only")!==!0&&this.insert(d,a,b,c),this.views[a.get("uuid")]=d},e.prototype.setSortable=function(){var a=this;return this.$responseFields.hasClass("ui-sortable")&&this.$responseFields.sortable("destroy"),this.$responseFields.sortable({forcePlaceholderSize:!0,placeholder:"sortable-placeholder",stop:function(b,d){var e;return d.item.data("type")&&(e=a.collection.create(c.helpers.defaultFieldAttrs(d.item.data("type")),{$replaceEl:d.item}),a.createAndShowEditView(e)),a.handleFormUpdate(),!0},update:function(b,c){return c.item.data("type")?void 0:a.ensureEditViewScrolled()}}),this.setDraggable()},e.prototype.setDraggable=function(){var a,b=this;return a=this.$el.find("[data-type]"),a.draggable({connectToSortable:this.$responseFields,helper:function(){var a;return a=$(""),a.css({width:b.$responseFields.width(),height:"80px"}),a}})},e.prototype.addAll=function(){return this.collection.each(function(a,b,c){return this.addOne.call(this,a,b,{})},this),this.setSortable()},e.prototype.hideShowNoResponseFields=function(){return this.$el.find(".fb-no-response-fields")[this.collection.length>0?"hide":"show"]()},e.prototype.addField=function(a){var b;return b=$(a.currentTarget).data("type"),this.createField(c.helpers.defaultFieldAttrs(b,{}))},e.prototype.createField=function(a,b){var c;return c=this.collection.create(a,b),this.createAndShowEditView(c),this.handleFormUpdate()},e.prototype.createAndShowEditView=function(a){var d,e,f,g;if(e=this.$el.find(".fb-field-wrapper").filter(function(){return $(this).data("cid")===a.cid}),$(".fb-field-wrapper").removeClass("editing"),e.addClass("editing"),this.editView){if(this.editView.model.cid===a.cid)return this.$el.find('.fb-tabs a[data-target="#editField"]').click(),void this.scrollLeftWrapper(e);this.editView.remove()}return this.editView=new b({model:a,parentView:this}),d=this.editView.render().$el,g=this.$el.find(".fb-edit-field-wrapper"),g.html(d),this.inGrid(a)?g.addClass("fb-edit-field-grid"):g.removeClass("fb-edit-field-grid"),this.$el.find('.fb-tabs a[data-target="#editField"]').click(),this.scrollLeftWrapper(e),f=c.helpers.defaultFieldAttrs(a.get("type")),void 0!==f.definition.onEdit&&f.definition.onEdit(a),this.$el.find("input, textarea, [contenteditable=true]").filter(":visible").first().focus(),this},e.prototype.inGrid=function(a){return this.hasParent(a)&&a.get("options.grid")},e.prototype.hasParent=function(a){return a.get("parent_uuid")},e.prototype.modelByUuid=function(a){return this.collection.findWhere({uuid:a})},e.prototype.wrapperByUuid=function(a){return $(".fb-field-wrapper").filter(function(){return $(this).data("uuid")===a})},e.prototype.viewByUuid=function(a){return this.views[a]},e.prototype.views={},e.prototype.gridAttr=function(a){return this.inGrid(a)?a.get("options.grid"):null},e.prototype.ensureEditViewScrolled=function(){return this.editView?this.scrollLeftWrapper($(".fb-field-wrapper.editing")):void 0},e.prototype.scrollLeftWrapper=function(a){var b=this;return this.unlockLeftWrapper(),a[0]?$.scrollWindowTo(this.$el.offset().top+a.offset().top-this.$responseFields.offset().top,200,function(){return b.lockLeftWrapper()}):void 0},e.prototype.lockLeftWrapper=function(){return this.$fbLeft.data("locked",!0)},e.prototype.unlockLeftWrapper=function(){return this.$fbLeft.data("locked",!1)},e.prototype.handleFormUpdate=function(){return this.collection.sort(),this.updatingBatch?void 0:(this.formSaved=!1,this.saveFormButton.removeAttr("disabled").text(c.options.dict.SAVE_FORM))},e.prototype.getPayload=function(){return JSON.stringify({fields:this.collection.toJSON()})},e.prototype.saveForm=function(a){var b;if(!this.formSaved)return this.formSaved=!0,this.saveFormButton.attr("disabled",!0).text(c.options.dict.ALL_CHANGES_SAVED),this.collection.sort(),b=this.getPayload(),c.options.HTTP_ENDPOINT&&this.doAjaxSave(b),this.formBuilder.trigger("save",b)},e.prototype.doAjaxSave=function(a){var b=this;return $.ajax({url:c.options.HTTP_ENDPOINT,type:c.options.HTTP_METHOD,data:a,contentType:"application/json",success:function(a){var c,d,e,f;for(b.updatingBatch=!0,d=0,e=a.length;e>d;d++)c=a[d],null!=(f=b.collection.get(c.cid))&&f.set({id:c.id}),b.collection.trigger("sync");return b.updatingBatch=void 0}})},e}(Backbone.View),c=function(){function b(c){var d,e;null==c&&(c={}),_.extend(this,Backbone.Events),d=_.extend(c,{formBuilder:this}),this.attrs={},e=_(d.bootstrapData||[]).groupBy(function(a){return void 0===a.parent_uuid?0:1}).toArray().value(),e=_.reduce(e,function(a,b){return a.concat(b)}),d.bootstrapData=_.map(e,function(a){return _.extend({},b.helpers.defaultFieldAttrs(a.type),a)}),this.mainView=new a(d),this.mainView.collection,b.instances.push(this)}return b.attrs={},b.instances=[],b.attr=function(a,c){return void 0!==c&&(b.attrs[a]=c,_.each(this.instances,function(a){return a.mainView.reset()})),void 0!==b.attrs[a]?b.attrs[a]:void 0},b.helpers={defaultFieldAttrs:function(a){var c,d;return c={},c[b.options.mappings.LABEL]="Untitled",c[b.options.mappings.TYPE]=a,c[b.options.mappings.REQUIRED]=!1,c.definition=b.fields[a],c.options={},("function"==typeof(d=b.fields[a]).defaultAttributes?d.defaultAttributes(c,b):void 0)||c},simple_format:function(a){return null!=a?a.replace(/\n/g,"
"):void 0},clone:function(a){return JSON.parse(JSON.stringify(a))}},b.options={BUTTON_CLASS_SELECTOR:"fb-button btn btn-default",BUTTON_CLASS_ADD:"fb-button btn btn-xs btn-primary",BUTTON_CLASS_REMOVE:"fb-button btn btn-xs btn-danger",HTTP_ENDPOINT:"",HTTP_METHOD:"POST",AUTOSAVE:!1,CLEAR_FIELD_CONFIRM:!1,ENABLED_FIELDS:["text","checkbox","dropdown","textarea","radio","date","section","signature","info","grid","number","table","datasource"],mappings:{SIZE:"options.size",UNITS:"options.units",LABEL:"label",NAME:"definition.name",TYPE:"type",REQUIRED:"required",ADMIN_ONLY:"admin_only",POPULATE_FROM:"options.populate_from",POPULATE_UUID:"options.populate_uuid",OPTIONS:"answers",DESCRIPTION:"description",INCLUDE_OTHER:"options.include_other_option",INCLUDE_BLANK:"options.include_blank_option",INCLUDE_SCORING:"is_scored",INTEGER_ONLY:"options.integer_only",READ_ONLY:"options.read_only",COLUMN_WIDTH:"options.column_width",NUMERIC:{CALCULATION_TYPE:"options.calculation_type",CALCULATION_EXPRESSION:"options.calculation_expression",CALCULATION_DISPLAY:"options.calculation_display",TOTAL_SEQUENCE:"options.total_sequence"},GRID:{COLS:"options.cols",NUMCOLS:"options.num_cols",ROWS:"options.rows",NUMROWS:"options.num_rows",FULL_WIDTH:"options.full_width",FIRST_ROW_HEADINGS:"options.first_row_headings"},TABLE:{COLS:"options.cols",NUMCOLS:"options.num_cols",ROWS:"options.rows",INITIALROWS:"options.initial_rows",MAXROWS:"options.max_rows",FULL_WIDTH:"options.full_width",COLUMNTOTALS:"options.display_column_totals",ROWTOTALS:"options.display_row_totals"},DATA_SOURCE:{MULTIPLE:"options.multiple_selections",DATA_SOURCE:"options.data_source",VALUE_TEMPLATE:"options.value_template",REQUIRED_PROPERTIES:"options.required_properties",FILTER:"options.filter",FILTER_VALUES:"options.filter_values",IS_FILTERED:"options.is_filtered"},MIN:"options.min",MAX:"options.max",OPTIONS_PER_ROW:"options.options_per_row",MINLENGTH:"options.minlength",MAXLENGTH:"options.maxlength",LENGTH_UNITS:"options.min_max_length_units"},change:{INCLUDE_SCORING:function(){return this.reset()},POPULATE_UUID:function(){return this.reset()},"DATA_SOURCE.DATA_SOURCE":function(){return this.reset()},"DATA_SOURCE.IS_FILTERED":function(){return this.reset()},"DATA_SOURCE.FILTER":function(){return this.reset()}},dict:{ALL_CHANGES_SAVED:"All changes saved",SAVE_FORM:"Save form",UNSAVED_CHANGES:"You have unsaved changes. If you leave this page, you will lose those changes!"}},b.fields={},b.inputFields={},b.nonInputFields={},b.prototype.markSaved=function(){return this.mainView.formSaved=!0},b.prototype.getPayload=function(){return this.mainView.getPayload()},b.registerField=function(a,c){var d,e,f,g,h;for(d=!0,_.contains(b.options.ENABLED_FIELDS,a)||(d=!1),h=["view","edit"],f=0,g=h.length;g>f;f++)e=h[f],c[e]=d?_.template(c[e]):function(a){return""};return c.type=a,c.enabled=d,b.fields[a]=c,"non_input"===c.element_type?b.nonInputFields[a]=c:b.inputFields[a]=c},b}(),void 0===_.nested&&_.mixin({nested:function(a,b){return a&&b?a[b]||_.reduce(b.split("."),function(a,b){return a?a[b]:void 0},a):void 0}}),window.Formbuilder=c,window.FormbuilderModel=e,"undefined"!=typeof module&&null!==module?module.exports=c:window.Formbuilder=c}.call(this),function(){Formbuilder.registerField("address",{name:"Address",order:50,view:"\n \n \n \n \n
\n\n\n \n \n \n \n\n \n \n \n \n
\n\n\n \n \n \n \n\n \n \n \n \n
",edit:"",addButton:' Address'})}.call(this),function(){Formbuilder.registerField("checkbox",{name:"Checkboxes",order:10,view:"",edit:"<%= Formbuilder.templates['edit/options']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/options_per_row']({ rf: rf }) %>",addButton:' Checkboxes',defaultAttributes:function(a){return a.answers=[{uuid:uuid.v4(),label:"",checked:!1,score:!1},{uuid:uuid.v4(),label:"",checked:!1,score:!1}],a.options.options_per_row=1,a}})}.call(this),function(){Formbuilder.registerField("datasource",{name:"List",order:70,view:"",edit:"<%= Formbuilder.templates['edit/data_source_options']({ rf: rf }) %>",addButton:' Data Source',defaultAttributes:function(a,b){return a.initialize=function(){return this.on("change",function(a){var b,c;return void 0!==_.nested(a,"changed.options.data_source")?(b=_.keys(a.sourceProperties()),a.set("options.required_properties",b),c=_.first(b),a.set("options.value_template",c)):void 0}),this.on("destroy",function(a){return this.collection.each(function(b){return b.get("options.populate_uuid")===a.get("uuid")?(b.set("options.populate_uuid",null),b.set("options.populate_from",null)):void 0})})},a.source=function(){var a,c;return a=this.options?this.options.data_source:this.get(Formbuilder.options.mappings.DATA_SOURCE.DATA_SOURCE),c=b.attr("sources"),_.nested(c,a)||null},a.sourceProperties=function(){var a;return a=this.source(),_.nested(a,"properties")||[]},a.filters=function(){var a;return a=this.source(),_.nested(a,"filters")||null},a.currentFilter=function(){var a;return a=this.source(),_.nested(a,"filters."+this.get("options.filter"))||{}},a.filterValues=function(){return this.currentFilter().values||{}},a.sourceProperty=function(a){return this.sourceProperties()[a]||null},a.options.multiple_selections=!1,a.options.is_filtered=!1,a.options.data_source=a.source()||_.keys(b.attr("sources")||{})[0],a.options.required_properties=_.keys(a.sourceProperties(a.options.data_source)),a.options.filter=a.filters(),a.options.filter_values=[],a.options.value_template=_.first(a.options.required_properties),a}})}.call(this),function(){Formbuilder.registerField("date",{name:"Date",order:20,view:'\n \n
',edit:"",addButton:' Date'})}.call(this),function(){Formbuilder.registerField("dropdown",{name:"Dropdown",order:24,view:"",
-edit:"<%= Formbuilder.templates['edit/scoring']() %>\n<%= Formbuilder.templates['edit/options']({ rf: rf }) %>",addButton:' Dropdown',defaultAttributes:function(a){return a.answers=[{uuid:uuid.v4(),label:"",checked:!1,score:""},{uuid:uuid.v4(),label:"",checked:!1,score:""}],a.is_scored=!1,a.options.include_blank_option=!1,a}})}.call(this),function(){Formbuilder.registerField("email",{name:"Email",order:40,view:"",edit:"",addButton:' Email'})}.call(this),function(){Formbuilder.registerField("file",{name:"File",order:55,view:"",edit:"",addButton:' File'})}.call(this),function(){Formbuilder.registerField("grid",{name:"Layout Grid",order:30,element_type:"non_input",view:"\n\n<%= rf.get(Formbuilder.options.mappings.DESCRIPTION) %>
",edit:'\n\n',addButton:' Grid',defaultAttributes:function(a){return a.options.num_cols=1,a.options.num_rows=1,a.options.full_width=!1,a.options.first_row_headings=!1,a.children=[],a.childModels=function(){return this.collection.filter(function(a){return-1!==_.indexOf(this.get("options.elements"),a.get("uuid"))},this)},a}})}.call(this),function(){Formbuilder.registerField("info",{name:"Info",order:20,element_type:"non_input",view:"\n<%= rf.get(Formbuilder.options.mappings.DESCRIPTION) %>
",edit:'\n',addButton:' Info',onEdit:function(a){var b;return b=function(){return a.set(Formbuilder.options.mappings.DESCRIPTION,$(this).code()),a.trigger("change:"+Formbuilder.options.mappings.DESCRIPTION)},$(".fb-info-editor").summernote({onChange:function(){return b.call(this)},onKeyup:function(){return b.call(this)},toolbar:[["style",["bold","italic","underline"]],["fontsize",["fontsize"]],["color",["color"]],["insert",["link"]],["table",["table"]],["misc",["codeview"]]]})}})}.call(this),function(){Formbuilder.registerField("number",{name:"Number",order:30,view:"\" <%= rf.get(Formbuilder.options.mappings.NUMERIC.CALCULATION_DISPLAY) ? 'readonly=\"readonly\"' : '' %> />\n<% if (units = rf.get(Formbuilder.options.mappings.UNITS)) { %>\n <%= units %>\n<% } %>",edit:"<%= Formbuilder.templates['edit/integer_only']({rf:rf}) %>\n<%= Formbuilder.templates['edit/total']({rf:rf}) %>\n<%= Formbuilder.templates['edit/min_max']({rf:rf}) %>",addButton:' Number',defaultAttributes:function(a,b){return a.options.calculation_type="",a.options.calculation_expression="",a.options.calculation_display="",a.options.total_sequence=!1,a.insertion=function(){var a,b;return a=this.parentModel(),a&&"table"===a.get("type")?(b=a.totalColumn(this.get("uuid")),this.attributes.options.total_sequence=b):void 0},a.initialize=function(){return this.on("change",function(a){var b;return void 0!==_.nested(a,"changed.options.calculation_type")&&a.expression(),void 0!==_.nested(a,"changed.options.total_sequence")&&(b=_.nested(a,"changed.options.total_sequence"),this.parentModel().totalColumn(a.get("uuid"),b)),a})},a.numericSiblings=function(){var a;return a=this.parentModel(),a?_.filter(a.childModels(),function(a){return"number"===a.get("type")&&a.get("uuid")!==this.get("uuid")},this):[]},a.expression=function(){var a,b,c;return a=this.get("options.calculation_type"),""!==a?(c="SUM"===a?"+":"*",b=this.numericSiblings(),this.set("options.calculation_expression",_.map(b,function(a){return"uuid_"+a.get("uuid").replace(/-/g,"_")}).join(c)),this.set("options.calculation_display","= "+_.map(b,function(a){return a.get("label")}).join(c)),console.log(this.get("options.calculation_expression"))):(this.set("options.calculation_expression",""),this.set("options.calculation_display",""))},a.canTotalColumn=function(){var a;return a=this.parentModel(),a&&"table"===a.get("type")},a.canAcceptCalculatedTotal=function(){return this.numericSiblings().length>1},a}})}.call(this),function(){Formbuilder.registerField("price",{name:"Price",order:45,view:"\n $\n \n \n \n \n .\n \n \n \n \n
",edit:"",addButton:' Price'})}.call(this),function(){Formbuilder.registerField("radio",{name:"Radio Button",order:15,view:"",edit:"<%= Formbuilder.templates['edit/scoring']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/options']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/options_per_row']({ rf: rf }) %>",addButton:' Multiple Choice',defaultAttributes:function(a){return a.answers=[{uuid:uuid.v4(),label:"",checked:!1,score:""},{uuid:uuid.v4(),label:"",checked:!1,score:""}],a.is_scored=!1,a.options.options_per_row=1,a}})}.call(this),function(){Formbuilder.registerField("section",{name:"Section",order:10,element_type:"non_input",view:"\n<%= rf.get(Formbuilder.options.mappings.DESCRIPTION) %>
",edit:'\n',addButton:' Section Break'})}.call(this),function(){Formbuilder.registerField("signature",{name:"Signature",order:65,view:'\n',edit:"",addButton:' Signature'})}.call(this),function(){Formbuilder.registerField("table",{name:"Table",order:0,element_type:"non_input",view:"\n<%= Formbuilder.templates[\"view/table_field\"]({rf: rf}) %>\n<%= rf.get(Formbuilder.options.mappings.DESCRIPTION) %>
",edit:"\n\n
\n <%= Formbuilder.templates['edit/label_description']({rf: rf}) %>\n
\n
\n
\n",addButton:' Table',defaultAttributes:function(a){return a.options.full_width=!1,a.initialize=function(){var a;return a=this,_.each(this.childModels,function(b){return b.on("change",function(b){return void 0!==_.nested(b,"changed.options.column_width")&&a.columnWidth(b.get("uuid"),b.get("options.column_width")),b})})},a.childModels=function(){var a;return a=_.pluck(this.get("options.elements"),"uuid"),this.collection.filter(function(b){return-1!==_.indexOf(a,b.get("uuid"))},this)},a.elementOptions=function(a){return _.findWhere(this.get("options.elements"),{uuid:a})},a.createTotalColumnModel=function(a){var b;return b=new FormbuilderModel(Formbuilder.helpers.defaultFieldAttrs("number")),b.set("options.calculation_expression","sum(column_uuid_"+a.replace(/-/g,"_")+")"),b.set("model_only",!0),b.set("parent_uuid",a),this.collection.add(b),b},a.columnWidth=function(a,b){var c;return c=this.get("options.elements"),_.each(c,function(d,e){return d.uuid===a?c[e].columnWidth=b:void 0},this)},a.totalColumn=function(a,b){var c;return c=this.get("options.elements"),void 0!==b?(_.each(c,function(d,e){var f;return d.uuid===a?(void 0===d.totalColumnUuid&&(f=this.createTotalColumnModel(d.uuid),c[e].totalColumnUuid=f.get("uuid")),c[e].totalColumn=b):void 0},this),this.set("options.elements",c)):this.elementOptions(a)?this.elementOptions(a).totalColumn||!1:!1},a}})}.call(this),function(){Formbuilder.registerField("text",{name:"Text",order:0,view:"",edit:"<%= Formbuilder.templates['edit/populate_from']({ rf: rf }) %>",addButton:' Text',defaultAttributes:function(a){return a.options.size="small",a}})}.call(this),function(){Formbuilder.registerField("textarea",{name:"Paragraph",order:5,view:"",edit:"<%= Formbuilder.templates['edit/populate_from']({ rf: rf }) %>",addButton:' Paragraph',defaultAttributes:function(a){return a.options.size="small",a}})}.call(this),function(){Formbuilder.registerField("time",{name:"Time",order:25,view:"\n \n \n \n \n\n :\n\n \n \n \n \n\n :\n\n \n \n \n \n\n \n \n \n
",edit:"",addButton:' Time'})}.call(this),function(){Formbuilder.registerField("website",{name:"Website",order:35,view:"",edit:"",addButton:' Website'})}.call(this),this.Formbuilder=this.Formbuilder||{},this.Formbuilder.templates=this.Formbuilder.templates||{},this.Formbuilder.templates["edit/base"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.templates["edit/base_header"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["edit/common"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].edit({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["edit/columnwidth"]({rf:rf}))?"":__t)+"\n";return __p},this.Formbuilder.templates["edit/base_header"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n
\n \n
\n";return __p},this.Formbuilder.templates["edit/base_non_input"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.templates["edit/base_header"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].edit({rf:rf}))?"":__t)+"\n";return __p},this.Formbuilder.templates["edit/checkboxes"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n";return __p},this.Formbuilder.templates["edit/columnwidth"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='';return __p},this.Formbuilder.templates["edit/common"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n\n\n
\n "+(null==(__t=Formbuilder.templates["edit/label_description"]({rf:rf}))?"":__t)+"\n
\n
\n "+(null==(__t=Formbuilder.templates["edit/checkboxes"]())?"":__t)+"\n
\n
\n
";return __p},this.Formbuilder.templates["edit/data_source_options"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj){__p+="\n\n\n\n\n\n",rf.filters()){if(__p+="\n \n \n ",rf.get(Formbuilder.options.mappings.DATA_SOURCE.IS_FILTERED)){__p+='\n \n ";for(i in rf.filterValues())__p+="\n \n ";__p+="\n"}__p+="\n"}}return __p},this.Formbuilder.templates["edit/integer_only"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n";return __p},this.Formbuilder.templates["edit/label_description"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n";return __p},this.Formbuilder.templates["edit/min_max"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n\nMin\n\n\n \n\nMax\n\n';return __p},this.Formbuilder.templates["edit/min_max_length"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n\nMin\n\n\n \n\nMax\n\n\n \n\n\n';return __p},this.Formbuilder.templates["edit/options"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)__p+="\n\n","undefined"!=typeof includeBlank&&(__p+="\n \n"),__p+="\n\n\n\n \n ',rf.get(Formbuilder.options.mappings.INCLUDE_SCORING)&&(__p+='\n \n '),__p+='\n\n \n
\n\n',"undefined"!=typeof includeOther&&(__p+="\n \n'),__p+="\n\n\n \n
\n';return __p},this.Formbuilder.templates["edit/options_per_row"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n';return __p},this.Formbuilder.templates["edit/populate_from"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj){var list=rf.collection.findDataSourceFields();if(list.length){__p+="\n \n \n \n"}__p+="\n"}return __p},this.Formbuilder.templates["edit/scoring"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n \n
\n\n";return __p},this.Formbuilder.templates["edit/size"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n\n';return __p},this.Formbuilder.templates["edit/table_layout"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n\n \n';return __p},this.Formbuilder.templates["edit/table_totals"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n";return __p},this.Formbuilder.templates["edit/total"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)rf.canTotalColumn()&&(__p+='\n\n"),__p+="\n",rf.canAcceptCalculatedTotal()&&(__p+="\n\n\n'),__p+="\n\n";return __p},this.Formbuilder.templates["edit/units"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n\n';return __p},this.Formbuilder.templates.page=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.templates["partials/left_side"]())?"":__t)+"\n"+(null==(__t=Formbuilder.templates["partials/right_side"]())?"":__t)+"\n";return __p},this.Formbuilder.templates["partials/add_field"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)__p+="";return __p},this.Formbuilder.templates["partials/edit_field"]=function(obj){obj||(obj={});var __p="";_.escape;with(obj)__p+="\n";return __p},this.Formbuilder.templates["partials/left_side"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n
\n\n
\n "+(null==(__t=Formbuilder.templates["partials/add_field"]())?"":__t)+"\n "+(null==(__t=Formbuilder.templates["partials/edit_field"]())?"":__t)+"\n
\n
";return __p},this.Formbuilder.templates["partials/right_side"]=function(obj){obj||(obj={});var __p="";_.escape;with(obj)__p+="\n
No response fields
\n
\n
\n";return __p},this.Formbuilder.templates["view/base"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n
\n "+(null==(__t=Formbuilder.templates["view/label"]({rf:rf}))?"":__t)+"\n\n "+(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].view({rf:rf}))?"":__t)+"\n\n "+(null==(__t=Formbuilder.templates["view/description"]({rf:rf}))?"":__t)+"\n "+(null==(__t=Formbuilder.templates["view/duplicate_remove"]({rf:rf}))?"":__t)+"\n
\n";return __p},this.Formbuilder.templates["view/base_non_input"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n
\n "+(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].view({rf:rf}))?"":__t)+"\n "+(null==(__t=Formbuilder.templates["view/duplicate_remove"]({rf:rf}))?"":__t)+"\n
\n";return __p},this.Formbuilder.templates["view/description"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n "+(null==(__t=Formbuilder.helpers.simple_format(rf.get(Formbuilder.options.mappings.DESCRIPTION)))?"":__t)+"\n\n";return __p},this.Formbuilder.templates["view/duplicate_remove"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n \n
';return __p},this.Formbuilder.templates["view/element_selector"]=function(obj){obj||(obj={});var __p="";_.escape;with(obj)__p+='\n\n\n
';
-return __p},this.Formbuilder.templates["view/label"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)__p+="\n";return __p},this.Formbuilder.templates["view/remove"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n
';return __p},this.Formbuilder.templates["view/table_element"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].view({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["view/remove"]({rf:rf}))?"":__t);return __p},this.Formbuilder.templates["view/table_field"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj){__p+='\n'+(null==(__t=Formbuilder.templates["view/element_selector"]())?"":__t)+'\n\n\n\n \n \n ';for(i in rf.get("options.elements")||[])__p+='\n \n ';__p+="\n
\n \n ";for(i in rf.get("options.elements")||[])__p+='\n | \n ';__p+="\n
\n \n \n \n ";for(i in rf.get("options.elements")||[])__p+='\n | \n ';__p+="\n
\n \n
"}return __p},this.Formbuilder.templates["view/table_header"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.templates["view/label"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["view/description"]({rf:rf}))?"":__t);return __p},this.Formbuilder.templates["view/table_total"]=function(obj){obj||(obj={});var __p="";_.escape,Array.prototype.join;with(obj)rf.get("options.total_sequence")&&(__p+='\n(Column Total)\n');return __p};
\ No newline at end of file
+(function(){rivets.binders.append={routine:function(a,b){return a.checked=void 0!==_.find(b,function(b){return String(b)===String(a.value)})},bind:function(a){var b=this;return this.callback=function(){var c,d;return c=_.clone(b.model.get(b.keypath))||[],_.contains(c,a.value)?(d=_.without(c,a.value),b.model.set(b.keypath,d)):(c.push(a.value),b.model.set(b.keypath,c))},$(a).on("change",this.callback)},unbind:function(a){return $(a).off("change",this.callback)}},rivets.formatters.length=function(a){return a?a.length:0},rivets.binders.input={publishes:!0,routine:rivets.binders.value.routine,bind:function(a){return $(a).bind("input.rivets",this.publish)},unbind:function(a){return $(a).unbind("input.rivets")}},rivets.configure({prefix:"rv",adapter:{subscribe:function(a,b,c){return c.wrapped=function(a,b){return c(b)},a.on("change:"+b,c.wrapped)},unsubscribe:function(a,b,c){return a.off("change:"+b,c.wrapped)},read:function(a,b){return"cid"===b?a.cid:a.get(b)},publish:function(a,b,c){return a.cid?a.set(b,c):a[b]=c}}})}).call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p={}.hasOwnProperty,q=function(a,b){function c(){this.constructor=a}for(var d in b)p.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},r=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};e=function(a){function b(){return i=b.__super__.constructor.apply(this,arguments)}var d;return q(b,a),d={},b.prototype.sync=function(){},b.prototype.indexInDOM=function(){return void 0===d[this.cid]&&$(".fb-field-wrapper").each(function(a,b){return d[$(b).data("cid")]=$(b),!0}),(d[this.cid]||{index:function(){return-1}}).index(".fb-field-wrapper")},b.prototype.is_input=function(){return null!=c.inputFields[this.get(c.options.mappings.TYPE)]},b.prototype.initialize=function(){return null==this.attributes.uuid&&(this.attributes.uuid=uuid.v4()),void 0===!this.attributes.parent_uuid&&(this.attributes.parent_uuid=null),this.attachMethods()},b.prototype.parentModel=function(){var a;return a=this.collection,a?this.collection.findWhereUuid(this.get("parent_uuid")):void 0},b.prototype.hasParent=function(){return void 0!==this.parentModel()},b.prototype.inTable=function(){var a;return a=this.parentModel(),a&&"table"===a.get("type")},b.prototype.inGrid=function(){var a;return a=this.parentModel(),a&&"grid"===a.get("type")},b.prototype.canBeConditionallyDisplayed=function(){return!this.inTable()&&!this.inGrid()&&c.conditionalFunctionality},b.prototype.canShowReferenceID=function(){return c.showReferenceIDFunctionality},b.prototype.conditionalParent=function(){var a;return a=this.get(c.options.mappings.CONDITIONAL_PARENT),a?this.collection.findWhereUuid(a):null},b.prototype.conditionalChildren=function(){var a;return a=this.attributes.uuid,this.collection.filter(function(b){return a===b.get(c.options.mappings.CONDITIONAL_PARENT)})},b.prototype.answers=function(){return this.get("answers")||[]},b.prototype.conditionalTriggerOptions=function(a){var b,d,e;return d=this.conditionalParent(),b=[],d&&("approval"===d.get("type")?b="Is Approved":(b=_.clone(d.answers()),b.unshift({uuid:"",label:"[No Selection]"}),a&&(e=this.get(c.options.mappings.CONDITIONAL_VALUES)||[],b=_.filter(b,function(a){var b;return b=a.uuid,r.call(e,b)>=0})))),b},b.prototype.isValid=function(){var a,b,d,e,f,g;return(b=this.canBeConditionallyDisplayed())?(f=this.attributes.options,a=f.conditional,a&&(d=a.parent,e=a.values,g=this.conditionalParent(),g&&"approval"===g.get("type")&&(this.get(c.options.mappings.CONDITIONAL_VALUES)||this.set(c.options.mappings.CONDITIONAL_VALUES,1),e=1)),d&&e&&0!==e.length||"undefined"==typeof e&&"undefined"==typeof d?!0:!1):!0},b.prototype.attachMethods=function(){return"function"==typeof this.attributes.initialize&&(this.attributes.initialize.call(this),delete this.attributes.initialize),"function"==typeof this.attributes.insertion&&(this.insertion=this.attributes.insertion,delete this.attributes.insertion),_.each(this.attributes,function(a,b){return"function"==typeof a&&void 0===this[b]?(this[b]=a,delete this.attributes[b]):void 0},this)},b}(Backbone.DeepModel),d=function(a){function b(){return j=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.model=e,b.prototype.comparator=function(a){return a.indexInDOM()},b.prototype.add=function(a){var c;return c=a=b.__super__.add.call(this,a),_.isArray(a)||(c=[a]),_.each(c,function(a){return"function"==typeof a.insertion?a.insertion.call(a):void 0}),a},b.prototype.findWhereUuid=function(a){return this.findWhere({uuid:a})},b.prototype.findDataSourceFields=function(){return this.where({type:"datasource"})},b.prototype.findConditionalTriggers=function(a){var b;return b=this.filter(function(b){var c,d,e,f;return c="dropdown"===(f=b.get("type"))||"checkbox"===f||"radio"===f||"approval"===f,d=b!==a,e=!b.hasParent(),c&&d&&e})},b.prototype.clearConditionEle=function(a){return a.unset(c.options.mappings.CONDITIONAL)},b}(Backbone.Collection),h=function(a){function b(){return k=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.insert=function(a,b,c,d,e){var f,g,h,i;return h=c.parentModel(),void 0===h||"grid"===h.get("type")||"table"===h.get("type")?(g=e.$appendEl||null,i=e.$replaceEl||null,null!=g?g.html(b.render().el):null!=i?i.replaceWith(b.render().el):null==e.position||-1===e.position?a.$responseFields.append(b.render().el):0===e.position?a.$responseFields.prepend(b.render().el):(f=a.$responseFields.find(".fb-field-wrapper").eq(e.position))[0]?f.before(b.render().el):a.$responseFields.append(b.render().el)):void 0},b.prototype.className="fb-field-wrapper",b.prototype.events={"click .subtemplate-wrapper":"focusEditView","click .js-duplicate":"duplicate","click .js-clear":"clear"},b.prototype.initialize=function(a){return this.parentView=a.parentView,this.listenTo(this.model,"change",this.render),this.listenTo(this.model,"destroy",this.remove)},b.prototype.render=function(){return this.$el.addClass("response-field-"+this.model.get(c.options.mappings.TYPE)).data("cid",this.model.cid).data("uuid",this.model.get("uuid")).html(c.templates["view/base"+(this.model.is_input()?"":"_non_input")]({rf:this.model})),this},b.prototype.focusEditView=function(){return this.parentView.createAndShowEditView(this.model)},b.prototype.clear=function(a){var b,d,e=this;switch(a.preventDefault(),a.stopPropagation(),_.each(this.model.conditionalChildren(),function(a){return a.unset(c.options.mappings.CONDITIONAL_PARENT),a.unset(c.options.mappings.CONDITIONAL_VALUES)}),b=function(){return e.parentView.handleFormUpdate(),e.model.destroy()},d=c.options.CLEAR_FIELD_CONFIRM,typeof d){case"string":if(confirm(d))return b();break;case"function":return d(b);default:return b()}},b.prototype.duplicate=function(a){var b,d,e;a.preventDefault(),a.stopPropagation(),d=c.helpers.clone(this.model.attributes),b=c.helpers.defaultFieldAttrs(d.type,{});for(e in d)b[e]=d[e];return delete b.id,delete b.cid,delete b.uuid,b.label+=" Copy",b.options.grid&&(b.options.grid.row=b.options.grid.row+1),this.parentView.createField(b,{position:this.model.indexInDOM()+1}),this.model.trigger("duplicate:viewfield")},b}(Backbone.View),g=function(a){function b(){return l=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.className="fb-field-wrapper",b.prototype.initialize=function(a){return this.parentView=a.parentView,this.listenTo(this.model,"change",this.update),this.listenTo(this.model,"destroy",this.remove),_.each(this.model.get("options.elements"),function(a){var b;return b=this.model.collection.findWhereUuid(a.uuid),b?this.listenTo(b,"change",this.update):console.log(a.uuid)},this)},b.prototype.events={mouseenter:"showSelectors",mouseleave:"removeSelectors","click .drop-area li":"inlineAdd","click .subtemplate-wrapper":"focusEditView","click .response-field-table td.header":"focusSubelement","click .response-field-table td.element":"focusSubelement","click .js-clear":"clear","click .js-duplicate":"duplicate"},b.prototype.showSelectors=function(a){return this.$el.find(".drop-area").html(c.templates["view/element_selector"]())},b.prototype.removeSelectors=function(a){return this.$el.find(".drop-area").html("")},b.prototype.inlineAdd=function(a){var b,d,f;return a.preventDefault(),a.stopPropagation(),b=new e(c.helpers.defaultFieldAttrs($(a.currentTarget).data("type"))),b.set("parent_uuid",this.model.get("uuid")),b.set("options.in_sequence",!0),this.listenTo(b,"change",this.update),d=this.model.attributes.options.elements||[],f={uuid:b.get("uuid")},d.push(f),this.model.attributes.options.elements=d,this.parentView.collection.add(b),this.update(b)},b.prototype.update=function(a){return a?(this.render(),this.parentView.createAndShowEditView(a)):void 0},b.prototype.render=function(){return b.__super__.render.call(this),this.renderElements(),this},b.prototype.focusEditView=function(a){return $(a.target).parents(".dropdown-toggle").length||$(a.target).hasClass("dropdown-toggle")?void 0:this.parentView.createAndShowEditView(this.model)},b.prototype.focusSubelement=function(a){var b;return a.preventDefault(),a.stopPropagation(),b=$(a.currentTarget).data("uuid"),b?this.parentView.createAndShowEditView(this.parentView.modelByUuid(b)):void 0},b.prototype.renderElements=function(){return _.each(this.model.get("options.elements"),function(a){var b;return b=this.parentView.modelByUuid(a.uuid),this.$el.find(".header-"+a.uuid).html(c.templates["view/table_header"]({rf:b,element:a})).css("background-color",b.get(c.options.mappings.LABEL_BACKGROUND_COLOR)).data("cid",b.cid),this.$el.find(".element-"+a.uuid).html(c.templates["view/table_element"]({rf:b,element:a})).data("cid",b.cid),this.$el.find(".total-"+a.uuid).html(c.templates["view/table_total"]({rf:b,element:a})).data("cid",b.cid)},this)},b.prototype.clear=function(a){var b,c;return a.preventDefault(),a.stopPropagation(),c=$(a.currentTarget).parents(".element").data("uuid"),void 0===c?(b=_.each(this.model.get("options.elements"),function(a){return this.parentView.modelByUuid(a.uuid).destroy(),!0},this),this.model.destroy(),this.$el.remove()):(this.parentView.modelByUuid(c).destroy(),this.model.set("options.elements",_.filter(this.model.get("options.elements"),function(a){return a.uuid!==c})),this.render())},b.prototype.duplicate=function(){var a,b,d,f,g=this;return a=c.helpers.clone(this.model.attributes),delete a.id,delete a.cid,a.uuid=uuid.v4(),a.label+=" Copy",f=a.options.elements,a.options.elements=[],a=_.extend({},c.helpers.defaultFieldAttrs("table"),a),this.parentView.createField(a,{position:-1}),d=this.parentView.viewByUuid(a.uuid),b=this.parentView.modelByUuid(a.uuid),_.each(f,function(f){var h,i,j,k;return h=g.parentView.modelByUuid(f.uuid),i=c.helpers.clone(h),delete i.id,delete i.cid,f.uuid=i.uuid=uuid.v4(),i.parent_uuid=a.uuid,i=_.extend({},c.helpers.defaultFieldAttrs(i.type),i),j=new e(i),f.totalColumn&&(k=b.createTotalColumnModel(i.uuid),f.totalColumnUuid=k.get("uuid")),g.parentView.collection.add(j),void 0!==j.expression&&j.get("options.calculation_type")&&j.expression(),d.listenTo(j,"change",d.update),a.options.elements.push(f)}),d.render()},b.insert=function(a,b,c,d,e){var f;return f=a.viewByUuid(c.get("parent_uuid")),null!=f?!0:!1},b}(h),f=function(a){function b(){return m=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.className="fb-field-wrapper",b.prototype.events={"click .response-field-grid-cell li":"inlineAdd","click .response-field-grid-cell .js-clear":"subelementClear","click .js-duplicate":"duplicate","click .js-clear":"clear","click .subtemplate-wrapper":"focusEditView"},b.prototype.initialize=function(a){return this.parentView=a.parentView,this.listenTo(this.model,"change",this.redraw),this.listenTo(this.model,"destroy",this.remove),this.parentView.collection.bind("add",this.addSubelement,this),this.parentView.collection.bind("destroy",this.removeSubelement,this),this.render},b.prototype.render=function(){return b.__super__.render.call(this),this.redraw(),this.renderChildren(),this},b.prototype.redraw=function(){var a;return a=this.$el.find(".response-field-grid-table").detach(),this.$el.addClass("response-field-"+this.model.get(c.options.mappings.TYPE)).data("cid",this.model.cid).data("uuid",this.model.get("uuid")).html(c.templates["view/base"+(this.model.is_input()?"":"_non_input")]({rf:this.model})),1===a.length&&this.$el.find(".response-field-grid-table").replaceWith(a),this.renderTable()},b.prototype.renderTable=function(){var a,b,d,e,f,g,h,i,j,k=this;return e=this.model.get("options.num_rows")||1,d=this.model.get("options.num_cols")||1,h=this.$el.find("table"),b=h.find("tr").length,a=h.find("tr:nth-child(1) td").length,f=$.makeArray(h.find("tr")),e>b&&(f=f.concat(function(){j=[];for(var a=i=f.length;e>=i?e>a:a>e;e>=i?a++:a--)j.push(a);return j}.apply(this))),f=_.map(f,function(a){var b,e,f;return _.isNumber(a)&&(a=$('
').appendTo(h)),b=$.makeArray($(a).find("td")),b.length=e?d>a:a>d;d>=e?a++:a--)f.push(a);return f}.apply(this))),b=_.map(b,function(b){return _.isNumber(b)?b=$(' | ').appendTo(a).html(c.templates["view/element_selector"]()):void 0}),a}),b>e&&(g=this.subelements(),_.each(g,function(a){var b;return b=k.parentView.gridAttr(a),b.row>e-1?a.destroy():void 0}),h.find("tr").slice(e-b).remove()),a>d?(g=this.subelements(),_.each(g,function(a){var b;return b=k.parentView.gridAttr(a),b.col>d-1?a.destroy():void 0}),h.find("tr").find("td:gt("+(d-1)+")").remove()):void 0},b.prototype.renderChildren=function(){var a,b=this;return a=this.model.get("children")||[],_.each(a,function(a){var c;return c=a.options.grid,b.createField(a,b.getSubelement(c.row,c.col))})},b.prototype.focusEditView=function(a){return 0===$(a.target).parents("table").length?this.parentView.createAndShowEditView(this.model):void 0},b.prototype.clear=function(a){var b,d,e=this;switch(a.preventDefault(),a.stopPropagation(),b=function(){var a;return e.parentView.handleFormUpdate(),a=e.subelements(),_.each(e.subelements(),function(a){return a.destroy(),!0}),e.model.destroy()},d=c.options.CLEAR_FIELD_CONFIRM,typeof d){case"string":if(confirm(d))return b();break;case"function":return d(b);default:return b()}},b.prototype.duplicate=function(){var a,b,d=this;return a=c.helpers.clone(this.model.attributes),delete a.id,delete a.cid,a.uuid=uuid.v4(),a.label+=" Copy",b=this.subelements(),delete a.children,this.parentView.createField(a,{position:-1}),a.children=_.map(b,function(b){var e;return e=c.helpers.clone(b.attributes),delete e.id,delete e.cid,delete e.uuid,e.parent_uuid=a.uuid,d.parentView.createField(e,{position:-1})})},b.prototype.addSubelement=function(a){var b,c;return this.belongsToMe(a)&&a.get("label").match(/Copy/)?(b=this.parentView.gridAttr(a),c=a.get("label").match(/(.+) Copy/),null!==c?a.attributes.label=c[1]+" "+(b.row+1):a.attributes.label="Row: "+(b.row+1)+", Col: "+(b.col+1)):void 0},b.prototype.removeSubelement=function(a){var b,d;return d=this.parentView.gridAttr(a),b=this.belongsToMe(a),b&&""===this.getSubelement(d.row,d.col).html()?this.getSubelement(d.row,d.col).html(c.templates["view/element_selector"]({rf:this.model})):void 0},b.prototype.subelements=function(){var a=this;return this.parentView.collection.filter(function(b){return a.belongsToMe(b)})},b.prototype.belongsToMe=function(a){return this.parentView.inGrid(a)&&a.get("parent_uuid")===this.model.get("uuid")},b.prototype.inlineAdd=function(a){var b,c;return a.preventDefault(),a.stopPropagation(),c=$(a.currentTarget).data("type"),b=$(a.currentTarget).parents(".response-field-grid-cell"),this.createField(c,b)},b.prototype.getSubelement=function(a,b){return a++,b++,this.$el.find("tr:nth-child("+a+") td:nth-child("+b+")")},b.prototype.createField=function(a,b){return _.isString(a)&&(a=c.helpers.defaultFieldAttrs(a)),a.options.grid={col:b.prop("cellIndex"),row:b.parents("tr").prop("rowIndex")},a.parent_uuid=this.model.get("uuid"),this.parentView.createField(a,{$appendEl:b})},b.insert=function(a,b,c,d,e){var f,g,i;return e.$appendEl||(i=c.get("options.grid.row"),g=c.get("options.grid.col"),f=a.wrapperByUuid(c.get("parent_uuid")),f=f.find("tr:nth-child("+(i+1)+") td:nth-child("+(g+1)+")"),1===f.length&&(e.$appendEl=f)),h.insert(a,b,c,d,e)},b}(Backbone.View),b=function(a){function b(){return n=b.__super__.constructor.apply(this,arguments)}return q(b,a),b.prototype.className="edit-response-field",b.prototype.events={"click .js-add-option":"addOption","click .js-remove-option":"removeOption","click .js-default-updated":"defaultUpdated","input .option-label-input":"forceRender"},b.prototype.initialize=function(a){var b=this;return this.parentView=a.parentView,this.listenTo(this.model,"destroy",this.remove),_.each(c.options.change,function(a,d){var e;return e="change:"+_.nested(c.options.mappings,d),b.listenTo(b.model,e,a)})},b.prototype.render=function(){return this.$el.html(c.templates["edit/base"+(this.model.is_input()?"":"_non_input")]({rf:this.model})),rivets.bind(this.$el,{model:this.model}),this},b.prototype.reset=function(){return this.stopListening(),this.parentView.editView=void 0,this.parentView.createAndShowEditView(this.model)},b.prototype.resetConditional=function(){return this.model.unset(c.options.mappings.CONDITIONAL_VALUES)},b.prototype.deselectReadOnly=function(){return this.model.set(c.options.mappings.READ_ONLY,!1)},b.prototype.remove=function(){return this.parentView.editView=void 0,this.parentView.$el.find('[data-target="#addField"]').click(),this.stopListening(),b.__super__.remove.apply(this,arguments)},b.prototype.addOption=function(a){var b,d,e,f;return b=$(a.currentTarget),d=this.$el.find(".option").index(b.closest(".option")),f=this.model.get(c.options.mappings.OPTIONS)||[],e={uuid:uuid.v4(),label:"",checked:!1},d>-1?f.splice(d+1,0,e):f.push(e),this.model.set(c.options.mappings.OPTIONS,f),this.model.trigger("change:"+c.options.mappings.OPTIONS),this.forceRender()},b.prototype.removeOption=function(a){var b,d,e;return b=$(a.currentTarget),d=this.$el.find(".js-remove-option").index(b),e=this.model.get(c.options.mappings.OPTIONS),e.splice(d,1),this.model.set(c.options.mappings.OPTIONS,e),this.model.trigger("change:"+c.options.mappings.OPTIONS),this.forceRender()},b.prototype.defaultUpdated=function(a){var b;return b=$(a.currentTarget),"checkboxes"!==this.model.get(c.options.mappings.TYPE)&&this.$el.find(".js-default-updated").not(b).attr("checked",!1).trigger("change"),this.forceRender()},b.prototype.forceRender=function(){return this.model.trigger("change",this.model)},b}(Backbone.View),a=function(a){function e(){return o=e.__super__.constructor.apply(this,arguments)}return q(e,a),e.prototype.SUBVIEWS=[],e.prototype.saveFormButton=$(),e.prototype.events={"click .fb-tabs a":"showTab","click .fb-add-types a":"addField","mouseover .fb-add-types":"lockLeftWrapper","mouseout .fb-add-types":"unlockLeftWrapper"},e.prototype.initialize=function(a){var b;return b=a.selector,this.formBuilder=a.formBuilder,this.bootstrapData=a.bootstrapData,null!=b&&this.setElement($(b)),this.collection=new d,this.collection.bind("add",this.addOne,this),this.collection.bind("reset",this.reset,this),this.collection.bind("change",this.handleFormUpdate,this),this.collection.bind("destroy add reset",this.hideShowNoResponseFields,this),this.collection.bind("destroy",this.ensureEditViewScrolled,this),this.render(),this.collection.reset(this.bootstrapData),this.bindSaveEvent()},e.prototype.bindSaveEvent=function(){var a=this;return this.formSaved=!0,this.saveFormButton.attr("disabled",!0).text(c.options.dict.ALL_CHANGES_SAVED),c.options.AUTOSAVE&&setInterval(function(){return a.saveForm.call(a)},5e3),$(window).bind("beforeunload",function(){return a.formSaved?void 0:c.options.dict.UNSAVED_CHANGES})},e.prototype.reset=function(){return this.$responseFields.html(""),this.addAll()},e.prototype.render=function(){var a,b,d,e;for(this.$el.html(c.templates.page()),this.$fbLeft=this.$el.find(".fb-left"),this.$responseFields=this.$el.find(".fb-response-fields"),this.bindWindowScrollEvent(),this.hideShowNoResponseFields(),e=this.SUBVIEWS,b=0,d=e.length;d>b;b++)a=e[b],new a({parentView:this}).render();return this},e.prototype.bindWindowScrollEvent=function(){var a=this;return $(window).on("scroll",function(){var b,c;if(a.$fbLeft.data("locked")!==!0)return c=Math.max(0,$(window).scrollTop()-a.$el.offset().top),b=a.$responseFields.height(),a.$fbLeft.css({"margin-top":Math.min(b,c)})})},e.prototype.showTab=function(a){var b,c,d,e;return b=$(a.currentTarget),d=!0,e=b.data("target"),this.editView&&!this.editView.model.isValid()&&(d=!1),(d||!d&&"#editField"===e)&&(b.closest("li").addClass("active").siblings("li").removeClass("active"),$(e).addClass("active").siblings(".fb-tab-pane").removeClass("active")),"#editField"!==e&&this.unlockLeftWrapper(),"#editField"===e&&!this.editView&&(c=this.collection.models[0])?this.createAndShowEditView(c):void 0},e.prototype.createView=function(a){var b;return b="grid"===a.attributes.type?new f({model:a,parentView:this}):"table"===a.attributes.type?new g({model:a,parentView:this}):new h({model:a,parentView:this})},e.prototype.insert=function(a,b,c,d){var e,i,j,k;return e=!1,i=b.parentModel(),j=i?i.get("type"):void 0,k=j||b.get("type"),"grid"===k?e=f.insert(this,a,b,c,d):"table"===k&&(e=g.insert(this,a,b,c,d)),e||(e=h.insert(this,a,b,c,d)),e},e.prototype.addOne=function(a,b,c){var d;return d=this.createView(a),this.$responseFields.find("> .ui-draggable").remove(),a.get("model_only")!==!0&&this.insert(d,a,b,c),this.views[a.get("uuid")]=d},e.prototype.setSortable=function(){var a=this;return this.$responseFields.hasClass("ui-sortable")&&this.$responseFields.sortable("destroy"),this.$responseFields.sortable({forcePlaceholderSize:!0,placeholder:"sortable-placeholder",stop:function(b,d){var e;return d.item.data("type")&&(e=a.collection.create(c.helpers.defaultFieldAttrs(d.item.data("type")),{$replaceEl:d.item}),a.createAndShowEditView(e)),a.handleFormUpdate(),!0},update:function(b,c){return c.item.data("type")?void 0:a.ensureEditViewScrolled()}}),this.setDraggable()},e.prototype.setDraggable=function(){var a,b=this;return a=this.$el.find("[data-type]"),a.draggable({connectToSortable:this.$responseFields,helper:function(){var a;return a=$(""),a.css({width:b.$responseFields.width(),height:"80px"}),a}})},e.prototype.addAll=function(){return this.collection.each(function(a,b,c){return this.addOne.call(this,a,b,{})},this),this.setSortable()},e.prototype.hideShowNoResponseFields=function(){return this.$el.find(".fb-no-response-fields")[this.collection.length>0?"hide":"show"]()},e.prototype.addField=function(a){var b;return b=$(a.currentTarget).data("type"),this.createField(c.helpers.defaultFieldAttrs(b,{}))},e.prototype.createField=function(a,b){var c;return c=this.collection.create(a,b),this.createAndShowEditView(c),this.handleFormUpdate()},e.prototype.createAndShowEditView=function(a){var d,e,f,g,h,i,j,k;if(f=this.$el.find(".fb-field-wrapper").filter(function(){return $(this).data("cid")===a.cid}),i=!0,this.editView){if(this.editView.model.cid===a.cid)return this.$el.find('.fb-tabs a[data-target="#editField"]').click(),void this.scrollLeftWrapper(f);i=this.editView.model.isValid(),i?this.editView.remove():$(".fb-edit-section-conditional-wrapper #warning-message").show()}return i&&($(".fb-field-wrapper").removeClass("parent"),$(".fb-option").removeClass("trigger-option"),$(".fb-field-wrapper").removeClass("editing"),f.addClass("editing")),j=a.conditionalParent(),j&&(k=a.get(c.options.mappings.CONDITIONAL_VALUES)||[],e=this.$el.find(".fb-field-wrapper").filter(function(){return $(this).data("cid")===j.cid}),e.addClass("parent"),e.find(".fb-option").filter(function(){var a,b;return a=$(this).data("uuid"),b=$(this).data("uuid"),r.call(k,b)>=0}).each(function(){return $(this).addClass("trigger-option")})),i&&(this.editView=new b({model:a,parentView:this}),d=this.editView.render().$el,h=this.$el.find(".fb-edit-field-wrapper"),h.html(d),this.inGrid(a)?h.addClass("fb-edit-field-grid"):h.removeClass("fb-edit-field-grid"),a.inTable()&&$(".spectrum-colorpicker",".fb-edit-field-wrapper").spectrum({allowEmpty:!0,preferredFormat:"hex",showPalette:!0,showPaletteOnly:!0,palette:["#000000","#424242","#636363","#9C9C94","#CEC6CE","#EFEFEF","#F7F7F7","#FFFFFF","#FF0000","#FF9C00","#FFFF00","#00FF00","#00FFFF","#0000FF","#9C00FF","#FF00FF","#F7C6CE","#FFE7CE","#FFEFC6","#D6EFD6","#CEDEE7","#CEE7F7","#D6D6E7","#E7D6DE","#E79C9C","#FFC69C","#FFE79C","#B5D6A5","#A5C6CE","#9CC6EF","#B5A5D6","#D6A5BD","#E76363","#F7AD6B","#FFD663","#94BD7B","#73A5AD","#6BADDE","#8C7BC6","#C67BA5","#CE0000","#E79439","#EFC631","#6BA54A","#4A7B8C","#3984C6","#634AA5","#A54A7B","#9C0000","#B56308","#BD9400","#397B21","#104A5A","#085294","#311873","#731842","#630000","#7B3900","#846300","#295218","#083139","#003163","#21104A","#4A1031"]}),this.$el.find('.fb-tabs a[data-target="#editField"]').click(),this.scrollLeftWrapper(f),g=c.helpers.defaultFieldAttrs(a.get("type")),void 0!==g.definition.onEdit&&g.definition.onEdit(a),this.$el.find("input, textarea, [contenteditable=true]").filter(":visible").first().focus()),this},e.prototype.inGrid=function(a){return this.hasParent(a)&&a.get("options.grid")},e.prototype.inTable=function(a){return this.hasParent(a)&&a.get("options.table")},e.prototype.hasParent=function(a){return a.get("parent_uuid")},e.prototype.modelByUuid=function(a){return this.collection.findWhere({uuid:a})},e.prototype.wrapperByUuid=function(a){return $(".fb-field-wrapper").filter(function(){return $(this).data("uuid")===a})},e.prototype.viewByUuid=function(a){return this.views[a]},e.prototype.views={},e.prototype.gridAttr=function(a){return this.inGrid(a)?a.get("options.grid"):null},e.prototype.ensureEditViewScrolled=function(){return this.editView?this.scrollLeftWrapper($(".fb-field-wrapper.editing")):void 0},e.prototype.scrollLeftWrapper=function(a){var b=this;return this.unlockLeftWrapper(),a[0]?$.scrollWindowTo(this.$el.offset().top+a.offset().top-this.$responseFields.offset().top,200,function(){return b.lockLeftWrapper()}):void 0},e.prototype.lockLeftWrapper=function(){return this.$fbLeft.data("locked",!0)},e.prototype.unlockLeftWrapper=function(){return this.$fbLeft.data("locked",!1)},e.prototype.handleFormUpdate=function(){return this.collection.sort(),this.updatingBatch?void 0:(this.formSaved=!1,this.saveFormButton.removeAttr("disabled").text(c.options.dict.SAVE_FORM))},e.prototype.getPayload=function(){return JSON.stringify({fields:this.collection.toJSON()})},e.prototype.saveForm=function(a){var b;if(!this.formSaved)return this.formSaved=!0,this.saveFormButton.attr("disabled",!0).text(c.options.dict.ALL_CHANGES_SAVED),this.collection.sort(),b=this.getPayload(),c.options.HTTP_ENDPOINT&&this.doAjaxSave(b),this.formBuilder.trigger("save",b)},e.prototype.doAjaxSave=function(a){var b=this;return $.ajax({url:c.options.HTTP_ENDPOINT,type:c.options.HTTP_METHOD,data:a,contentType:"application/json",success:function(a){var c,d,e,f;for(b.updatingBatch=!0,d=0,e=a.length;e>d;d++)c=a[d],null!=(f=b.collection.get(c.cid))&&f.set({id:c.id}),b.collection.trigger("sync");return b.updatingBatch=void 0}})},e}(Backbone.View),c=function(){function b(c){var d,e;null==c&&(c={}),_.extend(this,Backbone.Events),d=_.extend(c,{formBuilder:this}),this.attrs={},e=_(d.bootstrapData||[]).groupBy(function(a){return void 0===a.parent_uuid?0:1}).toArray().value(),e=_.reduce(e,function(a,b){return a.concat(b)}),d.bootstrapData=_.map(e,function(a){return _.extend({},b.helpers.defaultFieldAttrs(a.type),a)}),this.mainView=new a(d),this.mainView.collection,b.instances.push(this)}return b.attrs={},b.instances=[],b.attr=function(a,c){return void 0!==c&&(b.attrs[a]=c,_.each(this.instances,function(a){return a.mainView.reset()})),void 0!==b.attrs[a]?b.attrs[a]:void 0},b.conditionalFunctionality=!0,b.showReferenceIDFunctionality=!1,b.geolocationFunctionality=!0,b.linkAssetFunctionality=!1,b.linkAssetDisplayFields={},b.disableField=function(a){return this.fields[a].enabled=!1},b.helpers={defaultFieldAttrs:function(a){var c,d;return c={},c[b.options.mappings.LABEL]="Untitled",c[b.options.mappings.TYPE]=a,c[b.options.mappings.REQUIRED]=!1,c.definition=b.fields[a],c.options={},("function"==typeof(d=b.fields[a]).defaultAttributes?d.defaultAttributes(c,b):void 0)||c},simple_format:function(a){var b;return null!=(b=this.escape_html(a))?b.replace(/\n/g,"
"):void 0},clone:function(a){return JSON.parse(JSON.stringify(a))},escape_html:function(a){var b;return b={"&":"&","<":"<",">":">",'"':""","'":"'"},null!=a?a.replace(/[&<>"']/g,function(a){return b[a]}):void 0}},b.options={BUTTON_CLASS_SELECTOR:"fb-button btn btn-default",BUTTON_CLASS_ADD:"fb-button btn btn-xs btn-primary",BUTTON_CLASS_REMOVE:"fb-button btn btn-xs btn-danger",HTTP_ENDPOINT:"",HTTP_METHOD:"POST",AUTOSAVE:!1,CLEAR_FIELD_CONFIRM:!1,ENABLED_FIELDS:["text","checkbox","dropdown","textarea","radio","date","section","signature","info","grid","number","table","datasource","time","geolocation","approval"],mappings:{SIZE:"options.size",UNITS:"options.units",LABEL:"label",NAME:"definition.name",TYPE:"type",REQUIRED:"required",ADMIN_ONLY:"admin_only",POPULATE_FROM:"options.populate_from",POPULATE_UUID:"options.populate_uuid",CONDITIONAL_PARENT:"options.conditional.parent",CONDITIONAL_VALUES:"options.conditional.values",CONDITIONAL:"options.conditional",OPTIONS:"answers",DESCRIPTION:"description",INCLUDE_OTHER:"options.include_other_option",INCLUDE_BLANK:"options.include_blank_option",INCLUDE_SCORING:"is_scored",INTEGER_ONLY:"options.integer_only",LABEL_COLOR:"options.label_color",LABEL_BACKGROUND_COLOR:"options.label_background_color",READ_ONLY:"options.read_only",COLUMN_WIDTH:"options.column_width",DEFAULT_TIME:"options.default_time",DEFAULT_DATE:"options.default_date",REFERENCE_ID:"reference_id",NUMERIC:{CALCULATION_TYPE:"options.calculation_type",CALCULATION_EXPRESSION:"options.calculation_expression",CALCULATION_DISPLAY:"options.calculation_display",TOTAL_SEQUENCE:"options.total_sequence"},GRID:{COLS:"options.cols",NUMCOLS:"options.num_cols",ROWS:"options.rows",NUMROWS:"options.num_rows",FULL_WIDTH:"options.full_width",FIRST_ROW_HEADINGS:"options.first_row_headings"},TABLE:{COLS:"options.cols",NUMCOLS:"options.num_cols",ROWS:"options.rows",INITIALROWS:"options.initial_rows",MAXROWS:"options.max_rows",FULL_WIDTH:"options.full_width",COLUMNTOTALS:"options.display_column_totals",ROWTOTALS:"options.display_row_totals"},DATA_SOURCE:{MULTIPLE:"options.multiple_selections",DATA_SOURCE:"options.data_source",VALUE_TEMPLATE:"options.value_template",REQUIRED_PROPERTIES:"options.required_properties",FILTER:"options.filter",FILTER_VALUES:"options.filter_values",IS_FILTERED:"options.is_filtered"},MIN:"options.min",MAX:"options.max",OPTIONS_PER_ROW:"options.options_per_row",MINLENGTH:"options.minlength",MAXLENGTH:"options.maxlength",LENGTH_UNITS:"options.min_max_length_units",APPROVAL:{APPROVER_TYPE:"options.approver_type",APPROVER_ID:"options.approver_id"}},change:{INCLUDE_SCORING:function(){return this.reset()},POPULATE_UUID:function(){return this.model.get(b.options.mappings.POPULATE_UUID)||this.deselectReadOnly(),this.reset()},CONDITIONAL_PARENT:function(){return this.reset(),this.resetConditional()},CONDITIONAL_VALUES:function(){return this.reset()},"DATA_SOURCE.DATA_SOURCE":function(){return this.reset()},"DATA_SOURCE.IS_FILTERED":function(){return this.reset()},"DATA_SOURCE.FILTER":function(){return this.reset()},"APPROVAL.APPROVER_TYPE":function(){return this.reset()}},dict:{ALL_CHANGES_SAVED:"All changes saved",SAVE_FORM:"Save form",UNSAVED_CHANGES:"You have unsaved changes. If you leave this page, you will lose those changes!"}},b.fields={},b.inputFields={},b.nonInputFields={},b.prototype.markSaved=function(){return this.mainView.formSaved=!0;
+},b.prototype.isValid=function(){var a;return a=!0,this.mainView.editView&&!this.mainView.editView.model.isValid()&&(a=!1),a},b.prototype.getPayload=function(){return this.mainView.getPayload()},b.registerField=function(a,c){var d,e,f,g,h,i;for(d=!0,e=b.options.ENABLED_FIELDS,_.contains(e,a)||(d=!1),i=["view","edit"],g=0,h=i.length;h>g;g++)f=i[g],c[f]=d?_.template(c[f]):function(a){return""};return c.type=a,c.enabled=d,b.fields[a]=c,"non_input"===c.element_type?b.nonInputFields[a]=c:b.inputFields[a]=c},b}(),void 0===_.nested&&_.mixin({nested:function(a,b){return a&&b?a[b]||_.reduce(b.split("."),function(a,b){return a?a[b]:void 0},a):void 0}}),window.Formbuilder=c,window.FormbuilderModel=e,"undefined"!=typeof module&&null!==module?module.exports=c:window.Formbuilder=c}.call(this),function(){Formbuilder.registerField("address",{name:"Address",order:50,view:"\n \n \n \n \n
\n\n\n \n \n \n \n\n \n \n \n \n
\n\n\n \n \n \n \n\n \n \n \n \n
",edit:"<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Address'})}.call(this),function(){Formbuilder.registerField("approval",{name:"Approval",order:75,view:'\n \n
\n\n',edit:"<%= Formbuilder.templates['edit/approval_options']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Approval',onEdit:function(a){return $(".fb-approval-user-select").select2()},defaultAttributes:function(a,b){return a.initialize=function(){return this.on("change",function(a){var b,c;return b=this.conditionalParent(),b&&"approval"===b.get("type")&&a.set(Formbuilder.options.mappings.CONDITIONAL_VALUES,1),1===parseInt(this.get(Formbuilder.options.mappings.APPROVAL.APPROVER_TYPE))?a.set(Formbuilder.options.mappings.APPROVAL.APPROVER_ID,void 0):(c=this.get("options.approver"),void 0!==c?a.set(Formbuilder.options.mappings.APPROVAL.APPROVER_ID,parseInt(c)):void 0)})},a.getApprovers=function(){return b.attr("approvers")},a.getSelectedUserName=function(a){return a?a.full_name+" ("+a.username+")":void 0},a.getSelectedUser=function(){var a,b,c;return c=this.options?options.approver_id:this.get(Formbuilder.options.mappings.APPROVAL.APPROVER_ID),a=this.getApprovers()||[],b=a.filter(function(a){return parseInt(a.id)===c}),this.getSelectedUserName(b[0])},a.showApprovers=function(){return 2===parseInt(this.get(Formbuilder.options.mappings.APPROVAL.APPROVER_TYPE))},a.options.approver_type=1,a}})}.call(this),function(){Formbuilder.registerField("checkbox",{name:"Checkboxes",order:10,view:"",edit:"<%= Formbuilder.templates['edit/options']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/options_per_row']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Checkboxes',defaultAttributes:function(a){return a.answers=[{uuid:uuid.v4(),label:"",checked:!1,score:!1},{uuid:uuid.v4(),label:"",checked:!1,score:!1}],a.options.options_per_row=1,a}})}.call(this),function(){Formbuilder.registerField("datasource",{name:"List",order:70,view:"",edit:"<%= Formbuilder.templates['edit/data_source_options']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Data Source',defaultAttributes:function(a,b){var c;return a.initialize=function(){return this.on("change",function(a){var b,c,d;return b=a.filters(),void 0!==_.nested(a,"changed.options.data_source")&&(c=_.keys(a.sourceProperties()),a.set("options.required_properties",c),d=_.first(c),a.set("options.value_template",d)),b?a.set("options.filter",_.first(_.keys(b))):void 0}),this.on("destroy",function(a){return this.collection.each(function(b){return b.get("options.populate_uuid")===a.get("uuid")?(b.set("options.populate_uuid",null),b.set("options.populate_from",null)):void 0})})},a.source=function(){var a,c;return a=this.options?this.options.data_source:this.get(Formbuilder.options.mappings.DATA_SOURCE.DATA_SOURCE),c=b.attr("sources"),_.nested(c,a)||{}},a.sourceProperties=function(){var a;return a=this.source(),_.nested(a,"properties")||[]},a.filters=function(){var a;return a=this.source(),_.nested(a,"filters")||null},a.currentFilter=function(){var a;return a=this.source(),_.nested(a,"filters."+this.get("options.filter"))||{}},a.filterValues=function(){return this.currentFilter().values||{}},a.sourceProperty=function(a){return this.sourceProperties()[a]||null},a.options.multiple_selections=!1,a.options.is_filtered=!1,c=b.attr("sources")||{},a.options.data_source=_.keys(c)[0],a.options.required_properties=_.keys(a.sourceProperties(a.options.data_source)),a.options.filter=null,a.options.filter_values=[],a.options.value_template=_.first(a.options.required_properties),a}})}.call(this),function(){Formbuilder.registerField("date",{name:"Date",order:20,view:'\n \n
',edit:"<%= Formbuilder.templates['edit/date']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Date',defaultAttributes:function(a){return a.options.default_date=!1,a}})}.call(this),function(){Formbuilder.registerField("dropdown",{name:"Dropdown",order:24,view:"",edit:"<%= Formbuilder.templates['edit/scoring']() %>\n<%= Formbuilder.templates['edit/options']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Dropdown',defaultAttributes:function(a){return a.answers=[{uuid:uuid.v4(),label:"",checked:!1,score:""},{uuid:uuid.v4(),label:"",checked:!1,score:""}],a.is_scored=!1,a.options.include_blank_option=!1,a}})}.call(this),function(){Formbuilder.registerField("email",{name:"Email",order:40,view:"",edit:"<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Email'})}.call(this),function(){Formbuilder.registerField("file",{name:"File",order:55,view:"",edit:"<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' File'})}.call(this),function(){Formbuilder.registerField("geolocation",{name:"Geolocation",order:60,view:"\n \n
\n<%=rf.geolocationFunctionality%>",edit:"<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' GeoLocation'})}.call(this),function(){Formbuilder.registerField("grid",{name:"Layout Grid",order:30,element_type:"non_input",view:"\n\n<%- rf.get(Formbuilder.options.mappings.DESCRIPTION) %>
",edit:'\n\n',addButton:' Grid',defaultAttributes:function(a){return a.options.num_cols=1,a.options.num_rows=1,a.options.full_width=!1,a.options.first_row_headings=!1,a.children=[],a.childModels=function(){return this.collection.filter(function(a){return-1!==_.indexOf(this.get("options.elements"),a.get("uuid"))},this)},a}})}.call(this),function(){Formbuilder.registerField("info",{name:"Info",order:20,element_type:"non_input",view:"\n<%= rf.get(Formbuilder.options.mappings.DESCRIPTION) %>
",edit:'\n\n<%= Formbuilder.templates[\'edit/conditional_options\']({ rf: rf }) %>',addButton:' Info',onEdit:function(a){var b;return b=function(){return a.set(Formbuilder.options.mappings.DESCRIPTION,$(this).code()),a.trigger("change:"+Formbuilder.options.mappings.DESCRIPTION)},$(".fb-info-editor").summernote({onChange:function(){return b.call(this)},onKeyup:function(){return b.call(this)},disableDragAndDrop:!0,toolbar:[["style",["bold","italic","underline"]],["fontsize",["fontsize"]],["color",["color"]],["insert",["link"]],["table",["table"]],["misc",["codeview"]]]})}})}.call(this),function(){Formbuilder.registerField("number",{name:"Number",order:30,view:"\" <%- rf.get(Formbuilder.options.mappings.NUMERIC.CALCULATION_DISPLAY) ? 'readonly=\"readonly\"' : '' %> />\n<% if (units = rf.get(Formbuilder.options.mappings.UNITS)) { %>\n <%= units %>\n<% } %>",edit:"<%= Formbuilder.templates['edit/integer_only']({rf:rf}) %>\n<%= Formbuilder.templates['edit/total']({rf:rf}) %>\n<%= Formbuilder.templates['edit/min_max']({rf:rf}) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Number',defaultAttributes:function(a,b){return a.options.calculation_type="",a.options.calculation_expression="",a.options.calculation_display="",a.options.total_sequence=!1,a.insertion=function(){var a,b;return a=this.parentModel(),a&&"table"===a.get("type")?(b=a.totalColumn(this.get("uuid")),this.attributes.options.total_sequence=b):void 0},a.initialize=function(){return this.on("change",function(a){var b;return void 0!==_.nested(a,"changed.options.calculation_type")&&a.expression(),void 0!==_.nested(a,"changed.options.total_sequence")&&(b=_.nested(a,"changed.options.total_sequence"),this.parentModel().totalColumn(a.get("uuid"),b)),a})},a.numericSiblings=function(){var a;return a=this.parentModel(),a?_.filter(a.childModels(),function(a){return"number"===a.get("type")&&a.get("uuid")!==this.get("uuid")},this):[]},a.expression=function(){var a,b,c;return a=this.get("options.calculation_type"),""!==a?(c="SUM"===a?"+":"*",b=this.numericSiblings(),this.set("options.calculation_expression",_.map(b,function(a){return"uuid_"+a.get("uuid").replace(/-/g,"_")}).join(c)),this.set("options.calculation_display","= "+_.map(b,function(a){return a.get("label")}).join(c)),console.log(this.get("options.calculation_expression"))):(this.set("options.calculation_expression",""),this.set("options.calculation_display",""))},a.canTotalColumn=function(){var a;return a=this.parentModel(),a&&"table"===a.get("type")},a.canAcceptCalculatedTotal=function(){return this.numericSiblings().length>1},a}})}.call(this),function(){Formbuilder.registerField("price",{name:"Price",order:45,view:"\n $\n \n \n \n \n .\n \n \n \n \n
",edit:"<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Price'})}.call(this),function(){Formbuilder.registerField("radio",{name:"Radio Button",order:15,view:"",edit:"<%= Formbuilder.templates['edit/scoring']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/options']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/options_per_row']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Radio Button',defaultAttributes:function(a){return a.answers=[{uuid:uuid.v4(),label:"",checked:!1,score:""},{uuid:uuid.v4(),label:"",checked:!1,score:""}],a.is_scored=!1,a.options.options_per_row=1,a}})}.call(this),function(){Formbuilder.registerField("section",{name:"Section",order:10,element_type:"non_input",view:"\n<%- rf.get(Formbuilder.options.mappings.DESCRIPTION) %>
",edit:'\n\n<%= Formbuilder.templates[\'edit/conditional_options\']({ rf: rf }) %>',addButton:' Section Break'})}.call(this),function(){Formbuilder.registerField("signature",{name:"Signature",order:65,view:'\n',edit:"<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Signature'})}.call(this),function(){Formbuilder.registerField("table",{name:"Table",order:0,element_type:"non_input",view:"\n<%= Formbuilder.templates[\"view/table_field\"]({rf: rf}) %>\n<%- rf.get(Formbuilder.options.mappings.DESCRIPTION) %>
",edit:"\n\n
\n <%= Formbuilder.templates['edit/label_description']({rf: rf}) %>\n
\n
\n
\n",addButton:' Table',defaultAttributes:function(a){return a.options.full_width=!1,a.initialize=function(){var a;return a=this,_.each(this.childModels,function(b){return b.on("change",function(b){return void 0!==_.nested(b,"changed.options.column_width")&&a.columnWidth(b.get("uuid"),b.get("options.column_width")),b})})},a.childModels=function(){var a;return a=_.pluck(this.get("options.elements"),"uuid"),this.collection.filter(function(b){return-1!==_.indexOf(a,b.get("uuid"))},this)},a.elementOptions=function(a){return _.findWhere(this.get("options.elements"),{uuid:a})},a.createTotalColumnModel=function(a){var b;return b=new FormbuilderModel(Formbuilder.helpers.defaultFieldAttrs("number")),b.set("options.calculation_expression","sum(column_uuid_"+a.replace(/-/g,"_")+")"),b.set("model_only",!0),b.set("parent_uuid",a),this.collection.add(b),b},a.columnWidth=function(a,b){var c;return c=this.get("options.elements"),_.each(c,function(d,e){return d.uuid===a?c[e].columnWidth=b:void 0},this)},a.totalColumn=function(a,b){var c;return c=this.get("options.elements"),void 0!==b?(_.each(c,function(d,e){var f;return d.uuid===a?(void 0===d.totalColumnUuid&&(f=this.createTotalColumnModel(d.uuid),c[e].totalColumnUuid=f.get("uuid")),c[e].totalColumn=b):void 0},this),this.set("options.elements",c)):this.elementOptions(a)?this.elementOptions(a).totalColumn||!1:!1},a}})}.call(this),function(){Formbuilder.registerField("text",{name:"Text",order:0,view:"\n readonly=\"readonly\"\n <% } %>\n/>",edit:"<%= Formbuilder.templates['edit/populate_from']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Text',defaultAttributes:function(a){return a.options.size="small",a.options.read_only=!1,a}})}.call(this),function(){Formbuilder.registerField("textarea",{name:"Paragraph",order:5,view:"",edit:"<%= Formbuilder.templates['edit/populate_from']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Paragraph',defaultAttributes:function(a){return a.options.size="small",a.options.read_only=!1,a}})}.call(this),function(){Formbuilder.registerField("time",{name:"Time",order:25,view:'',edit:"<%= Formbuilder.templates['edit/time']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Time',defaultAttributes:function(a){return a.options.default_time=!1,a}})}.call(this),function(){Formbuilder.registerField("website",{name:"Website",order:35,view:"",edit:"<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",addButton:' Website'})}.call(this),this.Formbuilder=this.Formbuilder||{},this.Formbuilder.templates=this.Formbuilder.templates||{},this.Formbuilder.templates["edit/approval_options"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj){if(__p+='\n\n
\n \n
\n
\n \n
\n ",rf.showApprovers()){__p+='\n
\n \n
\n "}__p+="\n
\n\n"}return __p},this.Formbuilder.templates["edit/base"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.templates["edit/base_header"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["edit/common"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].edit({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["edit/columnwidth"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["edit/table_color"]({rf:rf}))?"":__t)+"\n";return __p},this.Formbuilder.templates["edit/base_header"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n
\n \n
\n";return __p},this.Formbuilder.templates["edit/base_non_input"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.templates["edit/base_header"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].edit({rf:rf}))?"":__t)+"\n";return __p},this.Formbuilder.templates["edit/checkboxes"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n";return __p},this.Formbuilder.templates["edit/columnwidth"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='';return __p},this.Formbuilder.templates["edit/common"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)rf.canShowReferenceID()&&(__p+="\n\n \n "+(null==(__t=Formbuilder.templates["edit/reference_id"]({rf:rf}))?"":__t)+"\n
\n"),__p+="\n\n\n\n
\n "+(null==(__t=Formbuilder.templates["edit/label_description"]({rf:rf}))?"":__t)+"\n
\n
\n "+(null==(__t=Formbuilder.templates["edit/checkboxes"]())?"":__t)+"\n
\n
\n
";return __p},this.Formbuilder.templates["edit/conditional_options"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj){if(rf.canBeConditionallyDisplayed()){__p+='\n \n \n ';var list=rf.collection.findConditionalTriggers(rf);if(list.length){__p+='\n
\n ";var selectedList=rf.conditionalTriggerOptions();if(Array.isArray(selectedList)){0==selectedList.length&&rf.collection.clearConditionEle(rf);for(i in selectedList)__p+="\n
\n "}else __p+="\n
\n \n
\n ";__p+="\n "}else __p+="\n No trigger elements\n ";__p+="\n "}__p+='\n
Please ensure that conditional values are selected
\n
\n\n'}return __p},this.Formbuilder.templates["edit/data_source_options"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj){__p+="\n\n\n\n",rf.filters()){if(__p+="\n \n \n ",rf.get(Formbuilder.options.mappings.DATA_SOURCE.IS_FILTERED)){__p+='\n \n ";for(i in rf.filterValues())__p+="\n \n ";__p+="\n"}__p+="\n"}}return __p},this.Formbuilder.templates["edit/date"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n \n
\n";return __p},this.Formbuilder.templates["edit/integer_only"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n";
+return __p},this.Formbuilder.templates["edit/label_description"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n";return __p},this.Formbuilder.templates["edit/min_max"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n\nMin\n\n\n \n\nMax\n\n';return __p},this.Formbuilder.templates["edit/min_max_length"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n\nMin\n\n\n \n\nMax\n\n\n \n\n\n';return __p},this.Formbuilder.templates["edit/options"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)__p+="\n\n","undefined"!=typeof includeBlank&&(__p+="\n \n"),__p+="\n\n\n\n \n ',rf.get(Formbuilder.options.mappings.INCLUDE_SCORING)&&(__p+='\n \n '),__p+='\n\n \n
\n\n',"undefined"!=typeof includeOther&&(__p+="\n \n'),__p+="\n\n\n \n
\n';return __p},this.Formbuilder.templates["edit/options_per_row"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n';return __p},this.Formbuilder.templates["edit/populate_from"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj){var list=rf.collection.findDataSourceFields();if(list.length){__p+="\n \n \n \n ",rf.get(Formbuilder.options.mappings.POPULATE_UUID)&&(__p+='\n \n \n
\n "),__p+="\n"}__p+="\n"}return __p},this.Formbuilder.templates["edit/reference_id"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='";return __p},this.Formbuilder.templates["edit/scoring"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n \n
\n\n";return __p},this.Formbuilder.templates["edit/size"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n\n';return __p},this.Formbuilder.templates["edit/table_color"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)rf.inTable()&&(__p+='\n\n \n
\n \n
\n \n
\n \n
\n
\n");return __p},this.Formbuilder.templates["edit/table_layout"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n\n \n';return __p},this.Formbuilder.templates["edit/table_totals"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n";return __p},this.Formbuilder.templates["edit/time"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n \n
\n";return __p},this.Formbuilder.templates["edit/total"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)rf.canTotalColumn()&&(__p+='\n\n"),__p+="\n",rf.canAcceptCalculatedTotal()&&(__p+="\n\n\n'),__p+="\n\n";return __p},this.Formbuilder.templates["edit/units"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='\n\n';return __p},this.Formbuilder.templates.page=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.templates["partials/left_side"]())?"":__t)+"\n"+(null==(__t=Formbuilder.templates["partials/right_side"]())?"":__t)+"\n";return __p},this.Formbuilder.templates["partials/add_field"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)__p+="";return __p},this.Formbuilder.templates["partials/edit_field"]=function(obj){obj||(obj={});var __p="";_.escape;with(obj)__p+="\n";return __p},this.Formbuilder.templates["partials/left_side"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n
\n\n
\n "+(null==(__t=Formbuilder.templates["partials/add_field"]())?"":__t)+"\n "+(null==(__t=Formbuilder.templates["partials/edit_field"]())?"":__t)+"\n
\n
";return __p},this.Formbuilder.templates["partials/right_side"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)__p+="\n
No response fields
\n ",Formbuilder.linkAssetFunctionality&&(__p+="\n "+(null==(__t=Formbuilder.templates["view/link_object"]({object:Formbuilder.linkAssetDisplayFields}))?"":__t)+'\n
\n '),__p+="\n
\n
\n";return __p},this.Formbuilder.templates["view/base"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n
\n "+(null==(__t=Formbuilder.templates["view/conditional"]({rf:rf}))?"":__t)+"\n "+(null==(__t=Formbuilder.templates["view/label"]({rf:rf}))?"":__t)+"\n\n "+(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].view({rf:rf}))?"":__t)+"\n\n "+(null==(__t=Formbuilder.templates["view/description"]({rf:rf}))?"":__t)+"\n "+(null==(__t=Formbuilder.templates["view/duplicate_remove"]({rf:rf}))?"":__t)+"\n
\n";return __p},this.Formbuilder.templates["view/base_non_input"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n
\n "+(null==(__t=Formbuilder.templates["view/conditional"]({rf:rf}))?"":__t)+"\n "+(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].view({rf:rf}))?"":__t)+"\n "+(null==(__t=Formbuilder.templates["view/duplicate_remove"]({rf:rf}))?"":__t)+"\n
\n";return __p},this.Formbuilder.templates["view/conditional"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj){var parent=rf.conditionalParent();if(parent){if(__p+='\n\n \n ',"approval"==parent.get("type"))__p+='\n \n display when '+(null==(__t=parent.get("label"))?"":__t)+'\n '+(null==(__t=rf.conditionalTriggerOptions(!0))?"":__t)+"\n \n ";else{var triggerValues=_.pluck(rf.conditionalTriggerOptions(!0),"label");__p+='\n \n display when '+(null==(__t=parent.get("label"))?"":__t)+' is\n '+(null==(__t=triggerValues.join('or'))?"":__t)+"\n \n "}__p+="\n
\n\n"}__p+="\n\n"}return __p},this.Formbuilder.templates["view/description"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj)__p+="\n ",__p+="info"==rf.get("type")?"\n "+(null==(__t=rf.get(Formbuilder.options.mappings.DESCRIPTION))?"":__t)+"\n ":"\n "+(null==(__t=Formbuilder.helpers.simple_format(rf.get(Formbuilder.options.mappings.DESCRIPTION)))?"":__t)+"\n ",__p+="\n";return __p},this.Formbuilder.templates["view/duplicate_remove"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n \n
';return __p},this.Formbuilder.templates["view/element_selector"]=function(obj){obj||(obj={});var __p="";_.escape;with(obj)__p+='\n\n\n
\n';return __p},this.Formbuilder.templates["view/label"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='\n";return __p},this.Formbuilder.templates["view/link_object"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj){__p+='\n
\n \n
\n
\n Display Fields\n
\n
\n ";for(field in object.fields)__p+="\n - "+(null==(__t=object.fields[field])?"":__t)+"
\n ";__p+="\n
\n
\n\n\n"}return __p},this.Formbuilder.templates["view/remove"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="\n \n
';return __p},this.Formbuilder.templates["view/table_element"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.fields[rf.get(Formbuilder.options.mappings.TYPE)].view({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["view/remove"]({rf:rf}))?"":__t);return __p},this.Formbuilder.templates["view/table_field"]=function(obj){obj||(obj={});var __t,__p="";_.escape,Array.prototype.join;with(obj){__p+='\n'+(null==(__t=Formbuilder.templates["view/element_selector"]())?"":__t)+'\n\n\n\n \n \n ';for(i in rf.get("options.elements")||[])__p+='\n \n ';__p+="\n
\n \n ";for(i in rf.get("options.elements")||[])__p+='\n | \n ';__p+="\n
\n \n \n \n ";for(i in rf.get("options.elements")||[])__p+='\n | \n ';__p+="\n
\n \n
"}return __p},this.Formbuilder.templates["view/table_header"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+=(null==(__t=Formbuilder.templates["view/label"]({rf:rf}))?"":__t)+"\n"+(null==(__t=Formbuilder.templates["view/description"]({rf:rf}))?"":__t);return __p},this.Formbuilder.templates["view/table_total"]=function(obj){obj||(obj={});var __p="";_.escape,Array.prototype.join;with(obj)rf.get("options.total_sequence")&&(__p+='\n(Column Total)\n');return __p};
\ No newline at end of file
diff --git a/dist/formbuilder.js b/dist/formbuilder.js
index ee5b57bd..dd64089e 100644
--- a/dist/formbuilder.js
+++ b/dist/formbuilder.js
@@ -914,6 +914,10 @@
return this.model.unset(Formbuilder.options.mappings.CONDITIONAL_VALUES);
};
+ EditFieldView.prototype.deselectReadOnly = function() {
+ return this.model.set(Formbuilder.options.mappings.READ_ONLY, false);
+ };
+
EditFieldView.prototype.remove = function() {
this.parentView.editView = void 0;
this.parentView.$el.find("[data-target=\"#addField\"]").click();
@@ -1544,6 +1548,9 @@
return this.reset();
},
POPULATE_UUID: function() {
+ if (!this.model.get(Formbuilder.options.mappings.POPULATE_UUID)) {
+ this.deselectReadOnly();
+ }
return this.reset();
},
CONDITIONAL_PARENT: function() {
@@ -2208,11 +2215,12 @@
Formbuilder.registerField('text', {
name: 'Text',
order: 0,
- view: "",
+ view: "\n readonly=\"readonly\"\n <% } %>\n/>",
edit: "<%= Formbuilder.templates['edit/populate_from']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",
addButton: " Text",
defaultAttributes: function(attrs) {
attrs.options.size = 'small';
+ attrs.options.read_only = false;
return attrs;
}
});
@@ -2223,11 +2231,12 @@
Formbuilder.registerField('textarea', {
name: 'Paragraph',
order: 5,
- view: "",
+ view: "",
edit: "<%= Formbuilder.templates['edit/populate_from']({ rf: rf }) %>\n<%= Formbuilder.templates['edit/conditional_options']({ rf: rf }) %>",
addButton: " Paragraph",
defaultAttributes: function(attrs) {
attrs.options.size = 'small';
+ attrs.options.read_only = false;
return attrs;
}
});
@@ -2660,7 +2669,13 @@ __e( listProperties[i] ) +
'\n \n ';
}
} ;
-__p += '\n \n';
+__p += '\n \n ';
+ if (rf.get(Formbuilder.options.mappings.POPULATE_UUID)) { ;
+__p += '\n \n \n
\n ';
+ } ;
+__p += '\n';
} ;
__p += '\n';
diff --git a/src/polyfills/ie8-node-enum.js b/src/polyfills/ie8-node-enum.js
new file mode 100644
index 00000000..69d1eb45
--- /dev/null
+++ b/src/polyfills/ie8-node-enum.js
@@ -0,0 +1,6 @@
+/** This short polyfill declaration used to be a node library but is no longer around. */
+var Node = Node || {
+ ELEMENT_NODE: 1,
+ ATTRIBUTE_NODE: 2,
+ TEXT_NODE: 3
+};
\ No newline at end of file
diff --git a/src/scripts/fields/text.coffee b/src/scripts/fields/text.coffee
index 8b688702..ac0cfcf3 100644
--- a/src/scripts/fields/text.coffee
+++ b/src/scripts/fields/text.coffee
@@ -5,7 +5,11 @@ Formbuilder.registerField 'text',
order: 0
view: """
-
+
+ readonly="readonly"
+ <% } %>
+ />
"""
edit: """
@@ -19,4 +23,5 @@ Formbuilder.registerField 'text',
defaultAttributes: (attrs) ->
attrs.options.size = 'small'
+ attrs.options.read_only = false
attrs
diff --git a/src/scripts/fields/textarea.coffee b/src/scripts/fields/textarea.coffee
index 9be591b1..3b45a1fe 100644
--- a/src/scripts/fields/textarea.coffee
+++ b/src/scripts/fields/textarea.coffee
@@ -5,7 +5,11 @@ Formbuilder.registerField 'textarea',
order: 5
view: """
-
+
"""
edit: """
@@ -19,4 +23,5 @@ Formbuilder.registerField 'textarea',
defaultAttributes: (attrs) ->
attrs.options.size = 'small'
+ attrs.options.read_only = false
attrs
diff --git a/src/scripts/main.coffee b/src/scripts/main.coffee
index a27a977d..a0df07ca 100644
--- a/src/scripts/main.coffee
+++ b/src/scripts/main.coffee
@@ -583,6 +583,9 @@ class EditFieldView extends Backbone.View
resetConditional: ->
@model.unset(Formbuilder.options.mappings.CONDITIONAL_VALUES)
+ deselectReadOnly: ->
+ @model.set(Formbuilder.options.mappings.READ_ONLY, false)
+
remove: ->
@parentView.editView = undefined
@parentView.$el.find("[data-target=\"#addField\"]").click()
@@ -1063,6 +1066,8 @@ class Formbuilder
INCLUDE_SCORING: ->
@reset()
POPULATE_UUID: ->
+ if !@.model.get(Formbuilder.options.mappings.POPULATE_UUID)
+ @deselectReadOnly()
@reset()
CONDITIONAL_PARENT: ->
@reset()
diff --git a/src/templates/edit/populate_from.html b/src/templates/edit/populate_from.html
index c5bfa3b9..593d0ba6 100644
--- a/src/templates/edit/populate_from.html
+++ b/src/templates/edit/populate_from.html
@@ -25,4 +25,12 @@
<% }
} %>
+ <% if (rf.get(Formbuilder.options.mappings.POPULATE_UUID)) { %>
+
+
+
+ <% } %>
<% } %>
diff --git a/vendor/js/vendor.js b/vendor/js/vendor.js
index 86481bea..f9b4fd8b 100644
--- a/vendor/js/vendor.js
+++ b/vendor/js/vendor.js
@@ -1,9 +1,9 @@
+/** This short polyfill declaration used to be a node library but is no longer around. */
var Node = Node || {
- ELEMENT_NODE: 1,
- ATTRIBUTE_NODE: 2,
- TEXT_NODE: 3
+ ELEMENT_NODE: 1,
+ ATTRIBUTE_NODE: 2,
+ TEXT_NODE: 3
};
-
/*!
* jQuery JavaScript Library v1.11.3
* http://jquery.com/