├── .gitignore ├── LICENSE ├── README.md ├── dist ├── index.html ├── index.js ├── src.7ed060e2.js └── src.7ed060e2.js.map ├── example └── index.html ├── package-lock.json ├── package.json └── src └── index.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | 63 | .cache/ 64 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 extraymond 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![npm version](https://badgen.net/npm/v/aframe-mouse-dragndrop-component)](https://www.npmjs.com/package/aframe-mouse-dragndrop-component) 2 | [![jsdelivr version](https://badgen.net/jsdelivr/v/npm/aframe-mouse-dragndrop-component)](https://cdn.jsdelivr.net/npm/aframe-mouse-dragndrop-component@1.0.4/dist/index.js) 3 | 4 | # aframe-mouse-dragndrop 5 | 6 | Drag-n-drop entites using mouse cursor. 7 | 8 | ## implementation 9 | 10 | There's a new parameter in cursor component that we can use to monitor mouse interaction. 11 | 12 | ```html 13 | 14 | ``` 15 | 16 | Based on this feature, we can intercept the event data emitting by the cursor component. [read more about cursor component](https://aframe.io/docs/0.9.0/components/cursor.html#intersection-data) 17 | 18 | I've sperated this module into two sepearte component, **track-cursor** and **dragndrop**. And use dependencies to chain component startup. [read more about component dependencies](https://aframe.io/docs/0.9.0/core/component.html#dependencies) 19 | So you can add features like animation or hovering effects before draggin it. 20 | 21 | When a draggable component is being hovered by the cursor, it will make the entity into tracking state. You can check it with 22 | 23 | ```js 24 | if (this.el.is("tracking")) { 25 | ... 26 | } 27 | ``` 28 | 29 | If a draggable component is being pressed, it will enter the dragging state. Likewise you can check it with: 30 | 31 | ```js 32 | if (this.el.is("dragging")) { 33 | ... 34 | } 35 | ``` 36 | 37 | If you want to do some startup/cleanup before entering/exiting these two states, be sure to listener to "stateadded"/"stateremoved" events. 38 | 39 | ## usage 40 | 41 | ```html 42 | 43 | ``` 44 | 45 | After adding the component, you can drag and drop it with mouse click. 46 | 47 | ## additional features 48 | 49 | 1. When dragging the entity, look-controls on the camera will be temporary disabled. 50 | 2. You can use mousewheel to send it further/closer when dragging. 51 | 52 | Check out the live demo: [link](https://sassy-piper.glitch.me) 53 | 54 | Appreciate any suggestions or feedback. 55 | -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c numeric require 5 | // 6 | // anything defined in a previous bundle is accessed via the 7 | // orig method which is the require for previous bundles 8 | parcelRequire = (function (modules, cache, entry, globalName) { 9 | // Save the require from previous bundle to this closure if any 10 | var previousRequire = typeof parcelRequire === 'function' && parcelRequire; 11 | var nodeRequire = typeof require === 'function' && require; 12 | 13 | function newRequire(name, jumped) { 14 | if (!cache[name]) { 15 | if (!modules[name]) { 16 | // if we cannot find the module within our internal map or 17 | // cache jump to the current global require ie. the last bundle 18 | // that was added to the page. 19 | var currentRequire = typeof parcelRequire === 'function' && parcelRequire; 20 | if (!jumped && currentRequire) { 21 | return currentRequire(name, true); 22 | } 23 | 24 | // If there are other bundles on this page the require from the 25 | // previous one is saved to 'previousRequire'. Repeat this as 26 | // many times as there are bundles until the module is found or 27 | // we exhaust the require chain. 28 | if (previousRequire) { 29 | return previousRequire(name, true); 30 | } 31 | 32 | // Try the node require function if it exists. 33 | if (nodeRequire && typeof name === 'string') { 34 | return nodeRequire(name); 35 | } 36 | 37 | var err = new Error('Cannot find module \'' + name + '\''); 38 | err.code = 'MODULE_NOT_FOUND'; 39 | throw err; 40 | } 41 | 42 | localRequire.resolve = resolve; 43 | localRequire.cache = {}; 44 | 45 | var module = cache[name] = new newRequire.Module(name); 46 | 47 | modules[name][0].call(module.exports, localRequire, module, module.exports, this); 48 | } 49 | 50 | return cache[name].exports; 51 | 52 | function localRequire(x){ 53 | return newRequire(localRequire.resolve(x)); 54 | } 55 | 56 | function resolve(x){ 57 | return modules[name][1][x] || x; 58 | } 59 | } 60 | 61 | function Module(moduleName) { 62 | this.id = moduleName; 63 | this.bundle = newRequire; 64 | this.exports = {}; 65 | } 66 | 67 | newRequire.isParcelRequire = true; 68 | newRequire.Module = Module; 69 | newRequire.modules = modules; 70 | newRequire.cache = cache; 71 | newRequire.parent = previousRequire; 72 | newRequire.register = function (id, exports) { 73 | modules[id] = [function (require, module) { 74 | module.exports = exports; 75 | }, {}]; 76 | }; 77 | 78 | var error; 79 | for (var i = 0; i < entry.length; i++) { 80 | try { 81 | newRequire(entry[i]); 82 | } catch (e) { 83 | // Save first error but execute all entries 84 | if (!error) { 85 | error = e; 86 | } 87 | } 88 | } 89 | 90 | if (entry.length) { 91 | // Expose entry point to Node, AMD or browser globals 92 | // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js 93 | var mainExports = newRequire(entry[entry.length - 1]); 94 | 95 | // CommonJS 96 | if (typeof exports === "object" && typeof module !== "undefined") { 97 | module.exports = mainExports; 98 | 99 | // RequireJS 100 | } else if (typeof define === "function" && define.amd) { 101 | define(function () { 102 | return mainExports; 103 | }); 104 | 105 | // 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aframe-mouse-dragndrop-component", 3 | "version": "1.1.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "acorn": { 8 | "version": "5.7.3", 9 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", 10 | "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", 11 | "dev": true 12 | }, 13 | "aframe": { 14 | "version": "0.9.2", 15 | "resolved": "https://registry.npmjs.org/aframe/-/aframe-0.9.2.tgz", 16 | "integrity": "sha512-Bz/YBRZsQMcQfuZWn71CweESH/L7OHmc1oEB7fryPRb5qQ/XTD5yFeNbtHgR69MFqPOk9ieJNceCO1/kbLO2pg==", 17 | "dev": true, 18 | "requires": { 19 | "browserify-css": "^0.8.4", 20 | "custom-event-polyfill": "^1.0.6", 21 | "debug": "github:ngokevin/debug#noTimestamp", 22 | "deep-assign": "^2.0.0", 23 | "document-register-element": "github:dmarcos/document-register-element#8ccc532b7f3744be954574caf3072a5fd260ca90", 24 | "envify": "^3.4.1", 25 | "load-bmfont": "^1.2.3", 26 | "object-assign": "^4.0.1", 27 | "present": "0.0.6", 28 | "promise-polyfill": "^3.1.0", 29 | "style-attr": "^1.0.2", 30 | "super-animejs": "^3.0.0", 31 | "super-three": "^0.102.2", 32 | "three-bmfont-text": "^2.1.0", 33 | "webvr-polyfill": "^0.10.10" 34 | } 35 | }, 36 | "amdefine": { 37 | "version": "1.0.1", 38 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 39 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 40 | "dev": true 41 | }, 42 | "an-array": { 43 | "version": "1.0.0", 44 | "resolved": "https://registry.npmjs.org/an-array/-/an-array-1.0.0.tgz", 45 | "integrity": "sha1-wSWlu4JXd4419LT2qpx9D6nkJmU=", 46 | "dev": true 47 | }, 48 | "arr-diff": { 49 | "version": "2.0.0", 50 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 51 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 52 | "dev": true, 53 | "requires": { 54 | "arr-flatten": "^1.0.1" 55 | } 56 | }, 57 | "arr-flatten": { 58 | "version": "1.1.0", 59 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 60 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 61 | "dev": true 62 | }, 63 | "array-shuffle": { 64 | "version": "1.0.1", 65 | "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-1.0.1.tgz", 66 | "integrity": "sha1-fqSIKjVrS8pfVF4LblLq9tlxVXo=", 67 | "dev": true 68 | }, 69 | "array-unique": { 70 | "version": "0.2.1", 71 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 72 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 73 | "dev": true 74 | }, 75 | "as-number": { 76 | "version": "1.0.0", 77 | "resolved": "https://registry.npmjs.org/as-number/-/as-number-1.0.0.tgz", 78 | "integrity": "sha1-rLJ+NPj52KsNqeN287iVmGD4CmY=", 79 | "dev": true 80 | }, 81 | "ast-types": { 82 | "version": "0.9.6", 83 | "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", 84 | "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", 85 | "dev": true 86 | }, 87 | "balanced-match": { 88 | "version": "1.0.0", 89 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 90 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 91 | "dev": true 92 | }, 93 | "base62": { 94 | "version": "1.2.8", 95 | "resolved": "https://registry.npmjs.org/base62/-/base62-1.2.8.tgz", 96 | "integrity": "sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA==", 97 | "dev": true 98 | }, 99 | "brace-expansion": { 100 | "version": "1.1.11", 101 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 102 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 103 | "dev": true, 104 | "requires": { 105 | "balanced-match": "^1.0.0", 106 | "concat-map": "0.0.1" 107 | } 108 | }, 109 | "braces": { 110 | "version": "1.8.5", 111 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 112 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 113 | "dev": true, 114 | "requires": { 115 | "expand-range": "^1.8.1", 116 | "preserve": "^0.2.0", 117 | "repeat-element": "^1.1.2" 118 | } 119 | }, 120 | "browserify-css": { 121 | "version": "0.8.4", 122 | "resolved": "https://registry.npmjs.org/browserify-css/-/browserify-css-0.8.4.tgz", 123 | "integrity": "sha1-Hk4nedy7By0Jvq605vaVAdVE1/M=", 124 | "dev": true, 125 | "requires": { 126 | "clean-css": "2.2.x", 127 | "concat-stream": "1.4.x", 128 | "css": "1.6.x", 129 | "find-node-modules": "^1.0.1", 130 | "lodash": "3.6.x", 131 | "through2": "0.6.x" 132 | } 133 | }, 134 | "buffer-equal": { 135 | "version": "0.0.1", 136 | "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", 137 | "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", 138 | "dev": true 139 | }, 140 | "buffer-to-arraybuffer": { 141 | "version": "0.0.5", 142 | "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", 143 | "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=", 144 | "dev": true 145 | }, 146 | "cardboard-vr-display": { 147 | "version": "1.0.16", 148 | "resolved": "https://registry.npmjs.org/cardboard-vr-display/-/cardboard-vr-display-1.0.16.tgz", 149 | "integrity": "sha512-GFBWPMH/ixy4Ji014BAO1ryddGHphtJlA8gUR6UdKsOpPjUQukCKpgsx2XIJ5oBlqXnDQOcLVRqBWyuvTI32jQ==", 150 | "dev": true, 151 | "requires": { 152 | "gl-preserve-state": "^1.0.0", 153 | "nosleep.js": "^0.7.0", 154 | "webvr-polyfill-dpdb": "^1.0.11" 155 | } 156 | }, 157 | "clean-css": { 158 | "version": "2.2.23", 159 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-2.2.23.tgz", 160 | "integrity": "sha1-BZC1R4tRbEkD7cLYm9P9vdKGMow=", 161 | "dev": true, 162 | "requires": { 163 | "commander": "2.2.x" 164 | } 165 | }, 166 | "commander": { 167 | "version": "2.2.0", 168 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.2.0.tgz", 169 | "integrity": "sha1-F1rUuTF/P/YV8gHB5XIk9Vo+kd8=", 170 | "dev": true 171 | }, 172 | "commoner": { 173 | "version": "0.10.8", 174 | "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", 175 | "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=", 176 | "dev": true, 177 | "requires": { 178 | "commander": "^2.5.0", 179 | "detective": "^4.3.1", 180 | "glob": "^5.0.15", 181 | "graceful-fs": "^4.1.2", 182 | "iconv-lite": "^0.4.5", 183 | "mkdirp": "^0.5.0", 184 | "private": "^0.1.6", 185 | "q": "^1.1.2", 186 | "recast": "^0.11.17" 187 | }, 188 | "dependencies": { 189 | "commander": { 190 | "version": "2.20.0", 191 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", 192 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", 193 | "dev": true 194 | } 195 | } 196 | }, 197 | "concat-map": { 198 | "version": "0.0.1", 199 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 200 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 201 | "dev": true 202 | }, 203 | "concat-stream": { 204 | "version": "1.4.11", 205 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.11.tgz", 206 | "integrity": "sha512-X3JMh8+4je3U1cQpG87+f9lXHDrqcb2MVLg9L7o8b1UZ0DzhRrUpdn65ttzu10PpJPPI3MQNkis+oha6TSA9Mw==", 207 | "dev": true, 208 | "requires": { 209 | "inherits": "~2.0.1", 210 | "readable-stream": "~1.1.9", 211 | "typedarray": "~0.0.5" 212 | } 213 | }, 214 | "core-util-is": { 215 | "version": "1.0.2", 216 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 217 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 218 | "dev": true 219 | }, 220 | "css": { 221 | "version": "1.6.0", 222 | "resolved": "https://registry.npmjs.org/css/-/css-1.6.0.tgz", 223 | "integrity": "sha1-wG//CvuzE/zlvOBw12UxpsjTAKo=", 224 | "dev": true, 225 | "requires": { 226 | "css-parse": "1.7.0", 227 | "css-stringify": "1.4.1" 228 | } 229 | }, 230 | "css-parse": { 231 | "version": "1.7.0", 232 | "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", 233 | "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", 234 | "dev": true 235 | }, 236 | "css-stringify": { 237 | "version": "1.4.1", 238 | "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.4.1.tgz", 239 | "integrity": "sha1-JSzL8D9yOgCb3Ydw/n6ydBca/fo=", 240 | "dev": true, 241 | "requires": { 242 | "source-map": "~0.1.31" 243 | } 244 | }, 245 | "custom-event-polyfill": { 246 | "version": "1.0.7", 247 | "resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz", 248 | "integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==", 249 | "dev": true 250 | }, 251 | "debug": { 252 | "version": "github:ngokevin/debug#ef5f8e66d49ce8bc64c6f282c15f8b7164409e3a", 253 | "from": "github:ngokevin/debug#noTimestamp", 254 | "dev": true 255 | }, 256 | "decode-uri-component": { 257 | "version": "0.2.0", 258 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 259 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 260 | "dev": true 261 | }, 262 | "decompress-response": { 263 | "version": "3.3.0", 264 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 265 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", 266 | "dev": true, 267 | "requires": { 268 | "mimic-response": "^1.0.0" 269 | } 270 | }, 271 | "deep-assign": { 272 | "version": "2.0.0", 273 | "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-2.0.0.tgz", 274 | "integrity": "sha1-6+BrHwfwja5ZdiDj3RYi83GhxXI=", 275 | "dev": true, 276 | "requires": { 277 | "is-obj": "^1.0.0" 278 | } 279 | }, 280 | "define-properties": { 281 | "version": "1.1.3", 282 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 283 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 284 | "dev": true, 285 | "requires": { 286 | "object-keys": "^1.0.12" 287 | } 288 | }, 289 | "defined": { 290 | "version": "1.0.0", 291 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 292 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 293 | "dev": true 294 | }, 295 | "detect-file": { 296 | "version": "0.1.0", 297 | "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", 298 | "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", 299 | "dev": true, 300 | "requires": { 301 | "fs-exists-sync": "^0.1.0" 302 | } 303 | }, 304 | "detective": { 305 | "version": "4.7.1", 306 | "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", 307 | "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", 308 | "dev": true, 309 | "requires": { 310 | "acorn": "^5.2.1", 311 | "defined": "^1.0.0" 312 | } 313 | }, 314 | "document-register-element": { 315 | "version": "github:dmarcos/document-register-element#8ccc532b7f3744be954574caf3072a5fd260ca90", 316 | "from": "github:dmarcos/document-register-element#8ccc532b7f3744be954574caf3072a5fd260ca90", 317 | "dev": true 318 | }, 319 | "dom-walk": { 320 | "version": "0.1.1", 321 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", 322 | "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", 323 | "dev": true 324 | }, 325 | "dtype": { 326 | "version": "2.0.0", 327 | "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", 328 | "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=", 329 | "dev": true 330 | }, 331 | "envify": { 332 | "version": "3.4.1", 333 | "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz", 334 | "integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=", 335 | "dev": true, 336 | "requires": { 337 | "jstransform": "^11.0.3", 338 | "through": "~2.3.4" 339 | } 340 | }, 341 | "es-abstract": { 342 | "version": "1.13.0", 343 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", 344 | "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", 345 | "dev": true, 346 | "requires": { 347 | "es-to-primitive": "^1.2.0", 348 | "function-bind": "^1.1.1", 349 | "has": "^1.0.3", 350 | "is-callable": "^1.1.4", 351 | "is-regex": "^1.0.4", 352 | "object-keys": "^1.0.12" 353 | } 354 | }, 355 | "es-to-primitive": { 356 | "version": "1.2.0", 357 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", 358 | "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", 359 | "dev": true, 360 | "requires": { 361 | "is-callable": "^1.1.4", 362 | "is-date-object": "^1.0.1", 363 | "is-symbol": "^1.0.2" 364 | } 365 | }, 366 | "esprima-fb": { 367 | "version": "15001.1.0-dev-harmony-fb", 368 | "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz", 369 | "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE=", 370 | "dev": true 371 | }, 372 | "expand-brackets": { 373 | "version": "0.1.5", 374 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 375 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 376 | "dev": true, 377 | "requires": { 378 | "is-posix-bracket": "^0.1.0" 379 | } 380 | }, 381 | "expand-range": { 382 | "version": "1.8.2", 383 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 384 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 385 | "dev": true, 386 | "requires": { 387 | "fill-range": "^2.1.0" 388 | } 389 | }, 390 | "expand-tilde": { 391 | "version": "1.2.2", 392 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", 393 | "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", 394 | "dev": true, 395 | "requires": { 396 | "os-homedir": "^1.0.1" 397 | } 398 | }, 399 | "extglob": { 400 | "version": "0.3.2", 401 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 402 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 403 | "dev": true, 404 | "requires": { 405 | "is-extglob": "^1.0.0" 406 | } 407 | }, 408 | "filename-regex": { 409 | "version": "2.0.1", 410 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 411 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 412 | "dev": true 413 | }, 414 | "fill-range": { 415 | "version": "2.2.4", 416 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", 417 | "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", 418 | "dev": true, 419 | "requires": { 420 | "is-number": "^2.1.0", 421 | "isobject": "^2.0.0", 422 | "randomatic": "^3.0.0", 423 | "repeat-element": "^1.1.2", 424 | "repeat-string": "^1.5.2" 425 | } 426 | }, 427 | "find-node-modules": { 428 | "version": "1.0.4", 429 | "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-1.0.4.tgz", 430 | "integrity": "sha1-tt6zzMtpnIcDdne87eLF9YYrJVA=", 431 | "dev": true, 432 | "requires": { 433 | "findup-sync": "0.4.2", 434 | "merge": "^1.2.0" 435 | } 436 | }, 437 | "findup-sync": { 438 | "version": "0.4.2", 439 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.2.tgz", 440 | "integrity": "sha1-qBF9D3MST1pFRoOVef5S1xKfteU=", 441 | "dev": true, 442 | "requires": { 443 | "detect-file": "^0.1.0", 444 | "is-glob": "^2.0.1", 445 | "micromatch": "^2.3.7", 446 | "resolve-dir": "^0.1.0" 447 | } 448 | }, 449 | "flatten-vertex-data": { 450 | "version": "1.0.2", 451 | "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", 452 | "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", 453 | "dev": true, 454 | "requires": { 455 | "dtype": "^2.0.0" 456 | } 457 | }, 458 | "for-each": { 459 | "version": "0.3.3", 460 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 461 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 462 | "dev": true, 463 | "requires": { 464 | "is-callable": "^1.1.3" 465 | } 466 | }, 467 | "for-in": { 468 | "version": "1.0.2", 469 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 470 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 471 | "dev": true 472 | }, 473 | "for-own": { 474 | "version": "0.1.5", 475 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 476 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 477 | "dev": true, 478 | "requires": { 479 | "for-in": "^1.0.1" 480 | } 481 | }, 482 | "fs-exists-sync": { 483 | "version": "0.1.0", 484 | "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", 485 | "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", 486 | "dev": true 487 | }, 488 | "function-bind": { 489 | "version": "1.1.1", 490 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 491 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 492 | "dev": true 493 | }, 494 | "gl-preserve-state": { 495 | "version": "1.0.0", 496 | "resolved": "https://registry.npmjs.org/gl-preserve-state/-/gl-preserve-state-1.0.0.tgz", 497 | "integrity": "sha512-zQZ25l3haD4hvgJZ6C9+s0ebdkW9y+7U2qxvGu1uWOJh8a4RU+jURIKEQhf8elIlFpMH6CrAY2tH0mYrRjet3Q==", 498 | "dev": true 499 | }, 500 | "glob": { 501 | "version": "5.0.15", 502 | "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", 503 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", 504 | "dev": true, 505 | "requires": { 506 | "inflight": "^1.0.4", 507 | "inherits": "2", 508 | "minimatch": "2 || 3", 509 | "once": "^1.3.0", 510 | "path-is-absolute": "^1.0.0" 511 | } 512 | }, 513 | "glob-base": { 514 | "version": "0.3.0", 515 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 516 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 517 | "dev": true, 518 | "requires": { 519 | "glob-parent": "^2.0.0", 520 | "is-glob": "^2.0.0" 521 | } 522 | }, 523 | "glob-parent": { 524 | "version": "2.0.0", 525 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 526 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 527 | "dev": true, 528 | "requires": { 529 | "is-glob": "^2.0.0" 530 | } 531 | }, 532 | "global": { 533 | "version": "4.3.2", 534 | "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", 535 | "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", 536 | "dev": true, 537 | "requires": { 538 | "min-document": "^2.19.0", 539 | "process": "~0.5.1" 540 | } 541 | }, 542 | "global-modules": { 543 | "version": "0.2.3", 544 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", 545 | "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", 546 | "dev": true, 547 | "requires": { 548 | "global-prefix": "^0.1.4", 549 | "is-windows": "^0.2.0" 550 | } 551 | }, 552 | "global-prefix": { 553 | "version": "0.1.5", 554 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", 555 | "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", 556 | "dev": true, 557 | "requires": { 558 | "homedir-polyfill": "^1.0.0", 559 | "ini": "^1.3.4", 560 | "is-windows": "^0.2.0", 561 | "which": "^1.2.12" 562 | } 563 | }, 564 | "graceful-fs": { 565 | "version": "4.2.0", 566 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", 567 | "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", 568 | "dev": true 569 | }, 570 | "has": { 571 | "version": "1.0.3", 572 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 573 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 574 | "dev": true, 575 | "requires": { 576 | "function-bind": "^1.1.1" 577 | } 578 | }, 579 | "has-symbols": { 580 | "version": "1.0.0", 581 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", 582 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", 583 | "dev": true 584 | }, 585 | "homedir-polyfill": { 586 | "version": "1.0.3", 587 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", 588 | "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", 589 | "dev": true, 590 | "requires": { 591 | "parse-passwd": "^1.0.0" 592 | } 593 | }, 594 | "iconv-lite": { 595 | "version": "0.4.24", 596 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 597 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 598 | "dev": true, 599 | "requires": { 600 | "safer-buffer": ">= 2.1.2 < 3" 601 | } 602 | }, 603 | "inflight": { 604 | "version": "1.0.6", 605 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 606 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 607 | "dev": true, 608 | "requires": { 609 | "once": "^1.3.0", 610 | "wrappy": "1" 611 | } 612 | }, 613 | "inherits": { 614 | "version": "2.0.4", 615 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 616 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 617 | "dev": true 618 | }, 619 | "ini": { 620 | "version": "1.3.5", 621 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 622 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 623 | "dev": true 624 | }, 625 | "is-buffer": { 626 | "version": "1.1.6", 627 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 628 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 629 | "dev": true 630 | }, 631 | "is-callable": { 632 | "version": "1.1.4", 633 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", 634 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", 635 | "dev": true 636 | }, 637 | "is-date-object": { 638 | "version": "1.0.1", 639 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", 640 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", 641 | "dev": true 642 | }, 643 | "is-dotfile": { 644 | "version": "1.0.3", 645 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 646 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 647 | "dev": true 648 | }, 649 | "is-equal-shallow": { 650 | "version": "0.1.3", 651 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 652 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 653 | "dev": true, 654 | "requires": { 655 | "is-primitive": "^2.0.0" 656 | } 657 | }, 658 | "is-extendable": { 659 | "version": "0.1.1", 660 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 661 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 662 | "dev": true 663 | }, 664 | "is-extglob": { 665 | "version": "1.0.0", 666 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 667 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 668 | "dev": true 669 | }, 670 | "is-function": { 671 | "version": "1.0.1", 672 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", 673 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", 674 | "dev": true 675 | }, 676 | "is-glob": { 677 | "version": "2.0.1", 678 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 679 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 680 | "dev": true, 681 | "requires": { 682 | "is-extglob": "^1.0.0" 683 | } 684 | }, 685 | "is-number": { 686 | "version": "2.1.0", 687 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 688 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 689 | "dev": true, 690 | "requires": { 691 | "kind-of": "^3.0.2" 692 | } 693 | }, 694 | "is-obj": { 695 | "version": "1.0.1", 696 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 697 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 698 | "dev": true 699 | }, 700 | "is-posix-bracket": { 701 | "version": "0.1.1", 702 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 703 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 704 | "dev": true 705 | }, 706 | "is-primitive": { 707 | "version": "2.0.0", 708 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 709 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 710 | "dev": true 711 | }, 712 | "is-regex": { 713 | "version": "1.0.4", 714 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 715 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 716 | "dev": true, 717 | "requires": { 718 | "has": "^1.0.1" 719 | } 720 | }, 721 | "is-symbol": { 722 | "version": "1.0.2", 723 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", 724 | "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", 725 | "dev": true, 726 | "requires": { 727 | "has-symbols": "^1.0.0" 728 | } 729 | }, 730 | "is-windows": { 731 | "version": "0.2.0", 732 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", 733 | "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", 734 | "dev": true 735 | }, 736 | "isarray": { 737 | "version": "0.0.1", 738 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 739 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", 740 | "dev": true 741 | }, 742 | "isexe": { 743 | "version": "2.0.0", 744 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 745 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 746 | "dev": true 747 | }, 748 | "isobject": { 749 | "version": "2.1.0", 750 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 751 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 752 | "dev": true, 753 | "requires": { 754 | "isarray": "1.0.0" 755 | }, 756 | "dependencies": { 757 | "isarray": { 758 | "version": "1.0.0", 759 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 760 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 761 | "dev": true 762 | } 763 | } 764 | }, 765 | "jstransform": { 766 | "version": "11.0.3", 767 | "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz", 768 | "integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=", 769 | "dev": true, 770 | "requires": { 771 | "base62": "^1.1.0", 772 | "commoner": "^0.10.1", 773 | "esprima-fb": "^15001.1.0-dev-harmony-fb", 774 | "object-assign": "^2.0.0", 775 | "source-map": "^0.4.2" 776 | }, 777 | "dependencies": { 778 | "object-assign": { 779 | "version": "2.1.1", 780 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", 781 | "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", 782 | "dev": true 783 | }, 784 | "source-map": { 785 | "version": "0.4.4", 786 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 787 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 788 | "dev": true, 789 | "requires": { 790 | "amdefine": ">=0.0.4" 791 | } 792 | } 793 | } 794 | }, 795 | "kind-of": { 796 | "version": "3.2.2", 797 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 798 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 799 | "dev": true, 800 | "requires": { 801 | "is-buffer": "^1.1.5" 802 | } 803 | }, 804 | "layout-bmfont-text": { 805 | "version": "1.3.4", 806 | "resolved": "https://registry.npmjs.org/layout-bmfont-text/-/layout-bmfont-text-1.3.4.tgz", 807 | "integrity": "sha1-8g8sVGR3T0jabOipl/vObUaUW4E=", 808 | "dev": true, 809 | "requires": { 810 | "as-number": "^1.0.0", 811 | "word-wrapper": "^1.0.7", 812 | "xtend": "^4.0.0" 813 | } 814 | }, 815 | "load-bmfont": { 816 | "version": "1.4.0", 817 | "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz", 818 | "integrity": "sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==", 819 | "dev": true, 820 | "requires": { 821 | "buffer-equal": "0.0.1", 822 | "mime": "^1.3.4", 823 | "parse-bmfont-ascii": "^1.0.3", 824 | "parse-bmfont-binary": "^1.0.5", 825 | "parse-bmfont-xml": "^1.1.4", 826 | "phin": "^2.9.1", 827 | "xhr": "^2.0.1", 828 | "xtend": "^4.0.0" 829 | } 830 | }, 831 | "lodash": { 832 | "version": "3.6.0", 833 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.6.0.tgz", 834 | "integrity": "sha1-Umao9J3Zib5Pn2gbbyoMVShdDZo=", 835 | "dev": true 836 | }, 837 | "map-limit": { 838 | "version": "0.0.1", 839 | "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", 840 | "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", 841 | "dev": true, 842 | "requires": { 843 | "once": "~1.3.0" 844 | }, 845 | "dependencies": { 846 | "once": { 847 | "version": "1.3.3", 848 | "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", 849 | "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", 850 | "dev": true, 851 | "requires": { 852 | "wrappy": "1" 853 | } 854 | } 855 | } 856 | }, 857 | "math-random": { 858 | "version": "1.0.4", 859 | "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", 860 | "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", 861 | "dev": true 862 | }, 863 | "merge": { 864 | "version": "1.2.1", 865 | "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", 866 | "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", 867 | "dev": true 868 | }, 869 | "micromatch": { 870 | "version": "2.3.11", 871 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 872 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 873 | "dev": true, 874 | "requires": { 875 | "arr-diff": "^2.0.0", 876 | "array-unique": "^0.2.1", 877 | "braces": "^1.8.2", 878 | "expand-brackets": "^0.1.4", 879 | "extglob": "^0.3.1", 880 | "filename-regex": "^2.0.0", 881 | "is-extglob": "^1.0.0", 882 | "is-glob": "^2.0.1", 883 | "kind-of": "^3.0.2", 884 | "normalize-path": "^2.0.1", 885 | "object.omit": "^2.0.0", 886 | "parse-glob": "^3.0.4", 887 | "regex-cache": "^0.4.2" 888 | } 889 | }, 890 | "mime": { 891 | "version": "1.6.0", 892 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 893 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 894 | "dev": true 895 | }, 896 | "mimic-response": { 897 | "version": "1.0.1", 898 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 899 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", 900 | "dev": true 901 | }, 902 | "min-document": { 903 | "version": "2.19.0", 904 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", 905 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", 906 | "dev": true, 907 | "requires": { 908 | "dom-walk": "^0.1.0" 909 | } 910 | }, 911 | "minimatch": { 912 | "version": "3.0.4", 913 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 914 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 915 | "dev": true, 916 | "requires": { 917 | "brace-expansion": "^1.1.7" 918 | } 919 | }, 920 | "minimist": { 921 | "version": "0.0.8", 922 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 923 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 924 | "dev": true 925 | }, 926 | "mkdirp": { 927 | "version": "0.5.1", 928 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 929 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 930 | "dev": true, 931 | "requires": { 932 | "minimist": "0.0.8" 933 | } 934 | }, 935 | "new-array": { 936 | "version": "1.0.0", 937 | "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz", 938 | "integrity": "sha1-XbxjnZYerH8an7wacUbsEvKST78=", 939 | "dev": true 940 | }, 941 | "nice-color-palettes": { 942 | "version": "1.0.1", 943 | "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-1.0.1.tgz", 944 | "integrity": "sha1-h16gHchu+uf1leBmqLJmDnIGBT4=", 945 | "dev": true, 946 | "requires": { 947 | "map-limit": "0.0.1", 948 | "minimist": "^1.2.0", 949 | "new-array": "^1.0.0", 950 | "xhr-request": "^1.0.1" 951 | }, 952 | "dependencies": { 953 | "minimist": { 954 | "version": "1.2.0", 955 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 956 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 957 | "dev": true 958 | } 959 | } 960 | }, 961 | "normalize-path": { 962 | "version": "2.1.1", 963 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 964 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 965 | "dev": true, 966 | "requires": { 967 | "remove-trailing-separator": "^1.0.1" 968 | } 969 | }, 970 | "nosleep.js": { 971 | "version": "0.7.0", 972 | "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.7.0.tgz", 973 | "integrity": "sha1-z9kZwlUjyg0PSmn7MwXAg62u4ok=", 974 | "dev": true 975 | }, 976 | "object-assign": { 977 | "version": "4.1.1", 978 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 979 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 980 | "dev": true 981 | }, 982 | "object-keys": { 983 | "version": "1.1.1", 984 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 985 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 986 | "dev": true 987 | }, 988 | "object.omit": { 989 | "version": "2.0.1", 990 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 991 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 992 | "dev": true, 993 | "requires": { 994 | "for-own": "^0.1.4", 995 | "is-extendable": "^0.1.1" 996 | } 997 | }, 998 | "once": { 999 | "version": "1.4.0", 1000 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1001 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1002 | "dev": true, 1003 | "requires": { 1004 | "wrappy": "1" 1005 | } 1006 | }, 1007 | "os-homedir": { 1008 | "version": "1.0.2", 1009 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1010 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1011 | "dev": true 1012 | }, 1013 | "parse-bmfont-ascii": { 1014 | "version": "1.0.6", 1015 | "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", 1016 | "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=", 1017 | "dev": true 1018 | }, 1019 | "parse-bmfont-binary": { 1020 | "version": "1.0.6", 1021 | "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", 1022 | "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=", 1023 | "dev": true 1024 | }, 1025 | "parse-bmfont-xml": { 1026 | "version": "1.1.4", 1027 | "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", 1028 | "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", 1029 | "dev": true, 1030 | "requires": { 1031 | "xml-parse-from-string": "^1.0.0", 1032 | "xml2js": "^0.4.5" 1033 | } 1034 | }, 1035 | "parse-glob": { 1036 | "version": "3.0.4", 1037 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 1038 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 1039 | "dev": true, 1040 | "requires": { 1041 | "glob-base": "^0.3.0", 1042 | "is-dotfile": "^1.0.0", 1043 | "is-extglob": "^1.0.0", 1044 | "is-glob": "^2.0.0" 1045 | } 1046 | }, 1047 | "parse-headers": { 1048 | "version": "2.0.2", 1049 | "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", 1050 | "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", 1051 | "dev": true, 1052 | "requires": { 1053 | "for-each": "^0.3.3", 1054 | "string.prototype.trim": "^1.1.2" 1055 | } 1056 | }, 1057 | "parse-passwd": { 1058 | "version": "1.0.0", 1059 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 1060 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 1061 | "dev": true 1062 | }, 1063 | "path-is-absolute": { 1064 | "version": "1.0.1", 1065 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1066 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1067 | "dev": true 1068 | }, 1069 | "phin": { 1070 | "version": "2.9.3", 1071 | "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", 1072 | "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", 1073 | "dev": true 1074 | }, 1075 | "present": { 1076 | "version": "0.0.6", 1077 | "resolved": "https://registry.npmjs.org/present/-/present-0.0.6.tgz", 1078 | "integrity": "sha1-nu/3ANqp6ZhhM1Lkf3rCMk1PrwI=", 1079 | "dev": true 1080 | }, 1081 | "preserve": { 1082 | "version": "0.2.0", 1083 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 1084 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 1085 | "dev": true 1086 | }, 1087 | "private": { 1088 | "version": "0.1.8", 1089 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 1090 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 1091 | "dev": true 1092 | }, 1093 | "process": { 1094 | "version": "0.5.2", 1095 | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", 1096 | "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", 1097 | "dev": true 1098 | }, 1099 | "promise-polyfill": { 1100 | "version": "3.1.0", 1101 | "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-3.1.0.tgz", 1102 | "integrity": "sha1-YpUrAdBZsRW0MnY7fvRhuA9t9H0=", 1103 | "dev": true 1104 | }, 1105 | "q": { 1106 | "version": "1.5.1", 1107 | "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", 1108 | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", 1109 | "dev": true 1110 | }, 1111 | "quad-indices": { 1112 | "version": "2.0.1", 1113 | "resolved": "https://registry.npmjs.org/quad-indices/-/quad-indices-2.0.1.tgz", 1114 | "integrity": "sha1-ppQdiaE9Y+7WwdSlpiGgRjYXqBQ=", 1115 | "dev": true, 1116 | "requires": { 1117 | "an-array": "^1.0.0", 1118 | "dtype": "^2.0.0", 1119 | "is-buffer": "^1.0.2" 1120 | } 1121 | }, 1122 | "query-string": { 1123 | "version": "5.1.1", 1124 | "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", 1125 | "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", 1126 | "dev": true, 1127 | "requires": { 1128 | "decode-uri-component": "^0.2.0", 1129 | "object-assign": "^4.1.0", 1130 | "strict-uri-encode": "^1.0.0" 1131 | } 1132 | }, 1133 | "randomatic": { 1134 | "version": "3.1.1", 1135 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", 1136 | "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", 1137 | "dev": true, 1138 | "requires": { 1139 | "is-number": "^4.0.0", 1140 | "kind-of": "^6.0.0", 1141 | "math-random": "^1.0.1" 1142 | }, 1143 | "dependencies": { 1144 | "is-number": { 1145 | "version": "4.0.0", 1146 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", 1147 | "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", 1148 | "dev": true 1149 | }, 1150 | "kind-of": { 1151 | "version": "6.0.2", 1152 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", 1153 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", 1154 | "dev": true 1155 | } 1156 | } 1157 | }, 1158 | "readable-stream": { 1159 | "version": "1.1.14", 1160 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", 1161 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", 1162 | "dev": true, 1163 | "requires": { 1164 | "core-util-is": "~1.0.0", 1165 | "inherits": "~2.0.1", 1166 | "isarray": "0.0.1", 1167 | "string_decoder": "~0.10.x" 1168 | } 1169 | }, 1170 | "recast": { 1171 | "version": "0.11.23", 1172 | "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", 1173 | "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", 1174 | "dev": true, 1175 | "requires": { 1176 | "ast-types": "0.9.6", 1177 | "esprima": "~3.1.0", 1178 | "private": "~0.1.5", 1179 | "source-map": "~0.5.0" 1180 | }, 1181 | "dependencies": { 1182 | "esprima": { 1183 | "version": "3.1.3", 1184 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", 1185 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", 1186 | "dev": true 1187 | }, 1188 | "source-map": { 1189 | "version": "0.5.7", 1190 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1191 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1192 | "dev": true 1193 | } 1194 | } 1195 | }, 1196 | "regex-cache": { 1197 | "version": "0.4.4", 1198 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 1199 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 1200 | "dev": true, 1201 | "requires": { 1202 | "is-equal-shallow": "^0.1.3" 1203 | } 1204 | }, 1205 | "remove-trailing-separator": { 1206 | "version": "1.1.0", 1207 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 1208 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 1209 | "dev": true 1210 | }, 1211 | "repeat-element": { 1212 | "version": "1.1.3", 1213 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", 1214 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", 1215 | "dev": true 1216 | }, 1217 | "repeat-string": { 1218 | "version": "1.6.1", 1219 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 1220 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 1221 | "dev": true 1222 | }, 1223 | "resolve-dir": { 1224 | "version": "0.1.1", 1225 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", 1226 | "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", 1227 | "dev": true, 1228 | "requires": { 1229 | "expand-tilde": "^1.2.2", 1230 | "global-modules": "^0.2.3" 1231 | } 1232 | }, 1233 | "safer-buffer": { 1234 | "version": "2.1.2", 1235 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1236 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1237 | "dev": true 1238 | }, 1239 | "sax": { 1240 | "version": "1.2.4", 1241 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 1242 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 1243 | "dev": true 1244 | }, 1245 | "simple-concat": { 1246 | "version": "1.0.0", 1247 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", 1248 | "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", 1249 | "dev": true 1250 | }, 1251 | "simple-get": { 1252 | "version": "2.8.1", 1253 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", 1254 | "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", 1255 | "dev": true, 1256 | "requires": { 1257 | "decompress-response": "^3.3.0", 1258 | "once": "^1.3.1", 1259 | "simple-concat": "^1.0.0" 1260 | } 1261 | }, 1262 | "source-map": { 1263 | "version": "0.1.43", 1264 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", 1265 | "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", 1266 | "dev": true, 1267 | "requires": { 1268 | "amdefine": ">=0.0.4" 1269 | } 1270 | }, 1271 | "strict-uri-encode": { 1272 | "version": "1.1.0", 1273 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", 1274 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", 1275 | "dev": true 1276 | }, 1277 | "string.prototype.trim": { 1278 | "version": "1.2.0", 1279 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz", 1280 | "integrity": "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==", 1281 | "dev": true, 1282 | "requires": { 1283 | "define-properties": "^1.1.3", 1284 | "es-abstract": "^1.13.0", 1285 | "function-bind": "^1.1.1" 1286 | } 1287 | }, 1288 | "string_decoder": { 1289 | "version": "0.10.31", 1290 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1291 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 1292 | "dev": true 1293 | }, 1294 | "style-attr": { 1295 | "version": "1.3.0", 1296 | "resolved": "https://registry.npmjs.org/style-attr/-/style-attr-1.3.0.tgz", 1297 | "integrity": "sha512-srFr54gzEZoy73WgYfnbxCAtNCzF0Hn5RGzK7gi/0G6ttZd9v3WZFGY4ed5ABr43dbGjPNr4T46geUxxUP9i6w==", 1298 | "dev": true 1299 | }, 1300 | "super-animejs": { 1301 | "version": "3.1.0", 1302 | "resolved": "https://registry.npmjs.org/super-animejs/-/super-animejs-3.1.0.tgz", 1303 | "integrity": "sha512-6MFAFJDRuvwkovxQZPruuyHinTa4rgj4hNLOndjcYYhZLckoXtVRY9rJPuq8p6c/tgZJrFYEAYAfJ2/hhNtUCA==", 1304 | "dev": true 1305 | }, 1306 | "super-three": { 1307 | "version": "0.102.2", 1308 | "resolved": "https://registry.npmjs.org/super-three/-/super-three-0.102.2.tgz", 1309 | "integrity": "sha512-VRFEVE1HB8mAf8tm7UL5kcqvQYrhWbzhpwswCot49hhBPJcwcjTSbIpQ824WpcKv/WyV1V6+mnl8GhT19tzTVA==", 1310 | "dev": true 1311 | }, 1312 | "three-bmfont-text": { 1313 | "version": "2.3.0", 1314 | "resolved": "https://registry.npmjs.org/three-bmfont-text/-/three-bmfont-text-2.3.0.tgz", 1315 | "integrity": "sha512-HG6QHR129cNMGBhMgLsyKJiNW5r2XI+2P1JyjJl/9+D1e0iySzVZl3r8peTFpoJzPODl5Ckb8nu0U1zWjc6dNg==", 1316 | "dev": true, 1317 | "requires": { 1318 | "array-shuffle": "^1.0.1", 1319 | "inherits": "^2.0.1", 1320 | "layout-bmfont-text": "^1.2.0", 1321 | "nice-color-palettes": "^1.0.1", 1322 | "object-assign": "^4.0.1", 1323 | "quad-indices": "^2.0.1", 1324 | "three-buffer-vertex-data": "^1.0.0" 1325 | } 1326 | }, 1327 | "three-buffer-vertex-data": { 1328 | "version": "1.1.0", 1329 | "resolved": "https://registry.npmjs.org/three-buffer-vertex-data/-/three-buffer-vertex-data-1.1.0.tgz", 1330 | "integrity": "sha1-zyKOeEJ2ZYhLlhpMq+H4XtOfgrE=", 1331 | "dev": true, 1332 | "requires": { 1333 | "flatten-vertex-data": "^1.0.0" 1334 | } 1335 | }, 1336 | "through": { 1337 | "version": "2.3.8", 1338 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1339 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1340 | "dev": true 1341 | }, 1342 | "through2": { 1343 | "version": "0.6.5", 1344 | "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", 1345 | "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", 1346 | "dev": true, 1347 | "requires": { 1348 | "readable-stream": ">=1.0.33-1 <1.1.0-0", 1349 | "xtend": ">=4.0.0 <4.1.0-0" 1350 | }, 1351 | "dependencies": { 1352 | "readable-stream": { 1353 | "version": "1.0.34", 1354 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 1355 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 1356 | "dev": true, 1357 | "requires": { 1358 | "core-util-is": "~1.0.0", 1359 | "inherits": "~2.0.1", 1360 | "isarray": "0.0.1", 1361 | "string_decoder": "~0.10.x" 1362 | } 1363 | } 1364 | } 1365 | }, 1366 | "timed-out": { 1367 | "version": "4.0.1", 1368 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 1369 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", 1370 | "dev": true 1371 | }, 1372 | "typedarray": { 1373 | "version": "0.0.6", 1374 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 1375 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 1376 | "dev": true 1377 | }, 1378 | "url-set-query": { 1379 | "version": "1.0.0", 1380 | "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", 1381 | "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", 1382 | "dev": true 1383 | }, 1384 | "webvr-polyfill": { 1385 | "version": "0.10.10", 1386 | "resolved": "https://registry.npmjs.org/webvr-polyfill/-/webvr-polyfill-0.10.10.tgz", 1387 | "integrity": "sha512-WdKQ1XR9X2Gj9RUtmr+DajvWBWPva75m1rm0Z7CibR7ZstCm913zHYToxw0p/EK342wAxGfiWKsBmb3Jd5OO0w==", 1388 | "dev": true, 1389 | "requires": { 1390 | "cardboard-vr-display": "^1.0.16" 1391 | } 1392 | }, 1393 | "webvr-polyfill-dpdb": { 1394 | "version": "1.0.16", 1395 | "resolved": "https://registry.npmjs.org/webvr-polyfill-dpdb/-/webvr-polyfill-dpdb-1.0.16.tgz", 1396 | "integrity": "sha512-FCciTtPhwkYYHGL0K67G8k7ZnNVqnEx3u4NVHLJ0+Ya6f2VTZUl/GJpaEo1Id2pBP/2l0RYZ3IGZE4Pe8fRalg==", 1397 | "dev": true 1398 | }, 1399 | "which": { 1400 | "version": "1.3.1", 1401 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1402 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1403 | "dev": true, 1404 | "requires": { 1405 | "isexe": "^2.0.0" 1406 | } 1407 | }, 1408 | "word-wrapper": { 1409 | "version": "1.0.7", 1410 | "resolved": "https://registry.npmjs.org/word-wrapper/-/word-wrapper-1.0.7.tgz", 1411 | "integrity": "sha1-HxSv6/Zt/fD+9V79NxhO+9CMKLY=", 1412 | "dev": true 1413 | }, 1414 | "wrappy": { 1415 | "version": "1.0.2", 1416 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1417 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1418 | "dev": true 1419 | }, 1420 | "xhr": { 1421 | "version": "2.5.0", 1422 | "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", 1423 | "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", 1424 | "dev": true, 1425 | "requires": { 1426 | "global": "~4.3.0", 1427 | "is-function": "^1.0.1", 1428 | "parse-headers": "^2.0.0", 1429 | "xtend": "^4.0.0" 1430 | } 1431 | }, 1432 | "xhr-request": { 1433 | "version": "1.1.0", 1434 | "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", 1435 | "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", 1436 | "dev": true, 1437 | "requires": { 1438 | "buffer-to-arraybuffer": "^0.0.5", 1439 | "object-assign": "^4.1.1", 1440 | "query-string": "^5.0.1", 1441 | "simple-get": "^2.7.0", 1442 | "timed-out": "^4.0.1", 1443 | "url-set-query": "^1.0.0", 1444 | "xhr": "^2.0.4" 1445 | } 1446 | }, 1447 | "xml-parse-from-string": { 1448 | "version": "1.0.1", 1449 | "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", 1450 | "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=", 1451 | "dev": true 1452 | }, 1453 | "xml2js": { 1454 | "version": "0.4.19", 1455 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", 1456 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", 1457 | "dev": true, 1458 | "requires": { 1459 | "sax": ">=0.6.0", 1460 | "xmlbuilder": "~9.0.1" 1461 | } 1462 | }, 1463 | "xmlbuilder": { 1464 | "version": "9.0.7", 1465 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", 1466 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", 1467 | "dev": true 1468 | }, 1469 | "xtend": { 1470 | "version": "4.0.2", 1471 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1472 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 1473 | "dev": true 1474 | } 1475 | } 1476 | } 1477 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aframe-mouse-dragndrop-component", 3 | "version": "1.1.0", 4 | "description": "Drag-n-drop entites using mouse cursor.", 5 | "keywords": [ 6 | "aframe", 7 | "drag-n-drop", 8 | "aframe-vr", 9 | "webvr", 10 | "aframe-component" 11 | ], 12 | "homepage": "https://github.com/extraymond/aframe-mouse-dragndrop", 13 | "repository": "extraymond/aframe-mouse-dragndrop", 14 | "main": "src/index.js", 15 | "scripts": { 16 | "test": "parcel example/index.html", 17 | "build": "parcel build src/index.js --no-source-maps" 18 | }, 19 | "author": "Raymond Yeh ", 20 | "license": "MIT", 21 | "dependencies": {}, 22 | "devDependencies": { 23 | "aframe": "^0.9.2" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | if (window.AFRAME == null) { 2 | console.error("aframe not found, please import it before this component.") 3 | } 4 | 5 | AFRAME.registerSystem("track-cursor", { 6 | init: function() { 7 | this.el.setAttribute("cursor", { rayOrigin: "mouse" }); 8 | } 9 | }); 10 | 11 | AFRAME.registerComponent("track-cursor", { 12 | init: function() { 13 | this.el.addEventListener("mousedown", e => { 14 | if (this.el.is("cursor-hovered")) { 15 | this.el.sceneEl.camera.el.setAttribute("look-controls", { 16 | enabled: false 17 | }); 18 | this.el.addState("dragging"); 19 | } 20 | }) 21 | this.el.addEventListener("click", e => { 22 | if (this.el.is("dragging")) { 23 | this.el.sceneEl.camera.el.setAttribute("look-controls", { 24 | enabled: true 25 | }); 26 | this.el.removeState("dragging"); 27 | } 28 | }) 29 | }, 30 | }); 31 | 32 | AFRAME.registerComponent("dragndrop", { 33 | dependencies: ["track-cursor"], 34 | init: function() { 35 | this.range = 0; 36 | this.dist = 0; 37 | 38 | this.el.addEventListener("stateadded", e => { 39 | if (e.detail == "dragging") { 40 | this.range = 0; 41 | this.dist = this.el.object3D.position 42 | .clone() 43 | .sub(this.el.sceneEl.camera.el.object3D.position) 44 | .length(); 45 | } 46 | }) 47 | 48 | this.direction = new AFRAME.THREE.Vector3(); 49 | this.target = new AFRAME.THREE.Vector3(); 50 | document.addEventListener("wheel", e => { 51 | if (e.deltaY < 0) { 52 | this.range += 0.1; 53 | } else { 54 | this.range -= 0.1; 55 | } 56 | }); 57 | }, 58 | updateDirection: function() { 59 | this.direction.copy(this.el.sceneEl.getAttribute("raycaster").direction); 60 | }, 61 | updateTarget: function() { 62 | let camera = this.el.sceneEl.camera.el 63 | this.target.copy( 64 | camera.object3D.position 65 | .clone() 66 | .add(this.direction.clone().multiplyScalar(this.dist + this.range)) 67 | ); 68 | }, 69 | tick: function() { 70 | if (this.el.is("dragging")) { 71 | this.updateDirection(); 72 | this.updateTarget(); 73 | this.el.object3D.position.copy(this.target); 74 | } 75 | } 76 | }); 77 | --------------------------------------------------------------------------------