From f386318b135e2aea43904766965c95403d726661 Mon Sep 17 00:00:00 2001 From: Paul Zala Date: Wed, 7 Oct 2020 14:13:21 +1100 Subject: [PATCH] Updated formbuilder with new logic to allow Text and Paragraph elements to offer a read only option if the User has selected a datasource. Some difficulties setting up the repo due to dead package, which was just a small polyfill for IE8. Replaced with a polyfill file in the scr folder and ensured it is in the [INTEGRALCS-16591] --- Gruntfile.coffee | 1 + README.md | 19 +- _package-lock.json | 2927 +++++++++++++++++++++++++ bower.json | 1 - dist/formbuilder-min.js | 6 +- dist/formbuilder.js | 21 +- src/polyfills/ie8-node-enum.js | 6 + src/scripts/fields/text.coffee | 7 +- src/scripts/fields/textarea.coffee | 7 +- src/scripts/main.coffee | 5 + src/templates/edit/populate_from.html | 8 + vendor/js/vendor.js | 8 +- 12 files changed, 2998 insertions(+), 18 deletions(-) create mode 100644 _package-lock.json create mode 100644 src/polyfills/ie8-node-enum.js 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:"
\">\n <% for (i in (rf.get(Formbuilder.options.mappings.OPTIONS) || [])) { %>\n
\n \n
\n <% } %>\n\n <% if (rf.get(Formbuilder.options.mappings.INCLUDE_OTHER)) { %>\n
\n \n\n \n
\n <% } %>\n
",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
\n

<%= rf.get(Formbuilder.options.mappings.DESCRIPTION) %>

",edit:'
Details
\n
\n
\n \n \n
\n \n \n
Number of Columns
\n \n
Number of Rows
\n \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:'
Details
\n
\n
\n \n
\n \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:"
\">\n <% for (i in (rf.get(Formbuilder.options.mappings.OPTIONS) || [])) { %>\n
\n \n
\n <% } %>\n\n <% if (rf.get(Formbuilder.options.mappings.INCLUDE_OTHER)) { %>\n
\n \n\n \n
\n <% } %>\n
",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:'
Details
\n
\n
\n \n \n
\n
',addButton:' Section Break'})}.call(this),function(){Formbuilder.registerField("signature",{name:"Signature",order:65,view:'
\n
Sign Here
\n
\n
\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:"
Details
\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+="
Details
\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
Data Source
\n\n
Display
\n\n",rf.filters()){if(__p+="\n
Filter
\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+='
Minimum / Maximum
\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+='
Length Limit
\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+="
Options
\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+="
Number of options per row
\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
Populate From
\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+="
Size
\n\n';return __p},this.Formbuilder.templates["edit/table_layout"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="
Layout
\n \n\n \n';return __p},this.Formbuilder.templates["edit/table_totals"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="
Totals
\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
Total
\n\n'),__p+="\n\n";return __p},this.Formbuilder.templates["edit/units"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='
Units
\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+="
\n
\n
\n ",_.chain(Formbuilder.inputFields).sortBy("order").filter(function(a){return a.enabled}).each(function(a){__p+='\n \n '+(null==(__t=a.addButton)?"":__t)+"\n \n "}),__p+="\n
\n\n
\n ",_.chain(Formbuilder.nonInputFields).sortBy("order").filter(function(a){return a.enabled}).each(function(a){__p+='\n \n '+(null==(__t=a.addButton)?"":__t)+"\n \n "}),__p+="\n
\n
\n
";return __p},this.Formbuilder.templates["partials/edit_field"]=function(obj){obj||(obj={});var __p="";_.escape;with(obj)__p+="
\n
\n
\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
Sign Here
\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:"
\">\n <% for (i in (rf.get(Formbuilder.options.mappings.OPTIONS) || [])) { %>\n
\n \n
\n <% } %>\n\n <% if (rf.get(Formbuilder.options.mappings.INCLUDE_OTHER)) { %>\n
\n \n\n \n
\n <% } %>\n
",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
\n

<%- rf.get(Formbuilder.options.mappings.DESCRIPTION) %>

",edit:'
Details
\n
\n
\n \n \n
\n \n \n
Number of Columns
\n \n
Number of Rows
\n \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:'
Details
\n
\n
\n \n
\n \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:"
\">\n <% for (i in (rf.get(Formbuilder.options.mappings.OPTIONS) || [])) { %>\n
\">\n \n
\n <% } %>\n\n <% if (rf.get(Formbuilder.options.mappings.INCLUDE_OTHER)) { %>\n
\n \n\n \n
\n <% } %>\n
",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:'
Details
\n
\n
\n \n \n
\n
\n<%= Formbuilder.templates[\'edit/conditional_options\']({ rf: rf }) %>',addButton:' Section Break'})}.call(this),function(){Formbuilder.registerField("signature",{name:"Signature",order:65,view:'
\n
Sign Here
\n
\n
\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:"
Details
\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:'
\n
\n \n
\n
\n
',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+='
Approver
\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
Reference ID
\n "+(null==(__t=Formbuilder.templates["edit/reference_id"]({rf:rf}))?"":__t)+"\n
\n"),__p+="\n
Details
\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
Conditionally Display\n \n \n \n \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 \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+="
Data Source
\n\n
Display
\n\n",rf.filters()){if(__p+="\n
Filter
\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+='
Minimum / Maximum
\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+='
Length Limit
\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+="
Options
\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+="
Number of options per row
\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
Populate From
\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+="
Size
\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
Header Label Colour
\n
\n \n
\n
Header Background Colour
\n
\n \n
\n
\n");return __p},this.Formbuilder.templates["edit/table_layout"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="
Layout
\n \n\n \n';return __p},this.Formbuilder.templates["edit/table_totals"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+="
Totals
\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
Total
\n\n'),__p+="\n\n";return __p},this.Formbuilder.templates["edit/units"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='
Units
\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+="
\n
\n
\n ",_.chain(Formbuilder.inputFields).sortBy("order").filter(function(a){return a.enabled}).each(function(a){__p+='\n \n '+(null==(__t=a.addButton)?"":__t)+"\n \n "}),__p+="\n
\n\n
\n ",_.chain(Formbuilder.nonInputFields).sortBy("order").filter(function(a){return a.enabled}).each(function(a){__p+='\n \n '+(null==(__t=a.addButton)?"":__t)+"\n \n "}),__p+="\n
\n
\n
";return __p},this.Formbuilder.templates["partials/edit_field"]=function(obj){obj||(obj={});var __p="";_.escape;with(obj)__p+="
\n
\n
\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"}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/